def _test_describe_new_instance_then_its_image(self, image_project_id): os_instance_id = fakes.random_os_id() os_image_id = fakes.random_os_id() os_instance = { 'id': os_instance_id, 'flavor': {'id': 'fake'}, 'image': {'id': os_image_id}, } os_image = { 'id': os_image_id, 'owner': image_project_id, 'is_public': True, } self.nova_admin.servers.list.return_value = [ fakes.OSInstance_full(os_instance)] self.glance.images.list.return_value = [fakes.OSImage(os_image)] reservations = instance_api.describe_instances(self.context) instance = reservations['reservationSet'][0]['instancesSet'][0] image_id = instance['imageId'] image = (image_api.describe_images(self.context, image_id=[image_id]) ['imagesSet'][0]) self.assertEqual(image_id, image['imageId']) self.assertEqual(image_project_id, image['imageOwnerId']) expected_project_id = (fakes.ID_OS_PROJECT if image_project_id == fakes.ID_OS_PROJECT else None) self.assert_image_project(expected_project_id, image['imageId'])
def test_describe_new_instance_then_its_alien_image_attribute(self): os_instance_id = fakes.random_os_id() os_image_id = fakes.random_os_id() alien_project_id = fakes.random_os_id() os_instance = { 'id': os_instance_id, 'flavor': {'id': 'fake'}, 'image': {'id': os_image_id}, } os_image = { 'id': os_image_id, 'owner': alien_project_id, 'is_public': True, } self.nova_admin.servers.list.return_value = [ fakes.OSInstance_full(os_instance)] self.glance.images.get.return_value = fakes.OSImage(os_image) reservations = instance_api.describe_instances(self.context) instance = reservations['reservationSet'][0]['instancesSet'][0] image_id = instance['imageId'] # NOTE(ft): ensure that InvalidAMIID.NotFound is not raised self.assertRaises(exception.AuthFailure, image_api.describe_image_attribute, self.context, image_id, 'description')
def test_describe_new_instance_then_its_volume(self): os_instance_id = fakes.random_os_id() os_volume_id = fakes.random_os_id() os_instance = { 'id': os_instance_id, 'flavor': { 'id': 'fake' }, 'volumes_attached': [{ 'id': os_volume_id }], } os_volume = { 'id': os_volume_id, 'status': 'in-use', 'attachments': [{ 'device': '/dev/vdb', 'server_id': os_instance_id }], } self.nova_admin.servers.list.return_value = [ fakes.OSInstance_full(os_instance) ] self.cinder.volumes.list.return_value = [fakes.OSVolume(os_volume)] reservations = instance_api.describe_instances(self.context) instance = reservations['reservationSet'][0]['instancesSet'][0] volume_id = instance['blockDeviceMapping'][0]['ebs']['volumeId'] volume_api.describe_volumes(self.context, [volume_id])
def _get_ec2_instance_and_reservation(context, os_instance_id): instance_id = ec2utils.os_id_to_ec2_id(context, 'i', os_instance_id) try: ec2_reservations = instance_api.describe_instances( context, [instance_id]) except exception.InvalidInstanceIDNotFound: ec2_reservations = instance_api.describe_instances( context, filter=[{'name': 'instance-id', 'value': [instance_id]}]) if (len(ec2_reservations['reservationSet']) != 1 or len(ec2_reservations['reservationSet'][0]['instancesSet']) != 1): LOG.error(_('Failed to get metadata for instance id: %s'), os_instance_id) raise exception.EC2MetadataNotFound() ec2_reservation = ec2_reservations['reservationSet'][0] ec2_instance = ec2_reservation['instancesSet'][0] return ec2_instance, ec2_reservation
def test_describe_new_instance_then_its_volume(self): os_instance_id = fakes.random_os_id() os_volume_id = fakes.random_os_id() os_instance = { 'id': os_instance_id, 'flavor': {'id': 'fake'}, 'volumes_attached': [{'id': os_volume_id}], } os_volume = { 'id': os_volume_id, 'status': 'in-use', 'attachments': [{'device': '/dev/vdb', 'server_id': os_instance_id}], } self.nova_admin.servers.list.return_value = [ fakes.OSInstance_full(os_instance)] self.cinder.volumes.list.return_value = [ fakes.OSVolume(os_volume)] reservations = instance_api.describe_instances(self.context) instance = reservations['reservationSet'][0]['instancesSet'][0] volume_id = instance['blockDeviceMapping'][0]['ebs']['volumeId'] volume_api.describe_volumes(self.context, [volume_id])