コード例 #1
0
ファイル: test_keypairs.py プロジェクト: wingo1990/nova
    def setUp(self):
        super(KeypairPolicyTest, self).setUp()
        self.KeyPairController = keypairs.KeypairController()

        def _db_key_pair_get(context, user_id, name):
            return {'name': 'foo', 'public_key': 'XXX', 'fingerprint': 'YYY'}

        self.stubs.Set(db, "key_pair_get", _db_key_pair_get)
        self.stubs.Set(db, "key_pair_get_all_by_user",
                       db_key_pair_get_all_by_user)
        self.stubs.Set(db, "key_pair_create", db_key_pair_create)
        self.stubs.Set(db, "key_pair_destroy", db_key_pair_destroy)
コード例 #2
0
    def setUp(self):
        super(KeypairPolicyTest, self).setUp()
        self.KeyPairController = keypairs.KeypairController()

        def _db_key_pair_get(context, user_id, name):
            return dict(test_keypair.fake_keypair,
                        name='foo',
                        public_key='XXX',
                        fingerprint='YYY')

        self.stubs.Set(db, "key_pair_get", _db_key_pair_get)
        self.stubs.Set(db, "key_pair_get_all_by_user",
                       db_key_pair_get_all_by_user)
        self.stubs.Set(db, "key_pair_create", db_key_pair_create)
        self.stubs.Set(db, "key_pair_destroy", db_key_pair_destroy)
コード例 #3
0
 def _setup_app_and_controller(self):
     self.app_server = fakes.wsgi_app_v21(init_only=('os-keypairs',
                                                     'servers'))
     self.controller = keypairs_v21.KeypairController()
コード例 #4
0
class KeypairPolicyTestV21(test.TestCase):
    KeyPairController = keypairs_v21.KeypairController()
    policy_path = 'os_compute_api:os-keypairs'

    def setUp(self):
        super(KeypairPolicyTestV21, self).setUp()

        def _db_key_pair_get(context, user_id, name):
            return dict(test_keypair.fake_keypair,
                        name='foo',
                        public_key='XXX',
                        fingerprint='YYY',
                        type='ssh')

        self.stubs.Set(db, "key_pair_get", _db_key_pair_get)
        self.stubs.Set(db, "key_pair_get_all_by_user",
                       db_key_pair_get_all_by_user)
        self.stubs.Set(db, "key_pair_create", db_key_pair_create)
        self.stubs.Set(db, "key_pair_destroy", db_key_pair_destroy)

        self.req = fakes.HTTPRequest.blank('')

    def test_keypair_list_fail_policy(self):
        rules = {
            self.policy_path + ':index': common_policy.parse_rule('role:admin')
        }
        policy.set_rules(rules)
        self.assertRaises(exception.Forbidden, self.KeyPairController.index,
                          self.req)

    def test_keypair_list_pass_policy(self):
        rules = {self.policy_path + ':index': common_policy.parse_rule('')}
        policy.set_rules(rules)
        res = self.KeyPairController.index(self.req)
        self.assertIn('keypairs', res)

    def test_keypair_show_fail_policy(self):
        rules = {
            self.policy_path + ':show': common_policy.parse_rule('role:admin')
        }
        policy.set_rules(rules)
        self.assertRaises(exception.Forbidden, self.KeyPairController.show,
                          self.req, 'FAKE')

    def test_keypair_show_pass_policy(self):
        rules = {self.policy_path + ':show': common_policy.parse_rule('')}
        policy.set_rules(rules)
        res = self.KeyPairController.show(self.req, 'FAKE')
        self.assertIn('keypair', res)

    def test_keypair_create_fail_policy(self):
        body = {'keypair': {'name': 'create_test'}}
        rules = {
            self.policy_path + ':create':
            common_policy.parse_rule('role:admin')
        }
        policy.set_rules(rules)
        self.assertRaises(exception.Forbidden,
                          self.KeyPairController.create,
                          self.req,
                          body=body)

    def test_keypair_create_pass_policy(self):
        body = {'keypair': {'name': 'create_test'}}
        rules = {self.policy_path + ':create': common_policy.parse_rule('')}
        policy.set_rules(rules)
        res = self.KeyPairController.create(self.req, body=body)
        self.assertIn('keypair', res)

    def test_keypair_delete_fail_policy(self):
        rules = {
            self.policy_path + ':delete':
            common_policy.parse_rule('role:admin')
        }
        policy.set_rules(rules)
        self.assertRaises(exception.Forbidden, self.KeyPairController.delete,
                          self.req, 'FAKE')

    def test_keypair_delete_pass_policy(self):
        rules = {self.policy_path + ':delete': common_policy.parse_rule('')}
        policy.set_rules(rules)
        self.KeyPairController.delete(self.req, 'FAKE')
コード例 #5
0
ファイル: test_keypairs.py プロジェクト: XiaoDongZhi/nova
class KeypairPolicyTestV21(test.TestCase):
    KeyPairController = keypairs_v21.KeypairController()
    policy_path = 'compute_extension:v3:os-keypairs'
    base_url = '/v2/fake'

    def setUp(self):
        super(KeypairPolicyTestV21, self).setUp()

        def _db_key_pair_get(context, user_id, name):
            return dict(test_keypair.fake_keypair,
                        name='foo',
                        public_key='XXX',
                        fingerprint='YYY')

        self.stubs.Set(db, "key_pair_get", _db_key_pair_get)
        self.stubs.Set(db, "key_pair_get_all_by_user",
                       db_key_pair_get_all_by_user)
        self.stubs.Set(db, "key_pair_create", db_key_pair_create)
        self.stubs.Set(db, "key_pair_destroy", db_key_pair_destroy)

    def test_keypair_list_fail_policy(self):
        rules = {
            self.policy_path + ':index': common_policy.parse_rule('role:admin')
        }
        policy.set_rules(rules)
        req = fakes.HTTPRequest.blank(self.base_url + '/os-keypairs')
        self.assertRaises(exception.Forbidden, self.KeyPairController.index,
                          req)

    def test_keypair_list_pass_policy(self):
        rules = {self.policy_path + ':index': common_policy.parse_rule('')}
        policy.set_rules(rules)
        req = fakes.HTTPRequest.blank(self.base_url + '/os-keypairs')
        res = self.KeyPairController.index(req)
        self.assertIn('keypairs', res)

    def test_keypair_show_fail_policy(self):
        rules = {
            self.policy_path + ':show': common_policy.parse_rule('role:admin')
        }
        policy.set_rules(rules)
        req = fakes.HTTPRequest.blank(self.base_url + '/os-keypairs/FAKE')
        self.assertRaises(exception.Forbidden, self.KeyPairController.show,
                          req, 'FAKE')

    def test_keypair_show_pass_policy(self):
        rules = {self.policy_path + ':show': common_policy.parse_rule('')}
        policy.set_rules(rules)
        req = fakes.HTTPRequest.blank(self.base_url + '/os-keypairs/FAKE')
        res = self.KeyPairController.show(req, 'FAKE')
        self.assertIn('keypair', res)

    def test_keypair_create_fail_policy(self):
        body = {'keypair': {'name': 'create_test'}}
        rules = {
            self.policy_path + ':create':
            common_policy.parse_rule('role:admin')
        }
        policy.set_rules(rules)
        req = fakes.HTTPRequest.blank(self.base_url + '/os-keypairs')
        req.method = 'POST'
        self.assertRaises(exception.Forbidden,
                          self.KeyPairController.create,
                          req,
                          body=body)

    def test_keypair_create_pass_policy(self):
        body = {'keypair': {'name': 'create_test'}}
        rules = {self.policy_path + ':create': common_policy.parse_rule('')}
        policy.set_rules(rules)
        req = fakes.HTTPRequest.blank(self.base_url + '/os-keypairs')
        req.method = 'POST'
        res = self.KeyPairController.create(req, body=body)
        self.assertIn('keypair', res)

    def test_keypair_delete_fail_policy(self):
        rules = {
            self.policy_path + ':delete':
            common_policy.parse_rule('role:admin')
        }
        policy.set_rules(rules)
        req = fakes.HTTPRequest.blank(self.base_url + '/os-keypairs/FAKE')
        req.method = 'DELETE'
        self.assertRaises(exception.Forbidden, self.KeyPairController.delete,
                          req, 'FAKE')

    def test_keypair_delete_pass_policy(self):
        rules = {self.policy_path + ':delete': common_policy.parse_rule('')}
        policy.set_rules(rules)
        req = fakes.HTTPRequest.blank(self.base_url + '/os-keypairs/FAKE')
        req.method = 'DELETE'
        res = self.KeyPairController.delete(req, 'FAKE')

        # NOTE: on v2.1, http status code is set as wsgi_code of API
        # method instead of status_int in a response object.
        if isinstance(self.KeyPairController, keypairs_v21.KeypairController):
            status_int = self.KeyPairController.delete.wsgi_code
        else:
            status_int = res.status_int
        self.assertEqual(202, status_int)