def new_workflow(request): doc = None workflow = Workflow() workflow.set_workspace(request.user) workflow.check_workspace(request.fs, request.user) return _edit_workflow(request, doc, workflow)
def new_workflow(request): doc = None workflow = Workflow(user=request.user) workflow.set_workspace(request.user) workflow.check_workspace(request.fs, request.user) return _edit_workflow(request, doc, workflow)
def submit_single_action(request, doc_id, node_id): parent_doc = Document2.objects.get(id=doc_id) workflow_data = Workflow( document=parent_doc).create_single_action_workflow_data(node_id) _data = json.loads(workflow_data) # Create separate wf object for the submit node with new deployment_dir workflow = Workflow(data=workflow_data) workflow.set_workspace(request.user) workflow.check_workspace(request.fs, request.user) workflow.document = wf_doc = Document2.objects.create( name=_data['workflow']['name'], type='oozie-workflow2', owner=parent_doc.owner, data=workflow_data) Document.objects.link(wf_doc, owner=wf_doc.owner, name=wf_doc.name, description=wf_doc.description, extra='workflow2') return _submit_workflow_helper(request, workflow, submit_action=reverse( 'oozie:submit_single_action', kwargs={ 'doc_id': doc_id, 'node_id': node_id }))
def submit_single_action(request, doc_id, node_id): parent_doc = Document2.objects.get(id=doc_id) parent_wf = Workflow(document=parent_doc) workflow_data = parent_wf.create_single_action_workflow_data(node_id) _data = json.loads(workflow_data) # Create separate wf object for the submit node with new deployment_dir workflow = Workflow(data=workflow_data) workflow.set_workspace(request.user) workflow.check_workspace(request.fs, request.user) # The imported wf deployment directory might not neccessarily exist on first submission if not request.fs.exists(parent_wf.deployment_dir): request.fs.do_as_user(request.user.username, request.fs.mkdir, parent_wf.deployment_dir) workflow.import_workspace(request.fs, parent_wf.deployment_dir, request.user) workflow.document = parent_doc return _submit_workflow_helper(request, workflow, submit_action=reverse( 'oozie:submit_single_action', kwargs={ 'doc_id': doc_id, 'node_id': node_id }))
def copy_workflow(request): if request.method != 'POST': raise PopupException(_('A POST request is required.')) jobs = json.loads(request.POST.get('selection')) for job in jobs: doc2 = Document2.objects.get(type='oozie-workflow2', id=job['id']) name = doc2.name + '-copy' copy_doc = doc2.doc.get().copy(name=name, owner=request.user) doc2.pk = None doc2.id = None doc2.uuid = str(uuid.uuid4()) doc2.name = name doc2.owner = request.user doc2.save() doc2.doc.all().delete() doc2.doc.add(copy_doc) workflow = Workflow(document=doc2) workflow.update_name(name) doc2.update_data({'workflow': workflow.get_data()['workflow']}) doc2.save() workflow.set_workspace(request.user) workflow.check_workspace(request.fs, request.user) response = {} request.info(_('Workflows copied.') if len(jobs) > 1 else _('Workflow copied.')) return JsonResponse(response)
def new_workflow(request): doc = None workflow = Workflow(user=request.user) workflow.set_workspace(request.user) try: workflow.check_workspace(request.fs, request.user) except Exception as e: raise PopupException(_('Could not create workflow workspace'), detail=e) return _edit_workflow(request, doc, workflow)
def submit_single_action(request, doc_id, node_id): parent_doc = Document2.objects.get(id=doc_id) workflow_data = Workflow(document=parent_doc).create_single_action_workflow_data(node_id) _data = json.loads(workflow_data) # Create separate wf object for the submit node with new deployment_dir workflow = Workflow(data=workflow_data) workflow.set_workspace(request.user) workflow.check_workspace(request.fs, request.user) workflow.document = wf_doc = Document2.objects.create(name=_data['workflow']['name'], type='oozie-workflow2', owner=parent_doc.owner, data=workflow_data) Document.objects.link(wf_doc, owner=wf_doc.owner, name=wf_doc.name, description=wf_doc.description, extra='workflow2') return _submit_workflow_helper(request, workflow, submit_action=reverse('oozie:submit_single_action', kwargs={'doc_id': doc_id, 'node_id': node_id}))
def save_workflow(request): response = {'status': -1} workflow = json.loads(request.POST.get('workflow', '{}')) layout = json.loads(request.POST.get('layout', '{}')) if workflow.get('id'): workflow_doc = Document2.objects.get(id=workflow['id']) else: workflow_doc = Document2.objects.create( name=workflow['name'], uuid=workflow['uuid'], type='oozie-workflow2', owner=request.user, description=workflow['properties']['description']) Document.objects.link(workflow_doc, owner=workflow_doc.owner, name=workflow_doc.name, description=workflow_doc.description, extra='workflow2') subworkflows = [ node['properties']['workflow'] for node in workflow['nodes'] if node['type'] == 'subworkflow-widget' ] if subworkflows: dependencies = Document2.objects.filter(uuid__in=subworkflows) workflow_doc.dependencies = dependencies if workflow['properties'].get('imported'): # Old workflow format workflow['properties']['imported'] = False response['url'] = reverse('oozie:edit_workflow') + '?workflow=' + str( workflow_doc.id) workflow_doc.update_data({'workflow': workflow}) workflow_doc.update_data({'layout': layout}) workflow_doc.name = workflow['name'] workflow_doc.save() workflow_instance = Workflow(document=workflow_doc) workflow_instance.set_workspace(request.user) workflow_instance.check_workspace(request.fs, request.user) response['status'] = 0 response['id'] = workflow_doc.id response['doc1_id'] = workflow_doc.doc.get().id response['message'] = _('Page saved !') return JsonResponse(response)
def submit_single_action(request, doc_id, node_id): parent_doc = Document2.objects.get(id=doc_id) parent_wf = Workflow(document=parent_doc) workflow_data = parent_wf.create_single_action_workflow_data(node_id) _data = json.loads(workflow_data) # Create separate wf object for the submit node with new deployment_dir workflow = Workflow(data=workflow_data) workflow.set_workspace(request.user) workflow.check_workspace(request.fs, request.user) workflow.import_workspace(request.fs, parent_wf.deployment_dir, request.user) workflow.document = parent_doc return _submit_workflow_helper(request, workflow, submit_action=reverse('oozie:submit_single_action', kwargs={'doc_id': doc_id, 'node_id': node_id}))
def submit_single_action(request, doc_id, node_id): parent_doc = Document2.objects.get(id=doc_id) parent_wf = Workflow(document=parent_doc) workflow_data = parent_wf.create_single_action_workflow_data(node_id) _data = json.loads(workflow_data) # Create separate wf object for the submit node with new deployment_dir workflow = Workflow(data=workflow_data) workflow.set_workspace(request.user) workflow.check_workspace(request.fs, request.user) # The imported wf deployment directory might not neccessarily exist on first submission if not request.fs.exists(parent_wf.deployment_dir): request.fs.do_as_user(request.user.username, request.fs.mkdir, parent_wf.deployment_dir) workflow.import_workspace(request.fs, parent_wf.deployment_dir, request.user) workflow.document = parent_doc return _submit_workflow_helper(request, workflow, submit_action=reverse('oozie:submit_single_action', kwargs={'doc_id': doc_id, 'node_id': node_id}))
def save_workflow(request): response = {'status': -1} workflow = json.loads(request.POST.get('workflow', '{}')) layout = json.loads(request.POST.get('layout', '{}')) if workflow.get('id'): workflow_doc = Document2.objects.get(id=workflow['id']) else: workflow_doc = Document2.objects.create(name=workflow['name'], uuid=workflow['uuid'], type='oozie-workflow2', owner=request.user, description=workflow['properties']['description']) Document.objects.link(workflow_doc, owner=workflow_doc.owner, name=workflow_doc.name, description=workflow_doc.description, extra='workflow2') subworkflows = [node['properties']['workflow'] for node in workflow['nodes'] if node['type'] == 'subworkflow-widget'] if subworkflows: dependencies = Document2.objects.filter(uuid__in=subworkflows) workflow_doc.dependencies = dependencies if workflow['properties'].get('imported'): # Old workflow format workflow['properties']['imported'] = False response['url'] = reverse('oozie:edit_workflow') + '?workflow=' + str(workflow_doc.id) workflow_doc.update_data({'workflow': workflow}) workflow_doc.update_data({'layout': layout}) workflow_doc.name = workflow['name'] workflow_doc.save() workflow_instance = Workflow(document=workflow_doc) workflow_instance.set_workspace(request.user) workflow_instance.check_workspace(request.fs, request.user) response['status'] = 0 response['id'] = workflow_doc.id response['doc1_id'] = workflow_doc.doc.get().id response['message'] = _('Page saved !') return JsonResponse(response)