Ejemplo n.º 1
0
    def __init__(self, request, *args, **kwargs):
        super(JobExecutionInterfaceConfigAction, self).__init__(
            request, *args, **kwargs)
        job_id = (request.GET.get("job_id")
                  or request.POST.get("job"))
        job = saharaclient.job_get(request, job_id)
        interface = job.interface or []
        interface_args = {}
        req = request.GET or request.POST
        job_ex_id = req.get("job_execution_id")
        if job_ex_id is not None:
            job_ex = saharaclient.job_execution_get(request, job_ex_id)
            job = saharaclient.job_get(request, job_ex.job_id)
            job_configs, interface_args = _merge_interface_with_configs(
                job.interface, job_ex.job_configs)

        for argument in interface:
            field = forms.CharField(
                required=argument.get('required'),
                label=argument['name'],
                initial=(interface_args.get(argument['id']) or
                         argument.get('default')),
                help_text=argument.get('description'),
                widget=forms.TextInput()
            )
            self.fields['argument_%s' % argument['id']] = field
        self.fields['argument_ids'] = forms.CharField(
            initial=json.dumps({argument['id']: argument['name']
                                for argument in interface}),
            widget=forms.HiddenInput()
        )
Ejemplo n.º 2
0
    def get_context_data(self, request):
        jex_id = self.tab_group.kwargs['job_execution_id']
        try:
            job_execution = saharaclient.job_execution_get(request, jex_id)
        except Exception as e:
            job_execution = {}
            LOG.error("Unable to fetch job details: %s" % str(e))
            return {"job_execution": job_execution}
        object_names = self.get_object_names(job_execution,
                                             request)
        try:
            object_names['input_url'] = job_execution.data_source_urls.get(
                job_execution.input_id)
        except Exception as e:
            LOG.error("Unable to fetch input url: %s", e)
            object_names["input_url"] = "None"

        try:
            object_names['output_url'] = job_execution.data_source_urls.get(
                job_execution.output_id)
        except Exception as e:
            LOG.error("Unable to fetch output url: %s", e)
            object_names["output_url"] = "None"

        return {"job_execution": job_execution,
                "object_names": object_names}
Ejemplo n.º 3
0
    def __init__(self, request, *args, **kwargs):
        super(JobConfigAction, self).__init__(request, *args, **kwargs)
        req = request.GET or request.POST
        job_ex_id = req.get("job_execution_id")
        if job_ex_id is not None:
            job_ex = saharaclient.job_execution_get(request, job_ex_id)
            try:
                jt_id = job_ex.job_template_id  # typical APIv2
            except AttributeError:
                jt_id = job_ex.job_id  # APIv1.1, older APIv2
            job = saharaclient.job_get(request, jt_id)
            job_configs, interface_args = _merge_interface_with_configs(
                job.interface, job_ex.job_configs)
            edp_configs = {}

            if 'configs' in job_configs:
                configs, edp_configs = (
                    self.clean_edp_configs(job_configs['configs']))
                self.fields['job_configs'].initial = (
                    json.dumps(configs))

            if 'params' in job_configs:
                self.fields['job_params'].initial = (
                    json.dumps(job_configs['params']))

            if 'args' in job_configs:
                self.fields['job_args_array'].initial = (
                    json.dumps(job_configs['args']))

            if self.MAIN_CLASS in edp_configs:
                self.fields['main_class'].initial = (
                    edp_configs[self.MAIN_CLASS])
            if self.STORM_PYLEUS_TOPOLOGY_NAME in edp_configs:
                self.fields['topology_name'].initial = (
                    edp_configs[self.STORM_PYLEUS_TOPOLOGY_NAME])
            if self.JAVA_OPTS in edp_configs:
                self.fields['java_opts'].initial = (
                    edp_configs[self.JAVA_OPTS])

            if self.EDP_MAPPER in edp_configs:
                self.fields['streaming_mapper'].initial = (
                    edp_configs[self.EDP_MAPPER])
            if self.EDP_REDUCER in edp_configs:
                self.fields['streaming_reducer'].initial = (
                    edp_configs[self.EDP_REDUCER])
            if self.EDP_HBASE_COMMON_LIB in edp_configs:
                self.fields['hbase_common_lib'].initial = (
                    edp_configs[self.EDP_HBASE_COMMON_LIB])
            if self.EDP_ADAPT_FOR_OOZIE in edp_configs:
                self.fields['adapt_oozie'].initial = (
                    edp_configs[self.EDP_ADAPT_FOR_OOZIE])
            if self.EDP_ADAPT_SPARK_SWIFT in edp_configs:
                self.fields['adapt_spark_swift'].initial = (
                    edp_configs[self.EDP_ADAPT_SPARK_SWIFT])
            if (self.EDP_SUBST_DATASOURCE_NAME in edp_configs or
                    self.EDP_SUBST_DATASOURCE_UUID in edp_configs):
                    self.fields['datasource_substitute'].initial = (
                        edp_configs.get(self.EDP_SUBST_DATASOURCE_UUID, True)
                        or
                        edp_configs.get(self.EDP_SUBST_DATASOURCE_NAME, True))
Ejemplo n.º 4
0
    def get_context_data(self, request):
        jex_id = self.tab_group.kwargs['job_execution_id']
        try:
            job_execution = saharaclient.job_execution_get(request, jex_id)
        except Exception as e:
            job_execution = {}
            LOG.error("Unable to fetch job details: %s" % str(e))
            return {"job_execution": job_execution}
        object_names = self.get_object_names(job_execution,
                                             request)
        try:
            object_names['input_url'] = job_execution.data_source_urls.get(
                job_execution.input_id)
        except Exception as e:
            LOG.error("Unable to fetch input url: %s", e)
            object_names["input_url"] = "None"

        try:
            object_names['output_url'] = job_execution.data_source_urls.get(
                job_execution.output_id)
        except Exception as e:
            LOG.error("Unable to fetch output url: %s", e)
            object_names["output_url"] = "None"

        return {"job_execution": job_execution,
                "object_names": object_names}
Ejemplo n.º 5
0
 def get_object(self):
     jex_id = self.kwargs["job_execution_id"]
     try:
         return saharaclient.job_execution_get(self.request, jex_id)
     except Exception:
         msg = _('Unable to retrieve details for job "%s".') % jex_id
         redirect = self.get_redirect_url()
         exceptions.handle(self.request, msg, redirect=redirect)
Ejemplo n.º 6
0
 def get_data(self, request, job_execution_id):
     try:
         return saharaclient.job_execution_get(request, job_execution_id)
     except api_base.APIException as e:
         if e.error_code == 404:
             raise Http404
         else:
             messages.error(request, _("Unable to update row"))
Ejemplo n.º 7
0
 def get_data(self, request, job_execution_id):
     try:
         return saharaclient.job_execution_get(request, job_execution_id)
     except api_base.APIException as e:
         if e.error_code == 404:
             raise Http404
         else:
             messages.error(request, _("Unable to update row"))
Ejemplo n.º 8
0
    def __init__(self, request, *args, **kwargs):
        super(JobConfigAction, self).__init__(request, *args, **kwargs)
        job_ex_id = request.REQUEST.get("job_execution_id")
        if job_ex_id is not None:
            job_ex = saharaclient.job_execution_get(request, job_ex_id)
            job = saharaclient.job_get(request, job_ex.job_id)
            job_configs, interface_args = _merge_interface_with_configs(
                job.interface, job_ex.job_configs)
            edp_configs = {}

            if 'configs' in job_configs:
                configs, edp_configs = (
                    self.clean_edp_configs(job_configs['configs']))
                self.fields['job_configs'].initial = (
                    json.dumps(configs))

            if 'params' in job_configs:
                self.fields['job_params'].initial = (
                    json.dumps(job_configs['params']))

            if 'args' in job_configs:
                self.fields['job_args_array'].initial = (
                    json.dumps(job_configs['args']))

            if self.MAIN_CLASS in edp_configs:
                self.fields['main_class'].initial = (
                    edp_configs[self.MAIN_CLASS])
            if self.JAVA_OPTS in edp_configs:
                self.fields['java_opts'].initial = (
                    edp_configs[self.JAVA_OPTS])

            if self.EDP_MAPPER in edp_configs:
                self.fields['streaming_mapper'].initial = (
                    edp_configs[self.EDP_MAPPER])
            if self.EDP_REDUCER in edp_configs:
                self.fields['streaming_reducer'].initial = (
                    edp_configs[self.EDP_REDUCER])
            if self.EDP_HBASE_COMMON_LIB in edp_configs:
                self.fields['hbase_common_lib'].initial = (
                    edp_configs[self.EDP_HBASE_COMMON_LIB])
            if self.EDP_ADAPT_FOR_OOZIE in edp_configs:
                self.fields['adapt_oozie'].initial = (
                    edp_configs[self.EDP_ADAPT_FOR_OOZIE])
            if self.EDP_ADAPT_SPARK_SWIFT in edp_configs:
                self.fields['adapt_spark_swift'].initial = (
                    edp_configs[self.EDP_ADAPT_SPARK_SWIFT])
            if (self.EDP_SUBST_DATASOURCE_NAME in edp_configs or
                    self.EDP_SUBST_DATASOURCE_UUID in edp_configs):
                    self.fields['datasource_substitute'].initial = (
                        edp_configs.get(self.EDP_SUBST_DATASOURCE_UUID, True)
                        or
                        edp_configs.get(self.EDP_SUBST_DATASOURCE_NAME, True))
Ejemplo n.º 9
0
    def get_context_data(self, request):
        jex_id = self.tab_group.kwargs['job_execution_id']
        try:
            job_execution = saharaclient.job_execution_get(request, jex_id)
        except Exception as e:
            job_execution = {}
            LOG.error("Unable to fetch job details: %s" % str(e))
            return {"job_execution": job_execution}
        object_names = self.get_object_names(job_execution, request)
        try:
            object_names['input_url'] = job_execution.data_source_urls.get(
                job_execution.input_id)
        except Exception as e:
            LOG.error("Unable to fetch input url: %s", e)
            object_names["input_url"] = "None"

        try:
            object_names['output_url'] = job_execution.data_source_urls.get(
                job_execution.output_id)
        except Exception as e:
            LOG.error("Unable to fetch output url: %s", e)
            object_names["output_url"] = "None"

        if saharaclient.VERSIONS.active == '2':
            job_execution_engine_job_attr = "engine_job_id"
            job_execution_engine_job_attr_pretty = _("Engine Job ID")
        else:
            job_execution_engine_job_attr = "oozie_job_id"
            job_execution_engine_job_attr_pretty = _("Oozie Job ID")

        job_execution_engine_job_id = getattr(job_execution,
                                              job_execution_engine_job_attr)

        return {
            "job_execution":
            job_execution,
            "object_names":
            object_names,
            "job_execution_engine_job_id":
            job_execution_engine_job_id,
            "job_execution_engine_job_attr_pretty":
            job_execution_engine_job_attr_pretty
        }
Ejemplo n.º 10
0
    def __init__(self, request, *args, **kwargs):
        super(SelectPluginForJobLaunchAction, self).__init__(request,
                                                             *args,
                                                             **kwargs)
        self.fields["job_id"] = forms.ChoiceField(
            label=_("Plugin name"),
            initial=request.GET.get("job_id") or request.POST.get("job_id"),
            widget=forms.HiddenInput(attrs={"class": "hidden_create_field"}))

        self.fields["job_configs"] = forms.ChoiceField(
            label=_("Job configs"),
            widget=forms.HiddenInput(attrs={"class": "hidden_create_field"}))

        self.fields["job_args"] = forms.ChoiceField(
            label=_("Job args"),
            widget=forms.HiddenInput(attrs={"class": "hidden_create_field"}))

        self.fields["job_params"] = forms.ChoiceField(
            label=_("Job params"),
            widget=forms.HiddenInput(attrs={"class": "hidden_create_field"}))
        req = request.GET or request.POST
        job_ex_id = req.get("job_execution_id")
        if job_ex_id is not None:
            self.fields["job_execution_id"] = forms.ChoiceField(
                label=_("Job Execution ID"),
                initial=job_ex_id,
                widget=forms.HiddenInput(
                    attrs={"class": "hidden_create_field"}))

            job_configs = (
                saharaclient.job_execution_get(request,
                                               job_ex_id).job_configs)

            if "configs" in job_configs:
                self.fields["job_configs"].initial = (
                    json.dumps(job_configs["configs"]))
            if "params" in job_configs:
                self.fields["job_params"].initial = (
                    json.dumps(job_configs["params"]))
            if "args" in job_configs:
                self.fields["job_args"].initial = (
                    json.dumps(job_configs["args"]))
Ejemplo n.º 11
0
    def get_context_data(self, request):
        jex_id = self.tab_group.kwargs['job_execution_id']
        try:
            job_execution = saharaclient.job_execution_get(request, jex_id)
        except Exception as e:
            job_execution = {}
            LOG.error("Unable to fetch job details: %s" % str(e))
            return {"job_execution": job_execution}
        object_names = self.get_object_names(job_execution,
                                             request)
        try:
            object_names['input_url'] = job_execution.data_source_urls.get(
                job_execution.input_id)
        except Exception as e:
            LOG.error("Unable to fetch input url: %s", e)
            object_names["input_url"] = "None"

        try:
            object_names['output_url'] = job_execution.data_source_urls.get(
                job_execution.output_id)
        except Exception as e:
            LOG.error("Unable to fetch output url: %s", e)
            object_names["output_url"] = "None"

        if saharaclient.VERSIONS.active == '2':
            job_execution_engine_job_attr = "engine_job_id"
            job_execution_engine_job_attr_pretty = _("Engine Job ID")
        else:
            job_execution_engine_job_attr = "oozie_job_id"
            job_execution_engine_job_attr_pretty = _("Oozie Job ID")

        job_execution_engine_job_id = getattr(job_execution,
                                              job_execution_engine_job_attr)

        return {"job_execution": job_execution,
                "object_names": object_names,
                "job_execution_engine_job_id": job_execution_engine_job_id,
                "job_execution_engine_job_attr_pretty":
                    job_execution_engine_job_attr_pretty}