예제 #1
0
    def unregister(consumer_id):
        """
        Unregisters given consumer.

        :param  consumer_id:            identifies the consumer being unregistered
        :type   consumer_id:            str
        :raises MissingResource:        if the given consumer does not exist
        :raises OperationFailed:        if any part of the unregister process fails; the exception
                                        will contain information on which sections failed
        :raises PulpExecutionException: if error during updating database collection
        """

        ConsumerManager.get_consumer(consumer_id)

        # Remove associate bind
        manager = factory.consumer_bind_manager()
        manager.consumer_deleted(consumer_id)

        # Remove associated profiles
        manager = factory.consumer_profile_manager()
        manager.consumer_deleted(consumer_id)

        # Notify agent
        agent_consumer = factory.consumer_agent_manager()
        agent_consumer.unregistered(consumer_id)

        # remove from consumer groups
        group_manager = factory.consumer_group_manager()
        group_manager.remove_consumer_from_groups(consumer_id)

        # delete any scheduled unit installs
        schedule_manager = factory.consumer_schedule_manager()
        for schedule in schedule_manager.get(consumer_id):
            # using "delete" on utils skips validation that the consumer exists.
            schedule_utils.delete(schedule.id)

        # Database Updates
        try:
            Consumer.get_collection().remove({'id': consumer_id}, safe=True)
        except Exception:
            _logger.exception(
                'Error updating database collection while removing consumer [%s]'
                % consumer_id)
            raise PulpExecutionException(
                "database-error"), None, sys.exc_info()[2]

        # remove the consumer from any groups it was a member of
        group_manager = factory.consumer_group_manager()
        group_manager.remove_consumer_from_groups(consumer_id)

        factory.consumer_history_manager().record_event(
            consumer_id, 'consumer_unregistered')
예제 #2
0
파일: cud.py 프로젝트: credativ/pulp
    def unregister(consumer_id):
        """
        Unregisters given consumer.

        :param  consumer_id:            identifies the consumer being unregistered
        :type   consumer_id:            str
        :raises MissingResource:        if the given consumer does not exist
        :raises OperationFailed:        if any part of the unregister process fails; the exception
                                        will contain information on which sections failed
        :raises PulpExecutionException: if error during updating database collection
        """

        ConsumerManager.get_consumer(consumer_id)

        # Remove associate bind
        manager = factory.consumer_bind_manager()
        manager.consumer_deleted(consumer_id)

        # Remove associated profiles
        manager = factory.consumer_profile_manager()
        manager.consumer_deleted(consumer_id)

        # Notify agent
        agent_consumer = factory.consumer_agent_manager()
        agent_consumer.unregister(consumer_id)

        # remove from consumer groups
        group_manager = factory.consumer_group_manager()
        group_manager.remove_consumer_from_groups(consumer_id)

        # delete any scheduled unit installs
        schedule_manager = factory.consumer_schedule_manager()
        for schedule in schedule_manager.get(consumer_id):
            # using "delete" on utils skips validation that the consumer exists.
            schedule_utils.delete(schedule.id)

        # Database Updates
        try:
            Consumer.get_collection().remove({'id': consumer_id}, safe=True)
        except Exception:
            _logger.exception(
                'Error updating database collection while removing consumer [%s]' % consumer_id)
            raise PulpExecutionException("database-error"), None, sys.exc_info()[2]

        # remove the consumer from any groups it was a member of
        group_manager = factory.consumer_group_manager()
        group_manager.remove_consumer_from_groups(consumer_id)

        factory.consumer_history_manager().record_event(consumer_id, 'consumer_unregistered')
예제 #3
0
파일: consumers.py 프로젝트: ipanova/pulp
    def GET(self, consumer_id):
        manager = managers.consumer_schedule_manager()
        schedules = manager.get(consumer_id, self.ACTION)

        schedule_objs = []
        for schedule in schedules:
            obj = serialization.dispatch.scheduled_unit_management_obj(
                schedule.for_display())
            obj.update(serialization.link.child_link_obj(obj['_id']))
            schedule_objs.append(obj)

        # this behavior is debatable, but I'm keeping it for backward-compatibility.
        if not schedule_objs:
            raise MissingResource(schedule=None)
        return self.ok(schedule_objs)
예제 #4
0
파일: consumers.py 프로젝트: ipanova/pulp
 def __init__(self):
     super(UnitActionScheduleResource, self).__init__()
     self.manager = managers.consumer_schedule_manager()
예제 #5
0
파일: consumers.py 프로젝트: ipanova/pulp
 def __init__(self):
     super(UnitActionScheduleCollection, self).__init__()
     self.manager = managers.consumer_schedule_manager()
예제 #6
0
파일: consumers.py 프로젝트: zjhuntin/pulp
 def __init__(self):
     super(ConsumerUnitActionSchedulesView, self).__init__()
     self.manager = factory.consumer_schedule_manager()
예제 #7
0
파일: consumers.py 프로젝트: alanoe/pulp
 def __init__(self):
     super(ConsumerUnitActionSchedulesView, self).__init__()
     self.manager = factory.consumer_schedule_manager()