コード例 #1
0
 def create_user(self,
                 user_name,
                 password=None,
                 project_id=None,
                 email=None,
                 domain_id='default',
                 **kwargs):
     """Creates a user."""
     en = kwargs.get('enabled', True)
     description = kwargs.get('description', None)
     default_project_id = kwargs.get('default_project_id')
     post_body = {
         'project_id': project_id,
         'default_project_id': default_project_id,
         'description': description,
         'domain_id': domain_id,
         'email': email,
         'enabled': en,
         'name': user_name,
         'password': password
     }
     post_body = json.dumps({'user': post_body})
     resp, body = self.post('users', post_body)
     self.expected_success(201, resp.status)
     body = json.loads(body)
     return service_client.ResponseBody(resp, body['user'])
コード例 #2
0
 def show_floating_ip(self, floating_ip_id):
     """Get the details of a floating IP."""
     url = "os-floating-ips/%s" % str(floating_ip_id)
     resp, body = self.get(url)
     body = json.loads(body)
     self.validate_response(schema.create_get_floating_ip, resp, body)
     return service_client.ResponseBody(resp, body['floating_ip'])
コード例 #3
0
ファイル: images_client.py プロジェクト: lezbar/neutron-lbaas
 def update_image_metadata(self, image_id, meta):
     """Updates the metadata for an image."""
     post_body = json.dumps({'metadata': meta})
     resp, body = self.post('images/%s/metadata' % str(image_id), post_body)
     body = json.loads(body)
     self.validate_response(schema.image_metadata, resp, body)
     return service_client.ResponseBody(resp, body['metadata'])
コード例 #4
0
 def get_credential(self, credential_id):
     """To GET Details of a credential."""
     resp, body = self.get('credentials/%s' % credential_id)
     self.expected_success(200, resp.status)
     body = json.loads(body)
     body['credential']['blob'] = json.loads(body['credential']['blob'])
     return service_client.ResponseBody(resp, body['credential'])
コード例 #5
0
 def update_user_password(self, user_id, new_pass):
     """Update User Password."""
     put_body = {'password': new_pass, 'id': user_id}
     put_body = json.dumps({'user': put_body})
     resp, body = self.put('users/%s/OS-KSADM/password' % user_id, put_body)
     self.expected_success(200, resp.status)
     return service_client.ResponseBody(resp, self._parse_resp(body))
コード例 #6
0
 def show_volume_metadata(self, volume_id):
     """Get metadata of the volume."""
     url = "volumes/%s/metadata" % str(volume_id)
     resp, body = self.get(url)
     body = json.loads(body)
     self.expected_success(200, resp.status)
     return service_client.ResponseBody(resp, body['metadata'])
コード例 #7
0
 def update_volume(self, volume_id, **kwargs):
     """Updates the Specified Volume."""
     put_body = json.dumps({'volume': kwargs})
     resp, body = self.put('volumes/%s' % volume_id, put_body)
     body = json.loads(body)
     self.expected_success(200, resp.status)
     return service_client.ResponseBody(resp, body['volume'])
コード例 #8
0
 def get_policy(self, policy_id):
     """Lists out the given policy."""
     url = 'policies/%s' % policy_id
     resp, body = self.get(url)
     self.expected_success(200, resp.status)
     body = json.loads(body)
     return service_client.ResponseBody(resp, body['policy'])
コード例 #9
0
 def _create_with_data(self, headers, data):
     resp, body_iter = self.http.raw_request('POST', '/v1/images',
                                             headers=headers, body=data)
     self._error_checker('POST', '/v1/images', headers, data, resp,
                         body_iter)
     body = json.loads(''.join([c for c in body_iter]))
     return service_client.ResponseBody(resp, body['image'])
コード例 #10
0
 def get_trust_role(self, trust_id, role_id):
     """GET role delegated by a trust."""
     resp, body = self.get("OS-TRUST/trusts/%s/roles/%s" %
                           (trust_id, role_id))
     self.expected_success(200, resp.status)
     body = json.loads(body)
     return service_client.ResponseBody(resp, body['role'])
コード例 #11
0
 def update_user(self, user_id, name, **kwargs):
     """Updates a user."""
     body = self.get_user(user_id)
     email = kwargs.get('email', body['email'])
     en = kwargs.get('enabled', body['enabled'])
     project_id = kwargs.get('project_id', body['project_id'])
     if 'default_project_id' in body.keys():
         default_project_id = kwargs.get('default_project_id',
                                         body['default_project_id'])
     else:
         default_project_id = kwargs.get('default_project_id')
     description = kwargs.get('description', body['description'])
     domain_id = kwargs.get('domain_id', body['domain_id'])
     post_body = {
         'name': name,
         'email': email,
         'enabled': en,
         'project_id': project_id,
         'default_project_id': default_project_id,
         'id': user_id,
         'domain_id': domain_id,
         'description': description
     }
     post_body = json.dumps({'user': post_body})
     resp, body = self.patch('users/%s' % user_id, post_body)
     self.expected_success(200, resp.status)
     body = json.loads(body)
     return service_client.ResponseBody(resp, body['user'])
コード例 #12
0
 def assign_group_role_on_domain(self, domain_id, group_id, role_id):
     """Add roles to a user on a domain."""
     resp, body = self.put(
         'domains/%s/groups/%s/roles/%s' % (domain_id, group_id, role_id),
         None)
     self.expected_success(204, resp.status)
     return service_client.ResponseBody(resp, body)
コード例 #13
0
 def assign_group_role_on_project(self, project_id, group_id, role_id):
     """Add roles to a user on a project."""
     resp, body = self.put(
         'projects/%s/groups/%s/roles/%s' % (project_id, group_id, role_id),
         None)
     self.expected_success(204, resp.status)
     return service_client.ResponseBody(resp, body)
コード例 #14
0
 def get_token(self, resp_token):
     """Get token details."""
     headers = {'X-Subject-Token': resp_token}
     resp, body = self.get("auth/tokens", headers=headers)
     self.expected_success(200, resp.status)
     body = json.loads(body)
     return service_client.ResponseBody(resp, body['token'])
コード例 #15
0
 def volume_roll_detaching(self, volume_id):
     """Volume Roll Detaching."""
     # cinder/api/contrib/volume_actions.py#L170
     post_body = json.dumps({'os-roll_detaching': {}})
     resp, body = self.post('volumes/%s/action' % volume_id, post_body)
     self.expected_success(202, resp.status)
     return service_client.ResponseBody(resp, body)
コード例 #16
0
 def list_shared_images(self, tenant_id):
     """List shared images with the specified tenant"""
     url = 'v1/shared-images/%s' % tenant_id
     resp, body = self.get(url)
     self.expected_success(200, resp.status)
     body = json.loads(body)
     return service_client.ResponseBody(resp, body)
コード例 #17
0
 def show_volume_transfer(self, transfer_id):
     """Returns the details of a volume transfer."""
     url = "os-volume-transfer/%s" % str(transfer_id)
     resp, body = self.get(url)
     body = json.loads(body)
     self.expected_success(200, resp.status)
     return service_client.ResponseBody(resp, body['transfer'])
コード例 #18
0
ファイル: region_client.py プロジェクト: lezbar/neutron-lbaas
 def get_region(self, region_id):
     """Get region."""
     url = 'regions/%s' % region_id
     resp, body = self.get(url)
     self.expected_success(200, resp.status)
     body = json.loads(body)
     return service_client.ResponseBody(resp, body['region'])
コード例 #19
0
 def show_volume(self, volume_id):
     """Returns the details of a single volume."""
     url = "volumes/%s" % str(volume_id)
     resp, body = self.get(url)
     body = json.loads(body)
     self.expected_success(200, resp.status)
     return service_client.ResponseBody(resp, body['volume'])
コード例 #20
0
    def update_server(self, server_id, name=None, meta=None, accessIPv4=None,
                      accessIPv6=None, disk_config=None):
        """
        Updates the properties of an existing server.
        server_id: The id of an existing server.
        name: The name of the server.
        personality: A list of files to be injected into the server.
        accessIPv4: The IPv4 access address for the server.
        accessIPv6: The IPv6 access address for the server.
        """

        post_body = {}

        if meta is not None:
            post_body['metadata'] = meta

        if name is not None:
            post_body['name'] = name

        if accessIPv4 is not None:
            post_body['accessIPv4'] = accessIPv4

        if accessIPv6 is not None:
            post_body['accessIPv6'] = accessIPv6

        if disk_config is not None:
            post_body['OS-DCF:diskConfig'] = disk_config

        post_body = json.dumps({'server': post_body})
        resp, body = self.put("servers/%s" % str(server_id), post_body)
        body = json.loads(body)
        self.validate_response(schema.update_server, resp, body)
        return service_client.ResponseBody(resp, body['server'])
コード例 #21
0
 def list_flavor_extra_specs(self, flavor_id):
     """Gets extra Specs details of the mentioned flavor."""
     resp, body = self.get('flavors/%s/os-extra_specs' % flavor_id)
     body = json.loads(body)
     self.validate_response(schema_extra_specs.set_get_flavor_extra_specs,
                            resp, body)
     return service_client.ResponseBody(resp, body['extra_specs'])
コード例 #22
0
 def list_addresses_by_network(self, server_id, network_id):
     """Lists all addresses of a specific network type for a server."""
     resp, body = self.get("servers/%s/ips/%s" %
                           (str(server_id), network_id))
     body = json.loads(body)
     self.validate_response(schema.list_addresses_by_network, resp, body)
     return service_client.ResponseBody(resp, body)
コード例 #23
0
 def enable_disable_user(self, user_id, enabled):
     """Enables or disables a user."""
     put_body = {'enabled': enabled}
     put_body = json.dumps({'user': put_body})
     resp, body = self.put('users/%s/enabled' % user_id, put_body)
     self.expected_success(200, resp.status)
     return service_client.ResponseBody(resp, self._parse_resp(body))
コード例 #24
0
 def get_volume_attachment(self, server_id, attach_id):
     """Return details about the given volume attachment."""
     resp, body = self.get('servers/%s/os-volume_attachments/%s' % (
         str(server_id), attach_id))
     body = json.loads(body)
     self.validate_response(schema.get_volume_attachment, resp, body)
     return service_client.ResponseBody(resp, body['volumeAttachment'])
コード例 #25
0
 def assign_user_role(self, tenant_id, user_id, role_id):
     """Add roles to a user on a tenant."""
     resp, body = self.put(
         '/tenants/%s/users/%s/roles/OS-KSADM/%s' %
         (tenant_id, user_id, role_id), "")
     self.expected_success(200, resp.status)
     return service_client.ResponseBody(resp, self._parse_resp(body))
コード例 #26
0
 def get_instance_action(self, server_id, request_id):
     """Returns the action details of the provided server."""
     resp, body = self.get("servers/%s/os-instance-actions/%s" %
                           (str(server_id), str(request_id)))
     body = json.loads(body)
     self.validate_response(schema.get_instance_action, resp, body)
     return service_client.ResponseBody(resp, body['instanceAction'])
コード例 #27
0
ファイル: images_client.py プロジェクト: lezbar/neutron-lbaas
 def show_image(self, image_id):
     """Returns the details of a single image."""
     resp, body = self.get("images/%s" % str(image_id))
     self.expected_success(200, resp.status)
     body = json.loads(body)
     self.validate_response(schema.get_image, resp, body)
     return service_client.ResponseBody(resp, body['image'])
コード例 #28
0
    def update_endpoint(self,
                        endpoint_id,
                        service_id=None,
                        interface=None,
                        url=None,
                        region=None,
                        enabled=None,
                        **kwargs):
        """Updates an endpoint with given parameters.

        Normally this function wouldn't allow setting values that are not
        allowed for 'enabled'. Use `force_enabled` to set a non-boolean.

        """
        post_body = {}
        if service_id is not None:
            post_body['service_id'] = service_id
        if interface is not None:
            post_body['interface'] = interface
        if url is not None:
            post_body['url'] = url
        if region is not None:
            post_body['region'] = region
        if 'force_enabled' in kwargs:
            post_body['enabled'] = kwargs['force_enabled']
        elif enabled is not None:
            post_body['enabled'] = enabled
        post_body = json.dumps({'endpoint': post_body})
        resp, body = self.patch('endpoints/%s' % endpoint_id, post_body)
        self.expected_success(200, resp.status)
        body = json.loads(body)
        return service_client.ResponseBody(resp, body['endpoint'])
コード例 #29
0
 def create_listener(self, **kwargs):
     """Create a listener build."""
     post_body = jsonutils.dumps({'listener': kwargs})
     resp, body = self.post('v2.0/lbaas/listeners', post_body)
     body = jsonutils.loads(body)
     self.expected_success(201, resp.status)
     return service_client.ResponseBody(resp, body['listener'])
コード例 #30
0
 def update_snapshot(self, snapshot_id, **kwargs):
     """Updates a snapshot."""
     put_body = json.dumps({'snapshot': kwargs})
     resp, body = self.put('snapshots/%s' % snapshot_id, put_body)
     body = json.loads(body)
     self.expected_success(200, resp.status)
     return service_client.ResponseBody(resp, body['snapshot'])