def update(self, permission: Permission) -> Permission: """ Updates an artifactory permission :param permission: Permission object :return: Permission """ permission_name = permission.name self._put(f"api/{self._uri}/{permission_name}", json=permission.dict()) logger.debug("Permission %s successfully updated", permission_name) return self.get(permission_name)
def get(self, permission_name: str) -> Permission: """ Read permission from artifactory. Fill object if exist :param permission_name: Name of the permission to retrieve :return: Permission """ try: r = self._get(f"api/{self._uri}/{permission_name}") return Permission(**r.json()) except requests.exceptions.HTTPError as e: if e.response.status_code == 404 or e.response.status_code == 400: logging.error(f"Permission {permission_name} does not exist") raise PermissionNotFoundException( f"Permission {permission_name} does not exist") raise ArtifactoryException from e
def create(self, permission: Permission) -> Permission: """ Creates a permission :param permission: Permission object :return: Permission """ permission_name = permission.name try: self.get(permission_name) logger.debug("Permission %s already exists", permission_name) raise PermissionAlreadyExistsException( f"Permission {permission_name} already exists" ) except PermissionNotFoundException: self._put(f"api/{self._uri}/{permission_name}", json=permission.dict()) logger.debug("Permission %s successfully created", permission_name) return self.get(permission_name)
def get(self, permission_name: str) -> AnyPermission: """ Read permission from artifactory. Fill object if exist :param permission_name: Name of the permission to retrieve :return: Permission """ try: response = self._get(f"api/{self._uri}/{permission_name}") logger.debug("Permission %s found", permission_name) return (Permission(**response.json()) if self._artifactory.api_version == 1 else PermissionV2( **response.json())) except requests.exceptions.HTTPError as error: if error.response.status_code in (404, 400): logger.error("Permission %s does not exist", permission_name) raise PermissionNotFoundException( f"Permission {permission_name} does not exist") raise ArtifactoryException from error