def POST(self, repo_id): params = self.params() criteria = params.get('criteria', None) if criteria is not None: try: criteria = UnitAssociationCriteria.from_client_input(criteria) except: _logger.error('Error parsing unassociation criteria [%s]' % criteria) raise exceptions.PulpDataException(), None, sys.exc_info()[2] task_tags = [ tags.resource_tag(tags.RESOURCE_REPOSITORY_TYPE, repo_id), tags.action_tag('unassociate') ] async_result = unassociate_by_criteria.apply_async_with_reservation( tags.RESOURCE_REPOSITORY_TYPE, repo_id, [ repo_id, criteria, RepoContentUnit.OWNER_TYPE_USER, manager_factory.principal_manager().get_principal()['login'] ], tags=task_tags) raise exceptions.OperationPostponed(async_result)
class RepoUnassociate(View): """ View to unassociate a unit from a repository. """ @auth_required(authorization.UPDATE) @json_body_allow_empty def post(self, request, repo_id): """ Unassociate units that match the criteria from the given repository. :param request: WSGI request object :type request: django.core.handlers.wsgi.WSGIRequest :param repo_id: id of the repository to unassociate content from :type repo_id: str :raises exceptions.InvalidValue: if criteria params cannot be parsed :raises exceptions.OperationPostponed: dispatch a unassociate_by_criteria task """ criteria_body = request.body_as_json.get('criteria', {}) try: criteria = UnitAssociationCriteria.from_client_input(criteria_body) except exceptions.InvalidValue, e: invalid_criteria = exceptions.InvalidValue('criteria') invalid_criteria.add_child_exception(e) raise invalid_criteria task_tags = [tags.resource_tag(tags.RESOURCE_REPOSITORY_TYPE, repo_id), tags.action_tag('unassociate')] model.Repository.objects.get_repo_or_missing_resource(repo_id) async_result = unassociate_by_criteria.apply_async_with_reservation( tags.RESOURCE_REPOSITORY_TYPE, repo_id, [repo_id, criteria.to_dict()], tags=task_tags) raise exceptions.OperationPostponed(async_result)
def POST(self, repo_id): params = self.params() criteria = params.get("criteria", None) if criteria is not None: try: criteria = UnitAssociationCriteria.from_client_input(criteria) except: logger.error("Error parsing unassociation criteria [%s]" % criteria) raise exceptions.PulpDataException(), None, sys.exc_info()[2] tags = [resource_tag(dispatch_constants.RESOURCE_REPOSITORY_TYPE, repo_id), action_tag("unassociate")] async_result = unassociate_by_criteria.apply_async_with_reservation( dispatch_constants.RESOURCE_REPOSITORY_TYPE, repo_id, [ repo_id, criteria, RepoContentUnit.OWNER_TYPE_USER, manager_factory.principal_manager().get_principal()["login"], ], tags=tags, ) raise exceptions.OperationPostponed(async_result)
def POST(self, repo_id): params = self.params() criteria = params.get('criteria', None) if criteria is not None: try: criteria = UnitAssociationCriteria.from_client_input(criteria) except: _logger.error('Error parsing unassociation criteria [%s]' % criteria) raise exceptions.PulpDataException(), None, sys.exc_info()[2] task_tags = [tags.resource_tag(tags.RESOURCE_REPOSITORY_TYPE, repo_id), tags.action_tag('unassociate')] async_result = unassociate_by_criteria.apply_async_with_reservation( tags.RESOURCE_REPOSITORY_TYPE, repo_id, [repo_id, criteria, RepoContentUnit.OWNER_TYPE_USER, manager_factory.principal_manager().get_principal()['login']], tags=task_tags) raise exceptions.OperationPostponed(async_result)
criteria_body = request.body_as_json.get('criteria') if criteria_body: try: criteria = UnitAssociationCriteria.from_client_input(criteria_body) except pulp_exceptions.InvalidValue, e: invalid_criteria = pulp_exceptions.InvalidValue('criteria') invalid_criteria.add_child_exception(e) raise invalid_criteria else: criteria = None task_tags = [tags.resource_tag(tags.RESOURCE_REPOSITORY_TYPE, repo_id), tags.action_tag('unassociate')] async_result = unassociate_by_criteria.apply_async_with_reservation( tags.RESOURCE_REPOSITORY_TYPE, repo_id, [repo_id, criteria, RepoContentUnit.OWNER_TYPE_USER, manager_factory.principal_manager().get_principal()['login']], tags=task_tags) raise pulp_exceptions.OperationPostponed(async_result) class RepoImportUpload(View): """ View to import units into a repository. """ @auth_required(authorization.UPDATE) @json_body_required def post(self, request, repo_id): """ Import an uploaded unit into the given repository.