def POST(self): # Pull the repo data out of the request body (validation will occur # in the manager) repo_data = self.params() id = repo_data.get('id', None) display_name = repo_data.get('display_name', None) description = repo_data.get('description', None) notes = repo_data.get('notes', None) importer_type_id = repo_data.get('importer_type_id', None) importer_repo_plugin_config = repo_data.get('importer_config', None) distributors = repo_data.get('distributors', None) # Creation repo_manager = manager_factory.repo_manager() resources = {dispatch_constants.RESOURCE_REPOSITORY_TYPE: {id: dispatch_constants.RESOURCE_CREATE_OPERATION}} args = [id, display_name, description, notes, importer_type_id, importer_repo_plugin_config, distributors] weight = pulp_config.config.getint('tasks', 'create_weight') tags = [resource_tag(dispatch_constants.RESOURCE_REPOSITORY_TYPE, id), action_tag('create')] call_request = CallRequest(repo_manager.create_and_configure_repo, args, resources=resources, weight=weight, tags=tags) repo = execution.execute_sync(call_request) repo.update(serialization.link.child_link_obj(id)) return self.created(id, repo)
def POST(self): # Pull all the user data user_data = self.params() login = user_data.get('login', None) password = user_data.get('password', None) name = user_data.get('name', None) # Creation manager = managers.user_manager() args = [login] kwargs = {'password': password, 'name': name} weight = pulp_config.config.getint('tasks', 'create_weight') tags = [ resource_tag(dispatch_constants.RESOURCE_USER_TYPE, login), action_tag('create') ] call_request = CallRequest(manager.create_user, args, kwargs, weight=weight, tags=tags, kwarg_blacklist=['password']) call_request.creates_resource(dispatch_constants.RESOURCE_USER_TYPE, login) user = execution.execute_sync(call_request) user_link = serialization.link.child_link_obj(login) user.update(user_link) # Grant permissions permission_manager = managers.permission_manager() permission_manager.grant_automatic_permissions_for_resource( user_link['_href']) return self.created(login, user)
def POST(self, repo_id, importer_id): importer_manager = manager_factory.repo_importer_manager() importer = importer_manager.get_importer(repo_id) if importer_id != importer['id']: raise exceptions.MissingResource(importer=importer_id) schedule_options = self.params() sync_options = {'override_config': schedule_options.pop('override_config', {})} schedule_manager = manager_factory.schedule_manager() resources = {dispatch_constants.RESOURCE_REPOSITORY_TYPE: {repo_id: dispatch_constants.RESOURCE_READ_OPERATION}, dispatch_constants.RESOURCE_REPOSITORY_IMPORTER_TYPE: {importer_id: dispatch_constants.RESOURCE_UPDATE_OPERATION}} weight = pulp_config.config.getint('tasks', 'create_weight') tags = [resource_tag(dispatch_constants.RESOURCE_REPOSITORY_TYPE, repo_id), resource_tag(dispatch_constants.RESOURCE_REPOSITORY_IMPORTER_TYPE, importer_id), action_tag('create_sync_schedule')] call_request = CallRequest(schedule_manager.create_sync_schedule, [repo_id, importer_id, sync_options, schedule_options], resources=resources, weight=weight, tags=tags, archive=True) schedule_id = execution.execute_sync(call_request) scheduler = dispatch_factory.scheduler() schedule = scheduler.get(schedule_id) obj = serialization.dispatch.scheduled_sync_obj(schedule) obj.update(serialization.link.child_link_obj(schedule_id)) return self.created(obj['_href'], obj)
def POST(self): # Params params = self.params() role_id = params.get('role_id', None) resource = params.get('resource', None) operation_names = params.get('operations', None) _check_invalid_params({'role_id':role_id, 'resource':resource, 'operation_names':operation_names}) operations = _get_operations(operation_names) # Grant permission synchronously role_manager = managers.role_manager() tags = [resource_tag(dispatch_constants.RESOURCE_ROLE_TYPE, role_id), action_tag('remove_permission_from_role')] call_request = CallRequest(role_manager.remove_permissions_from_role, [role_id, resource, operations], tags=tags) call_request.updates_resource(dispatch_constants.RESOURCE_ROLE_TYPE, role_id) return self.ok(execution.execute_sync(call_request))
def POST(self, consumer_id): consumer_manager = managers.consumer_manager() consumer_manager.get_consumer(consumer_id) schedule_data = self.params() units = schedule_data.pop('units', None) uninstall_options = {'options': schedule_data.pop('options', {})} if not units: raise MissingValue(['units']) schedule_manager = managers.schedule_manager() weight = pulp_config.config.getint('tasks', 'create_weight') tags = [resource_tag(dispatch_constants.RESOURCE_CONSUMER_TYPE, consumer_id), action_tag('create_unit_uninstall_schedule')] call_request = CallRequest(schedule_manager.create_unit_uninstall_schedule, [consumer_id, units, uninstall_options, schedule_data], weight=weight, tags=tags, archive=True) call_request.reads_resource(dispatch_constants.RESOURCE_CONSUMER_TYPE, consumer_id) schedule_id = execution.execute_sync(call_request) scheduler = dispatch_factory.scheduler() scheduled_call = scheduler.get(schedule_id) scheduled_obj = serialization.dispatch.scheduled_unit_management_obj(scheduled_call) scheduled_obj.update(serialization.link.child_link_obj(schedule_id)) return self.created(scheduled_obj['_href'], scheduled_obj)
def PUT(self, consumer_id, content_type): """ Update the association of a profile with a consumer by content type ID. @param consumer_id: A consumer ID. @type consumer_id: str @param content_type: A content unit type ID. @type content_type: str @return: The updated model object: {consumer_id:<str>, content_type:<str>, profile:<dict>} @rtype: dict """ body = self.params() profile = body.get('profile') manager = managers.consumer_profile_manager() tags = [resource_tag(dispatch_constants.RESOURCE_CONSUMER_TYPE, consumer_id), resource_tag(dispatch_constants.RESOURCE_CONTENT_UNIT_TYPE, content_type), action_tag('profile_update')] call_request = CallRequest(manager.update, [consumer_id, content_type], {'profile': profile}, tags=tags, weight=0, kwarg_blacklist=['profile']) call_request.reads_resource(dispatch_constants.RESOURCE_CONSUMER_TYPE, consumer_id) call_report = CallReport.from_call_request(call_request) call_report.serialize_result = False consumer = execution.execute_sync(call_request, call_report) link = serialization.link.child_link_obj(consumer_id, content_type) consumer.update(link) return self.ok(consumer)
def POST(self): # Pull all the roles data role_data = self.params() role_id = role_data.get('role_id', None) display_name = role_data.get('display_name', None) description = role_data.get('description', None) # Creation manager = managers.role_manager() args = [role_id, display_name, description] weight = pulp_config.config.getint('tasks', 'create_weight') tags = [resource_tag(dispatch_constants.RESOURCE_ROLE_TYPE, role_id), action_tag('create')] call_request = CallRequest(manager.create_role, args, weight=weight, tags=tags) call_request.creates_resource(dispatch_constants.RESOURCE_ROLE_TYPE, role_id) role = execution.execute_sync(call_request) role_link = serialization.link.child_link_obj(role_id) role.update(role_link) return self.created(role_id, role)
def POST(self): # Pull all the roles data role_data = self.params() role_id = role_data.get('role_id', None) display_name = role_data.get('display_name', None) description = role_data.get('description', None) # Creation manager = managers.role_manager() resources = { dispatch_constants.RESOURCE_ROLE_TYPE: { role_id: dispatch_constants.RESOURCE_CREATE_OPERATION } } args = [role_id, display_name, description] weight = pulp_config.config.getint('tasks', 'create_weight') tags = [ resource_tag(dispatch_constants.RESOURCE_ROLE_TYPE, role_id), action_tag('create') ] call_request = CallRequest(manager.create_role, args, resources=resources, weight=weight, tags=tags) role = execution.execute_sync(call_request) role_link = serialization.link.child_link_obj(role_id) role.update(role_link) return self.created(role_id, role)
def POST(self): # Params params = self.params() login = params.get('login', None) resource = params.get('resource', None) operation_names = params.get('operations', None) _check_invalid_params({ 'login': login, 'resource': resource, 'operation_names': operation_names }) operations = _get_operations(operation_names) # Grant permission synchronously permission_manager = managers.permission_manager() tags = [ resource_tag(dispatch_constants.RESOURCE_PERMISSION_TYPE, resource), resource_tag(dispatch_constants.RESOURCE_USER_TYPE, login), action_tag('grant_permission_to_user') ] call_request = CallRequest(permission_manager.grant, [resource, login, operations], tags=tags) call_request.reads_resource(dispatch_constants.RESOURCE_USER_TYPE, login) call_request.updates_resource( dispatch_constants.RESOURCE_PERMISSION_TYPE, resource) return self.ok(execution.execute_sync(call_request))
def POST(self, repo_id, distributor_id): distributor_manager = manager_factory.repo_distributor_manager() distributor_manager.get_distributor(repo_id, distributor_id) schedule_options = self.params() publish_options = {'override_config': schedule_options.pop('override_config', {})} schedule_manager = manager_factory.schedule_manager() resources = {dispatch_constants.RESOURCE_REPOSITORY_TYPE: {repo_id: dispatch_constants.RESOURCE_READ_OPERATION}, dispatch_constants.RESOURCE_REPOSITORY_DISTRIBUTOR_TYPE: {distributor_id: dispatch_constants.RESOURCE_UPDATE_OPERATION}} weight = pulp_config.config.getint('tasks', 'create_weight') tags = [resource_tag(dispatch_constants.RESOURCE_REPOSITORY_TYPE, repo_id), resource_tag(dispatch_constants.RESOURCE_REPOSITORY_DISTRIBUTOR_TYPE, distributor_id), action_tag('create_publish_schedule')] call_request = CallRequest(schedule_manager.create_publish_schedule, [repo_id, distributor_id, publish_options, schedule_options], resources=resources, weight=weight, tags=tags, archive=True) schedule_id = execution.execute_sync(call_request) scheduler = dispatch_factory.scheduler() schedule = scheduler.get(schedule_id) obj = serialization.dispatch.scheduled_publish_obj(schedule) obj.update(serialization.link.child_link_obj(schedule_id)) return self.created(obj['_href'], obj)
def POST(self): group_data = self.params() group_id = group_data.pop('id', None) if group_id is None: raise pulp_exceptions.MissingValue(['id']) display_name = group_data.pop('display_name', None) description = group_data.pop('description', None) consumer_ids = group_data.pop('consumer_ids', None) notes = group_data.pop('notes', None) if group_data: raise pulp_exceptions.InvalidValue(group_data.keys()) manager = managers_factory.consumer_group_manager() weight = pulp_config.config.getint('tasks', 'create_weight') tags = [ resource_tag(dispatch_constants.RESOURCE_CONSUMER_GROUP_TYPE, group_id) ] call_request = CallRequest( manager.create_consumer_group, [group_id, display_name, description, consumer_ids, notes], weight=weight, tags=tags) call_request.creates_resource( dispatch_constants.RESOURCE_CONSUMER_GROUP_TYPE, group_id) group = execution.execute_sync(call_request) group.update(serialization.link.child_link_obj(group['id'])) return self.created(group['_href'], group)
def POST(self): group_data = self.params() group_id = group_data.pop('id', None) if group_id is None: raise pulp_exceptions.MissingValue(['id']) display_name = group_data.pop('display_name', None) description = group_data.pop('description', None) repo_ids = group_data.pop('repo_ids', None) notes = group_data.pop('notes', None) distributors = group_data.pop('distributors', None) if group_data: raise pulp_exceptions.InvalidValue(group_data.keys()) # Create the repo group manager = managers_factory.repo_group_manager() args = [group_id, display_name, description, repo_ids, notes] kwargs = {'distributor_list': distributors} weight = pulp_config.config.getint('tasks', 'create_weight') tags = [resource_tag(dispatch_constants.RESOURCE_REPOSITORY_GROUP_TYPE, group_id)] call_request = CallRequest(manager.create_and_configure_repo_group, args, kwargs, weight=weight, tags=tags) call_request.creates_resource(dispatch_constants.RESOURCE_REPOSITORY_GROUP_TYPE, group_id) group = execution.execute_sync(call_request) group.update(serialization.link.child_link_obj(group['id'])) group['distributors'] = distributors or [] return self.created(group['_href'], group)
def POST(self): # Pull all the user data user_data = self.params() login = user_data.get('login', None) password = user_data.get('password', None) name = user_data.get('name', None) # Creation manager = managers.user_manager() resources = {dispatch_constants.RESOURCE_USER_TYPE: {login: dispatch_constants.RESOURCE_CREATE_OPERATION}} args = [login] kwargs = {'password': password, 'name': name} weight = pulp_config.config.getint('tasks', 'create_weight') tags = [resource_tag(dispatch_constants.RESOURCE_USER_TYPE, login), action_tag('create')] call_request = CallRequest(manager.create_user, args, kwargs, resources=resources, weight=weight, tags=tags, kwarg_blacklist=['password']) user = execution.execute_sync(call_request) user_link = serialization.link.child_link_obj(login) user.update(user_link) # Grant permissions permission_manager = managers.permission_manager() permission_manager.grant_automatic_permissions_for_resource(user_link['_href']) return self.created(login, user)
def POST(self): # Params params = self.params() login = params.get('login', None) resource = params.get('resource', None) operation_names = params.get('operations', None) _check_invalid_params({'login':login, 'resource':resource, 'operation_names':operation_names}) operations = _get_operations(operation_names) # Grant permission synchronously permission_manager = managers.permission_manager() tags = [resource_tag(dispatch_constants.RESOURCE_PERMISSION_TYPE, resource), resource_tag(dispatch_constants.RESOURCE_USER_TYPE, login), action_tag('grant_permission_to_user')] call_request = CallRequest(permission_manager.grant, [resource, login, operations], tags=tags) call_request.reads_resource(dispatch_constants.RESOURCE_USER_TYPE, login) call_request.updates_resource(dispatch_constants.RESOURCE_PERMISSION_TYPE, resource) return self.ok(execution.execute_sync(call_request))
def POST(self): # Params params = self.params() role_id = params.get('role_id', None) resource = params.get('resource', None) operation_names = params.get('operations', None) _check_invalid_params({ 'role_id': role_id, 'resource': resource, 'operation_names': operation_names }) operations = _get_operations(operation_names) # Grant permission synchronously role_manager = managers.role_manager() tags = [ resource_tag(dispatch_constants.RESOURCE_ROLE_TYPE, role_id), action_tag('remove_permission_from_role') ] call_request = CallRequest(role_manager.remove_permissions_from_role, [role_id, resource, operations], tags=tags) call_request.updates_resource(dispatch_constants.RESOURCE_ROLE_TYPE, role_id) return self.ok(execution.execute_sync(call_request))
def POST(self): body = self.params() id = body.get('id') display_name = body.get('display_name') description = body.get('description') notes = body.get('notes') manager = managers.consumer_manager() args = [id, display_name, description, notes] weight = pulp_config.config.getint('tasks', 'create_weight') tags = [resource_tag(dispatch_constants.RESOURCE_CONSUMER_TYPE, id), action_tag('create')] call_request = CallRequest(manager.register, args, weight=weight, tags=tags) call_request.creates_resource(dispatch_constants.RESOURCE_CONSUMER_TYPE, id) call_report = CallReport.from_call_request(call_request) call_report.serialize_result = False consumer = execution.execute_sync(call_request, call_report) consumer.update({'_href': serialization.link.child_link_obj(consumer['id'])}) return self.created(consumer['_href'], consumer)
def POST(self): body = self.params() id = body.get('id') display_name = body.get('display_name') description = body.get('description') notes = body.get('notes') manager = managers.consumer_manager() args = [id, display_name, description, notes] weight = pulp_config.config.getint('tasks', 'create_weight') tags = [ resource_tag(dispatch_constants.RESOURCE_CONSUMER_TYPE, id), action_tag('create') ] call_request = CallRequest(manager.register, args, weight=weight, tags=tags) call_request.creates_resource( dispatch_constants.RESOURCE_CONSUMER_TYPE, id) call_report = CallReport.from_call_request(call_request) call_report.serialize_result = False consumer = execution.execute_sync(call_request, call_report) consumer.update( {'_href': serialization.link.child_link_obj(consumer['id'])}) return self.created(consumer['_href'], consumer)
def DELETE(self, role_id, login): role_manager = managers.role_manager() tags = [resource_tag(dispatch_constants.RESOURCE_ROLE_TYPE, role_id), action_tag('remove_user_from_role')] call_request = CallRequest(role_manager.remove_user_from_role, [role_id, login], tags=tags, archive=True) call_request.updates_resource(dispatch_constants.RESOURCE_USER_TYPE, login) call_request.reads_resource(dispatch_constants.RESOURCE_ROLE_TYPE, role_id) return self.ok(execution.execute_sync(call_request))
def DELETE(self, role_id, login): role_manager = managers.role_manager() resources = {dispatch_constants.RESOURCE_USER_TYPE: {login: dispatch_constants.RESOURCE_UPDATE_OPERATION}, dispatch_constants.RESOURCE_ROLE_TYPE: {role_id: dispatch_constants.RESOURCE_READ_OPERATION}} tags = [resource_tag(dispatch_constants.RESOURCE_ROLE_TYPE, role_id), action_tag('remove_user_from_role')] call_request = CallRequest(role_manager.remove_user_from_role, [role_id, login], resources=resources, tags=tags, archive=True) return self.ok(execution.execute_sync(call_request))
def POST(self): # Pull the repo data out of the request body (validation will occur # in the manager) repo_data = self.params() id = repo_data.get('id', None) display_name = repo_data.get('display_name', None) description = repo_data.get('description', None) notes = repo_data.get('notes', None) importer_type_id = repo_data.get('importer_type_id', None) importer_repo_plugin_config = repo_data.get('importer_config', None) distributors = repo_data.get('distributors', None) # Creation repo_manager = manager_factory.repo_manager() resources = { dispatch_constants.RESOURCE_REPOSITORY_TYPE: { id: dispatch_constants.RESOURCE_CREATE_OPERATION } } args = [id, display_name, description, notes] kwargs = { 'importer_type_id': importer_type_id, 'importer_repo_plugin_config': importer_repo_plugin_config, 'distributor_list': distributors } weight = pulp_config.config.getint('tasks', 'create_weight') tags = [ resource_tag(dispatch_constants.RESOURCE_REPOSITORY_TYPE, id), action_tag('create') ] call_request = CallRequest(repo_manager.create_and_configure_repo, args, kwargs, resources=resources, weight=weight, tags=tags, kwarg_blacklist=[ 'importer_repo_plugin_config', 'distributor_list' ]) repo = execution.execute_sync(call_request) repo.update(serialization.link.child_link_obj(id)) return self.created(id, repo)
def POST(self, role_id): # Params (validation will occur in the manager) params = self.params() login = params.get('login', None) if login is None: raise exceptions.InvalidValue(login) role_manager = managers.role_manager() tags = [resource_tag(dispatch_constants.RESOURCE_ROLE_TYPE, role_id), action_tag('add_user_to_role')] call_request = CallRequest(role_manager.add_user_to_role, [role_id, login], tags=tags) call_request.updates_resource(dispatch_constants.RESOURCE_USER_TYPE, login) return self.ok(execution.execute_sync(call_request))
def POST(self, repo_id, importer_id): importer_manager = manager_factory.repo_importer_manager() importer = importer_manager.get_importer(repo_id) if importer_id != importer['id']: raise exceptions.MissingResource(importer=importer_id) schedule_options = self.params() sync_options = { 'override_config': schedule_options.pop('override_config', {}) } schedule_manager = manager_factory.schedule_manager() resources = { dispatch_constants.RESOURCE_REPOSITORY_TYPE: { repo_id: dispatch_constants.RESOURCE_READ_OPERATION }, dispatch_constants.RESOURCE_REPOSITORY_IMPORTER_TYPE: { importer_id: dispatch_constants.RESOURCE_UPDATE_OPERATION } } weight = pulp_config.config.getint('tasks', 'create_weight') tags = [ resource_tag(dispatch_constants.RESOURCE_REPOSITORY_TYPE, repo_id), resource_tag(dispatch_constants.RESOURCE_REPOSITORY_IMPORTER_TYPE, importer_id), action_tag('create_sync_schedule') ] call_request = CallRequest( schedule_manager.create_sync_schedule, [repo_id, importer_id, sync_options, schedule_options], resources=resources, weight=weight, tags=tags, archive=True) schedule_id = execution.execute_sync(call_request) scheduler = dispatch_factory.scheduler() schedule = scheduler.get(schedule_id) obj = serialization.dispatch.scheduled_sync_obj(schedule) obj.update(serialization.link.child_link_obj(schedule_id)) return self.created(obj['_href'], obj)
def POST(self): group_data = self.params() group_id = group_data.pop('id', None) if group_id is None: raise pulp_exceptions.MissingValue(['id']) display_name = group_data.pop('display_name', None) description = group_data.pop('description', None) consumer_ids = group_data.pop('consumer_ids', None) notes = group_data.pop('notes', None) if group_data: raise pulp_exceptions.InvalidValue(group_data.keys()) manager = managers_factory.consumer_group_manager() weight = pulp_config.config.getint('tasks', 'create_weight') tags = [resource_tag(dispatch_constants.RESOURCE_CONSUMER_GROUP_TYPE, group_id)] call_request = CallRequest(manager.create_consumer_group, [group_id, display_name, description, consumer_ids, notes], weight=weight, tags=tags) call_request.creates_resource(dispatch_constants.RESOURCE_CONSUMER_GROUP_TYPE, group_id) group = execution.execute_sync(call_request) group.update(serialization.link.child_link_obj(group['id'])) return self.created(group['_href'], group)
def DELETE(self, role_id, login): role_manager = managers.role_manager() resources = { dispatch_constants.RESOURCE_USER_TYPE: { login: dispatch_constants.RESOURCE_UPDATE_OPERATION }, dispatch_constants.RESOURCE_ROLE_TYPE: { role_id: dispatch_constants.RESOURCE_READ_OPERATION } } tags = [ resource_tag(dispatch_constants.RESOURCE_ROLE_TYPE, role_id), action_tag('remove_user_from_role') ] call_request = CallRequest(role_manager.remove_user_from_role, [role_id, login], resources=resources, tags=tags, archive=True) return self.ok(execution.execute_sync(call_request))
def POST(self, repo_id, distributor_id): distributor_manager = manager_factory.repo_distributor_manager() distributor_manager.get_distributor(repo_id, distributor_id) schedule_options = self.params() publish_options = { 'override_config': schedule_options.pop('override_config', {}) } schedule_manager = manager_factory.schedule_manager() resources = { dispatch_constants.RESOURCE_REPOSITORY_TYPE: { repo_id: dispatch_constants.RESOURCE_READ_OPERATION }, dispatch_constants.RESOURCE_REPOSITORY_DISTRIBUTOR_TYPE: { distributor_id: dispatch_constants.RESOURCE_UPDATE_OPERATION } } weight = pulp_config.config.getint('tasks', 'create_weight') tags = [ resource_tag(dispatch_constants.RESOURCE_REPOSITORY_TYPE, repo_id), resource_tag( dispatch_constants.RESOURCE_REPOSITORY_DISTRIBUTOR_TYPE, distributor_id), action_tag('create_publish_schedule') ] call_request = CallRequest( schedule_manager.create_publish_schedule, [repo_id, distributor_id, publish_options, schedule_options], resources=resources, weight=weight, tags=tags, archive=True) schedule_id = execution.execute_sync(call_request) scheduler = dispatch_factory.scheduler() schedule = scheduler.get(schedule_id) obj = serialization.dispatch.scheduled_publish_obj(schedule) obj.update(serialization.link.child_link_obj(schedule_id)) return self.created(obj['_href'], obj)
def POST(self, role_id): # Params (validation will occur in the manager) params = self.params() login = params.get('login', None) if login is None: raise exceptions.InvalidValue(login) role_manager = managers.role_manager() resources = { dispatch_constants.RESOURCE_USER_TYPE: { login: dispatch_constants.RESOURCE_UPDATE_OPERATION } } tags = [ resource_tag(dispatch_constants.RESOURCE_ROLE_TYPE, role_id), action_tag('add_user_to_role') ] call_request = CallRequest(role_manager.add_user_to_role, [role_id, login], resources=resources, tags=tags) return self.ok(execution.execute_sync(call_request))