Exemple #1
0
 def tearDown(self):
     super(CoordinatorTests, self).tearDown()
     self.coordinator = None
     dispatch_factory._task_queue = self._task_queue_factory
     self._task_queue_factory = None
     self.collection.drop()
     self.collection = None
     QueuedCall.get_collection().drop()
     ArchivedCall.get_collection().drop()
 def tearDown(self):
     super(CoordinatorTests, self).tearDown()
     self.coordinator = None
     dispatch_factory._task_queue = self._task_queue_factory
     self._task_queue_factory = None
     self.collection.drop()
     self.collection = None
     QueuedCall.get_collection().drop()
     ArchivedCall.get_collection().drop()
Exemple #3
0
def archive_call(call_request, call_report):
    """
    Store a completed call request in the database.

    :param call_request: call request to store
    :type call_request: pulp.server.dispatch.call.CallRequest
    :param call_report: call report corresponding to the call request
    :type call_report: pulp.server.dispatch.call.CallReport
    """
    archived_call = ArchivedCall(call_request, call_report)
    collection = ArchivedCall.get_collection()
    collection.insert(archived_call, safe=True)
Exemple #4
0
 def test_task_archival(self):
     task = Task(CallRequest(call_without_callbacks, archive=True))
     try:
         task._run()
     except:
         self.fail(traceback.format_exc())
     collection = ArchivedCall.get_collection()
     archived_call = collection.find_one({'serialized_call_report.call_request_id': task.call_request.id})
     self.assertFalse(archived_call is None)
Exemple #5
0
 def test_task_archival(self):
     task = Task(CallRequest(call_without_callbacks, archive=True))
     try:
         task._run()
     except:
         self.fail(traceback.format_exc())
     collection = ArchivedCall.get_collection()
     archived_call = collection.find_one(
         {'serialized_call_report.call_request_id': task.call_request.id})
     self.assertFalse(archived_call is None)
Exemple #6
0
def archive_call(call_request, call_report):
    """
    Store a completed call request in the database.
    @param call_request: call request to store
    @type call_request: L{pulp.server.dispatch.call.CallRequest}
    @param call_report: call report corresponding to the call request
    @type call_report: L{pulp.server.dispatch.call.CallReport}
    """
    archived_call = ArchivedCall(call_request, call_report)
    collection = ArchivedCall.get_collection()
    collection.insert(archived_call, safe=True)
Exemple #7
0
def purge_archived_tasks():
    """
    Remove archived tasks from the database that have expired.
    """
    archived_call_lifetime = pulp_config.config.getint('tasks', 'archived_call_lifetime')

    delta = datetime.timedelta(hours=archived_call_lifetime)
    now = datetime.datetime.now(tz=dateutils.utc_tz())
    expired_timestamp = dateutils.datetime_to_utc_timestamp(now - delta)

    collection = ArchivedCall.get_collection()
    collection.remove({'timestamp': {'$lte': expired_timestamp}}, safe=True)
Exemple #8
0
def find_archived_calls(**criteria):
    query = {}
    if 'task_id' in criteria:
        query['serialized_call_report.task_id'] = criteria['task_id']
    if 'task_group_id' in criteria:
        query['serialized_call_report.task_group_id'] = criteria['task_group_id']
    if 'state' in criteria:
        query['serialized_call_report.state'] = criteria['state']
    if 'call_name' in criteria:
        call_name = callable_name(criteria.get('class_name'), criteria['call_name'])
        query['serialized_call_request.callable_name'] = call_name
    # XXX allow args, kwargs, and resources?
    if 'tags' in criteria:
        query['serialized_call_request.tags'] = {'$in': criteria['tags']}

    collection = ArchivedCall.get_collection()
    cursor = collection.find(query)
    return cursor
Exemple #9
0
def find_archived_calls(**criteria):
    """
    Find archived call requests that match the given criteria.
    Criteria is passed in as keyword arguments.

    Currently supported criteria:
    * call_request_id
    * call_request_group_id

    @return: (possibly empty) mongo collection cursor containing the matching archived calls
    @rtype: L{pymongo.cursor.Cursor}
    """
    query = {}
    if 'call_request_id' in criteria:
        query['serialized_call_request.id'] = criteria['call_request_id']
    if 'call_request_group_id' in criteria:
        query['serialized_call_request.group_id'] = criteria['call_request_group_id']

    collection = ArchivedCall.get_collection()
    cursor = collection.find(query)
    return cursor
Exemple #10
0
def find_archived_calls(**criteria):
    """
    Find archived call requests that match the given criteria.
    Criteria is passed in as keyword arguments.

    Currently supported criteria:
     * call_request_id
     * call_request_group_id

    :return: (possibly empty) mongo collection cursor containing the matching archived calls
    :rtype: pymongo.cursor.Cursor
    """
    query = {}
    if 'call_request_id' in criteria:
        query['serialized_call_report.call_request_id'] = criteria[
            'call_request_id']
    if 'call_request_group_id' in criteria:
        query['serialized_call_report.call_request_group_id'] = criteria[
            'call_request_group_id']

    collection = ArchivedCall.get_collection()
    cursor = collection.find(query)
    return cursor
Exemple #11
0
 def tearDown(self):
     super(TaskArchivalTests, self).tearDown()
     ArchivedCall.get_collection().drop()
Exemple #12
0
 def tearDown(self):
     super(TaskArchivalTests, self).tearDown()
     ArchivedCall.get_collection().drop()
 def setUp(self):
     super(ArchivedCallTests, self).setUp()
     self.archived_call_collection = ArchivedCall.get_collection()
     self.archived_call_collection.remove(safe=True)  # cleanup others' messes
Exemple #14
0
def archive_call(call_request, call_report):
    archived_call = ArchivedCall(call_request, call_report)
    collection = ArchivedCall.get_collection()
    collection.insert(archived_call, safe=True)
Exemple #15
0
 def setUp(self):
     super(ArchivedCallTests, self).setUp()
     self.archived_call_collection = ArchivedCall.get_collection()
     self.archived_call_collection.remove(
         safe=True)  # cleanup others' messes