def new_action(request, workflow, node_type, parent_action_id): ActionForm = design_form_by_type(node_type) if request.method == 'POST': action_form = ActionForm(request.POST) if action_form.is_valid(): action = action_form.save(commit=False) action.node_type = node_type action.workflow = workflow action.save() workflow.add_action(action, parent_action_id) return redirect(reverse('oozie:edit_workflow', kwargs={'workflow': workflow.id})) else: action_form = ActionForm() return render('editor/edit_workflow_action.mako', request, { 'workflow': workflow, 'job_properties': 'job_properties' in action_form.fields and extract_field_data(action_form['job_properties']) or '[]', 'files': 'files' in action_form.fields and extract_field_data(action_form['files']) or '[]', 'archives': 'archives' in action_form.fields and extract_field_data(action_form['archives']) or '[]', 'params': 'params' in action_form.fields and extract_field_data(action_form['params']) or '[]', 'prepares': 'prepares' in action_form.fields and extract_field_data(action_form['prepares']) or '[]', 'action_form': action_form, 'node_type': node_type, 'properties_hint': _STD_PROPERTIES_JSON, 'form_url': reverse('oozie:new_action', kwargs={'workflow': workflow.id, 'node_type': node_type, 'parent_action_id': parent_action_id}), 'can_edit_action': True, })
def _render_design_edit(request, form, action_type, properties_hint): return render('edit_design.mako', request, { 'form': form, 'action': request.path, 'action_type': action_type, 'properties': extract_field_data(form.action['job_properties']), 'files': extract_field_data(form.action['files']), 'archives': extract_field_data(form.action['archives']), 'properties_hint': properties_hint, })
def new_action(request, workflow, node_type, parent_action_id): ActionForm = design_form_by_type(node_type) if request.method == 'POST': action_form = ActionForm(request.POST) if action_form.is_valid(): action = action_form.save(commit=False) action.node_type = node_type action.workflow = workflow action.save() workflow.add_action(action, parent_action_id) return redirect( reverse('oozie:edit_workflow', kwargs={'workflow': workflow.id})) else: action_form = ActionForm() return render( 'editor/edit_workflow_action.mako', request, { 'workflow': workflow, 'job_properties': 'job_properties' in action_form.fields and extract_field_data(action_form['job_properties']) or '[]', 'files': 'files' in action_form.fields and extract_field_data(action_form['files']) or '[]', 'archives': 'archives' in action_form.fields and extract_field_data(action_form['archives']) or '[]', 'params': 'params' in action_form.fields and extract_field_data(action_form['params']) or '[]', 'prepares': 'prepares' in action_form.fields and extract_field_data(action_form['prepares']) or '[]', 'action_form': action_form, 'node_type': node_type, 'properties_hint': _STD_PROPERTIES_JSON, 'form_url': reverse('oozie:new_action', kwargs={ 'workflow': workflow.id, 'node_type': node_type, 'parent_action_id': parent_action_id }), 'can_edit_action': True, })
def _render_design_edit(request, form, action_type, properties_hint): return render( 'edit_design.mako', request, { 'form': form, 'action': request.path, 'action_type': action_type, 'properties': extract_field_data(form.action['job_properties']), 'files': extract_field_data(form.action['files']), 'archives': extract_field_data(form.action['archives']), 'properties_hint': properties_hint, })
def _render_design_edit(request, form, action_type, properties_hint): return render( "edit_design.mako", request, { "form": form, "action": request.path, "action_type": action_type, "properties": extract_field_data(form.action["job_properties"]), "files": extract_field_data(form.action["files"]), "archives": extract_field_data(form.action["archives"]), "properties_hint": properties_hint, }, )
def edit_workflow(request, workflow): history = History.objects.filter(submitter=request.user, job=workflow).order_by("-submission_date") workflow_form = WorkflowForm(instance=workflow) user_can_access_job = workflow.is_accessible(request.user) user_can_edit_job = workflow.is_editable(request.user) return render( "editor/edit_workflow.mako", request, { "workflow_form": workflow_form, "workflow": workflow, "history": history, "user_can_access_job": user_can_access_job, "user_can_edit_job": user_can_edit_job, "job_properties": extract_field_data(workflow_form["job_properties"]), "link_form": LinkForm(), "default_link_form": DefaultLinkForm(action=workflow.start), "node_form": NodeForm(), "action_forms": [ (node_type, design_form_by_type(node_type, request.user, workflow)()) for node_type in ACTION_TYPES.iterkeys() ], }, )
def edit_workflow(request, workflow): history = History.objects.filter(submitter=request.user, job=workflow).order_by('-submission_date') workflow_form = WorkflowForm(instance=workflow) user_can_access_job = workflow.is_accessible(request.user) user_can_edit_job = workflow.is_editable(request.user) return render( 'editor/edit_workflow.mako', request, { 'workflow_form': workflow_form, 'workflow': workflow, 'history': history, 'user_can_access_job': user_can_access_job, 'user_can_edit_job': user_can_edit_job, 'job_properties': extract_field_data(workflow_form['job_properties']), 'link_form': LinkForm(), 'default_link_form': DefaultLinkForm(action=workflow.start), 'node_form': NodeForm(), 'action_forms': [(node_type, design_form_by_type(node_type, request.user, workflow)()) for node_type in ACTION_TYPES.iterkeys()] })
def edit_action(request, action): ActionForm = design_form_by_type(action.node_type) if request.method == 'POST' and Job.objects.can_edit_or_exception( request, action.workflow): action_form = ActionForm(request.POST, instance=action) if action_form.is_valid(): action = action_form.save() return redirect( reverse('oozie:edit_workflow', kwargs={'workflow': action.workflow.id})) else: action_form = ActionForm(instance=action) return render( 'editor/edit_workflow_action.mako', request, { 'workflow': action.workflow, 'job_properties': 'job_properties' in action_form.fields and extract_field_data(action_form['job_properties']) or '[]', 'files': 'files' in action_form.fields and extract_field_data(action_form['files']) or '[]', 'archives': 'archives' in action_form.fields and extract_field_data(action_form['archives']) or '[]', 'params': 'params' in action_form.fields and extract_field_data(action_form['params']) or '[]', 'prepares': 'prepares' in action_form.fields and extract_field_data(action_form['prepares']) or '[]', 'action_form': action_form, 'node_type': action.node_type, 'properties_hint': _STD_PROPERTIES_JSON, 'form_url': reverse('oozie:edit_action', kwargs={'action': action.id}), 'can_edit_action': action.workflow.is_editable(request.user) })
def edit_coordinator(request, coordinator): history = History.objects.filter(submitter=request.user, job=coordinator).order_by('-submission_date') DatasetFormSet = inlineformset_factory(Coordinator, Dataset, form=DatasetForm, max_num=0, can_order=False, can_delete=True) DataInputFormSet = inlineformset_factory(Coordinator, DataInput, form=DataInputSetForm, max_num=0, can_order=False, can_delete=True) DataOutputFormSet = inlineformset_factory(Coordinator, DataOutput, form=DataOutputSetForm, max_num=0, can_order=False, can_delete=True) dataset = Dataset(coordinator=coordinator) dataset_form = DatasetForm(instance=dataset, prefix='create') NewDataInputFormSet = inlineformset_factory(Coordinator, DataInput, form=DataInputForm, extra=0, can_order=False, can_delete=False) NewDataInputFormSet.form = staticmethod(curry(DataInputForm, coordinator=coordinator)) NewDataOutputFormSet = inlineformset_factory(Coordinator, DataOutput, form=DataOutputForm, extra=0, can_order=False, can_delete=False) NewDataOutputFormSet.form = staticmethod(curry(DataOutputForm, coordinator=coordinator)) if request.method == 'POST': coordinator_form = CoordinatorForm(request.POST, instance=coordinator, user=request.user) dataset_formset = DatasetFormSet(request.POST, request.FILES, instance=coordinator) data_input_formset = DataInputFormSet(request.POST, request.FILES, instance=coordinator) data_output_formset = DataOutputFormSet(request.POST, request.FILES, instance=coordinator) new_data_input_formset = NewDataInputFormSet(request.POST, request.FILES, instance=coordinator, prefix='input') new_data_output_formset = NewDataOutputFormSet(request.POST, request.FILES, instance=coordinator, prefix='output') if coordinator_form.is_valid() and dataset_formset.is_valid() and data_input_formset.is_valid() and data_output_formset.is_valid() \ and new_data_input_formset.is_valid() and new_data_output_formset.is_valid(): coordinator = coordinator_form.save() dataset_formset.save() data_input_formset.save() data_output_formset.save() new_data_input_formset.save() new_data_output_formset.save() request.info(_('Coordinator saved.')) return redirect(reverse('oozie:edit_coordinator', kwargs={'coordinator': coordinator.id})) else: coordinator_form = CoordinatorForm(instance=coordinator, user=request.user) dataset_formset = DatasetFormSet(instance=coordinator) data_input_formset = DataInputFormSet(instance=coordinator) data_output_formset = DataOutputFormSet(instance=coordinator) new_data_input_formset = NewDataInputFormSet(queryset=DataInput.objects.none(), instance=coordinator, prefix='input') new_data_output_formset = NewDataOutputFormSet(queryset=DataOutput.objects.none(), instance=coordinator, prefix='output') return render('editor/edit_coordinator.mako', request, { 'coordinator': coordinator, 'coordinator_form': coordinator_form, 'dataset_formset': dataset_formset, 'data_input_formset': data_input_formset, 'data_output_formset': data_output_formset, 'dataset': dataset, 'dataset_form': dataset_form, 'new_data_input_formset': new_data_input_formset, 'new_data_output_formset': new_data_output_formset, 'history': history, 'parameters': extract_field_data(coordinator_form['parameters']) })
def edit_action(request, action): ActionForm = design_form_by_type(action.node_type) if request.method == 'POST' and Job.objects.can_edit_or_exception(request, action.workflow): action_form = ActionForm(request.POST, instance=action) if action_form.is_valid(): action = action_form.save() return redirect(reverse('oozie:edit_workflow', kwargs={'workflow': action.workflow.id})) else: action_form = ActionForm(instance=action) return render('editor/edit_workflow_action.mako', request, { 'workflow': action.workflow, 'job_properties': 'job_properties' in action_form.fields and extract_field_data(action_form['job_properties']) or '[]', 'files': 'files' in action_form.fields and extract_field_data(action_form['files']) or '[]', 'archives': 'archives' in action_form.fields and extract_field_data(action_form['archives']) or '[]', 'params': 'params' in action_form.fields and extract_field_data(action_form['params']) or '[]', 'prepares': 'prepares' in action_form.fields and extract_field_data(action_form['prepares']) or '[]', 'action_form': action_form, 'node_type': action.node_type, 'properties_hint': _STD_PROPERTIES_JSON, 'form_url': reverse('oozie:edit_action', kwargs={'action': action.id}), 'can_edit_action': action.workflow.is_editable(request.user) })
def edit_workflow(request, workflow): history = History.objects.filter(submitter=request.user, job=workflow).order_by('-submission_date') workflow_form = WorkflowForm(instance=workflow) user_can_edit_job = workflow.is_editable(request.user) return render('editor/edit_workflow.mako', request, { 'workflow_form': workflow_form, 'workflow': workflow, 'history': history, 'user_can_edit_job': user_can_edit_job, 'job_properties': extract_field_data(workflow_form['job_properties']), 'link_form': LinkForm(), 'default_link_form': DefaultLinkForm(action=workflow.start), 'action_forms': [(node_type, design_form_by_type(node_type, request.user, workflow)()) for node_type in ACTION_TYPES.iterkeys()] })
def edit_workflow(request, workflow): history = History.objects.filter(submitter=request.user, job=workflow).order_by('-submission_date') workflow_form = WorkflowForm(instance=workflow) user_can_access_job = workflow.can_read(request.user) user_can_edit_job = workflow.is_editable(request.user) oozie_api = get_oozie(request.user) credentials = Credentials() credentials.fetch(oozie_api) return render( 'editor/edit_workflow.mako', request, { 'oozie_api': oozie_api, 'workflow_form': workflow_form, 'workflow': workflow, 'history': history, 'user_can_access_job': user_can_access_job, 'user_can_edit_job': user_can_edit_job, 'job_properties': extract_field_data(workflow_form['job_properties']), 'link_form': LinkForm(), 'default_link_form': DefaultLinkForm(action=workflow.start), 'node_form': NodeForm(), 'action_forms': [(node_type, design_form_by_type(node_type, request.user, workflow)()) for node_type in ACTION_TYPES.keys()], 'credentials': json.dumps(list(credentials.credentials.keys())) })
def edit_workflow(request, workflow): history = History.objects.filter(submitter=request.user, job=workflow).order_by('-submission_date') workflow_form = WorkflowForm(instance=workflow) user_can_access_job = workflow.can_read(request.user) user_can_edit_job = workflow.is_editable(request.user) api = get_oozie(request.user) credentials = Credentials() credentials.fetch(api) return render('editor/edit_workflow.mako', request, { 'workflow_form': workflow_form, 'workflow': workflow, 'history': history, 'user_can_access_job': user_can_access_job, 'user_can_edit_job': user_can_edit_job, 'job_properties': extract_field_data(workflow_form['job_properties']), 'link_form': LinkForm(), 'default_link_form': DefaultLinkForm(action=workflow.start), 'node_form': NodeForm(), 'action_forms': [(node_type, design_form_by_type(node_type, request.user, workflow)()) for node_type in ACTION_TYPES.iterkeys()], 'credentials': json.dumps(credentials.credentials.keys()) })
if not user_can_edit_job: graph_options = { 'template': 'editor/gen/workflow-graph-readonly.xml.mako' } graph = workflow.gen_graph(actions_formset.forms, **graph_options) return render( 'editor/edit_workflow.mako', request, { 'workflow_form': workflow_form, 'workflow': workflow, 'actions_formset': actions_formset, 'graph': graph, 'history': history, 'user_can_edit_job': user_can_edit_job, 'parameters': extract_field_data(workflow_form['parameters']), 'job_properties': extract_field_data( workflow_form['job_properties']) }) @check_job_access_permission @check_job_edition_permission() def delete_workflow(request, workflow): if request.method != 'POST': raise PopupException(_('A POST request is required.')) Workflow.objects.destroy(workflow, request.fs) request.info(_('Workflow deleted!')) return redirect(reverse('oozie:list_workflows'))
def edit_coordinator(request, coordinator): history = History.objects.filter(submitter=request.user, job=coordinator).order_by("-submission_date") DatasetFormSet = inlineformset_factory( Coordinator, Dataset, form=DatasetForm, max_num=0, can_order=False, can_delete=True ) DataInputFormSet = inlineformset_factory( Coordinator, DataInput, form=DataInputSetForm, max_num=0, can_order=False, can_delete=True ) DataOutputFormSet = inlineformset_factory( Coordinator, DataOutput, form=DataOutputSetForm, max_num=0, can_order=False, can_delete=True ) dataset = Dataset(coordinator=coordinator) dataset_form = DatasetForm(instance=dataset, prefix="create") NewDataInputFormSet = inlineformset_factory( Coordinator, DataInput, form=DataInputForm, extra=0, can_order=False, can_delete=False ) NewDataInputFormSet.form = staticmethod(curry(DataInputForm, coordinator=coordinator)) NewDataOutputFormSet = inlineformset_factory( Coordinator, DataOutput, form=DataOutputForm, extra=0, can_order=False, can_delete=False ) NewDataOutputFormSet.form = staticmethod(curry(DataOutputForm, coordinator=coordinator)) if request.method == "POST": coordinator_form = CoordinatorForm(request.POST, instance=coordinator, user=request.user) dataset_formset = DatasetFormSet(request.POST, request.FILES, instance=coordinator) data_input_formset = DataInputFormSet(request.POST, request.FILES, instance=coordinator) data_output_formset = DataOutputFormSet(request.POST, request.FILES, instance=coordinator) new_data_input_formset = NewDataInputFormSet(request.POST, request.FILES, instance=coordinator, prefix="input") new_data_output_formset = NewDataOutputFormSet( request.POST, request.FILES, instance=coordinator, prefix="output" ) if ( coordinator_form.is_valid() and dataset_formset.is_valid() and data_input_formset.is_valid() and data_output_formset.is_valid() and new_data_input_formset.is_valid() and new_data_output_formset.is_valid() ): coordinator = coordinator_form.save() dataset_formset.save() data_input_formset.save() data_output_formset.save() new_data_input_formset.save() new_data_output_formset.save() request.info(_("Coordinator saved!")) return redirect(reverse("oozie:edit_coordinator", kwargs={"coordinator": coordinator.id})) else: coordinator_form = CoordinatorForm(instance=coordinator, user=request.user) dataset_formset = DatasetFormSet(instance=coordinator) data_input_formset = DataInputFormSet(instance=coordinator) data_output_formset = DataOutputFormSet(instance=coordinator) new_data_input_formset = NewDataInputFormSet( queryset=DataInput.objects.none(), instance=coordinator, prefix="input" ) new_data_output_formset = NewDataOutputFormSet( queryset=DataOutput.objects.none(), instance=coordinator, prefix="output" ) return render( "editor/edit_coordinator.mako", request, { "coordinator": coordinator, "coordinator_form": coordinator_form, "dataset_formset": dataset_formset, "data_input_formset": data_input_formset, "data_output_formset": data_output_formset, "dataset_form": dataset_form, "new_data_input_formset": new_data_input_formset, "new_data_output_formset": new_data_output_formset, "history": history, "parameters": extract_field_data(coordinator_form["parameters"]), }, )
def edit_coordinator(request, coordinator): history = History.objects.filter( submitter=request.user, job=coordinator).order_by('-submission_date') DatasetFormSet = inlineformset_factory(Coordinator, Dataset, form=DatasetForm, max_num=0, can_order=False, can_delete=True) DataInputFormSet = inlineformset_factory(Coordinator, DataInput, form=DataInputSetForm, max_num=0, can_order=False, can_delete=True) DataOutputFormSet = inlineformset_factory(Coordinator, DataOutput, form=DataOutputSetForm, max_num=0, can_order=False, can_delete=True) dataset = Dataset(coordinator=coordinator) dataset_form = DatasetForm(instance=dataset, prefix='create') NewDataInputFormSet = inlineformset_factory(Coordinator, DataInput, form=DataInputForm, extra=0, can_order=False, can_delete=False) NewDataInputFormSet.form = staticmethod( curry(DataInputForm, coordinator=coordinator)) NewDataOutputFormSet = inlineformset_factory(Coordinator, DataOutput, form=DataOutputForm, extra=0, can_order=False, can_delete=False) NewDataOutputFormSet.form = staticmethod( curry(DataOutputForm, coordinator=coordinator)) if request.method == 'POST': coordinator_form = CoordinatorForm(request.POST, instance=coordinator, user=request.user) dataset_formset = DatasetFormSet(request.POST, request.FILES, instance=coordinator) data_input_formset = DataInputFormSet(request.POST, request.FILES, instance=coordinator) data_output_formset = DataOutputFormSet(request.POST, request.FILES, instance=coordinator) new_data_input_formset = NewDataInputFormSet(request.POST, request.FILES, instance=coordinator, prefix='input') new_data_output_formset = NewDataOutputFormSet(request.POST, request.FILES, instance=coordinator, prefix='output') if coordinator_form.is_valid() and dataset_formset.is_valid() and data_input_formset.is_valid() and data_output_formset.is_valid() \ and new_data_input_formset.is_valid() and new_data_output_formset.is_valid(): coordinator = coordinator_form.save() dataset_formset.save() data_input_formset.save() data_output_formset.save() new_data_input_formset.save() new_data_output_formset.save() request.info(_('Coordinator saved.')) return redirect( reverse('oozie:edit_coordinator', kwargs={'coordinator': coordinator.id})) else: coordinator_form = CoordinatorForm(instance=coordinator, user=request.user) dataset_formset = DatasetFormSet(instance=coordinator) data_input_formset = DataInputFormSet(instance=coordinator) data_output_formset = DataOutputFormSet(instance=coordinator) new_data_input_formset = NewDataInputFormSet( queryset=DataInput.objects.none(), instance=coordinator, prefix='input') new_data_output_formset = NewDataOutputFormSet( queryset=DataOutput.objects.none(), instance=coordinator, prefix='output') return render( 'editor/edit_coordinator.mako', request, { 'coordinator': coordinator, 'coordinator_form': coordinator_form, 'dataset_formset': dataset_formset, 'data_input_formset': data_input_formset, 'data_output_formset': data_output_formset, 'dataset_form': dataset_form, 'new_data_input_formset': new_data_input_formset, 'new_data_output_formset': new_data_output_formset, 'history': history, 'parameters': extract_field_data(coordinator_form['parameters']) })
graph_options = {} user_can_edit_job = workflow.is_editable(request.user) if not user_can_edit_job: graph_options = {'template': 'editor/gen/workflow-graph-readonly.xml.mako'} graph = workflow.gen_graph(actions_formset.forms, **graph_options) return render('editor/edit_workflow.mako', request, { 'workflow_form': workflow_form, 'workflow': workflow, 'actions_formset': actions_formset, 'graph': graph, 'history': history, 'user_can_edit_job': user_can_edit_job, 'parameters': extract_field_data(workflow_form['parameters']), 'job_properties': extract_field_data(workflow_form['job_properties']) }) @check_job_access_permission @check_job_edition_permission() def delete_workflow(request, workflow): if request.method != 'POST': raise PopupException(_('A POST request is required.')) Workflow.objects.destroy(workflow, request.fs) request.info(_('Workflow deleted!')) return redirect(reverse('oozie:list_workflows'))