Esempio n. 1
0
    def task_log_get_all(self, ctxt, task_name, period_beginning,
                         period_ending, host=None, state=None):
        """Get task logs from the DB from all cells or a particular
        cell.

        If 'host' is not None, host will be of the format 'cell!name@host',
        with '@host' being optional.  The query will be directed to the
        appropriate cell and return all task logs, or task logs matching
        the host if specified.

        'state' also may be None.  If it's not, filter by the state as well.
        """
        if host is None:
            cell_name = None
        else:
            cell_name, host = cells_utils.split_cell_and_item(host)
            # If no cell name was given, assume that the host name is the
            # cell_name and that the target is all hosts
            if cell_name is None:
                cell_name, host = host, cell_name
        responses = self.msg_runner.task_log_get_all(ctxt, cell_name,
                task_name, period_beginning, period_ending,
                host=host, state=state)
        # 1 response per cell.  Each response is a list of task log
        # entries.
        ret_task_logs = []
        for response in responses:
            task_logs = response.value_or_raise()
            for task_log in task_logs:
                cells_utils.add_cell_to_task_log(task_log,
                                                 response.cell_name)
                ret_task_logs.append(task_log)
        return ret_task_logs
Esempio n. 2
0
 def _build_task_log_responses(self, num):
     responses = []
     expected_response = []
     # 3 cells... so 3 responses.  Each response is a list of task log
     # entries. Manager should turn these into a single list of
     # task log entries.
     for i in xrange(num):
         cell_name = 'path!to!cell%i' % i
         task_logs = []
         for task_log in FAKE_TASK_LOGS:
             task_logs.append(copy.deepcopy(task_log))
             expected_task_log = copy.deepcopy(task_log)
             cells_utils.add_cell_to_task_log(expected_task_log,
                                              cell_name)
             expected_response.append(expected_task_log)
         response = messaging.Response(self.ctxt, cell_name, task_logs,
                                       False)
         responses.append(response)
     return expected_response, responses
Esempio n. 3
0
    def task_log_get_all(self,
                         ctxt,
                         task_name,
                         period_beginning,
                         period_ending,
                         host=None,
                         state=None):
        """Get task logs from the DB from all cells or a particular
        cell.

        If 'host' is not None, host will be of the format 'cell!name@host',
        with '@host' being optional.  The query will be directed to the
        appropriate cell and return all task logs, or task logs matching
        the host if specified.

        'state' also may be None.  If it's not, filter by the state as well.
        """
        if host is None:
            cell_name = None
        else:
            cell_name, host = cells_utils.split_cell_and_item(host)
            # If no cell name was given, assume that the host name is the
            # cell_name and that the target is all hosts
            if cell_name is None:
                cell_name, host = host, cell_name
        responses = self.msg_runner.task_log_get_all(ctxt,
                                                     cell_name,
                                                     task_name,
                                                     period_beginning,
                                                     period_ending,
                                                     host=host,
                                                     state=state)
        # 1 response per cell.  Each response is a list of task log
        # entries.
        ret_task_logs = []
        for response in responses:
            task_logs = response.value_or_raise()
            for task_log in task_logs:
                cells_utils.add_cell_to_task_log(task_log, response.cell_name)
                ret_task_logs.append(task_log)
        return ret_task_logs