Beispiel #1
0
def refresh_action_parameters(request):
  response = {'status': -1}

  try:
    coord_uuid = request.POST.get('uuid')
    workflow_doc = Document2.objects.get(type='oozie-workflow2', owner=request.user, is_managed=True, dependents__uuid__in=[coord_uuid])

    # Refresh the action parameters of a document action in case the document changed
    workflow = Workflow(document=workflow_doc, user=request.user)

    _data = workflow.get_data()
    hive_node = _data['workflow']['nodes'][3]
    query_document = Document2.objects.get_by_uuid(user=request.user, uuid=hive_node['properties']['uuid'])
    parameters = WorkflowBuilder().get_document_parameters(query_document)

    changed = set([p['value'] for p in parameters]) != set([p['value'] for p in hive_node['properties']['parameters']])

    if changed:
      hive_node['properties']['parameters'] = parameters
      workflow.data = json.dumps(_data)

      workflow_doc.update_data({'workflow': _data['workflow']})
      workflow_doc.save()

    response['status'] = 0
    response['parameters'] = parameters
    response['changed'] = changed
  except Exception, e:
    response['message'] = str(e)
Beispiel #2
0
def refresh_action_parameters(request):
  response = {'status': -1}

  try:
    coord_uuid = request.POST.get('uuid')
    workflow_doc = Document2.objects.get(type='oozie-workflow2', owner=request.user, is_managed=True, dependents__uuid__in=[coord_uuid])

    # Refresh the action parameters of a document action in case the document changed
    workflow = Workflow(document=workflow_doc, user=request.user)

    _data = workflow.get_data()
    hive_node = _data['workflow']['nodes'][3]
    query_document = Document2.objects.get_by_uuid(user=request.user, uuid=hive_node['properties']['uuid'])
    parameters = WorkflowBuilder().get_document_parameters(query_document)

    changed = set([p['value'] for p in parameters]) != set([p['value'] for p in hive_node['properties']['parameters']])

    if changed:
      hive_node['properties']['parameters'] = parameters
      workflow.data = json.dumps(_data)

      workflow_doc.update_data({'workflow': _data['workflow']})
      workflow_doc.save()

    response['status'] = 0
    response['parameters'] = parameters
    response['changed'] = changed
  except Exception, e:
    response['message'] = str(e)