summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-03-03 10:40:19 +0000
committerGerrit Code Review <review@openstack.org>2016-03-03 10:40:19 +0000
commitfc6ab013aa532a77d167cb32c25c19f14a8f01cc (patch)
tree42967639f1f3d589abade43bbb5a8927dab60a64
parent7469927ba24b1af388ebbd0440e0d4aec6c86553 (diff)
parent8d788da2e1b115cfb9c55f007d5392519fb77f5b (diff)
downloadheat-fc6ab013aa532a77d167cb32c25c19f14a8f01cc.tar.gz
Merge "Fix property TTL in Designate::Domain" into stable/liberty
-rw-r--r--heat/engine/resources/openstack/designate/domain.py13
-rw-r--r--heat/tests/openstack/designate/test_domain.py12
2 files changed, 16 insertions, 9 deletions
diff --git a/heat/engine/resources/openstack/designate/domain.py b/heat/engine/resources/openstack/designate/domain.py
index b1ddf923d..9ecf64128 100644
--- a/heat/engine/resources/openstack/designate/domain.py
+++ b/heat/engine/resources/openstack/designate/domain.py
@@ -10,6 +10,7 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
+import six
from heat.common.i18n import _
from heat.engine import attributes
@@ -47,12 +48,12 @@ class DesignateDomain(resource.Resource):
required=True,
constraints=[constraints.Length(max=255)]
),
- # Based on RFC 1035, range for ttl is set to 0 to signed 32 bit number
+ # Based on RFC 1035, range for ttl is set to 1 to signed 32 bit number
TTL: properties.Schema(
properties.Schema.INTEGER,
_('Time To Live (Seconds).'),
update_allowed=True,
- constraints=[constraints.Range(min=0,
+ constraints=[constraints.Range(min=1,
max=2147483647)]
),
# designate mandates to the max length of 160 for description
@@ -82,13 +83,7 @@ class DesignateDomain(resource.Resource):
entity = 'domains'
def handle_create(self):
- args = dict(
- name=self.properties[self.NAME],
- email=self.properties[self.EMAIL],
- description=self.properties[self.DESCRIPTION],
- ttl=self.properties[self.TTL]
- )
-
+ args = dict((k, v) for k, v in six.iteritems(self.properties) if v)
domain = self.client_plugin().domain_create(**args)
self.resource_id_set(domain.id)
diff --git a/heat/tests/openstack/designate/test_domain.py b/heat/tests/openstack/designate/test_domain.py
index 4d720d38a..dd00e41ff 100644
--- a/heat/tests/openstack/designate/test_domain.py
+++ b/heat/tests/openstack/designate/test_domain.py
@@ -180,3 +180,15 @@ class DesignateDomainTest(common.HeatTestCase):
self.assertEqual(args,
self.test_resource._show_resource(),
'Failed to show resource')
+
+ def test_no_ttl(self):
+ mock_domain_create = self.test_client_plugin.domain_create
+ mock_resource = self._get_mock_resource()
+ mock_domain_create.return_value = mock_resource
+
+ self.test_resource.properties.data['ttl'] = None
+
+ self.test_resource.handle_create()
+ mock_domain_create.assert_called_once_with(
+ name='test-domain.com', description='Test domain',
+ email='abc@test-domain.com')