def test_sort_security_groups(self): def generate_security_groups(**kwargs): security_groups = { "tenant_id": "abcd", "tenant_name": "Project_abcd", "name": "test", "description": "test" } security_groups.update(**kwargs) return security_groups security_groups1 = generate_security_groups(tenant_id="ownerA", tenant_name="Project_owA", name="sg1", description="test") security_groups2 = generate_security_groups(tenant_id="admin", tenant_name="Project_admi", name="ubuntu", description="test") security_groups3 = generate_security_groups(tenant_id="opt", tenant_name="Project_opt", name="sg2", description="my sg") groups = [security_groups1, security_groups2, security_groups3] req = webob.Request.blank( '/sort?umbrella_sort_key=tenantid') result = list_sort.sort_security_groups(req, groups) expected = [security_groups2, security_groups3, security_groups1] self.assertEqual(result, expected) req = webob.Request.blank( '/sort?umbrella_sort_key=tenant_name') result = list_sort.sort_security_groups(req, groups) expected = [security_groups2, security_groups3, security_groups1] self.assertEqual(result, expected) req = webob.Request.blank( '/sort?umbrella_sort_key=name') result = list_sort.sort_security_groups(req, groups) expected = [security_groups1, security_groups3, security_groups2] self.assertEqual(result, expected) req = webob.Request.blank( '/sort?umbrella_sort_key=description') result = list_sort.sort_security_groups(req, groups) expected = [security_groups3, security_groups1, security_groups2] self.assertEqual(result, expected) req = webob.Request.blank( '/sort?umbrella_sort_key=description&umbrella_sort_dir=desc') result = list_sort.sort_security_groups(req, groups) expected = [security_groups1, security_groups2, security_groups3] self.assertEqual(result, expected)
def list_security_groups(self, req, tenant_id): ''' list all security groups ''' result, headers = self._nova_request(req) try: groups = result['security_groups'] auth_token = req.context.auth_tok for group in groups: group.pop("rules") tenant_id = group.get("tenant_id") tenant = ops_api.get_tenant(tenant_id, auth_token) tenant_name = tenant['name'] group.update(tenant_name=tenant_name) groups = list_filter.filter_security_groups(req, groups) groups = list_sort.sort_security_groups(req, groups) return dict(security_groups=groups) except KeyError: LOG.exception(_("repack server data error.")) raise exc.HTTPFailedDependency(_("Nova method deprecated."))