def list_group_roles_on_domain(self, domain_id, group_id): """list roles of a user on a domain.""" resp, body = self.get('domains/%s/groups/%s/roles' % (domain_id, group_id)) self.expected_success(200, resp.status) body = json.loads(body) return service_client.ResponseBodyList(resp, body['roles'])
def list_group_roles_on_project(self, project_id, group_id): """list roles of a user on a project.""" resp, body = self.get('projects/%s/groups/%s/roles' % (project_id, group_id)) self.expected_success(200, resp.status) body = json.loads(body) return service_client.ResponseBodyList(resp, body['roles'])
def list_resources(self, stack_identifier): """Returns the details of a single resource.""" url = "stacks/%s/resources" % stack_identifier resp, body = self.get(url) self.expected_success(200, resp.status) body = json.loads(body) return service_client.ResponseBodyList(resp, body['resources'])
def list_events(self, stack_identifier): """Returns list of all events for a stack.""" url = 'stacks/{stack_identifier}/events'.format(**locals()) resp, body = self.get(url) self.expected_success(200, resp.status) body = json.loads(body) return service_client.ResponseBodyList(resp, body['events'])
def list_flavor_access(self, flavor_id): """Gets flavor access information given the flavor id.""" resp, body = self.get('flavors/%s/os-flavor-access' % flavor_id) body = json.loads(body) self.validate_response(schema_access.add_remove_list_flavor_access, resp, body) return service_client.ResponseBodyList(resp, body['flavor_access'])
def list_extensions(self): """List all the extensions.""" resp, body = self.get('/extensions') self.expected_success(200, resp.status) body = json.loads(body) return service_client.ResponseBodyList(resp, body['extensions']['values'])
def list_volume_attachments(self, server_id): """Returns the list of volume attachments for a given instance.""" resp, body = self.get('servers/%s/os-volume_attachments' % ( str(server_id))) body = json.loads(body) self.validate_response(schema.list_volume_attachments, resp, body) return service_client.ResponseBodyList(resp, body['volumeAttachments'])
def list_instance_actions(self, server_id): """List the provided server action.""" resp, body = self.get("servers/%s/os-instance-actions" % str(server_id)) body = json.loads(body) self.validate_response(schema.list_instance_actions, resp, body) return service_client.ResponseBodyList(resp, body['instanceActions'])
def list_db_flavors(self, params=None): url = 'flavors' if params: url += '?%s' % urllib.urlencode(params) resp, body = self.get(url) self.expected_success(200, resp.status) return service_client.ResponseBodyList(resp, self._parse_resp(body))
def list_projects(self, params=None): url = "projects" if params: url += '?%s' % urllib.urlencode(params) resp, body = self.get(url) self.expected_success(200, resp.status) body = json.loads(body) return service_client.ResponseBodyList(resp, body['projects'])
def list_security_group_rules(self, security_group_id): """List all rules for a security group.""" resp, body = self.get('os-security-groups') body = json.loads(body) self.validate_response(schema.list_security_groups, resp, body) for sg in body['security_groups']: if sg['id'] == security_group_id: return service_client.ResponseBodyList(resp, sg['rules']) raise lib_exc.NotFound('No such Security Group')
def list_listeners(self, params=None): """List all listeners.""" url = 'v2.0/lbaas/listeners' if params: url = '{0}?{1}'.format(url, parse.urlencode(params)) resp, body = self.get(url) body = jsonutils.loads(body) self.expected_success(200, resp.status) return service_client.ResponseBodyList(resp, body['listeners'])
def list_volume_transfers(self, params=None): """List all the volume transfers created.""" url = 'os-volume-transfer' if params: url += '?%s' % urllib.urlencode(params) resp, body = self.get(url) body = json.loads(body) self.expected_success(200, resp.status) return service_client.ResponseBodyList(resp, body['transfers'])
def list_regions(self, params=None): """List regions.""" url = 'regions' if params: url += '?%s' % urllib.urlencode(params) resp, body = self.get(url) self.expected_success(200, resp.status) body = json.loads(body) return service_client.ResponseBodyList(resp, body['regions'])
def list_health_monitors(self, params=None): """List all health monitors.""" url = 'v2.0/lbaas/healthmonitors' if params: url = "{0}?{1}".format(url, urllib.urlencode(params)) resp, body = self.get(url) body = jsonutils.loads(body) self.expected_success(200, resp.status) return service_client.ResponseBodyList(resp, body['healthmonitors'])
def get_users(self, params=None): """Get the list of users.""" url = 'users' if params: url += '?%s' % urllib.urlencode(params) resp, body = self.get(url) self.expected_success(200, resp.status) body = json.loads(body) return service_client.ResponseBodyList(resp, body['users'])
def list_networks(self, name=None): resp, body = self.get("os-networks") body = json.loads(body) self.expected_success(200, resp.status) if name: networks = [n for n in body['networks'] if n['label'] == name] else: networks = body['networks'] return service_client.ResponseBodyList(resp, networks)
def list_flavors_with_detail(self, params=None): url = 'flavors/detail' if params: url += '?%s' % urllib.urlencode(params) resp, body = self.get(url) body = json.loads(body) self.validate_response(schema.list_flavors_details, resp, body) return service_client.ResponseBodyList(resp, body['flavors'])
def add_flavor_access(self, flavor_id, tenant_id): """Add flavor access for the specified tenant.""" post_body = {'addTenantAccess': {'tenant': tenant_id}} post_body = json.dumps(post_body) resp, body = self.post('flavors/%s/action' % flavor_id, post_body) body = json.loads(body) self.validate_response(schema_access.add_remove_list_flavor_access, resp, body) return service_client.ResponseBodyList(resp, body['flavor_access'])
def list_keypairs(self): resp, body = self.get("os-keypairs") body = json.loads(body) # Each returned keypair is embedded within an unnecessary 'keypair' # element which is a deviation from other resources like floating-ips, # servers, etc. A bug? # For now we shall adhere to the spec, but the spec for keypairs # is yet to be found self.validate_response(schema.list_keypairs, resp, body) return service_client.ResponseBodyList(resp, body['keypairs'])
def list_floating_ips(self, params=None): """Returns a list of all floating IPs filtered by any parameters.""" url = 'os-floating-ips' if params: url += '?%s' % urllib.urlencode(params) resp, body = self.get(url) body = json.loads(body) self.validate_response(schema.list_floating_ips, resp, body) return service_client.ResponseBodyList(resp, body['floating_ips'])
def list_images_with_detail(self, params=None): """Returns a detailed list of images filtered by any parameters.""" url = 'images/detail' if params: url += '?%s' % urllib.urlencode(params) resp, body = self.get(url) body = json.loads(body) self.validate_response(schema.list_images_details, resp, body) return service_client.ResponseBodyList(resp, body['images'])
def list_security_groups(self, params=None): """List all security groups for a user.""" url = 'os-security-groups' if params: url += '?%s' % urllib.urlencode(params) resp, body = self.get(url) body = json.loads(body) self.validate_response(schema.list_security_groups, resp, body) return service_client.ResponseBodyList(resp, body['security_groups'])
def list_stacks(self, params=None): """Lists all stacks for a user.""" uri = 'stacks' if params: uri += '?%s' % urllib.urlencode(params) resp, body = self.get(uri) self.expected_success(200, resp.status) body = json.loads(body) return service_client.ResponseBodyList(resp, body['stacks'])
def list_images(self, params=None): url = 'v2/images' if params: url += '?%s' % urllib.urlencode(params) resp, body = self.get(url) self.expected_success(200, resp.status) body = json.loads(body) self._validate_schema(body, type='images') return service_client.ResponseBodyList(resp, body['images'])
def list_members(self, pool_id, params=None): """ List all Members """ url = 'v2.0/lbaas/pools/{0}/members'.format(pool_id) if params: url = "{0}?{1}".format(url, urllib.urlencode(params)) resp, body = self.get(url) body = jsonutils.loads(body) self.expected_success(200, resp.status) return service_client.ResponseBodyList(resp, body['members'])
def list_volumes(self, detail=False, params=None): """List all the volumes created.""" url = 'volumes' if detail: url += '/detail' if params: url += '?%s' % urllib.urlencode(params) resp, body = self.get(url) body = json.loads(body) self.expected_success(200, resp.status) return service_client.ResponseBodyList(resp, body['volumes'])
def get_trusts(self, trustor_user_id=None, trustee_user_id=None): """GET trusts.""" if trustor_user_id: resp, body = self.get("OS-TRUST/trusts?trustor_user_id=%s" % trustor_user_id) elif trustee_user_id: resp, body = self.get("OS-TRUST/trusts?trustee_user_id=%s" % trustee_user_id) else: resp, body = self.get("OS-TRUST/trusts") self.expected_success(200, resp.status) body = json.loads(body) return service_client.ResponseBodyList(resp, body['trusts'])
def list_images(self, detail=False, properties=dict(), changes_since=None, **kwargs): url = 'v1/images' if detail: url += '/detail' params = {} for key, value in properties.items(): params['property-%s' % key] = value kwargs.update(params) if changes_since is not None: kwargs['changes-since'] = changes_since if len(kwargs) > 0: url += '?%s' % urllib.urlencode(kwargs) resp, body = self.get(url) self.expected_success(200, resp.status) body = json.loads(body) return service_client.ResponseBodyList(resp, body['images'])
def list_floating_ips_bulk(self): """Returns a list of all floating IPs bulk.""" resp, body = self.get('os-floating-ips-bulk') body = json.loads(body) self.validate_response(schema.list_floating_ips_bulk, resp, body) return service_client.ResponseBodyList(resp, body['floating_ip_info'])