Example #1
0
def list_oozie_workflow(request, job_id, coordinator_job_id=None):
  oozie_workflow = check_access_and_get_oozie_job(request, job_id)

  oozie_coordinator = None
  if coordinator_job_id is not None:
    oozie_coordinator = check_access_and_get_oozie_job(request, coordinator_job_id)

  history = History.cross_reference_submission_history(request.user, job_id, coordinator_job_id)

  hue_coord = history and history.get_coordinator() or History.get_coordinator_from_config(oozie_workflow.conf_dict)
  hue_workflow = (hue_coord and hue_coord.workflow) or (history and history.get_workflow()) or History.get_workflow_from_config(oozie_workflow.conf_dict)

  if hue_coord: Job.objects.is_accessible_or_exception(request, hue_coord.workflow.id)
  if hue_workflow: Job.objects.is_accessible_or_exception(request, hue_workflow.id)

  # Add parameters from coordinator to workflow if possible
  parameters = {}
  if history and history.properties_dict:
    parameters = history.properties_dict
  elif hue_workflow is not None:
    for param in hue_workflow.find_parameters():
      if param in oozie_workflow.conf_dict:
        parameters[param] = oozie_workflow.conf_dict[param]


  return render('dashboard/list_oozie_workflow.mako', request, {
    'history': history,
    'oozie_workflow': oozie_workflow,
    'oozie_coordinator': oozie_coordinator,
    'hue_workflow': hue_workflow,
    'hue_coord': hue_coord,
    'parameters': parameters,
  })
Example #2
0
def list_oozie_workflow(request, job_id, coordinator_job_id=None):
    oozie_workflow = check_job_access_permission(request, job_id)

    oozie_coordinator = None
    if coordinator_job_id is not None:
        oozie_coordinator = check_job_access_permission(
            request, coordinator_job_id)

    history = History.cross_reference_submission_history(
        request.user, job_id, coordinator_job_id)

    hue_coord = history and history.get_coordinator(
    ) or History.get_coordinator_from_config(oozie_workflow.conf_dict)
    hue_workflow = (hue_coord and hue_coord.workflow) or (
        history
        and history.get_workflow()) or History.get_workflow_from_config(
            oozie_workflow.conf_dict)

    if hue_coord:
        Job.objects.is_accessible_or_exception(request, hue_coord.workflow.id)
    if hue_workflow:
        Job.objects.is_accessible_or_exception(request, hue_workflow.id)

    parameters = oozie_workflow.conf_dict.copy()

    return render(
        'dashboard/list_oozie_workflow.mako', request, {
            'history': history,
            'oozie_workflow': oozie_workflow,
            'oozie_coordinator': oozie_coordinator,
            'hue_workflow': hue_workflow,
            'hue_coord': hue_coord,
            'parameters': parameters,
            'has_job_edition_permission': has_job_edition_permission,
        })
Example #3
0
def list_oozie_workflow(request, job_id, coordinator_job_id=None):
  oozie_workflow = check_job_access_permission(request, job_id)

  oozie_coordinator = None
  if coordinator_job_id is not None:
    oozie_coordinator = check_job_access_permission(request, coordinator_job_id)

  history = History.cross_reference_submission_history(request.user, job_id, coordinator_job_id)

  hue_coord = history and history.get_coordinator() or History.get_coordinator_from_config(oozie_workflow.conf_dict)
  hue_workflow = (hue_coord and hue_coord.workflow) or (history and history.get_workflow()) or History.get_workflow_from_config(oozie_workflow.conf_dict)

  if hue_coord: Job.objects.is_accessible_or_exception(request, hue_coord.workflow.id)
  if hue_workflow: Job.objects.is_accessible_or_exception(request, hue_workflow.id)

  parameters = oozie_workflow.conf_dict.copy()

  return render('dashboard/list_oozie_workflow.mako', request, {
    'history': history,
    'oozie_workflow': oozie_workflow,
    'oozie_coordinator': oozie_coordinator,
    'hue_workflow': hue_workflow,
    'hue_coord': hue_coord,
    'parameters': parameters,
    'has_job_edition_permission': has_job_edition_permission,
  })
Example #4
0
def list_oozie_workflow(request, job_id, coordinator_job_id=None, bundle_job_id=None):
  oozie_workflow = check_job_access_permission(request, job_id)

  oozie_coordinator = None
  if coordinator_job_id is not None:
    oozie_coordinator = check_job_access_permission(request, coordinator_job_id)

  oozie_bundle = None
  if bundle_job_id is not None:
    oozie_bundle = check_job_access_permission(request, bundle_job_id)

  if oozie_coordinator is not None:
    setattr(oozie_workflow, 'oozie_coordinator', oozie_coordinator)
  if oozie_bundle is not None:
    setattr(oozie_workflow, 'oozie_bundle', oozie_bundle)

  history = History.cross_reference_submission_history(request.user, job_id, coordinator_job_id)

  hue_coord = history and history.get_coordinator() or History.get_coordinator_from_config(oozie_workflow.conf_dict)
  hue_workflow = (hue_coord and hue_coord.workflow) or (history and history.get_workflow()) or History.get_workflow_from_config(oozie_workflow.conf_dict)

  if hue_coord: Job.objects.is_accessible_or_exception(request, hue_coord.workflow.id)
  if hue_workflow: Job.objects.is_accessible_or_exception(request, hue_workflow.id)

  parameters = oozie_workflow.conf_dict.copy()
  for action in oozie_workflow.actions:
    action.oozie_coordinator = oozie_coordinator
    action.oozie_bundle = oozie_bundle

  if hue_workflow:
    workflow_graph = hue_workflow.gen_status_graph(oozie_workflow)
    full_node_list = hue_workflow.node_list
  else:
    workflow_graph, full_node_list = Workflow.gen_status_graph_from_xml(request.user, oozie_workflow)

  if request.GET.get('format') == 'json':
    return_obj = {
      'id': oozie_workflow.id,
      'status':  oozie_workflow.status,
      'progress': oozie_workflow.get_progress(full_node_list),
      'graph': workflow_graph,
      'log': oozie_workflow.log,
      'actions': massaged_workflow_actions_for_json(oozie_workflow.get_working_actions(), oozie_coordinator, oozie_bundle)
    }
    return HttpResponse(encode_json_for_js(return_obj), mimetype="application/json")

  return render('dashboard/list_oozie_workflow.mako', request, {
    'history': history,
    'oozie_workflow': oozie_workflow,
    'oozie_coordinator': oozie_coordinator,
    'oozie_bundle': oozie_bundle,
    'hue_workflow': hue_workflow,
    'hue_coord': hue_coord,
    'parameters': parameters,
    'has_job_edition_permission': has_job_edition_permission,
    'workflow_graph': workflow_graph
  })
Example #5
0
def list_oozie_workflow(request, job_id, coordinator_job_id=None, bundle_job_id=None):
  oozie_workflow = check_job_access_permission(request, job_id)

  oozie_coordinator = None
  if coordinator_job_id is not None:
    oozie_coordinator = check_job_access_permission(request, coordinator_job_id)

  oozie_bundle = None
  if bundle_job_id is not None:
    oozie_bundle = check_job_access_permission(request, bundle_job_id)

  if oozie_coordinator is not None:
    setattr(oozie_workflow, 'oozie_coordinator', oozie_coordinator)
  if oozie_bundle is not None:
    setattr(oozie_workflow, 'oozie_bundle', oozie_bundle)

  history = History.cross_reference_submission_history(request.user, job_id, coordinator_job_id)

  hue_coord = history and history.get_coordinator() or History.get_coordinator_from_config(oozie_workflow.conf_dict)
  hue_workflow = (hue_coord and hue_coord.workflow) or (history and history.get_workflow()) or History.get_workflow_from_config(oozie_workflow.conf_dict)

  if hue_coord: Job.objects.is_accessible_or_exception(request, hue_coord.workflow.id)
  if hue_workflow: Job.objects.is_accessible_or_exception(request, hue_workflow.id)

  parameters = oozie_workflow.conf_dict.copy()
  for action in oozie_workflow.actions:
    action.oozie_coordinator = oozie_coordinator
    action.oozie_bundle = oozie_bundle

  if hue_workflow:
    workflow_graph = hue_workflow.gen_status_graph(oozie_workflow)
    full_node_list = hue_workflow.node_list
  else:
    workflow_graph, full_node_list = Workflow.gen_status_graph_from_xml(request.user, oozie_workflow)

  if request.GET.get('format') == 'json':
    return_obj = {
      'id': oozie_workflow.id,
      'status':  oozie_workflow.status,
      'progress': oozie_workflow.get_progress(full_node_list),
      'graph': workflow_graph,
      'log': oozie_workflow.log,
      'actions': massaged_workflow_actions_for_json(oozie_workflow.get_working_actions(), oozie_coordinator, oozie_bundle)
    }
    return HttpResponse(encode_json_for_js(return_obj), mimetype="application/json")

  return render('dashboard/list_oozie_workflow.mako', request, {
    'history': history,
    'oozie_workflow': oozie_workflow,
    'oozie_coordinator': oozie_coordinator,
    'oozie_bundle': oozie_bundle,
    'hue_workflow': hue_workflow,
    'hue_coord': hue_coord,
    'parameters': parameters,
    'has_job_edition_permission': has_job_edition_permission,
    'workflow_graph': workflow_graph
  })
Example #6
0
def list_oozie_workflow(request, job_id, coordinator_job_id=None):
    oozie_workflow = check_job_access_permission(request, job_id)

    oozie_coordinator = None
    if coordinator_job_id is not None:
        oozie_coordinator = check_job_access_permission(
            request, coordinator_job_id)

    history = History.cross_reference_submission_history(
        request.user, job_id, coordinator_job_id)

    hue_coord = history and history.get_coordinator(
    ) or History.get_coordinator_from_config(oozie_workflow.conf_dict)
    hue_workflow = (hue_coord and hue_coord.workflow) or (
        history
        and history.get_workflow()) or History.get_workflow_from_config(
            oozie_workflow.conf_dict)

    if hue_coord:
        Job.objects.is_accessible_or_exception(request, hue_coord.workflow.id)
    if hue_workflow:
        Job.objects.is_accessible_or_exception(request, hue_workflow.id)

    # Add parameters from coordinator to workflow if possible
    parameters = {}
    if history and history.properties_dict:
        parameters = history.properties_dict
    elif hue_workflow is not None:
        for param in hue_workflow.find_parameters():
            if param in oozie_workflow.conf_dict:
                parameters[param] = oozie_workflow.conf_dict[param]

    return render(
        'dashboard/list_oozie_workflow.mako', request, {
            'history': history,
            'oozie_workflow': oozie_workflow,
            'oozie_coordinator': oozie_coordinator,
            'hue_workflow': hue_workflow,
            'hue_coord': hue_coord,
            'parameters': parameters,
            'has_job_edition_permission': has_job_edition_permission,
        })