Exemple #1
0
class SimpleAdminRPCWrapper(object):
    def __init__(self, hostname, admin_username, admin_password, ssl, **kwargs):
        """
        We don't want to cause an unnecessary RPC requests if the object access
        does not actually require RPC. We defer this by using SimpleLazyObject.
        """
        member = PortalMember(**kwargs)

        self.rpc = SimpleLazyObject(
            lambda: user.User(
                hostname,
                user=admin_username,
                password=admin_password,
                api_type='admin',
                member=member,
                ssl=ssl,
            )
        )

    def create(self):
        return self.rpc.create()

    def delete(self):
        try:
            return self.rpc.delete()
        except user.DoesNotExist as e:
            raise ObjectDoesNotExist(str(e))

    def update(self, **kwargs):
        return self.rpc.update(**kwargs)