Merge "Use default client in nova"
This commit is contained in:
commit
a41cc2f6f7
|
@ -71,6 +71,8 @@ class ElasticIp(resource.Resource):
|
|||
),
|
||||
}
|
||||
|
||||
default_client_name = 'nova'
|
||||
|
||||
def __init__(self, name, json_snippet, stack):
|
||||
super(ElasticIp, self).__init__(name, json_snippet, stack)
|
||||
self.ipaddress = None
|
||||
|
@ -86,7 +88,7 @@ class ElasticIp(resource.Resource):
|
|||
self.ipaddress = ips['floatingip']['floating_ip_address']
|
||||
else:
|
||||
try:
|
||||
ips = self.nova().floating_ips.get(self.resource_id)
|
||||
ips = self.client().floating_ips.get(self.resource_id)
|
||||
except Exception as e:
|
||||
self.client_plugin('nova').ignore_not_found(e)
|
||||
else:
|
||||
|
@ -107,7 +109,7 @@ class ElasticIp(resource.Resource):
|
|||
LOG.info(_LI('ElasticIp create %s'), str(ips))
|
||||
else:
|
||||
try:
|
||||
ips = self.nova().floating_ips.create()
|
||||
ips = self.client().floating_ips.create()
|
||||
except Exception as e:
|
||||
with excutils.save_and_reraise_exception():
|
||||
if self.client_plugin('nova').is_not_found(e):
|
||||
|
@ -122,7 +124,7 @@ class ElasticIp(resource.Resource):
|
|||
|
||||
instance_id = self.properties[self.INSTANCE_ID]
|
||||
if instance_id:
|
||||
server = self.nova().servers.get(instance_id)
|
||||
server = self.client().servers.get(instance_id)
|
||||
server.add_floating_ip(self._ipaddress())
|
||||
|
||||
def handle_delete(self):
|
||||
|
@ -135,7 +137,7 @@ class ElasticIp(resource.Resource):
|
|||
instance_id = self.properties[self.INSTANCE_ID]
|
||||
if instance_id:
|
||||
try:
|
||||
server = self.nova().servers.get(instance_id)
|
||||
server = self.client().servers.get(instance_id)
|
||||
if server:
|
||||
server.remove_floating_ip(self._ipaddress())
|
||||
except Exception as e:
|
||||
|
@ -154,7 +156,7 @@ class ElasticIp(resource.Resource):
|
|||
self.client_plugin('neutron').ignore_not_found(ex)
|
||||
else:
|
||||
try:
|
||||
self.nova().floating_ips.delete(self.resource_id)
|
||||
self.client().floating_ips.delete(self.resource_id)
|
||||
except Exception as e:
|
||||
self.client_plugin('nova').ignore_not_found(e)
|
||||
|
||||
|
@ -166,13 +168,13 @@ class ElasticIp(resource.Resource):
|
|||
# no need to remove the floating ip from the old instance,
|
||||
# nova does this automatically when calling
|
||||
# add_floating_ip().
|
||||
server = self.nova().servers.get(instance_id)
|
||||
server = self.client().servers.get(instance_id)
|
||||
server.add_floating_ip(self._ipaddress())
|
||||
else:
|
||||
# to remove the floating_ip from the old instance
|
||||
instance_id_old = self.properties[self.INSTANCE_ID]
|
||||
if instance_id_old:
|
||||
server = self.nova().servers.get(instance_id_old)
|
||||
server = self.client().servers.get(instance_id_old)
|
||||
server.remove_floating_ip(self._ipaddress())
|
||||
|
||||
def FnGetRefId(self):
|
||||
|
@ -223,6 +225,8 @@ class ElasticIpAssociation(resource.Resource):
|
|||
),
|
||||
}
|
||||
|
||||
default_client_name = 'nova'
|
||||
|
||||
def FnGetRefId(self):
|
||||
return self.physical_resource_name_or_FnGetRefId()
|
||||
|
||||
|
@ -286,7 +290,7 @@ class ElasticIpAssociation(resource.Resource):
|
|||
ignore_not_found=False):
|
||||
server = None
|
||||
try:
|
||||
server = self.nova().servers.get(instance_id)
|
||||
server = self.client().servers.get(instance_id)
|
||||
server.remove_floating_ip(eip)
|
||||
except Exception as e:
|
||||
is_not_found = self.client_plugin('nova').is_not_found(e)
|
||||
|
@ -349,7 +353,7 @@ class ElasticIpAssociation(resource.Resource):
|
|||
# if update portInfo, no need to detach the port from
|
||||
# old instance/floatingip.
|
||||
if eip:
|
||||
server = self.nova().servers.get(instance_id_update)
|
||||
server = self.client().servers.get(instance_id_update)
|
||||
server.add_floating_ip(eip)
|
||||
else:
|
||||
port_id, port_rsrc = self._get_port_info(ni_id_update,
|
||||
|
@ -387,7 +391,8 @@ class ElasticIpAssociation(resource.Resource):
|
|||
def handle_create(self):
|
||||
"""Add a floating IP address to a server."""
|
||||
if self.properties[self.EIP]:
|
||||
server = self.nova().servers.get(self.properties[self.INSTANCE_ID])
|
||||
server = self.client().servers.get(
|
||||
self.properties[self.INSTANCE_ID])
|
||||
server.add_floating_ip(self.properties[self.EIP])
|
||||
self.resource_id_set(self.properties[self.EIP])
|
||||
LOG.debug('ElasticIpAssociation '
|
||||
|
|
|
@ -381,7 +381,7 @@ class Instance(resource.Resource):
|
|||
availability_zone = self.properties[self.AVAILABILITY_ZONE]
|
||||
if availability_zone is None:
|
||||
try:
|
||||
server = self.nova().servers.get(self.resource_id)
|
||||
server = self.client().servers.get(self.resource_id)
|
||||
availability_zone = getattr(server,
|
||||
'OS-EXT-AZ:availability_zone')
|
||||
except Exception as e:
|
||||
|
@ -558,7 +558,7 @@ class Instance(resource.Resource):
|
|||
instance_user = 'ec2-user'
|
||||
|
||||
try:
|
||||
server = self.nova().servers.create(
|
||||
server = self.client().servers.create(
|
||||
name=self.physical_resource_name(),
|
||||
image=image_id,
|
||||
flavor=flavor_id,
|
||||
|
@ -637,7 +637,7 @@ class Instance(resource.Resource):
|
|||
old_network_ifaces.remove(iface)
|
||||
|
||||
def handle_check(self):
|
||||
server = self.nova().servers.get(self.resource_id)
|
||||
server = self.client().servers.get(self.resource_id)
|
||||
if not self.client_plugin()._check_active(server, 'Instance'):
|
||||
raise exception.Error(_("Instance is not ACTIVE (was: %s)") %
|
||||
server.status.strip())
|
||||
|
@ -648,7 +648,7 @@ class Instance(resource.Resource):
|
|||
checkers = []
|
||||
server = None
|
||||
if self.TAGS in prop_diff:
|
||||
server = self.nova().servers.get(self.resource_id)
|
||||
server = self.client().servers.get(self.resource_id)
|
||||
self.client_plugin().meta_update(
|
||||
server, self._get_nova_metadata(prop_diff))
|
||||
|
||||
|
@ -656,7 +656,7 @@ class Instance(resource.Resource):
|
|||
flavor = prop_diff[self.INSTANCE_TYPE]
|
||||
flavor_id = self.client_plugin().get_flavor_id(flavor)
|
||||
if not server:
|
||||
server = self.nova().servers.get(self.resource_id)
|
||||
server = self.client().servers.get(self.resource_id)
|
||||
checker = scheduler.TaskRunner(self.client_plugin().resize,
|
||||
server, flavor, flavor_id)
|
||||
checkers.append(checker)
|
||||
|
@ -668,7 +668,7 @@ class Instance(resource.Resource):
|
|||
self.properties.get(self.SUBNET_ID))
|
||||
security_groups = self._get_security_groups()
|
||||
if not server:
|
||||
server = self.nova().servers.get(self.resource_id)
|
||||
server = self.client().servers.get(self.resource_id)
|
||||
# if there is entrys in old_network_ifaces and new_network_ifaces,
|
||||
# remove the same entrys from old and new ifaces
|
||||
if old_network_ifaces and new_network_ifaces:
|
||||
|
@ -806,7 +806,7 @@ class Instance(resource.Resource):
|
|||
self.name)
|
||||
|
||||
try:
|
||||
server = self.nova().servers.get(self.resource_id)
|
||||
server = self.client().servers.get(self.resource_id)
|
||||
except Exception as e:
|
||||
if self.client_plugin().is_not_found(e):
|
||||
raise exception.NotFound(_('Failed to find instance %s') %
|
||||
|
@ -848,7 +848,7 @@ class Instance(resource.Resource):
|
|||
self.name)
|
||||
|
||||
try:
|
||||
server = self.nova().servers.get(self.resource_id)
|
||||
server = self.client().servers.get(self.resource_id)
|
||||
except Exception as e:
|
||||
if self.client_plugin().is_not_found(e):
|
||||
raise exception.NotFound(_('Failed to find instance %s') %
|
||||
|
|
|
@ -108,20 +108,20 @@ class NovaFlavor(resource.Resource):
|
|||
args['is_public'] = False
|
||||
flavor_keys = args.pop(self.EXTRA_SPECS)
|
||||
|
||||
flavor = self.nova().flavors.create(**args)
|
||||
flavor = self.client().flavors.create(**args)
|
||||
self.resource_id_set(flavor.id)
|
||||
if flavor_keys:
|
||||
flavor.set_keys(flavor_keys)
|
||||
|
||||
tenant = self.stack.context.tenant_id
|
||||
# grant access to the active project and the admin project
|
||||
self.nova().flavor_access.add_tenant_access(flavor, tenant)
|
||||
self.nova().flavor_access.add_tenant_access(flavor, 'admin')
|
||||
self.client().flavor_access.add_tenant_access(flavor, tenant)
|
||||
self.client().flavor_access.add_tenant_access(flavor, 'admin')
|
||||
|
||||
def handle_update(self, json_snippet, tmpl_diff, prop_diff):
|
||||
"""Update nova flavor."""
|
||||
if self.EXTRA_SPECS in prop_diff:
|
||||
flavor = self.nova().flavors.get(self.resource_id)
|
||||
flavor = self.client().flavors.get(self.resource_id)
|
||||
old_keys = flavor.get_keys()
|
||||
flavor.unset_keys(old_keys)
|
||||
new_keys = prop_diff.get(self.EXTRA_SPECS)
|
||||
|
@ -133,7 +133,7 @@ class NovaFlavor(resource.Resource):
|
|||
return
|
||||
|
||||
try:
|
||||
self.nova().flavors.delete(self.resource_id)
|
||||
self.client().flavors.delete(self.resource_id)
|
||||
except Exception as e:
|
||||
self.client_plugin().ignore_not_found(e)
|
||||
|
||||
|
|
|
@ -64,14 +64,15 @@ class NovaFloatingIp(resource.Resource):
|
|||
|
||||
def _get_resource(self):
|
||||
if self._floating_ip is None and self.resource_id is not None:
|
||||
self._floating_ip = self.nova().floating_ips.get(self.resource_id)
|
||||
self._floating_ip = self.client().floating_ips.get(
|
||||
self.resource_id)
|
||||
|
||||
return self._floating_ip
|
||||
|
||||
def handle_create(self):
|
||||
try:
|
||||
pool = self.properties[self.POOL]
|
||||
floating_ip = self.nova().floating_ips.create(pool=pool)
|
||||
floating_ip = self.client().floating_ips.create(pool=pool)
|
||||
except Exception as e:
|
||||
with excutils.save_and_reraise_exception():
|
||||
if self.client_plugin().is_not_found(e):
|
||||
|
@ -86,7 +87,7 @@ class NovaFloatingIp(resource.Resource):
|
|||
def handle_delete(self):
|
||||
if self.resource_id is not None:
|
||||
try:
|
||||
self.nova().floating_ips.delete(self.resource_id)
|
||||
self.client().floating_ips.delete(self.resource_id)
|
||||
except Exception as e:
|
||||
self.client_plugin().ignore_not_found(e)
|
||||
|
||||
|
@ -132,10 +133,11 @@ class NovaFloatingIpAssociation(resource.Resource):
|
|||
return self.physical_resource_name_or_FnGetRefId()
|
||||
|
||||
def handle_create(self):
|
||||
server = self.nova().servers.get(self.properties[self.SERVER])
|
||||
fl_ip = self.nova().floating_ips.get(self.properties[self.FLOATING_IP])
|
||||
server = self.client().servers.get(self.properties[self.SERVER])
|
||||
fl_ip = self.client().floating_ips.get(
|
||||
self.properties[self.FLOATING_IP])
|
||||
|
||||
self.nova().servers.add_floating_ip(server, fl_ip.ip)
|
||||
self.client().servers.add_floating_ip(server, fl_ip.ip)
|
||||
self.resource_id_set(self.id)
|
||||
|
||||
def handle_delete(self):
|
||||
|
@ -143,11 +145,11 @@ class NovaFloatingIpAssociation(resource.Resource):
|
|||
return
|
||||
|
||||
try:
|
||||
server = self.nova().servers.get(self.properties[self.SERVER])
|
||||
server = self.client().servers.get(self.properties[self.SERVER])
|
||||
if server:
|
||||
fl_ip = self.nova().floating_ips.get(
|
||||
fl_ip = self.client().floating_ips.get(
|
||||
self.properties[self.FLOATING_IP])
|
||||
self.nova().servers.remove_floating_ip(server, fl_ip.ip)
|
||||
self.client().servers.remove_floating_ip(server, fl_ip.ip)
|
||||
except Exception as e:
|
||||
self.client_plugin().ignore_conflict_and_not_found(e)
|
||||
|
||||
|
@ -165,10 +167,10 @@ class NovaFloatingIpAssociation(resource.Resource):
|
|||
self.properties[self.SERVER])
|
||||
fl_ip_id = (prop_diff.get(self.FLOATING_IP) or
|
||||
self.properties[self.FLOATING_IP])
|
||||
server = self.nova().servers.get(server_id)
|
||||
fl_ip = self.nova().floating_ips.get(fl_ip_id)
|
||||
server = self.client().servers.get(server_id)
|
||||
fl_ip = self.client().floating_ips.get(fl_ip_id)
|
||||
|
||||
self.nova().servers.add_floating_ip(server, fl_ip.ip)
|
||||
self.client().servers.add_floating_ip(server, fl_ip.ip)
|
||||
self.resource_id_set(self.id)
|
||||
|
||||
|
||||
|
|
|
@ -110,8 +110,8 @@ class KeyPair(resource.Resource):
|
|||
|
||||
def handle_create(self):
|
||||
pub_key = self.properties[self.PUBLIC_KEY] or None
|
||||
new_keypair = self.nova().keypairs.create(self.properties[self.NAME],
|
||||
public_key=pub_key)
|
||||
new_keypair = self.client().keypairs.create(self.properties[self.NAME],
|
||||
public_key=pub_key)
|
||||
if (self.properties[self.SAVE_PRIVATE_KEY] and
|
||||
hasattr(new_keypair, 'private_key')):
|
||||
self.data_set('private_key',
|
||||
|
@ -122,12 +122,12 @@ class KeyPair(resource.Resource):
|
|||
def handle_delete(self):
|
||||
if self.resource_id:
|
||||
try:
|
||||
self.nova().keypairs.delete(self.resource_id)
|
||||
self.client().keypairs.delete(self.resource_id)
|
||||
except Exception as e:
|
||||
self.client_plugin().ignore_not_found(e)
|
||||
|
||||
def handle_check(self):
|
||||
self.nova().keypairs.get(self.resource_id)
|
||||
self.client().keypairs.get(self.resource_id)
|
||||
|
||||
def _resolve_attribute(self, key):
|
||||
attr_fn = {self.PRIVATE_KEY_ATTR: self.private_key,
|
||||
|
|
|
@ -54,14 +54,14 @@ class ServerGroup(resource.Resource):
|
|||
def handle_create(self):
|
||||
name = self.physical_resource_name()
|
||||
policies = self.properties[self.POLICIES]
|
||||
server_group = self.nova().server_groups.create(name=name,
|
||||
policies=policies)
|
||||
server_group = self.client().server_groups.create(name=name,
|
||||
policies=policies)
|
||||
self.resource_id_set(server_group.id)
|
||||
|
||||
def handle_delete(self):
|
||||
if self.resource_id:
|
||||
try:
|
||||
self.nova().server_groups.delete(self.resource_id)
|
||||
self.client().server_groups.delete(self.resource_id)
|
||||
except Exception as e:
|
||||
self.client_plugin().ignore_not_found(e)
|
||||
|
||||
|
|
|
@ -735,7 +735,7 @@ class Server(stack_user.StackUser):
|
|||
|
||||
server = None
|
||||
try:
|
||||
server = self.nova().servers.create(
|
||||
server = self.client().servers.create(
|
||||
name=self._server_name(),
|
||||
image=image,
|
||||
flavor=flavor_id,
|
||||
|
@ -920,7 +920,7 @@ class Server(stack_user.StackUser):
|
|||
if name == self.NAME_ATTR:
|
||||
return self._server_name()
|
||||
try:
|
||||
server = self.nova().servers.get(self.resource_id)
|
||||
server = self.client().servers.get(self.resource_id)
|
||||
except Exception as e:
|
||||
self.client_plugin().ignore_not_found(e)
|
||||
return ''
|
||||
|
@ -1044,7 +1044,7 @@ class Server(stack_user.StackUser):
|
|||
|
||||
flavor_id = self.client_plugin().get_flavor_id(flavor)
|
||||
if not server:
|
||||
server = self.nova().servers.get(self.resource_id)
|
||||
server = self.client().servers.get(self.resource_id)
|
||||
return scheduler.TaskRunner(self.client_plugin().resize,
|
||||
server, flavor, flavor_id)
|
||||
|
||||
|
@ -1057,7 +1057,7 @@ class Server(stack_user.StackUser):
|
|||
image = prop_diff[self.IMAGE]
|
||||
image_id = self.client_plugin('glance').get_image_id(image)
|
||||
if not server:
|
||||
server = self.nova().servers.get(self.resource_id)
|
||||
server = self.client().servers.get(self.resource_id)
|
||||
preserve_ephemeral = (
|
||||
image_update_policy == 'REBUILD_PRESERVE_EPHEMERAL')
|
||||
password = (prop_diff.get(self.ADMIN_PASS) or
|
||||
|
@ -1077,7 +1077,7 @@ class Server(stack_user.StackUser):
|
|||
old_networks = self.properties[self.NETWORKS]
|
||||
|
||||
if not server:
|
||||
server = self.nova().servers.get(self.resource_id)
|
||||
server = self.client().servers.get(self.resource_id)
|
||||
interfaces = server.interface_list()
|
||||
|
||||
# if old networks is None, it means that the server got first
|
||||
|
@ -1148,7 +1148,7 @@ class Server(stack_user.StackUser):
|
|||
server = None
|
||||
|
||||
if self.METADATA in prop_diff:
|
||||
server = self.nova().servers.get(self.resource_id)
|
||||
server = self.client().servers.get(self.resource_id)
|
||||
self.client_plugin().meta_update(server,
|
||||
prop_diff[self.METADATA])
|
||||
|
||||
|
@ -1159,12 +1159,12 @@ class Server(stack_user.StackUser):
|
|||
checkers.append(self._update_image(server, prop_diff))
|
||||
elif self.ADMIN_PASS in prop_diff:
|
||||
if not server:
|
||||
server = self.nova().servers.get(self.resource_id)
|
||||
server = self.client().servers.get(self.resource_id)
|
||||
server.change_password(prop_diff[self.ADMIN_PASS])
|
||||
|
||||
if self.NAME in prop_diff:
|
||||
if not server:
|
||||
server = self.nova().servers.get(self.resource_id)
|
||||
server = self.client().servers.get(self.resource_id)
|
||||
self.client_plugin().rename(server, prop_diff[self.NAME])
|
||||
|
||||
if self.NETWORKS in prop_diff:
|
||||
|
@ -1438,7 +1438,7 @@ class Server(stack_user.StackUser):
|
|||
self.name)
|
||||
|
||||
try:
|
||||
server = self.nova().servers.get(self.resource_id)
|
||||
server = self.client().servers.get(self.resource_id)
|
||||
except Exception as e:
|
||||
if self.client_plugin().is_not_found(e):
|
||||
raise exception.NotFound(_('Failed to find server %s') %
|
||||
|
@ -1480,7 +1480,7 @@ class Server(stack_user.StackUser):
|
|||
self.name)
|
||||
|
||||
try:
|
||||
server = self.nova().servers.get(self.resource_id)
|
||||
server = self.client().servers.get(self.resource_id)
|
||||
except Exception as e:
|
||||
if self.client_plugin().is_not_found(e):
|
||||
raise exception.NotFound(_('Failed to find server %s') %
|
||||
|
@ -1499,13 +1499,13 @@ class Server(stack_user.StackUser):
|
|||
return self.client_plugin()._check_active(server_id)
|
||||
|
||||
def handle_snapshot(self):
|
||||
image_id = self.nova().servers.create_image(
|
||||
image_id = self.client().servers.create_image(
|
||||
self.resource_id, self.physical_resource_name())
|
||||
self.data_set('snapshot_image_id', image_id)
|
||||
return image_id
|
||||
|
||||
def check_snapshot_complete(self, image_id):
|
||||
image = self.nova().images.get(image_id)
|
||||
image = self.client().images.get(image_id)
|
||||
if image.status == 'ACTIVE':
|
||||
return True
|
||||
elif image.status == 'ERROR' or image.status == 'DELETED':
|
||||
|
@ -1516,7 +1516,7 @@ class Server(stack_user.StackUser):
|
|||
def handle_delete_snapshot(self, snapshot):
|
||||
image_id = snapshot['resource_data'].get('snapshot_image_id')
|
||||
try:
|
||||
self.nova().images.delete(image_id)
|
||||
self.client().images.delete(image_id)
|
||||
except Exception as e:
|
||||
self.client_plugin().ignore_not_found(e)
|
||||
|
||||
|
|
|
@ -479,7 +479,7 @@ class InstancesTest(common.HeatTestCase):
|
|||
|
||||
instance = instances.Instance('instance_create_image',
|
||||
res_definitions['WebServer'], stack)
|
||||
instance.nova = mock.Mock()
|
||||
instance.client = mock.Mock()
|
||||
self.patchobject(nova.NovaClientPlugin, '_check_active',
|
||||
return_value=True)
|
||||
|
||||
|
@ -491,8 +491,8 @@ class InstancesTest(common.HeatTestCase):
|
|||
|
||||
instance = instances.Instance('instance_create_image',
|
||||
res_definitions['WebServer'], stack)
|
||||
instance.nova = mock.Mock()
|
||||
instance.nova.return_value.servers.get.return_value.status = 'foo'
|
||||
instance.client = mock.Mock()
|
||||
instance.client.return_value.servers.get.return_value.status = 'foo'
|
||||
self.patchobject(nova.NovaClientPlugin, '_check_active',
|
||||
return_value=False)
|
||||
|
||||
|
|
|
@ -115,8 +115,8 @@ class SqlAlchemyTest(common.HeatTestCase):
|
|||
|
||||
def _mock_create(self, mocks):
|
||||
fc = fakes_nova.FakeClient()
|
||||
mocks.StubOutWithMock(instances.Instance, 'nova')
|
||||
instances.Instance.nova().MultipleTimes().AndReturn(fc)
|
||||
mocks.StubOutWithMock(instances.Instance, 'client')
|
||||
instances.Instance.client().MultipleTimes().AndReturn(fc)
|
||||
self.m.StubOutWithMock(nova.NovaClientPlugin, '_create')
|
||||
nova.NovaClientPlugin._create().AndReturn(self.fc)
|
||||
self._mock_get_image_id_success('F17-x86_64-gold', 744)
|
||||
|
|
|
@ -118,8 +118,8 @@ def setup_mock_for_image_constraint(mocks, imageId_input,
|
|||
def setup_mocks(mocks, stack, mock_image_constraint=True,
|
||||
mock_keystone=True):
|
||||
fc = fakes_nova.FakeClient()
|
||||
mocks.StubOutWithMock(instances.Instance, 'nova')
|
||||
instances.Instance.nova().MultipleTimes().AndReturn(fc)
|
||||
mocks.StubOutWithMock(instances.Instance, 'client')
|
||||
instances.Instance.client().MultipleTimes().AndReturn(fc)
|
||||
mocks.StubOutWithMock(nova.NovaClientPlugin, '_create')
|
||||
nova.NovaClientPlugin._create().AndReturn(fc)
|
||||
instance = stack['WebServer']
|
||||
|
|
|
@ -53,7 +53,7 @@ class NovaFlavorTest(common.HeatTestCase):
|
|||
self.my_flavor = self.stack['my_flavor']
|
||||
nova = mock.MagicMock()
|
||||
self.novaclient = mock.MagicMock()
|
||||
self.my_flavor.nova = nova
|
||||
self.my_flavor.client = nova
|
||||
nova.return_value = self.novaclient
|
||||
self.flavors = self.novaclient.flavors
|
||||
|
||||
|
|
|
@ -139,14 +139,14 @@ class NovaKeyPairTest(common.HeatTestCase):
|
|||
|
||||
def test_check_key(self):
|
||||
res = self._get_test_resource(self.kp_template)
|
||||
res.nova = mock.Mock()
|
||||
res.client = mock.Mock()
|
||||
scheduler.TaskRunner(res.check)()
|
||||
self.assertEqual((res.CHECK, res.COMPLETE), res.state)
|
||||
|
||||
def test_check_key_fail(self):
|
||||
res = self._get_test_resource(self.kp_template)
|
||||
res.nova = mock.Mock()
|
||||
res.nova().keypairs.get.side_effect = Exception("boom")
|
||||
res.client = mock.Mock()
|
||||
res.client().keypairs.get.side_effect = Exception("boom")
|
||||
exc = self.assertRaises(exception.ResourceFailure,
|
||||
scheduler.TaskRunner(res.check))
|
||||
self.assertIn("boom", six.text_type(exc))
|
||||
|
|
|
@ -51,7 +51,7 @@ class NovaServerGroupTest(common.HeatTestCase):
|
|||
self.sg = self.stack['ServerGroup']
|
||||
# create mock clients and objects
|
||||
nova = mock.MagicMock()
|
||||
self.sg.nova = mock.MagicMock(return_value=nova)
|
||||
self.sg.client = mock.MagicMock(return_value=nova)
|
||||
self.sg_mgr = nova.server_groups
|
||||
|
||||
def _create_sg(self, name):
|
||||
|
|
Loading…
Reference in New Issue