Exemple #1
0
 def logs(self, appid, app_type, log_name, is_embeddable=False):
   logs = ''
   logs_list = []
   try:
     if app_type == 'YarnV2' or app_type == 'MAPREDUCE':
       if log_name == 'default':
         response = job_single_logs(MockDjangoRequest(self.user), job=appid)
         parseResponse = json.loads(response.content)
         logs = parseResponse.get('logs')
         logs_list = parseResponse.get('logsList')
         if logs and len(logs) == 4:
           if app_type == 'YarnV2' and logs[0]: #logs[0] is diagnostics
             logs = logs[0]
           else:
             logs = logs[1]
       else:
         response = job_attempt_logs_json(MockDjangoRequest(self.user), job=appid, name=log_name, is_embeddable=is_embeddable)
         logs = json.loads(response.content).get('log')
     elif app_type == 'SPARK':
       response = job_executor_logs(MockDjangoRequest(self.user), job=appid, name=log_name)
       logs = json.loads(response.content).get('log')
     else:
       logs = None
   except PopupException as e:
     LOG.warn('No task attempt found for logs: %s' % smart_str(e))
   return {'logs': logs, 'logsList': logs_list}
Exemple #2
0
 def logs(self, appid, app_type, log_name, is_embeddable=False):
     logs = ''
     try:
         if app_type == 'MAPREDUCE' or app_type == 'Oozie Launcher':
             if log_name == 'default':
                 response = job_single_logs(MockDjangoRequest(self.user),
                                            job=appid)
                 logs = json.loads(response.content).get('logs')
                 if logs and len(logs) == 4:
                     logs = logs[1]
             else:
                 response = job_attempt_logs_json(
                     MockDjangoRequest(self.user),
                     job=appid,
                     name=log_name,
                     is_embeddable=is_embeddable)
                 logs = json.loads(response.content).get('log')
         elif app_type == 'SPARK':
             response = job_executor_logs(MockDjangoRequest(self.user),
                                          job=appid,
                                          name=log_name)
             logs = json.loads(response.content).get('log')
         else:
             logs = None
     except PopupException, e:
         LOG.warn('No task attempt found for logs: %s' % smart_str(e))
Exemple #3
0
def _manage_oozie_job(user, action, app_ids):
  if action == 'change' or action == 'ignore' or len(app_ids) == 1:
    request = MockDjangoRequest(user)
    response = manage_oozie_jobs(request, app_ids[0], action['action'])
  else:
    request = MockDjangoRequest(user, post={'job_ids': ' '.join(app_ids), 'action': action['action']})
    response = bulk_manage_oozie_jobs(request)

  result = json.loads(response.content)
  result['status'] = result.get('totalErrors', 0)
  result['message'] = _('%s action sent to %s jobs') % (action['action'], result.get('totalRequests', 1))
  return result
Exemple #4
0
    def action(self, appid, action):
        if action == 'change' or action == 'ignore' or ',' not in appid:
            request = MockDjangoRequest(self.user)
            response = manage_oozie_jobs(request, appid, action['action'])
        else:
            request = MockDjangoRequest(self.user,
                                        post={
                                            'job_ids': appid,
                                            'action': action['action']
                                        })
            response = bulk_manage_oozie_jobs(request)

        return json.loads(response.content)
Exemple #5
0
 def logs(self, appid, app_type, log_name):
     if app_type == 'MAPREDUCE':
         if log_name == 'default':
             response = job_single_logs(MockDjangoRequest(self.user),
                                        job=appid)
             logs = json.loads(response.content).get('logs')
         else:
             response = job_attempt_logs_json(MockDjangoRequest(self.user),
                                              job=appid,
                                              name=log_name)
             logs = json.loads(response.content).get('log')
     else:
         logs = None
     return {'logs': logs}
Exemple #6
0
 def logs(self, appid, app_type):
   if app_type == 'MAPREDUCE':
     response = job_attempt_logs_json(MockDjangoRequest(self.user), job=appid)
     logs = json.loads(response.content)['log']
   else:
     logs = None
   return {'progress': 0, 'logs': {'default': logs}}
Exemple #7
0
 def logs(self, appid, app_type, log_name):
   try:
     response = job_attempt_logs_json(MockDjangoRequest(self.user), job=self.app_id, name=log_name)
     logs = json.loads(response.content)['log']
   except PopupException, e:
     LOG.warn('No task attempt found for default logs: %s' % e)
     logs = ''
Exemple #8
0
    def app(self, appid):
        if '@' in appid:
            return WorkflowActionApi(self.user).app(appid)

        oozie_api = get_oozie(self.user)
        workflow = oozie_api.get_job(jobid=appid)

        common = {
            'id': workflow.id,
            'name': workflow.appName,
            'status': workflow.status,
            'apiStatus': self._api_status(workflow.status),
            'progress': workflow.get_progress(),
            'type': 'workflow',
        }

        request = MockDjangoRequest(self.user)
        response = list_oozie_workflow(request, job_id=appid)
        common['properties'] = json.loads(response.content)
        common['properties']['xml'] = ''
        common['properties']['properties'] = ''
        common['properties']['coordinator_id'] = workflow.get_parent_job_id()
        common['properties']['bundle_id'] = workflow.conf_dict.get(
            'oozie.bundle.id')

        return common
Exemple #9
0
    def app(self, appid):
        if '@' in appid:
            return WorkflowActionApi(self.user).app(appid)

        oozie_api = get_oozie(self.user)
        workflow = oozie_api.get_job(jobid=appid)

        common = {
            'id': workflow.id,
            'name': workflow.appName,
            'status': workflow.status,
            'apiStatus': self._api_status(workflow.status),
            'progress': workflow.get_progress(),
            'type': 'workflow',
            'user': workflow.user,
            'duration': workflow.durationTime,
            'submitted': workflow.submissionTime * 1000,
            'canWrite': has_job_edition_permission(workflow, self.user),
        }

        request = MockDjangoRequest(self.user)
        response = list_oozie_workflow(request, job_id=appid)
        common['properties'] = json.loads(response.content)
        common['properties']['xml'] = ''
        common['properties']['properties'] = ''
        common['properties']['coordinator_id'] = workflow.get_parent_job_id()
        common['properties']['bundle_id'] = workflow.conf_dict.get(
            'oozie.bundle.id')
        common['properties']['parameters'] = self._get_variables(workflow)
        common['doc_url'] = common['properties'].get('doc_url')

        return common
    def app(self, appid):
        oozie_api = get_oozie(self.user)
        coordinator = oozie_api.get_coordinator(jobid=appid)

        request = MockDjangoRequest(self.user, get=MockGet())
        response = list_oozie_coordinator(request, job_id=appid)

        common = {
            'id': coordinator.coordJobId,
            'name': coordinator.coordJobName,
            'status': coordinator.status,
            'apiStatus': self._api_status(coordinator.status),
            'progress': coordinator.get_progress(),
            'type': 'schedule',
            'submitted': format_time(coordinator.startTime),
            'user': coordinator.user,
            'canWrite': has_job_edition_permission(coordinator, self.user),
        }
        common['properties'] = json.loads(response.content)
        for action in common['properties']['actions']:
            action['apiStatus'] = self._task_api_status(action['status'])
        common['properties']['tasks'] = common['properties']['actions']
        common['properties']['xml'] = ''
        common['properties']['properties'] = ''
        common['properties']['bundle_id'] = coordinator.conf_dict.get(
            'oozie.bundle.id')
        common['doc_url'] = common['properties'].get('doc_url')

        return common
Exemple #11
0
    def logs(self, appid, app_type, log_name):
        response = job_attempt_logs_json(MockDjangoRequest(self.user),
                                         job=self.app_id,
                                         name=log_name)
        logs = json.loads(response.content)['log']

        return {'progress': 0, 'logs': logs}
Exemple #12
0
 def logs(self, appid, app_type, log_name):
   logs = ''
   try:
     if app_type == 'MAPREDUCE':
       if log_name == 'default':
         response = job_single_logs(MockDjangoRequest(self.user), job=appid)
         logs = json.loads(response.content).get('logs')
         if logs and len(logs) == 4:
           logs = logs[3]
       else:
         response = job_attempt_logs_json(MockDjangoRequest(self.user), job=appid, name=log_name)
         logs = json.loads(response.content).get('log')
     else:
       logs = None
   except PopupException, e:
     LOG.warn('No task attempt found for logs: %s' % e)
  def action(self, appid, action):
    request = MockDjangoRequest(self.user)
    manage_oozie_jobs(request, action)

    if action == 'change' or action == 'ignore' or ',' not in appid:
      return manage_oozie_jobs(request, action)
    else:
      return bulk_manage_oozie_jobs(request)
Exemple #14
0
    def logs(self, appid, app_type, log_name=None):
        if '@' in appid:
            return WorkflowActionApi(self.user).logs(appid, app_type)

        request = MockDjangoRequest(self.user)
        data = get_oozie_job_log(request, job_id=appid)

        return {'logs': json.loads(data.content)['log']}
Exemple #15
0
  def logs(self, appid, app_type, log_name, is_embeddable=False):
    if log_name == 'default':
      log_name = 'stdout'

    try:
      response = job_attempt_logs_json(MockDjangoRequest(self.user), job=self.app_id, name=log_name, is_embeddable=is_embeddable)
      logs = json.loads(response.content)['log']
    except PopupException as e:
      LOG.warn('No task attempt found for default logs: %s' % e)
      logs = ''
    return {'progress': 0, 'logs': logs}
Exemple #16
0
 def action(self, operation, app_ids):
   if operation['action'] == 'kill':
     kills = []
     for app_id in app_ids:
       try:
         kill_job(MockDjangoRequest(self.user), job=app_id)
       except MessageException:
         kills.append(app_id)
     return {'kills': kills, 'status': len(app_ids) - len(kills), 'message': _('Stop signal sent to %s') % kills}
   else:
     return {}
  def app(self, appid):
    oozie_api = get_oozie(self.user)
    workflow = oozie_api.get_job(jobid=appid)

    common = {'id': workflow.id, 'name': workflow.appName, 'status': workflow.status}

    request = MockDjangoRequest(self.user)
    response = list_oozie_workflow(request, job_id=appid)
    common['properties'] = json.loads(response.content)

    return common
Exemple #18
0
 def action(self, operation, app_ids):
   if operation['action'] == 'kill':
     kills = []
     for app_id in app_ids:
       try:
         response = kill_job(MockDjangoRequest(self.user), job=app_id)
         if isinstance(response, JsonResponse) and json.loads(response.content).get('status') == 0:
            kills.append(app_id)
       except MessageException:
         kills.append(app_id)
     return {'kills': kills, 'status': len(app_ids) - len(kills), 'message': _('Stop signal sent to %s') % kills}
   else:
     return {}
Exemple #19
0
    def app(self, appid):
        oozie_api = get_oozie(self.user)
        coordinator = oozie_api.get_coordinator(jobid=appid)

        request = MockDjangoRequest(self.user, get=MockGet())
        response = list_oozie_coordinator(request, job_id=appid)

        common = {
            'id': coordinator.coordJobId,
            'name': coordinator.coordJobName,
            'status': coordinator.status,
            'apiStatus': self._api_status(coordinator.status),
            'progress': coordinator.get_progress(),
            'type': 'schedule',
            'startTime': format_time(coordinator.startTime),
        }
        common['properties'] = json.loads(response.content)
        common['properties']['xml'] = ''
        common['properties']['properties'] = ''

        return common
Exemple #20
0
    def app(self, appid):
        request = MockDjangoRequest(self.user, get=MockGet())
        response = list_oozie_bundle(request, job_id=appid)
        bundle = json.loads(response.content)

        common = {
            'id': bundle['id'],
            'name': bundle['name'],
            'status': bundle['status'],
            'apiStatus': self._api_status(bundle['status']),
            'progress': bundle['progress'],
            'type': 'bundle',
            'user': bundle['user'],
            'submitted': bundle['submitted'],
            'properties': {}
        }
        common['properties']['actions'] = bundle['actions']
        common['properties']['xml'] = ''
        common['properties']['properties'] = ''
        common['doc_url'] = bundle.get('doc_url')

        return common
    def logs(self, appid, app_type, log_name=None, is_embeddable=False):
        request = MockDjangoRequest(self.user)
        data = get_oozie_job_log(request, job_id=appid)

        return {'logs': json.loads(data.content)['log']}
  def logs(self, appid, app_type):
    request = MockDjangoRequest(self.user)
    data = get_oozie_job_log(request, job_id=appid)

    return {'progress': 0, 'logs': {'default': json.loads(data.content)['log']}}
Exemple #23
0
 def action(self, operation, appid):
     if operation['action'] == 'kill':
         return kill_job(MockDjangoRequest(self.user), job=appid)
     else:
         return {}