Esempio n. 1
0
 def test_describe_key_pairs_invalid(self):
     self.nova.keypairs.list.return_value = [
         fakes.NovaKeyPair(fakes.OS_KEY_PAIR)
     ]
     self.assert_execution_error('InvalidKeyPair.NotFound',
                                 'DescribeKeyPairs',
                                 {'KeyName.1': 'badname'})
     self.nova.keypairs.list.assert_called_once_with()
Esempio n. 2
0
 def test_import_key_pair(self):
     self.nova.keypairs.create.return_value = (fakes.NovaKeyPair(
         fakes.OS_KEY_PAIR))
     resp = self.execute(
         'ImportKeyPair', {
             'KeyName': fakes.NAME_KEY_PAIR,
             'PublicKeyMaterial': base64.b64encode(
                 fakes.PUBLIC_KEY_KEY_PAIR)
         })
     self.assertThat(tools.purge_dict(fakes.EC2_KEY_PAIR, {'keyMaterial'}),
                     matchers.DictMatches(resp))
     self.nova.keypairs.create.assert_called_once_with(
         fakes.NAME_KEY_PAIR, fakes.PUBLIC_KEY_KEY_PAIR)
Esempio n. 3
0
    def test_describe_key_pairs(self):
        self.nova.keypairs.list.return_value = [
            fakes.NovaKeyPair(fakes.OS_KEY_PAIR)
        ]
        resp = self.execute('DescribeKeyPairs', {})
        self.assertThat(
            resp['keySet'],
            matchers.ListMatches(
                [tools.purge_dict(fakes.EC2_KEY_PAIR, {'keyMaterial'})]))
        self.nova.keypairs.list.assert_called_once_with()

        self.check_filtering('DescribeKeyPairs', 'keySet',
                             [('fingerprint', fakes.FINGERPRINT_KEY_PAIR),
                              ('key-name', fakes.NAME_KEY_PAIR)])
Esempio n. 4
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)
Esempio n. 5
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)
Esempio n. 6
0
 def test_create_key_pair(self):
     self.nova.keypairs.create.return_value = (fakes.NovaKeyPair(
         fakes.OS_KEY_PAIR))
     resp = self.execute('CreateKeyPair', {'KeyName': fakes.NAME_KEY_PAIR})
     self.assertThat(fakes.EC2_KEY_PAIR, matchers.DictMatches(resp))
     self.nova.keypairs.create.assert_called_once_with(fakes.NAME_KEY_PAIR)