예제 #1
0
 def grant(self, instance, username, databases, hostname=None):
     """Allow an existing user permissions to access a database."""
     instance_id = base.getid(instance)
     user = quote_user_host(username, hostname)
     url = "/instances/%(instance_id)s/users/%(user)s/databases"
     dbs = {'databases': [{'name': db} for db in databases]}
     resp, body = self.api.client.put(url % locals(), body=dbs)
     check_for_exceptions(resp, body)
예제 #2
0
 def revoke(self, instance, username, database, hostname=None):
     """Revoke from an existing user access permissions to a database."""
     instance_id = base.getid(instance)
     user = quote_user_host(username, hostname)
     url = ("/instances/%(instance_id)s/users/%(user)s/"
            "databases/%(database)s")
     resp, body = self.api.client.delete(url % locals())
     check_for_exceptions(resp, body)
예제 #3
0
 def revoke(self, instance, username, database, hostname=None):
     """Revoke from an existing user access permissions to a database."""
     instance_id = base.getid(instance)
     user = quote_user_host(username, hostname)
     url = ("/instances/%(instance_id)s/users/%(user)s/"
            "databases/%(database)s")
     resp, body = self.api.client.delete(url % locals())
     check_for_exceptions(resp, body)
예제 #4
0
 def grant(self, instance, username, databases, hostname=None):
     """Allow an existing user permissions to access a database."""
     instance_id = base.getid(instance)
     user = quote_user_host(username, hostname)
     url = "/instances/%(instance_id)s/users/%(user)s/databases"
     dbs = {'databases': [{'name': db} for db in databases]}
     resp, body = self.api.client.put(url % locals(), body=dbs)
     check_for_exceptions(resp, body)
예제 #5
0
    def get(self, instance_id, username, hostname=None):
        """
        Get a single User from the instance's Database.

        :rtype: :class:`User`.
        """
        user = quote_user_host(username, hostname)
        url = "/instances/%s/users/%s" % (instance_id, user)
        return self._get(url, "user")
예제 #6
0
    def get(self, instance_id, username, hostname=None):
        """
        Get a single User from the instance's Database.

        :rtype: :class:`User`.
        """
        user = quote_user_host(username, hostname)
        url = "/instances/%s/users/%s" % (instance_id, user)
        return self._get(url, "user")
예제 #7
0
 def list_access(self, instance, username, hostname=None):
     """Show all databases the given user has access to. """
     instance_id = base.getid(instance)
     user = quote_user_host(username, hostname)
     url = "/instances/%(instance_id)s/users/%(user)s/databases"
     resp, body = self.api.client.get(url % locals())
     check_for_exceptions(resp, body)
     if not body:
         raise Exception("Call to %s did not return to a body" % url)
     return [databases.Database(self, db) for db in body['databases']]
예제 #8
0
 def list_access(self, instance, username, hostname=None):
     """Show all databases the given user has access to. """
     instance_id = base.getid(instance)
     user = quote_user_host(username, hostname)
     url = "/instances/%(instance_id)s/users/%(user)s/databases"
     resp, body = self.api.client.get(url % locals())
     check_for_exceptions(resp, body)
     if not body:
         raise Exception("Call to %s did not return to a body" % url)
     return [databases.Database(self, db) for db in body['databases']]
예제 #9
0
 def delete(self, instance_id, username, hostname=None):
     """Delete an existing user in the specified instance"""
     user = quote_user_host(username, hostname)
     url = "/instances/%s/users/%s" % (instance_id, user)
     resp, body = self.api.client.delete(url)
     check_for_exceptions(resp, body)
예제 #10
0
 def delete(self, instance_id, username, hostname=None):
     """Delete an existing user in the specified instance"""
     user = quote_user_host(username, hostname)
     url = "/instances/%s/users/%s" % (instance_id, user)
     resp, body = self.api.client.delete(url)
     check_for_exceptions(resp, body)