from heat.engine import watchrule
from heat.openstack.common import threadgroup
from heat.tests.common import HeatTestCase
+from heat.tests import utils
from heat.tests.utils import setup_dummy_db
server_userdata = instance._build_userdata(instance.properties['UserData'])
mocks.StubOutWithMock(fc.servers, 'create')
fc.servers.create(image=744, flavor=3, key_name='test',
- name='%s.WebServer' % stack.name, security_groups=None,
+ name=utils.PhysName(stack.name, 'WebServer'),
+ security_groups=None,
userdata=server_userdata, scheduler_hints=None,
meta=None, nics=None,
availability_zone=None).AndReturn(
from heat.engine import scheduler
from heat.openstack.common import uuidutils
from heat.tests.common import HeatTestCase
+from heat.tests import utils
from heat.tests.utils import setup_dummy_db
self.m.StubOutWithMock(self.fc.servers, 'create')
self.fc.servers.create(
image=1, flavor=1, key_name='test',
- name='%s.%s' % (stack_name, instance.name),
+ name=utils.PhysName(stack_name, instance.name),
security_groups=None,
userdata=server_userdata, scheduler_hints=None,
meta=None, nics=None, availability_zone=None).AndReturn(
from heat.engine import scheduler
from heat.openstack.common import uuidutils
from heat.tests.common import HeatTestCase
+from heat.tests import utils
from heat.tests.utils import setup_dummy_db
self.m.StubOutWithMock(self.fc.servers, 'create')
self.fc.servers.create(
image=1, flavor=3, key_name='test',
- name='%s.%s' % (stack_name, instance.name),
+ name=utils.PhysName(stack_name, instance.name),
security_groups=None,
userdata=server_userdata, scheduler_hints=None, meta=None,
nics=[{'port-id': '64d913c1-bcb1-42d2-8f0a-9593dbcaf251'}],
self.m.StubOutWithMock(self.fc.servers, 'create')
self.fc.servers.create(
image=1, flavor=3, key_name='test',
- name='%s.%s' % (stack_name, instance.name),
+ name=utils.PhysName(stack_name, instance.name),
security_groups=None,
userdata=server_userdata, scheduler_hints=None, meta=None,
nics=[{'port-id': '64d913c1-bcb1-42d2-8f0a-9593dbcaf251'}],
from heat.engine.resources import wait_condition as wc
from heat.engine.resource import Metadata
from heat.tests.common import HeatTestCase
+from heat.tests import utils
from heat.tests.utils import setup_dummy_db
from heat.tests.utils import parse_stack
from heat.tests.v1_1 import fakes
self.m.StubOutWithMock(wc.WaitConditionHandle, 'keystone')
wc.WaitConditionHandle.keystone().MultipleTimes().AndReturn(self.fkc)
+ server_name = utils.PhysName(utils.PhysName('test_stack',
+ 'LoadBalancer'),
+ 'LB_instance')
clients.OpenStackClients.nova(
"compute").MultipleTimes().AndReturn(self.fc)
self.fc.servers.create(
flavor=2, image=745, key_name='test',
- meta=None, nics=None, name=u'test_stack.LoadBalancer.LB_instance',
+ meta=None, nics=None, name=server_name,
scheduler_hints=None, userdata=mox.IgnoreArg(),
security_groups=None, availability_zone=None).AndReturn(
self.fc.servers.list()[1])
from heat.engine import resource
from heat.common import urlfetch
from heat.tests.common import HeatTestCase
+from heat.tests import utils
from heat.tests.utils import setup_dummy_db
stack = self.create_stack(self.test_template)
rsrc = stack['the_nested']
- self.assertTrue(rsrc.FnGetRefId().startswith(
- 'arn:openstack:heat::aaaa:stacks/test_stack.the_nested/'))
+ nested_name = utils.PhysName(stack.name, 'the_nested')
+ self.assertEqual(nested_name, rsrc.physical_resource_name())
+ arn_prefix = ('arn:openstack:heat::aaaa:stacks/%s/' %
+ rsrc.physical_resource_name())
+ self.assertTrue(rsrc.FnGetRefId().startswith(arn_prefix))
self.assertRaises(resource.UpdateReplace,
rsrc.handle_update, {}, {}, {})
exception.InvalidTemplateAttribute, rsrc.FnGetAtt, 'Foo')
rsrc.delete()
- self.assertTrue(rsrc.FnGetRefId().startswith(
- 'arn:openstack:heat::aaaa:stacks/test_stack.the_nested/'))
+ self.assertTrue(rsrc.FnGetRefId().startswith(arn_prefix))
self.m.VerifyAll()
from heat.engine import scheduler
from heat.openstack.common import uuidutils
from heat.tests.common import HeatTestCase
+from heat.tests import utils
from heat.tests.utils import setup_dummy_db
from heat.tests.utils import parse_stack
self.m.StubOutWithMock(self.fc.servers, 'create')
self.fc.servers.create(
image=1, flavor=1, key_name=None,
- name='%s.%s' % (stack_name, instance.name),
+ name=utils.PhysName(stack_name, instance.name),
security_groups=None,
userdata=server_userdata, scheduler_hints=None,
meta=None, nics=None, availability_zone=None).AndReturn(
from heat.engine.resources.quantum.quantum import QuantumResource as qr
from heat.openstack.common.importutils import try_import
from heat.tests.common import HeatTestCase
+from heat.tests import utils
from heat.tests.utils import setup_dummy_db
from heat.tests.utils import parse_stack
quantumclient.Client.create_subnet({
'subnet': {
- 'name': 'test_stack.test_subnet',
+ 'name': utils.PhysName('test_stack', 'test_subnet'),
'network_id': u'None',
'dns_nameservers': [u'8.8.8.8'],
'allocation_pools': [
def test_router(self):
quantumclient.Client.create_router({
- 'router': {'name': 'test_stack.router', 'admin_state_up': True}
+ 'router': {
+ 'name': utils.PhysName('test_stack', 'router'),
+ 'admin_state_up': True,
+ }
}).AndReturn({
"router": {
"status": "BUILD",
"external_gateway_info": None,
- "name": "test_stack.router",
+ "name": utils.PhysName('test_stack', 'router'),
"admin_state_up": True,
"tenant_id": "3e21026f2dc94372b105808c0e721661",
"id": "3e46229d-8fce-4733-819a-b5fe630550f8"
"router": {
"status": "BUILD",
"external_gateway_info": None,
- "name": "test_stack.router",
+ "name": utils.PhysName('test_stack', 'router'),
"admin_state_up": True,
"tenant_id": "3e21026f2dc94372b105808c0e721661",
"routes": [],
"router": {
"status": "ACTIVE",
"external_gateway_info": None,
- "name": "test_stack.router",
+ "name": utils.PhysName('test_stack', 'router'),
"admin_state_up": True,
"tenant_id": "3e21026f2dc94372b105808c0e721661",
"routes": [],
"router": {
"status": "ACTIVE",
"external_gateway_info": None,
- "name": "test_stack.router",
+ "name": utils.PhysName('test_stack', 'router'),
"admin_state_up": True,
"tenant_id": "3e21026f2dc94372b105808c0e721661",
"routes": [],
'fixed_ips': [
{'subnet_id': u'12.12.12.0', 'ip_address': u'10.0.0.10'}
],
- 'name': u'test_stack.port_floating',
+ 'name': utils.PhysName('test_stack', 'port_floating'),
'admin_state_up': True}}
).AndReturn({'port': {
"status": "BUILD",
'fixed_ips': [
{'subnet_id': u'12.12.12.0', 'ip_address': u'10.0.0.10'}
],
- 'name': u'test_stack.port_floating',
+ 'name': utils.PhysName('test_stack', 'port_floating'),
'admin_state_up': True}}
).AndReturn({'port': {
"status": "BUILD",
from heat.tests.common import HeatTestCase
from heat.tests.utils import setup_dummy_db
from heat.tests.v1_1 import fakes
+from heat.tests import utils
from heat.tests.utils import stack_delete_after
from novaclient.v1_1 import security_groups as nova_sg
rules=[],
)])
clients.OpenStackClients.nova('compute').AndReturn(self.fc)
+ sg_name = utils.PhysName('test_stack', 'the_sg')
nova_sg.SecurityGroupManager.create(
- 'test_stack.the_sg',
+ sg_name,
'HTTP and SSH access').AndReturn(NovaSG(
id=2,
- name='test_stack.the_sg',
+ name=sg_name,
description='HTTP and SSH access',
rules=[]))
clients.OpenStackClients.nova('compute').AndReturn(self.fc)
nova_sg.SecurityGroupManager.get(2).AndReturn(NovaSG(
id=2,
- name='test_stack.the_sg',
+ name=sg_name,
description='HTTP and SSH access',
rules=[{
"from_port": 22,
sg = stack['the_sg']
self.assertRaises(resource.UpdateReplace, sg.handle_update, {}, {}, {})
- self.assertResourceState(sg, 'test_stack.the_sg')
+ self.assertResourceState(sg, utils.PhysName('test_stack', 'the_sg'))
stack.delete()
self.m.VerifyAll()
def test_security_group_nova_exception(self):
#create script
clients.OpenStackClients.nova('compute').AndReturn(self.fc)
+ sg_name = utils.PhysName('test_stack', 'the_sg')
nova_sg.SecurityGroupManager.list().AndReturn([NovaSG(
id=2,
- name='test_stack.the_sg',
+ name=sg_name,
description='HTTP and SSH access',
rules=[],
)])
clients.OpenStackClients.nova('compute').AndReturn(self.fc)
nova_sg.SecurityGroupManager.get(2).AndReturn(NovaSG(
id=2,
- name='test_stack.the_sg',
+ name=sg_name,
description='HTTP and SSH access',
rules=[{
"from_port": 22,
sg = stack['the_sg']
self.assertRaises(resource.UpdateReplace, sg.handle_update, {}, {}, {})
- self.assertResourceState(sg, 'test_stack.the_sg')
+ self.assertResourceState(sg, utils.PhysName('test_stack', 'the_sg'))
self.assertEqual(None, sg.delete())
@stack_delete_after
def test_security_group_quantum(self):
#create script
+ sg_name = utils.PhysName('test_stack', 'the_sg')
quantumclient.Client.create_security_group({
'security_group': {
- 'name': 'test_stack.the_sg',
+ 'name': sg_name,
'description': 'HTTP and SSH access'
}
}).AndReturn({
'security_group': {
'tenant_id': 'f18ca530cc05425e8bac0a5ff92f7e88',
- 'name': 'test_stack.the_sg',
+ 'name': sg_name,
'description': 'HTTP and SSH access',
'security_group_rules': [],
'id': 'aaaa'
@stack_delete_after
def test_security_group_quantum_exception(self):
#create script
+ sg_name = utils.PhysName('test_stack', 'the_sg')
quantumclient.Client.create_security_group({
'security_group': {
- 'name': 'test_stack.the_sg',
+ 'name': sg_name,
'description': 'HTTP and SSH access'
}
}).AndReturn({
'security_group': {
'tenant_id': 'f18ca530cc05425e8bac0a5ff92f7e88',
- 'name': 'test_stack.the_sg',
+ 'name': sg_name,
'description': 'HTTP and SSH access',
'security_group_rules': [],
'id': 'aaaa'
from heat.engine.resources import user
from heat.tests.common import HeatTestCase
from heat.tests import fakes
+from heat.tests import utils
from heat.tests.utils import setup_dummy_db
from heat.tests.utils import parse_stack
def setUp(self):
super(UserPolicyTestCase, self).setUp()
config.register_engine_opts()
- self.fc = fakes.FakeKeystoneClient(username='test_stack.CfnUser')
+ username = utils.PhysName('test_stack', 'CfnUser')
+ self.fc = fakes.FakeKeystoneClient(username=username)
cfg.CONF.set_default('heat_stack_user_role', 'stack_user_role')
setup_dummy_db()
rsrc = self.create_user(t, stack, 'CfnUser')
self.assertEqual(self.fc.user_id, rsrc.resource_id)
- self.assertEqual('test_stack.CfnUser', rsrc.FnGetRefId())
+ self.assertEqual(utils.PhysName('test_stack', 'CfnUser'),
+ rsrc.FnGetRefId())
self.assertEqual('CREATE_COMPLETE', rsrc.state)
self.assertRaises(resource.UpdateReplace,
rsrc = self.create_user(t, stack, 'CfnUser')
self.assertEqual(self.fc.user_id, rsrc.resource_id)
- self.assertEqual('test_stack.CfnUser', rsrc.FnGetRefId())
+ self.assertEqual(utils.PhysName('test_stack', 'CfnUser'),
+ rsrc.FnGetRefId())
self.assertEqual('CREATE_COMPLETE', rsrc.state)
self.assertEqual([u'WebServerAccessPolicy'],
rsrc = self.create_user(t, stack, 'CfnUser')
self.assertEqual(self.fc.user_id, rsrc.resource_id)
- self.assertEqual('test_stack.CfnUser', rsrc.FnGetRefId())
+ self.assertEqual(utils.PhysName('test_stack', 'CfnUser'),
+ rsrc.FnGetRefId())
self.assertEqual('CREATE_COMPLETE', rsrc.state)
self.assertTrue(rsrc.access_allowed('a_resource'))
rsrc = self.create_user(t, stack, 'CfnUser')
self.assertEqual(self.fc.user_id, rsrc.resource_id)
- self.assertEqual('test_stack.CfnUser', rsrc.FnGetRefId())
+ self.assertEqual(utils.PhysName('test_stack', 'CfnUser'),
+ rsrc.FnGetRefId())
self.assertEqual('CREATE_COMPLETE', rsrc.state)
self.assertTrue(rsrc.access_allowed('a_resource'))
t = template_format.parse(user_accesskey_template)
# Override the Ref for UserName with a hard-coded name,
# so we don't need to create the User resource
- t['Resources']['HostKeys']['Properties']['UserName'] =\
- 'test_stack.CfnUser'
+ username = str(utils.PhysName('test_stack', 'CfnUser'))
+ t['Resources']['HostKeys']['Properties']['UserName'] = username
+
stack = parse_stack(t)
stack.resources['CfnUser'].resource_id = self.fc.user_id
stack.resources['CfnUser'].state = 'CREATE_COMPLETE'
self.assertEqual(self.fc.secret,
rsrc._secret)
- self.assertEqual(rsrc.FnGetAtt('UserName'), 'test_stack.CfnUser')
+ self.assertEqual(utils.PhysName(stack.name, 'CfnUser'),
+ rsrc.FnGetAtt('UserName'))
rsrc._secret = None
self.assertEqual(rsrc.FnGetAtt('SecretAccessKey'),
self.fc.secret)
t = template_format.parse(user_accesskey_template)
# Set the resource properties UserName to an unknown user
- t['Resources']['HostKeys']['Properties']['UserName'] =\
- 'test_stack.NoExist'
+ t['Resources']['HostKeys']['Properties']['UserName'] = 'NonExistant'
stack = parse_stack(t)
stack.resources['CfnUser'].resource_id = self.fc.user_id
from heat.openstack.common.importutils import try_import
from heat.tests.common import HeatTestCase
from heat.tests.v1_1 import fakes
+from heat.tests import utils
from heat.tests.utils import setup_dummy_db
from heat.tests.utils import parse_stack
# create script
clients.OpenStackClients.cinder().MultipleTimes().AndReturn(
self.cinder_fc)
+ vol_name = utils.PhysName(stack_name, 'DataVolume')
self.cinder_fc.volumes.create(
size=u'1', availability_zone='nova',
- display_description='%s.DataVolume' % stack_name,
- display_name='%s.DataVolume' % stack_name).AndReturn(fv)
+ display_description=vol_name,
+ display_name=vol_name).AndReturn(fv)
# delete script
self.cinder_fc.volumes.get('vol-123').AndReturn(fv)
# create script
clients.OpenStackClients.cinder().AndReturn(self.cinder_fc)
+ vol_name = utils.PhysName(stack_name, 'DataVolume')
self.cinder_fc.volumes.create(
size=u'1', availability_zone='nova',
- display_description='%s.DataVolume' % stack_name,
- display_name='%s.DataVolume' % stack_name).AndReturn(fv)
+ display_description=vol_name,
+ display_name=vol_name).AndReturn(fv)
self.m.ReplayAll()
# volume create
clients.OpenStackClients.cinder().MultipleTimes().AndReturn(
self.cinder_fc)
+ vol_name = utils.PhysName(stack_name, 'DataVolume')
self.cinder_fc.volumes.create(
size=u'1', availability_zone='nova',
- display_description='%s.DataVolume' % stack_name,
- display_name='%s.DataVolume' % stack_name).AndReturn(fv)
+ display_description=vol_name,
+ display_name=vol_name).AndReturn(fv)
# create script
clients.OpenStackClients.nova().MultipleTimes().AndReturn(self.fc)
# volume create
clients.OpenStackClients.cinder().MultipleTimes().AndReturn(
self.cinder_fc)
+ vol_name = utils.PhysName(stack_name, 'DataVolume')
self.cinder_fc.volumes.create(
size=u'1', availability_zone='nova',
- display_description='%s.DataVolume' % stack_name,
- display_name='%s.DataVolume' % stack_name).AndReturn(fv)
+ display_description=vol_name,
+ display_name=vol_name).AndReturn(fv)
# create script
clients.OpenStackClients.nova().MultipleTimes().AndReturn(self.fc)
fv = FakeVolume('creating', 'available')
fva = FakeVolume('in-use', 'available')
stack_name = 'test_volume_detach_stack'
+ vol_name = utils.PhysName(stack_name, 'DataVolume')
# volume create
clients.OpenStackClients.cinder().MultipleTimes().AndReturn(
self.cinder_fc)
self.cinder_fc.volumes.create(
size=u'1', availability_zone='nova',
- display_description='%s.DataVolume' % stack_name,
- display_name='%s.DataVolume' % stack_name).AndReturn(fv)
+ display_description=vol_name,
+ display_name=vol_name).AndReturn(fv)
# create script
clients.OpenStackClients.nova().MultipleTimes().AndReturn(self.fc)
fv = FakeVolume('creating', 'available')
fva = FakeVolume('in-use', 'available')
stack_name = 'test_volume_detach_stack'
+ vol_name = utils.PhysName(stack_name, 'DataVolume')
# volume create
clients.OpenStackClients.cinder().MultipleTimes().AndReturn(
self.cinder_fc)
self.cinder_fc.volumes.create(
size=u'1', availability_zone='nova',
- display_description='%s.DataVolume' % stack_name,
- display_name='%s.DataVolume' % stack_name).AndReturn(fv)
+ display_description=vol_name,
+ display_name=vol_name).AndReturn(fv)
# create script
clients.OpenStackClients.nova().MultipleTimes().AndReturn(self.fc)
# create script
clients.OpenStackClients.cinder().MultipleTimes().AndReturn(
self.cinder_fc)
+ vol_name = utils.PhysName(stack_name, 'DataVolume')
self.cinder_fc.volumes.create(
size=u'1', availability_zone='nova',
- display_description='%s.DataVolume' % stack_name,
- display_name='%s.DataVolume' % stack_name).AndReturn(fv)
+ display_description=vol_name,
+ display_name=vol_name).AndReturn(fv)
# snapshot script
self.m.StubOutWithMock(self.cinder_fc.backups, 'create')
# create script
clients.OpenStackClients.cinder().MultipleTimes().AndReturn(
self.cinder_fc)
+ vol_name = utils.PhysName(stack_name, 'DataVolume')
self.cinder_fc.volumes.create(
size=u'1', availability_zone='nova',
- display_description='%s.DataVolume' % stack_name,
- display_name='%s.DataVolume' % stack_name).AndReturn(fv)
+ display_description=vol_name,
+ display_name=vol_name).AndReturn(fv)
# snapshot script
self.cinder_fc.volumes.get('vol-123').AndReturn(fv)
# create script
clients.OpenStackClients.cinder().MultipleTimes().AndReturn(
self.cinder_fc)
+ vol_name = utils.PhysName(stack_name, 'DataVolume')
self.cinder_fc.volumes.create(
size=u'1', availability_zone='nova',
- display_description='%s.DataVolume' % stack_name,
- display_name='%s.DataVolume' % stack_name).AndReturn(fv)
+ display_description=vol_name,
+ display_name=vol_name).AndReturn(fv)
self.cinder_fc.volumes.get('vol-123').AndReturn(fv)
self.cinder_fc.volumes.delete('vol-123').AndReturn(None)
{'volume_id': 'vol-123'})
self.cinder_fc.volumes.get('vol-123').AndReturn(fv)
self.m.StubOutWithMock(fv, 'update')
+ vol_name = utils.PhysName(stack_name, 'DataVolume')
fv.update(
- display_description='%s.DataVolume' % stack_name,
- display_name='%s.DataVolume' % stack_name)
+ display_description=vol_name,
+ display_name=vol_name)
self.m.ReplayAll()
clients.OpenStackClients.cinder().MultipleTimes().AndReturn(
self.cinder_fc)
+ vol_name = utils.PhysName(stack_name, 'DataVolume')
self.cinder_fc.volumes.create(
size=u'1', availability_zone='nova',
display_description=None,
- display_name='%s.DataVolume' % stack_name).AndReturn(fv)
+ display_name=vol_name).AndReturn(fv)
self.m.ReplayAll()
clients.OpenStackClients.cinder().MultipleTimes().AndReturn(
self.cinder_fc)
+ vol_name = utils.PhysName(stack_name, 'DataVolume')
self.cinder_fc.volumes.create(
size=u'1', availability_zone='nova',
display_description=None,
- display_name='%s.DataVolume' % stack_name).AndReturn(fv)
+ display_name=vol_name).AndReturn(fv)
self.cinder_fc.volumes.get('vol-123').MultipleTimes().AndReturn(fv)
# volume create
clients.OpenStackClients.cinder().MultipleTimes().AndReturn(
self.cinder_fc)
+ vol_name = utils.PhysName(stack_name, 'DataVolume')
self.cinder_fc.volumes.create(
size=u'1', availability_zone='nova',
- display_description='%s.DataVolume' % stack_name,
- display_name='%s.DataVolume' % stack_name).AndReturn(fv)
+ display_description=vol_name,
+ display_name=vol_name).AndReturn(fv)
# create script
clients.OpenStackClients.nova().MultipleTimes().AndReturn(self.fc)
from heat.engine import resource
from heat.engine import scheduler
from heat.tests.common import HeatTestCase
+from heat.tests import utils
from heat.tests.utils import setup_dummy_db
try:
return stack
def mock_create_network(self):
+ vpc_name = utils.PhysName('test_stack', 'the_vpc')
quantumclient.Client.create_network(
{
- 'network': {'name': 'test_stack.the_vpc'}
+ 'network': {'name': vpc_name}
}).AndReturn({'network': {
'status': 'ACTIVE',
'subnets': [],
- 'name': 'name',
+ 'name': vpc_name,
'admin_state_up': True,
'shared': False,
'tenant_id': 'c1210485b2424d48804aad5d39c61b8f',
'id': 'aaaa'
}})
quantumclient.Client.create_router(
- {'router': {'name': 'test_stack.the_vpc'}}).AndReturn({'router': {
+ {'router': {'name': vpc_name}}).AndReturn({'router': {
'status': 'ACTIVE',
- 'name': 'name',
+ 'name': vpc_name,
'admin_state_up': True,
'tenant_id': 'c1210485b2424d48804aad5d39c61b8f',
'id': 'rrrr'
}})
def mock_create_subnet(self):
+ subnet_name = utils.PhysName('test_stack', 'the_subnet')
quantumclient.Client.create_subnet(
{'subnet': {
'network_id': u'aaaa',
'cidr': u'10.0.0.0/24',
'ip_version': 4,
- 'name': u'test_stack.the_subnet'}}).AndReturn({
+ 'name': subnet_name}}).AndReturn({
'subnet': {
'status': 'ACTIVE',
- 'name': 'test_stack.the_subnet',
+ 'name': subnet_name,
'admin_state_up': True,
'tenant_id': 'c1210485b2424d48804aad5d39c61b8f',
'id': 'cccc'}})
{'subnet_id': 'cccc'}).AndReturn(None)
def mock_show_subnet(self):
+ subnet_name = utils.PhysName('test_stack', 'the_subnet')
quantumclient.Client.show_subnet('cccc').AndReturn({
'subnet': {
- 'name': 'test_stack.the_subnet',
+ 'name': subnet_name,
'network_id': 'aaaa',
'tenant_id': 'c1210485b2424d48804aad5d39c61b8f',
'allocation_pools': [{'start': '10.0.0.2',
}})
def mock_create_security_group(self):
+ sg_name = utils.PhysName('test_stack', 'the_sg')
quantumclient.Client.create_security_group({
'security_group': {
- 'name': 'test_stack.the_sg',
+ 'name': sg_name,
'description': 'SSH access'
}
}).AndReturn({
'security_group': {
'tenant_id': 'c1210485b2424d48804aad5d39c61b8f',
- 'name': 'test_stack.the_sg',
+ 'name': sg_name,
'description': 'SSH access',
'security_group_rules': [],
'id': 'eeee'
})
def mock_delete_security_group(self):
+ sg_name = utils.PhysName('test_stack', 'the_sg')
quantumclient.Client.show_security_group('eeee').AndReturn({
'security_group': {
'tenant_id': 'c1210485b2424d48804aad5d39c61b8f',
- 'name': 'sc1',
+ 'name': sg_name,
'description': '',
'security_group_rules': [{
'direction': 'ingress',
'''
def mock_create_network_interface(self, security_groups=['eeee']):
+ nic_name = utils.PhysName('test_stack', 'the_nic')
port = {'network_id': 'aaaa',
'fixed_ips': [{
'subnet_id': u'cccc',
'ip_address': u'10.0.0.100'
}],
- 'name': u'test_stack.the_nic',
+ 'name': nic_name,
'admin_state_up': True}
if security_groups:
port['security_groups'] = security_groups
],
'id': 'dddd',
'mac_address': 'fa:16:3e:25:32:5d',
- 'name': 'test_stack.the_nic',
+ 'name': nic_name,
'network_id': 'aaaa',
'status': 'ACTIVE',
'tenant_id': 'c1210485b2424d48804aad5d39c61b8f'
'''
def mock_create_route_table(self):
+ rt_name = utils.PhysName('test_stack', 'the_route_table')
quantumclient.Client.create_router(
- {'router': {'name': u'test_stack.the_route_table'}}).AndReturn({
+ {'router': {'name': rt_name}}).AndReturn({
'router': {
'status': 'ACTIVE',
'name': 'name',
stack = parser.Stack(ctx, stack_name, template, parameters, stack_id)
return stack
+
+
+class PhysName(object):
+ def __init__(self, stack_name, resource_name):
+ self.stack_name = stack_name
+ self.resource_name = resource_name
+
+ def __eq__(self, physical_name):
+ return physical_name == repr(self)
+
+ def __ne__(self, physical_name):
+ return not self.__eq__(physical_name)
+
+ def __repr__(self):
+ return '%s.%s' % (self.stack_name, self.resource_name)