from heat.common import exception
from heat.engine import resource
-from heat.common import short_id
from heat.openstack.common import log as logging
from heat.engine import clients
return {'Error':
'S3 services unavailable because of missing swiftclient.'}
- def _create_container_name(self):
- return '%s-%s-%s' % (self.stack.name, self.name,
- short_id.generate_id())
-
def handle_create(self):
"""Create a bucket."""
- container = self._create_container_name()
+ container = self.physical_resource_name()
headers = {}
logger.debug('S3Bucket create container %s with headers %s' %
(container, headers))
from heat.common import exception
from heat.engine import resource
-from heat.common import short_id
from heat.openstack.common import log as logging
from heat.engine import clients
return {'Error':
'SwiftContainer unavailable due to missing swiftclient.'}
- def _create_container_name(self, name=None):
- return name or '%s-%s-%s' % (self.stack.name,
- self.name,
- short_id.generate_id())
+ def physical_resource_name(self):
+ name = self.properties.get('name')
+ if name:
+ return name
+
+ return super(SwiftContainer, self).physical_resource_name()
@staticmethod
def _build_meta_headers(meta_props):
def handle_create(self):
"""Create a container."""
- container = self._create_container_name(self.properties.get('name'))
+ container = self.physical_resource_name()
headers = SwiftContainer._build_meta_headers(
self.properties['X-Container-Meta'])
if 'X-Container-Read' in self.properties.keys():
self.assertEqual(s3.S3Bucket.CREATE_COMPLETE, rsrc.state)
return rsrc
- def test_create_container_name(self):
- self.m.ReplayAll()
- t = template_format.parse(swift_template)
- stack = parse_stack(t)
- rsrc = s3.S3Bucket('test_resource',
- t['Resources']['S3Bucket'],
- stack)
- self.assertTrue(re.match(self.container_pattern,
- rsrc._create_container_name()))
-
def test_attributes(self):
swiftclient.Connection.put_container(
mox.Regex(self.container_pattern),
def test_create_container_name(self):
self.m.ReplayAll()
t = template_format.parse(swift_template)
+ t['Resources']['SwiftContainer']['Properties']['name'] = 'the_name'
stack = parse_stack(t)
rsrc = swift.SwiftContainer(
'test_resource',
t['Resources']['SwiftContainer'],
stack)
- self.assertTrue(re.match(self.container_pattern,
- rsrc._create_container_name()))
- self.assertEqual(
- 'the_name',
- rsrc._create_container_name('the_name'))
+ self.assertEqual('the_name', rsrc.physical_resource_name())
def test_build_meta_headers(self):
self.m.UnsetStubs()