Exemple #1
0
    def create(self,
               name,
               domain=None,
               project=None,
               password=None,
               email=None,
               description=None,
               enabled=True,
               default_project=None,
               **kwargs):
        """Create a user.

        .. warning::

            The project argument is deprecated as of the 1.7.0 release in favor
            of default_project and may be removed in the 2.0.0 release.

        If both default_project and project is provided, the default_project
        will be used.
        """
        default_project_id = base.getid(default_project) or base.getid(project)
        user_data = base.filter_none(name=name,
                                     domain_id=base.getid(domain),
                                     default_project_id=default_project_id,
                                     password=password,
                                     email=email,
                                     description=description,
                                     enabled=enabled,
                                     **kwargs)

        return self._post('/users', {'user': user_data},
                          'user',
                          log=not bool(password))
    def create(self, project, service, resource_name, resource_limit,
               description=None, region=None, **kwargs):
        """Create a project-specific limit.

        :param project: the project to create a limit for.
        :type project: str or :class:`keystoneclient.v3.projects.Project`
        :param service: the service that owns the resource to limit.
        :type service: str or :class:`keystoneclient.v3.services.Service`
        :param resource_name: the name of the resource to limit
        :type resource_name: str
        :param resource_limit: the quantity of the limit
        :type resource_limit: int
        :param description: a description of the limit
        :type description: str
        :param region: region the limit applies to
        :type region: str or :class:`keystoneclient.v3.regions.Region`

        :returns: a reference of the created limit
        :rtype: :class:`keystoneclient.v3.limits.Limit`

        """
        limit_data = base.filter_none(
            project_id=base.getid(project),
            service_id=base.getid(service),
            resource_name=resource_name,
            resource_limit=resource_limit,
            description=description,
            region_id=base.getid(region),
            **kwargs
        )
        body = {self.collection_key: [limit_data]}
        resp, body = self.client.post('/limits', body=body)
        limit = body[self.collection_key].pop()
        return self.resource_class(self, limit)
    def create(self, name, domain=None, project=None, password=None,
               email=None, description=None, enabled=True,
               default_project=None, **kwargs):
        """Create a user.

        .. warning::

            The project argument is deprecated as of the 1.7.0 release in favor
            of default_project and may be removed in the 2.0.0 release.

        If both default_project and project is provided, the default_project
        will be used.
        """
        default_project_id = base.getid(default_project) or base.getid(project)
        user_data = base.filter_none(name=name,
                                     domain_id=base.getid(domain),
                                     default_project_id=default_project_id,
                                     password=password,
                                     email=email,
                                     description=description,
                                     enabled=enabled,
                                     **kwargs)

        return self._post('/users', {'user': user_data}, 'user',
                          log=not bool(password))
    def create(self, name, domain=None, project=None, password=None,
               email=None, description=None, enabled=True,
               default_project=None, **kwargs):
        """Create a user.

        .. warning::

          The project argument is deprecated, use default_project instead.

        If both default_project and project is provided, the default_project
        will be used.
        """
        if project:
            LOG.warning(_LW("The project argument is deprecated, "
                            "use default_project instead."))
        default_project_id = base.getid(default_project) or base.getid(project)
        user_data = base.filter_none(name=name,
                                     domain_id=base.getid(domain),
                                     default_project_id=default_project_id,
                                     password=password,
                                     email=email,
                                     description=description,
                                     enabled=enabled,
                                     **kwargs)

        return self._create('/users', {'user': user_data}, 'user',
                            log=not bool(password))
    def update(self, user, name=None, domain=None, project=None, password=None,
               email=None, description=None, enabled=None,
               default_project=None, **kwargs):
        """Update a user.

        .. warning::

            The project argument is deprecated as of the 1.7.0 release in favor
            of default_project and may be removed in the 2.0.0 release.

        If both default_project and project is provided, the default_project
        will be used.
        """
        default_project_id = base.getid(default_project) or base.getid(project)
        user_data = base.filter_none(name=name,
                                     domain_id=base.getid(domain),
                                     default_project_id=default_project_id,
                                     password=password,
                                     email=email,
                                     description=description,
                                     enabled=enabled,
                                     **kwargs)

        return self._update('/users/%s' % base.getid(user),
                            {'user': user_data},
                            'user',
                            method='PATCH',
                            log=False)
Exemple #6
0
    def create(self,
               name,
               domain=None,
               project=None,
               password=None,
               email=None,
               description=None,
               enabled=True,
               default_project=None,
               **kwargs):
        """Create a user.

        .. warning::

          The project argument is deprecated, use default_project instead.

        If both default_project and project is provided, the default_project
        will be used.
        """
        if project:
            LOG.warning("The project argument is deprecated, "
                        "use default_project instead.")
        default_project_id = base.getid(default_project) or base.getid(project)
        user_data = base.filter_none(name=name,
                                     domain_id=base.getid(domain),
                                     default_project_id=default_project_id,
                                     password=password,
                                     email=email,
                                     description=description,
                                     enabled=enabled,
                                     **kwargs)

        return self._create('/users', {'user': user_data},
                            'user',
                            log=not bool(password))
    def update(self, user, name=None, domain=None, project=None, password=None,
               email=None, description=None, enabled=None,
               default_project=None, **kwargs):
        """Update a user.

        .. warning::

          The project argument is deprecated, use default_project instead.

        If both default_project and project is provided, the default_project
        will be used.
        """
        if project:
            LOG.warning(_LW("The project argument is deprecated, "
                            "use default_project instead."))
        default_project_id = base.getid(default_project) or base.getid(project)
        user_data = base.filter_none(name=name,
                                     domain_id=base.getid(domain),
                                     default_project_id=default_project_id,
                                     password=password,
                                     email=email,
                                     description=description,
                                     enabled=enabled,
                                     **kwargs)

        return self._update('/users/%s' % base.getid(user),
                            {'user': user_data},
                            'user',
                            method='PATCH',
                            log=False)
    def create(self, service, resource_name, default_limit,
               description=None, region=None, **kwargs):
        """Create a registered limit.

        :param service: a UUID that identifies the service for the limit.
        :type service: str
        :param resource_name: the name of the resource to limit.
        :type resource_name: str
        :param default_limit: the default limit for projects to assume.
        :type default_limit: int
        :param description: a string that describes the limit
        :type description: str
        :param region: a UUID that identifies the region for the limit.
        :type region: str

        :returns: a reference of the created registered limit.
        :rtype: :class:`keystoneclient.v3.registered_limits.RegisteredLimit`

        """
        # NOTE(lbragstad): Keystone's registered limit API supports creation of
        # limits in batches. This client accepts a single limit and passes it
        # to the identity service as a list of a single item.
        limit_data = base.filter_none(
            service_id=base.getid(service),
            resource_name=resource_name,
            default_limit=default_limit,
            description=description,
            region_id=base.getid(region),
            **kwargs
        )
        body = {self.collection_key: [limit_data]}
        resp, body = self.client.post('/registered_limits', body=body)
        registered_limit = body[self.collection_key].pop()
        return self.resource_class(self, registered_limit)
Exemple #9
0
    def update(self, user, name=None, domain=None, project=None, password=None,
               email=None, description=None, enabled=None,
               default_project=None, **kwargs):
        """Update a user.

        .. warning::

          The project argument is deprecated, use default_project instead.

        If both default_project and project is provided, the default_project
        will be used.
        """
        if project:
            LOG.warning(_LW("The project argument is deprecated, "
                            "use default_project instead."))
        default_project_id = base.getid(default_project) or base.getid(project)
        user_data = base.filter_none(name=name,
                                     domain_id=base.getid(domain),
                                     default_project_id=default_project_id,
                                     password=password,
                                     email=email,
                                     description=description,
                                     enabled=enabled,
                                     **kwargs)

        return self._update('/users/%s' % base.getid(user),
                            {'user': user_data},
                            'user',
                            method='PATCH',
                            log=False)
    def update(self,
               user,
               name=None,
               domain=None,
               project=None,
               password=None,
               email=None,
               description=None,
               enabled=None,
               default_project=None,
               **kwargs):
        """Update a user.

        :param user: the user to be updated on the server.
        :type user: str or :class:`keystoneclient.v3.users.User`
        :param str name: the new name of the user.
        :param domain: the new domain of the user.
        :type domain: str or :class:`keystoneclient.v3.domains.Domain`
        :param project: the new default project of the user.
                        (deprecated, see warning below)
        :type project: str or :class:`keystoneclient.v3.projects.Project`
        :param str password: the new password of the user.
        :param str email: the new email of the user.
        :param str description: the newdescription of the user.
        :param bool enabled: whether the user is enabled.
        :param default_project: the new default project of the user.
        :type default_project: str or
                               :class:`keystoneclient.v3.projects.Project`
        :param kwargs: any other attribute provided will be passed to server.

        :returns: the updated user returned from server.
        :rtype: :class:`keystoneclient.v3.users.User`

        .. warning::

          The project argument is deprecated as of the 1.7.0 release in favor
          of default_project and may be removed in the 2.0.0 release.

          If both default_project and project is provided, the default_project
          will be used.

        """
        default_project_id = base.getid(default_project) or base.getid(project)
        user_data = base.filter_none(name=name,
                                     domain_id=base.getid(domain),
                                     default_project_id=default_project_id,
                                     password=password,
                                     email=email,
                                     description=description,
                                     enabled=enabled,
                                     **kwargs)

        return self._update('/users/%s' % base.getid(user),
                            {'user': user_data},
                            'user',
                            method='PATCH',
                            log=False)
    def create(self,
               name,
               domain=None,
               project=None,
               password=None,
               email=None,
               description=None,
               enabled=True,
               default_project=None,
               **kwargs):
        """Create a user.

        :param str name: the name of the user.
        :param domain: the domain of the user.
        :type domain: str or :class:`keystoneclient.v3.domains.Domain`
        :param project: the default project of the user.
                        (deprecated, see warning below)
        :type project: str or :class:`keystoneclient.v3.projects.Project`
        :param str password: the password for the user.
        :param str email: the email address of the user.
        :param str description: a description of the user.
        :param bool enabled: whether the user is enabled.
        :param default_project: the default project of the user.
        :type default_project: str or
                               :class:`keystoneclient.v3.projects.Project`
        :param kwargs: any other attribute provided will be passed to the
                       server.

        :returns: the created user returned from server.
        :rtype: :class:`keystoneclient.v3.users.User`

        .. warning::

          The project argument is deprecated as of the 1.7.0 release in favor
          of default_project and may be removed in the 2.0.0 release.

          If both default_project and project is provided, the default_project
          will be used.

        """
        default_project_id = base.getid(default_project) or base.getid(project)
        user_data = base.filter_none(name=name,
                                     domain_id=base.getid(domain),
                                     default_project_id=default_project_id,
                                     password=password,
                                     email=email,
                                     description=description,
                                     enabled=enabled,
                                     **kwargs)

        return self._post('/users', {'user': user_data},
                          'user',
                          log=not bool(password))
Exemple #12
0
    def register_user(self, name, domain=None, password=None,
                      username=None, description=None, **kwargs):

        user_data = base.filter_none(name=name,
                                     domain_id=base.getid(domain),
                                     password=password,
                                     username=username,
                                     description=description,
                                     **kwargs)

        return self._create(self.base_url+'/users', {'user': user_data}, 'user',
                            log=not bool(password))
Exemple #13
0
    def update(self, user, name=None, domain=None, project=None, password=None,
               email=None, description=None, enabled=None,
               default_project=None, **kwargs):
        """Update a user.

        :param user: the user to be updated on the server.
        :type user: str or :class:`keystoneclient.v3.users.User`
        :param str name: the new name of the user.
        :param domain: the new domain of the user.
        :type domain: str or :class:`keystoneclient.v3.domains.Domain`
        :param project: the new default project of the user.
                        (deprecated, see warning below)
        :type project: str or :class:`keystoneclient.v3.projects.Project`
        :param str password: the new password of the user.
        :param str email: the new email of the user.
        :param str description: the newdescription of the user.
        :param bool enabled: whether the user is enabled.
        :param default_project: the new default project of the user.
        :type default_project: str or
                               :class:`keystoneclient.v3.projects.Project`
        :param kwargs: any other attribute provided will be passed to server.

        :returns: the updated user returned from server.
        :rtype: :class:`keystoneclient.v3.users.User`

        .. warning::

          The project argument is deprecated as of the 1.7.0 release in favor
          of default_project and may be removed in the 2.0.0 release.

          If both default_project and project is provided, the default_project
          will be used.

        """
        default_project_id = base.getid(default_project) or base.getid(project)
        user_data = base.filter_none(name=name,
                                     domain_id=base.getid(domain),
                                     default_project_id=default_project_id,
                                     password=password,
                                     email=email,
                                     description=description,
                                     enabled=enabled,
                                     **kwargs)

        return self._update('/users/%s' % base.getid(user),
                            {'user': user_data},
                            'user',
                            method='PATCH',
                            log=False)
Exemple #14
0
    def create(self, name, domain=None, project=None, password=None,
               email=None, description=None, enabled=True,
               default_project=None, **kwargs):
        """Create a user.

        :param str name: the name of the user.
        :param domain: the domain of the user.
        :type domain: str or :class:`keystoneclient.v3.domains.Domain`
        :param project: the default project of the user.
                        (deprecated, see warning below)
        :type project: str or :class:`keystoneclient.v3.projects.Project`
        :param str password: the password for the user.
        :param str email: the email address of the user.
        :param str description: a description of the user.
        :param bool enabled: whether the user is enabled.
        :param default_project: the default project of the user.
        :type default_project: str or
                               :class:`keystoneclient.v3.projects.Project`
        :param kwargs: any other attribute provided will be passed to the
                       server.

        :returns: the created user returned from server.
        :rtype: :class:`keystoneclient.v3.users.User`

        .. warning::

          The project argument is deprecated as of the 1.7.0 release in favor
          of default_project and may be removed in the 2.0.0 release.

          If both default_project and project is provided, the default_project
          will be used.

        """
        default_project_id = base.getid(default_project) or base.getid(project)
        user_data = base.filter_none(name=name,
                                     domain_id=base.getid(domain),
                                     default_project_id=default_project_id,
                                     password=password,
                                     email=email,
                                     description=description,
                                     enabled=enabled,
                                     **kwargs)

        return self._post('/users', {'user': user_data}, 'user',
                          log=not bool(password))
    def register_user(self,
                      name,
                      domain=None,
                      password=None,
                      username=None,
                      description=None,
                      **kwargs):

        user_data = base.filter_none(name=name,
                                     domain_id=base.getid(domain),
                                     password=password,
                                     username=username,
                                     description=description,
                                     **kwargs)

        return self._create(self.base_url + '/users', {'user': user_data},
                            'user',
                            log=not bool(password))
Exemple #16
0
    def create(self,
               project,
               service,
               resource_name,
               resource_limit,
               description=None,
               region=None,
               **kwargs):
        """Create a project-specific limit.

        :param project: the project to create a limit for.
        :type project: str or :class:`keystoneclient.v3.projects.Project`
        :param service: the service that owns the resource to limit.
        :type service: str or :class:`keystoneclient.v3.services.Service`
        :param resource_name: the name of the resource to limit
        :type resource_name: str
        :param resource_limit: the quantity of the limit
        :type resource_limit: int
        :param description: a description of the limit
        :type description: str
        :param region: region the limit applies to
        :type region: str or :class:`keystoneclient.v3.regions.Region`

        :returns: a reference of the created limit
        :rtype: :class:`keystoneclient.v3.limits.Limit`

        """
        limit_data = base.filter_none(project_id=base.getid(project),
                                      service_id=base.getid(service),
                                      resource_name=resource_name,
                                      resource_limit=resource_limit,
                                      description=description,
                                      region_id=base.getid(region),
                                      **kwargs)
        body = {self.collection_key: [limit_data]}
        resp, body = self.client.post('/limits', body=body)
        limit = body[self.collection_key].pop()
        return self._prepare_return_value(resp,
                                          self.resource_class(self, limit))
Exemple #17
0
    def create(self,
               service,
               resource_name,
               default_limit,
               description=None,
               region=None,
               **kwargs):
        """Create a registered limit.

        :param service: a UUID that identifies the service for the limit.
        :type service: str
        :param resource_name: the name of the resource to limit.
        :type resource_name: str
        :param default_limit: the default limit for projects to assume.
        :type default_limit: int
        :param description: a string that describes the limit
        :type description: str
        :param region: a UUID that identifies the region for the limit.
        :type region: str

        :returns: a reference of the created registered limit.
        :rtype: :class:`keystoneclient.v3.registered_limits.RegisteredLimit`

        """
        # NOTE(lbragstad): Keystone's registered limit API supports creation of
        # limits in batches. This client accepts a single limit and passes it
        # to the identity service as a list of a single item.
        limit_data = base.filter_none(service_id=base.getid(service),
                                      resource_name=resource_name,
                                      default_limit=default_limit,
                                      description=description,
                                      region_id=base.getid(region),
                                      **kwargs)
        body = {self.collection_key: [limit_data]}
        resp, body = self.client.post('/registered_limits', body=body)
        registered_limit = body[self.collection_key].pop()
        return self._prepare_return_value(
            resp, self.resource_class(self, registered_limit))
Exemple #18
0
    def update(self,
               user,
               name=None,
               domain=None,
               project=None,
               password=None,
               email=None,
               description=None,
               enabled=None,
               default_project=None,
               **kwargs):
        """Update a user.

        .. warning::

            The project argument is deprecated as of the 1.7.0 release in favor
            of default_project and may be removed in the 2.0.0 release.

        If both default_project and project is provided, the default_project
        will be used.
        """
        default_project_id = base.getid(default_project) or base.getid(project)
        user_data = base.filter_none(name=name,
                                     domain_id=base.getid(domain),
                                     default_project_id=default_project_id,
                                     password=password,
                                     email=email,
                                     description=description,
                                     enabled=enabled,
                                     **kwargs)

        return self._update('/users/%s' % base.getid(user),
                            {'user': user_data},
                            'user',
                            method='PATCH',
                            log=False)