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)
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)