Account for truncated resource names in test PhysName

The utility class PhysName was blindly comparing resource
name without considering that the resource name may
have also been truncated.

Closes-Bug: #1251379

Change-Id: I189f79ee5238b7c82eff1595ef612efb1f8633d4
This commit is contained in:
Randall Burt 2013-12-04 17:28:10 -06:00
parent cf6048fd2d
commit 84f1afebcb
3 changed files with 11 additions and 18 deletions

View File

@ -180,13 +180,6 @@ zypper --non-interactive in cloud-init python-boto python-pip gcc python-devel
self._flavor = None
self._image = None
def physical_resource_name(self):
name = self.properties.get('name')
if name:
return name
return super(CloudServer, self).physical_resource_name()
@property
def server(self):
"""Get the Cloud Server object."""

View File

@ -146,8 +146,9 @@ class RackspaceCloudServerTest(HeatTestCase):
cs.t = cs.stack.resolve_runtime_data(cs.t)
self.m.StubOutWithMock(self.fc.servers, 'create')
self.fc.servers.create(utils.PhysName(stack_name, cs.name),
1, 1,
name_limit = cloud_server.CloudServer.physical_resource_name_limit
server_name = utils.PhysName(stack_name, cs.name, limit=name_limit)
self.fc.servers.create(server_name, 1, 1,
files=mox.IgnoreArg()).AndReturn(return_server)
return_server.adminPass = "foobar"

View File

@ -164,9 +164,12 @@ class PhysName(object):
mock_short_id = 'x' * 12
def __init__(self, stack_name, resource_name, limit=255):
self.stack_name = stack_name
self.resource_name = resource_name
self.limit = limit
name = '%s-%s-%s' % (stack_name,
resource_name,
self.mock_short_id)
self._physname = resource.Resource.reduce_physical_resource_name(
name, limit)
self.stack, self.res, self.sid = self._physname.rsplit('-', 2)
def __eq__(self, physical_name):
try:
@ -178,14 +181,10 @@ class PhysName(object):
return False
# ignore the stack portion of the name, as it may have been truncated
return self.resource_name == res
return res == self.res
def __ne__(self, physical_name):
return not self.__eq__(physical_name)
def __repr__(self):
name = '%s-%s-%s' % (self.stack_name,
self.resource_name,
self.mock_short_id)
return resource.Resource.reduce_physical_resource_name(
name, self.limit)
return self._physname