Example #1
0
    def test_umbrella_sort_keypairs(self):
        def generate_keypairs(**kwargs):
            keypairs = {
                     "user_id": "abcd",
                     "user_name": "Project_abcd",
                     "name": "test",
                     "fingerprint": "ab:cd:ef"
                     }
            keypairs.update(**kwargs)
            return keypairs
        key_pairs1 = generate_keypairs(user_id="ownerA",
                                       user_name="Project_ownerA",
                                       name="sg1",
                                       fingerprint="ab:cd:b1:c0:15:fe:8e:2c:13"
                                                   ":13:55:5a:14:77:74:92")
        key_pairs2 = generate_keypairs(user_id="admin",
                                       user_name="Project_admin",
                                       name="ubuntu",
                                       fingerprint="2c:71:d7:58:dc:cc:9c:5a:10"
                                                   ":9b:b6:f3:dc:79:26:66")
        key_pairs3 = generate_keypairs(user_id="opt",
                                       user_name="Project_opt",
                                       name="sg2",
                                       fingerprint="52:9b:76:e8:d0:32:c6:37:0a"
                                                   ":85:97:0c:fc:4a:1e:02")
        key_pairs = [key_pairs1, key_pairs2, key_pairs3]

        req = webob.Request.blank(
                '/sort?umbrella_sort_key=tenantid')
        result = list_sort.sort_keypairs(req, key_pairs)
        expected = [key_pairs2, key_pairs3, key_pairs1]
        self.assertEqual(result, expected)

        req = webob.Request.blank(
                '/sort?umbrella_sort_key=user_name')
        result = list_sort.sort_keypairs(req, key_pairs)
        expected = [key_pairs2, key_pairs3, key_pairs1]
        self.assertEqual(result, expected)

        req = webob.Request.blank(
                '/sort?umbrella_sort_key=name')
        result = list_sort.sort_keypairs(req, key_pairs)
        expected = [key_pairs1, key_pairs3, key_pairs2]
        self.assertEqual(result, expected)

        req = webob.Request.blank(
                '/sort?umbrella_sort_key=fingerprint')
        result = list_sort.sort_keypairs(req, key_pairs)
        expected = [key_pairs2, key_pairs3, key_pairs1]
        self.assertEqual(result, expected)

        req = webob.Request.blank(
                '/sort?umbrella_sort_key=fingerprint&umbrella_sort_dir=desc')
        result = list_sort.sort_keypairs(req, key_pairs)
        expected = [key_pairs1, key_pairs3, key_pairs2]
        self.assertEqual(result, expected)
Example #2
0
 def list_keypairs(self, req, tenant_id):
     '''
     list key pairs
     support all_tenants=True
     '''
     result, headers = self._nova_request(req)
     auth_token = req.headers.get("x-auth-token")
     try:
         keypairs = result['keypairs']
         keypair_list_ret = []
         for item in keypairs:
             keypair = item['keypair']
             user = ops_api.get_user(keypair['user_id'], auth_token)
             keypair.update(user_name=user['name'])
             if 'tenantName' in user:
                 keypair.update(
                         tenant_name=user['tenantName'],
                         tenant_id=user['tenantId'])
                 fingerprint = keypair.get('fingerprint', '').\
                                         replace('.create', '')
                 keypair.update(fingerprint=fingerprint)
             keypair_list_ret.append(keypair)
         keypair_list_ret = list_filter.filter_keypairs(req,
                                                        keypair_list_ret)
         keypair_list_ret = list_sort.sort_keypairs(req, keypair_list_ret)
     except KeyError:
         LOG.exception(_("repack keypair data error."))
         raise exc.HTTPFailedDependency(_("Nova method deprecated."))
     return dict(keypairs=keypair_list_ret)