コード例 #1
0
    def test_get_metadata_integral(self, keystone, network_interface_api, security_group_api):
        service_catalog = mock.MagicMock()
        service_catalog.get_data.return_value = []
        keystone.return_value = mock.Mock(
            auth_user_id="fake_user_id",
            auth_tenant_id=fakes.ID_OS_PROJECT,
            auth_token="fake_token",
            service_catalog=service_catalog,
        )
        fake_context = context.get_os_admin_context()

        self.set_mock_db_items(
            fakes.DB_INSTANCE_1,
            fakes.DB_INSTANCE_2,
            fakes.DB_NETWORK_INTERFACE_1,
            fakes.DB_NETWORK_INTERFACE_2,
            fakes.DB_IMAGE_1,
            fakes.DB_IMAGE_2,
            fakes.DB_IMAGE_ARI_1,
            fakes.DB_IMAGE_AKI_1,
            fakes.DB_VOLUME_1,
            fakes.DB_VOLUME_2,
            fakes.DB_VOLUME_3,
        )
        self.nova_admin.servers.list.return_value = [
            fakes.OSInstance_full(fakes.OS_INSTANCE_1),
            fakes.OSInstance_full(fakes.OS_INSTANCE_2),
        ]
        self.nova_admin.servers.get.side_effect = tools.get_by_1st_arg_getter(
            {
                fakes.ID_OS_INSTANCE_1: fakes.OSInstance_full(fakes.OS_INSTANCE_1),
                fakes.ID_OS_INSTANCE_2: fakes.OSInstance_full(fakes.OS_INSTANCE_2),
            }
        )
        keypair = mock.Mock(public_key=fakes.PUBLIC_KEY_KEY_PAIR)
        keypair.configure_mock(name=fakes.NAME_KEY_PAIR)
        self.nova.keypairs.get.return_value = keypair
        self.cinder.volumes.list.return_value = [
            fakes.OSVolume(fakes.OS_VOLUME_1),
            fakes.OSVolume(fakes.OS_VOLUME_2),
            fakes.OSVolume(fakes.OS_VOLUME_3),
        ]
        network_interface_api.describe_network_interfaces.side_effect = lambda *args, **kwargs: copy.deepcopy(
            {"networkInterfaceSet": [fakes.EC2_NETWORK_INTERFACE_1, fakes.EC2_NETWORK_INTERFACE_2]}
        )
        security_group_api.describe_security_groups.return_value = {
            "securityGroupInfo": [fakes.EC2_SECURITY_GROUP_1, fakes.EC2_SECURITY_GROUP_3]
        }

        retval = api.get_metadata_item(
            fake_context, ["latest", "meta-data", "instance-id"], fakes.ID_OS_INSTANCE_1, fakes.IP_NETWORK_INTERFACE_2
        )
        self.assertEqual(fakes.ID_EC2_INSTANCE_1, retval)

        retval = api.get_metadata_item(
            fake_context, ["latest", "meta-data", "instance-id"], fakes.ID_OS_INSTANCE_2, "10.200.1.15"
        )
        self.assertEqual(fakes.ID_EC2_INSTANCE_2, retval)
コード例 #2
0
    def test_get_metadata_integral(self, keystone, network_interface_api,
                                   security_group_api):
        service_catalog = mock.MagicMock()
        service_catalog.get_data.return_value = []
        keystone.return_value = mock.Mock(auth_user_id='fake_user_id',
                                          auth_tenant_id=fakes.ID_OS_PROJECT,
                                          auth_token='fake_token',
                                          service_catalog=service_catalog)
        fake_context = context.get_os_admin_context()

        self.set_mock_db_items(fakes.DB_INSTANCE_1, fakes.DB_INSTANCE_2,
                               fakes.DB_NETWORK_INTERFACE_1,
                               fakes.DB_NETWORK_INTERFACE_2, fakes.DB_IMAGE_1,
                               fakes.DB_IMAGE_2, fakes.DB_IMAGE_ARI_1,
                               fakes.DB_IMAGE_AKI_1, fakes.DB_VOLUME_1,
                               fakes.DB_VOLUME_2, fakes.DB_VOLUME_3)
        self.nova_admin.servers.list.return_value = [
            fakes.OSInstance_full(fakes.OS_INSTANCE_1),
            fakes.OSInstance_full(fakes.OS_INSTANCE_2)
        ]
        self.nova_admin.servers.get.side_effect = tools.get_by_1st_arg_getter({
            fakes.ID_OS_INSTANCE_1:
            fakes.OSInstance_full(fakes.OS_INSTANCE_1),
            fakes.ID_OS_INSTANCE_2:
            fakes.OSInstance_full(fakes.OS_INSTANCE_2)
        })
        keypair = mock.Mock(public_key=fakes.PUBLIC_KEY_KEY_PAIR)
        keypair.configure_mock(name=fakes.NAME_KEY_PAIR)
        self.nova.keypairs.get.return_value = keypair
        self.cinder.volumes.list.return_value = [
            fakes.OSVolume(fakes.OS_VOLUME_1),
            fakes.OSVolume(fakes.OS_VOLUME_2),
            fakes.OSVolume(fakes.OS_VOLUME_3)
        ]
        network_interface_api.describe_network_interfaces.side_effect = (
            lambda *args, **kwargs: copy.deepcopy({
                'networkInterfaceSet':
                [fakes.EC2_NETWORK_INTERFACE_1, fakes.EC2_NETWORK_INTERFACE_2]
            }))
        security_group_api.describe_security_groups.return_value = {
            'securityGroupInfo':
            [fakes.EC2_SECURITY_GROUP_1, fakes.EC2_SECURITY_GROUP_3]
        }

        retval = api.get_metadata_item(fake_context,
                                       ['latest', 'meta-data', 'instance-id'],
                                       fakes.ID_OS_INSTANCE_1,
                                       fakes.IP_NETWORK_INTERFACE_2)
        self.assertEqual(fakes.ID_EC2_INSTANCE_1, retval)

        retval = api.get_metadata_item(fake_context,
                                       ['latest', 'meta-data', 'instance-id'],
                                       fakes.ID_OS_INSTANCE_2, '10.200.1.15')
        self.assertEqual(fakes.ID_EC2_INSTANCE_2, retval)
コード例 #3
0
    def test_get_metadata_integral(self, network_interface_api,
                                   security_group_api, create_region):
        fake_context = base.create_context(is_os_admin=True)

        self.set_mock_db_items(fakes.DB_INSTANCE_1, fakes.DB_INSTANCE_2,
                               fakes.DB_NETWORK_INTERFACE_1,
                               fakes.DB_NETWORK_INTERFACE_2, fakes.DB_IMAGE_1,
                               fakes.DB_IMAGE_2, fakes.DB_IMAGE_ARI_1,
                               fakes.DB_IMAGE_AKI_1, fakes.DB_VOLUME_1,
                               fakes.DB_VOLUME_2, fakes.DB_VOLUME_3)
        self.nova_admin.servers.list.return_value = [
            fakes.OSInstance_full(fakes.OS_INSTANCE_1),
            fakes.OSInstance_full(fakes.OS_INSTANCE_2)
        ]
        self.nova_admin.servers.get.side_effect = tools.get_by_1st_arg_getter({
            fakes.ID_OS_INSTANCE_1:
            fakes.OSInstance_full(fakes.OS_INSTANCE_1),
            fakes.ID_OS_INSTANCE_2:
            fakes.OSInstance_full(fakes.OS_INSTANCE_2)
        })
        self.nova_admin.keypairs._get.return_value = (fakes.NovaKeyPair(
            fakes.OS_KEY_PAIR))
        self.cinder.volumes.list.return_value = [
            fakes.OSVolume(fakes.OS_VOLUME_1),
            fakes.OSVolume(fakes.OS_VOLUME_2),
            fakes.OSVolume(fakes.OS_VOLUME_3)
        ]
        network_interface_api.describe_network_interfaces.side_effect = (
            lambda *args, **kwargs: copy.deepcopy({
                'networkInterfaceSet':
                [fakes.EC2_NETWORK_INTERFACE_1, fakes.EC2_NETWORK_INTERFACE_2]
            }))
        security_group_api.describe_security_groups.return_value = {
            'securityGroupInfo':
            [fakes.EC2_SECURITY_GROUP_1, fakes.EC2_SECURITY_GROUP_3]
        }
        create_region.get.return_value = cache_core.NO_VALUE

        retval = api.get_metadata_item(fake_context,
                                       ['latest', 'meta-data', 'instance-id'],
                                       fakes.ID_OS_INSTANCE_1,
                                       fakes.IP_NETWORK_INTERFACE_2,
                                       create_region)
        self.assertEqual(fakes.ID_EC2_INSTANCE_1, retval)

        retval = api.get_metadata_item(fake_context,
                                       ['latest', 'meta-data', 'instance-id'],
                                       fakes.ID_OS_INSTANCE_2, '10.200.1.15',
                                       create_region)
        self.assertEqual(fakes.ID_EC2_INSTANCE_2, retval)
コード例 #4
0
 def test_local_hostname(self):
     retval = api.get_metadata_item(
            self.fake_context,
            ['2009-04-04', 'meta-data', 'local-hostname'],
            fakes.ID_OS_INSTANCE_1, fakes.IP_NETWORK_INTERFACE_2,
            self.cache_region)
     self.assertEqual(fakes.EC2_INSTANCE_1['privateDnsName'], retval)
コード例 #5
0
 def test_pubkey_name(self):
     retval = api.get_metadata_item(
            self.fake_context,
            ['2009-04-04', 'meta-data', 'public-keys'],
            fakes.ID_OS_INSTANCE_1, fakes.IP_NETWORK_INTERFACE_2,
            self.cache_region)
     self.assertEqual('0=%s' % fakes.NAME_KEY_PAIR, retval)
コード例 #6
0
 def test_user_data(self):
     retval = api.get_metadata_item(self.fake_context,
                                    ['2009-04-04', 'user-data'],
                                    fakes.ID_OS_INSTANCE_1,
                                    fakes.IP_NETWORK_INTERFACE_2,
                                    self.cache_region)
     self.assertEqual(FAKE_USER_DATA, retval)
コード例 #7
0
    def test_pubkey(self):
        self.nova.servers.get.return_value = (
               fakes.OSInstance(fakes.OS_INSTANCE_1))
        self.nova.keypairs.keypair_prefix = 'os_keypairs'
        self.nova.keypairs._get.return_value = (
               fakes.NovaKeyPair(fakes.OS_KEY_PAIR))
        retval = api.get_metadata_item(
               self.fake_context,
               ['2009-04-04', 'meta-data', 'public-keys', '0', 'openssh-key'],
               fakes.ID_OS_INSTANCE_1, fakes.IP_NETWORK_INTERFACE_2,
               self.cache_region)
        self.assertEqual(fakes.PUBLIC_KEY_KEY_PAIR, retval)
        self.nova.servers.get.assert_called_once_with(fakes.ID_OS_INSTANCE_1)
        self.nova.keypairs._get.assert_called_once_with(
               '/os_keypairs/%s?user_id=%s' % (fakes.NAME_KEY_PAIR,
                                               fakes.ID_OS_USER),
               'keypair')

        self.nova.keypairs._get.side_effect = nova_exception.NotFound(404)
        self.assertRaises(
                exception.EC2MetadataNotFound,
                api.get_metadata_item,
                self.fake_context,
                ['2009-04-04', 'meta-data', 'public-keys', '0', 'openssh-key'],
                fakes.ID_OS_INSTANCE_1, fakes.IP_NETWORK_INTERFACE_2,
                self.cache_region)
コード例 #8
0
 def test_local_ipv4(self):
     retval = api.get_metadata_item(
            self.fake_context,
            ['2009-04-04', 'meta-data', 'local-ipv4'],
            fakes.ID_OS_INSTANCE_1, fakes.IP_NETWORK_INTERFACE_2,
            self.cache_region)
     self.assertEqual(fakes.IP_NETWORK_INTERFACE_2, retval)
コード例 #9
0
 def test_image_type_kernel(self):
     retval = api.get_metadata_item(
            self.fake_context,
            ['2009-04-04', 'meta-data', 'kernel-id'],
            fakes.ID_OS_INSTANCE_1, fakes.IP_NETWORK_INTERFACE_2,
            self.cache_region)
     self.assertEqual(fakes.ID_EC2_IMAGE_AKI_1, retval)
コード例 #10
0
 def test_local_ipv4_from_address(self):
     self.instance_api.describe_instances.return_value = {
            'reservationSet': [fakes.EC2_RESERVATION_2]}
     retval = api.get_metadata_item(
            self.fake_context,
            ['2009-04-04', 'meta-data', 'local-ipv4'],
            fakes.ID_OS_INSTANCE_2, fakes.IP_NETWORK_INTERFACE_1)
     self.assertEqual(fakes.IP_NETWORK_INTERFACE_1, retval)
コード例 #11
0
 def test_pubkey_name(self):
     retval = api.get_metadata_item(
         self.fake_context,
         ["2009-04-04", "meta-data", "public-keys"],
         fakes.ID_OS_INSTANCE_1,
         fakes.IP_NETWORK_INTERFACE_2,
     )
     self.assertEqual("0=%s" % fakes.NAME_KEY_PAIR, retval)
コード例 #12
0
 def test_image_type_kernel(self):
     retval = api.get_metadata_item(
         self.fake_context,
         ["2009-04-04", "meta-data", "kernel-id"],
         fakes.ID_OS_INSTANCE_1,
         fakes.IP_NETWORK_INTERFACE_2,
     )
     self.assertEqual(fakes.ID_EC2_IMAGE_AKI_1, retval)
コード例 #13
0
 def test_security_groups(self):
     self.instance_api.describe_instances.return_value = {
         'reservationSet': [fakes.EC2_RESERVATION_2]
     }
     retval = api.get_metadata_item(
         self.fake_context, ['2009-04-04', 'meta-data', 'security-groups'],
         fakes.ID_OS_INSTANCE_2, fakes.IP_NETWORK_INTERFACE_1)
     self.assertEqual('\n'.join(['groupname3']), retval)
コード例 #14
0
 def test_local_ipv4_from_address(self):
     self.instance_api.describe_instances.return_value = {
         'reservationSet': [fakes.EC2_RESERVATION_2]
     }
     retval = api.get_metadata_item(
         self.fake_context, ['2009-04-04', 'meta-data', 'local-ipv4'],
         fakes.ID_OS_INSTANCE_2, fakes.IP_NETWORK_INTERFACE_1)
     self.assertEqual(fakes.IP_NETWORK_INTERFACE_1, retval)
コード例 #15
0
 def test_local_hostname(self):
     retval = api.get_metadata_item(
         self.fake_context,
         ["2009-04-04", "meta-data", "local-hostname"],
         fakes.ID_OS_INSTANCE_1,
         fakes.IP_NETWORK_INTERFACE_2,
     )
     self.assertEqual(fakes.EC2_INSTANCE_1["privateDnsName"], retval)
コード例 #16
0
 def test_local_ipv4(self):
     retval = api.get_metadata_item(
         self.fake_context,
         ["2009-04-04", "meta-data", "local-ipv4"],
         fakes.ID_OS_INSTANCE_1,
         fakes.IP_NETWORK_INTERFACE_2,
     )
     self.assertEqual(fakes.IP_NETWORK_INTERFACE_2, retval)
コード例 #17
0
 def test_pubkey(self):
     retval = api.get_metadata_item(
         self.fake_context,
         ["2009-04-04", "meta-data", "public-keys", "0", "openssh-key"],
         fakes.ID_OS_INSTANCE_1,
         fakes.IP_NETWORK_INTERFACE_2,
     )
     self.assertEqual(fakes.PUBLIC_KEY_KEY_PAIR, retval)
コード例 #18
0
 def test_security_groups(self):
     self.instance_api.describe_instances.return_value = {"reservationSet": [fakes.EC2_RESERVATION_2]}
     retval = api.get_metadata_item(
         self.fake_context,
         ["2009-04-04", "meta-data", "security-groups"],
         fakes.ID_OS_INSTANCE_2,
         fakes.IP_NETWORK_INTERFACE_1,
     )
     self.assertEqual("\n".join(["groupname3"]), retval)
コード例 #19
0
    def test_metadata_cache(self):
        self.configure(enabled=True, group='cache')
        self.configure(backend='oslo_cache.dict', group='cache')
        self._init_cache_region()
        retval = api.get_metadata_item(
            self.fake_context, ['2009-04-04', 'meta-data', 'local-ipv4'],
            fakes.ID_OS_INSTANCE_1, fakes.IP_NETWORK_INTERFACE_2,
            self.cache_region)
        self.assertEqual(fakes.IP_NETWORK_INTERFACE_2, retval)
        self.nova.servers.get.assert_called_once_with(fakes.ID_OS_INSTANCE_1)
        self.nova.servers.get.reset_mock()

        retval = api.get_metadata_item(
            self.fake_context, ['2009-04-04', 'meta-data', 'instance-id'],
            fakes.ID_OS_INSTANCE_1, fakes.IP_NETWORK_INTERFACE_2,
            self.cache_region)
        self.assertEqual(fakes.ID_EC2_INSTANCE_1, retval)
        self.nova.servers.get.assert_not_called()
コード例 #20
0
 def test_security_groups(self):
     self.instance_api.describe_instances.return_value = {
            'reservationSet': [fakes.EC2_RESERVATION_2]}
     retval = api.get_metadata_item(
            self.fake_context,
            ['2009-04-04', 'meta-data', 'security-groups'],
            fakes.ID_OS_INSTANCE_2, fakes.IP_NETWORK_INTERFACE_1)
     self.assertEqual('\n'.join(['groupname3']),
                      retval)
コード例 #21
0
    def test_get_metadata_integral(self, network_interface_api,
                                   security_group_api, create_region):
        fake_context = base.create_context(is_os_admin=True)

        self.set_mock_db_items(
            fakes.DB_INSTANCE_1, fakes.DB_INSTANCE_2,
            fakes.DB_NETWORK_INTERFACE_1, fakes.DB_NETWORK_INTERFACE_2,
            fakes.DB_IMAGE_1, fakes.DB_IMAGE_2,
            fakes.DB_IMAGE_ARI_1, fakes.DB_IMAGE_AKI_1,
            fakes.DB_VOLUME_1, fakes.DB_VOLUME_2, fakes.DB_VOLUME_3)
        self.nova_admin.servers.list.return_value = [
            fakes.OSInstance_full(fakes.OS_INSTANCE_1),
            fakes.OSInstance_full(fakes.OS_INSTANCE_2)]
        self.nova_admin.servers.get.side_effect = tools.get_by_1st_arg_getter({
            fakes.ID_OS_INSTANCE_1: fakes.OSInstance_full(fakes.OS_INSTANCE_1),
            fakes.ID_OS_INSTANCE_2: fakes.OSInstance_full(fakes.OS_INSTANCE_2)
        })
        self.nova_admin.keypairs._get.return_value = (
               fakes.NovaKeyPair(fakes.OS_KEY_PAIR))
        self.cinder.volumes.list.return_value = [
            fakes.OSVolume(fakes.OS_VOLUME_1),
            fakes.OSVolume(fakes.OS_VOLUME_2),
            fakes.OSVolume(fakes.OS_VOLUME_3)]
        network_interface_api.describe_network_interfaces.side_effect = (
            lambda *args, **kwargs: copy.deepcopy({
                'networkInterfaceSet': [fakes.EC2_NETWORK_INTERFACE_1,
                                        fakes.EC2_NETWORK_INTERFACE_2]}))
        security_group_api.describe_security_groups.return_value = {
            'securityGroupInfo': [fakes.EC2_SECURITY_GROUP_1,
                                  fakes.EC2_SECURITY_GROUP_3]}
        create_region.get.return_value = cache_core.NO_VALUE

        retval = api.get_metadata_item(
               fake_context, ['latest', 'meta-data', 'instance-id'],
               fakes.ID_OS_INSTANCE_1, fakes.IP_NETWORK_INTERFACE_2,
               create_region)
        self.assertEqual(fakes.ID_EC2_INSTANCE_1, retval)

        retval = api.get_metadata_item(
               fake_context, ['latest', 'meta-data', 'instance-id'],
               fakes.ID_OS_INSTANCE_2, '10.200.1.15',
               create_region)
        self.assertEqual(fakes.ID_EC2_INSTANCE_2, retval)
コード例 #22
0
ファイル: __init__.py プロジェクト: zeus911/ec2-api
 def _get_metadata(self, path_tokens, requester):
     context = ec2_context.get_os_admin_context()
     # NOTE(ft): substitute project_id for context to instance's one.
     # It's needed for correct describe and auto update DB operations.
     # It doesn't affect operations via OpenStack's clients because
     # these clients use auth_token field only
     context.project_id = requester['project_id']
     return api.get_metadata_item(context, path_tokens,
                                  requester['os_instance_id'],
                                  requester['private_ip'])
コード例 #23
0
    def test_check_version(self):
        retval = api.get_metadata_item(
            self.fake_context,
            ['2009-04-04', 'meta-data', 'block-device-mapping'],
            fakes.ID_OS_INSTANCE_1, fakes.IP_NETWORK_INTERFACE_2)
        self.assertIsNotNone(retval)

        self.assertRaises(exception.EC2MetadataNotFound, api.get_metadata_item,
                          self.fake_context,
                          ['2007-08-29', 'meta-data', 'block-device-mapping'],
                          fakes.ID_OS_INSTANCE_1, fakes.IP_NETWORK_INTERFACE_2)
コード例 #24
0
    def test_metadata_cache(self):
        self.configure(enabled=True, group='cache')
        self.configure(backend='oslo_cache.dict', group='cache')
        self._init_cache_region()
        retval = api.get_metadata_item(
               self.fake_context,
               ['2009-04-04', 'meta-data', 'local-ipv4'],
               fakes.ID_OS_INSTANCE_1, fakes.IP_NETWORK_INTERFACE_2,
               self.cache_region)
        self.assertEqual(fakes.IP_NETWORK_INTERFACE_2, retval)
        self.nova.servers.get.assert_called_once_with(fakes.ID_OS_INSTANCE_1)
        self.nova.servers.get.reset_mock()

        retval = api.get_metadata_item(
               self.fake_context,
               ['2009-04-04', 'meta-data', 'instance-id'],
               fakes.ID_OS_INSTANCE_1, fakes.IP_NETWORK_INTERFACE_2,
               self.cache_region)
        self.assertEqual(fakes.ID_EC2_INSTANCE_1, retval)
        self.nova.servers.get.assert_not_called()
コード例 #25
0
    def test_check_version(self):
        retval = api.get_metadata_item(
               self.fake_context,
               ['2009-04-04', 'meta-data', 'block-device-mapping'],
               fakes.ID_OS_INSTANCE_1, fakes.IP_NETWORK_INTERFACE_2)
        self.assertIsNotNone(retval)

        self.assertRaises(
              exception.EC2MetadataNotFound,
              api.get_metadata_item, self.fake_context,
              ['2007-08-29', 'meta-data', 'block-device-mapping'],
              fakes.ID_OS_INSTANCE_1, fakes.IP_NETWORK_INTERFACE_2)
コード例 #26
0
 def _get_metadata(self, req, path_tokens):
     context = ec2_context.get_os_admin_context()
     if req.headers.get('X-Instance-ID'):
         os_instance_id, project_id, remote_ip = (
             self._unpack_request_attributes(req))
     else:
         remote_ip = self._get_remote_ip(req)
         os_instance_id, project_id = (api.get_os_instance_and_project_id(
             context, remote_ip))
     # NOTE(ft): substitute project_id for context to instance's one.
     # It's needed for correct describe and auto update DB operations.
     # It doesn't affect operations via OpenStack's clients because
     # these clients use auth_token field only
     context.project_id = project_id
     return api.get_metadata_item(context, path_tokens, os_instance_id,
                                  remote_ip)
コード例 #27
0
ファイル: __init__.py プロジェクト: vichusharma/ec2-api
 def _get_metadata(self, req, path_tokens):
     context = ec2_context.get_os_admin_context()
     if req.headers.get('X-Instance-ID'):
         os_instance_id, project_id, remote_ip = (
             self._unpack_request_attributes(req))
     else:
         remote_ip = self._get_remote_ip(req)
         os_instance_id, project_id = (
             api.get_os_instance_and_project_id(context, remote_ip))
     # NOTE(ft): substitute project_id for context to instance's one.
     # It's needed for correct describe and auto update DB operations.
     # It doesn't affect operations via OpenStack's clients because
     # these clients use auth_token field only
     context.project_id = project_id
     return api.get_metadata_item(context, path_tokens, os_instance_id,
                                  remote_ip)
コード例 #28
0
    def test_get_version_root(self):
        retval = api.get_metadata_item(self.fake_context, ['2009-04-04'],
                                       fakes.ID_OS_INSTANCE_1,
                                       fakes.IP_NETWORK_INTERFACE_2)
        self.assertEqual('meta-data/\nuser-data', retval)

        self.assertRaises(
              exception.EC2MetadataNotFound,
              api.get_metadata_item, self.fake_context, ['9999-99-99'],
              fakes.ID_OS_INSTANCE_1, fakes.IP_NETWORK_INTERFACE_2)

        self.db_api.get_items_ids.assert_called_with(
            self.fake_context, 'i', item_ids=None,
            item_os_ids=(fakes.ID_OS_INSTANCE_1,))
        self.instance_api.describe_instances.assert_called_with(
            self.fake_context, [fakes.ID_EC2_INSTANCE_1])
        self.instance_api.describe_instance_attribute.assert_called_with(
            self.fake_context, fakes.ID_EC2_INSTANCE_1, 'userData')
コード例 #29
0
    def test_get_version_root(self):
        retval = api.get_metadata_item(self.fake_context, ['2009-04-04'],
                                       fakes.ID_OS_INSTANCE_1,
                                       fakes.IP_NETWORK_INTERFACE_2)
        self.assertEqual('meta-data/\nuser-data', retval)

        self.assertRaises(
              exception.EC2MetadataNotFound,
              api.get_metadata_item, self.fake_context, ['9999-99-99'],
              fakes.ID_OS_INSTANCE_1, fakes.IP_NETWORK_INTERFACE_2)

        self.db_api.get_items_ids.assert_called_with(
            self.fake_context, 'i', item_ids=None,
            item_os_ids=(fakes.ID_OS_INSTANCE_1,))
        self.instance_api.describe_instances.assert_called_with(
            self.fake_context, [fakes.ID_EC2_INSTANCE_1])
        self.instance_api.describe_instance_attribute.assert_called_with(
            self.fake_context, fakes.ID_EC2_INSTANCE_1, 'userData')
コード例 #30
0
    def test_pubkey(self):
        self.nova.servers.get.return_value = (fakes.OSInstance(
            fakes.OS_INSTANCE_1))
        self.nova.keypairs.keypair_prefix = 'os_keypairs'
        self.nova.keypairs._get.return_value = (fakes.NovaKeyPair(
            fakes.OS_KEY_PAIR))
        retval = api.get_metadata_item(
            self.fake_context,
            ['2009-04-04', 'meta-data', 'public-keys', '0', 'openssh-key'],
            fakes.ID_OS_INSTANCE_1, fakes.IP_NETWORK_INTERFACE_2,
            self.cache_region)
        self.assertEqual(fakes.PUBLIC_KEY_KEY_PAIR, retval)
        self.nova.servers.get.assert_called_once_with(fakes.ID_OS_INSTANCE_1)
        self.nova.keypairs._get.assert_called_once_with(
            '/os_keypairs/%s?user_id=%s' %
            (fakes.NAME_KEY_PAIR, fakes.ID_OS_USER), 'keypair')

        self.nova.keypairs._get.side_effect = nova_exception.NotFound(404)
        self.assertRaises(
            exception.EC2MetadataNotFound, api.get_metadata_item,
            self.fake_context,
            ['2009-04-04', 'meta-data', 'public-keys', '0', 'openssh-key'],
            fakes.ID_OS_INSTANCE_1, fakes.IP_NETWORK_INTERFACE_2,
            self.cache_region)
コード例 #31
0
 def test_user_data(self):
     retval = api.get_metadata_item(
         self.fake_context, ["2009-04-04", "user-data"], fakes.ID_OS_INSTANCE_1, fakes.IP_NETWORK_INTERFACE_2
     )
     self.assertEqual("fake_user_data", retval)
コード例 #32
0
 def test_image_type_ramdisk(self):
     retval = api.get_metadata_item(
            self.fake_context,
            ['2009-04-04', 'meta-data', 'ramdisk-id'],
            fakes.ID_OS_INSTANCE_1, fakes.IP_NETWORK_INTERFACE_2)
     self.assertEqual(fakes.ID_EC2_IMAGE_ARI_1, retval)
コード例 #33
0
 def test_image_type_kernel(self):
     retval = api.get_metadata_item(
         self.fake_context, ['2009-04-04', 'meta-data', 'kernel-id'],
         fakes.ID_OS_INSTANCE_1, fakes.IP_NETWORK_INTERFACE_2)
     self.assertEqual(fakes.ID_EC2_IMAGE_AKI_1, retval)
コード例 #34
0
 def test_pubkey_name(self):
     retval = api.get_metadata_item(
         self.fake_context, ['2009-04-04', 'meta-data', 'public-keys'],
         fakes.ID_OS_INSTANCE_1, fakes.IP_NETWORK_INTERFACE_2)
     self.assertEqual('0=%s' % fakes.NAME_KEY_PAIR, retval)
コード例 #35
0
 def test_pubkey(self):
     retval = api.get_metadata_item(
         self.fake_context,
         ['2009-04-04', 'meta-data', 'public-keys', '0', 'openssh-key'],
         fakes.ID_OS_INSTANCE_1, fakes.IP_NETWORK_INTERFACE_2)
     self.assertEqual(fakes.PUBLIC_KEY_KEY_PAIR, retval)
コード例 #36
0
 def test_image_type_ramdisk(self):
     retval = api.get_metadata_item(
         self.fake_context, ['2009-04-04', 'meta-data', 'ramdisk-id'],
         fakes.ID_OS_INSTANCE_1, fakes.IP_NETWORK_INTERFACE_2,
         self.cache_region)
     self.assertEqual(fakes.ID_EC2_IMAGE_ARI_1, retval)
コード例 #37
0
 def test_local_ipv4(self):
     retval = api.get_metadata_item(
         self.fake_context, ['2009-04-04', 'meta-data', 'local-ipv4'],
         fakes.ID_OS_INSTANCE_1, fakes.IP_NETWORK_INTERFACE_2)
     self.assertEqual(fakes.IP_NETWORK_INTERFACE_2, retval)
コード例 #38
0
 def test_local_hostname(self):
     retval = api.get_metadata_item(
         self.fake_context, ['2009-04-04', 'meta-data', 'local-hostname'],
         fakes.ID_OS_INSTANCE_1, fakes.IP_NETWORK_INTERFACE_2)
     self.assertEqual(fakes.EC2_INSTANCE_1['privateDnsName'], retval)
コード例 #39
0
 def test_user_data(self):
     retval = api.get_metadata_item(
            self.fake_context, ['2009-04-04', 'user-data'],
            fakes.ID_OS_INSTANCE_1, fakes.IP_NETWORK_INTERFACE_2,
            self.cache_region)
     self.assertEqual(FAKE_USER_DATA, retval)
コード例 #40
0
 def test_user_data(self):
     retval = api.get_metadata_item(self.fake_context,
                                    ['2009-04-04', 'user-data'],
                                    fakes.ID_OS_INSTANCE_1,
                                    fakes.IP_NETWORK_INTERFACE_2)
     self.assertEqual('fake_user_data', retval)