Ejemplo n.º 1
0
    def __init__(self, databand_context):
        super(DatabandSettings, self).__init__()
        self.databand_context = databand_context  # type: DatabandContext

        self.core = CoreConfig()
        self.features = FeaturesConfig()  # type: FeaturesConfig
        self.tracking = TrackingConfig()  # type: TrackingConfig
        self.dynamic_task = DynamicTaskConfig()

        self.run = RunConfig()
        self.git = GitConfig()

        self.describe = DescribeConfig()

        self.log = LoggingConfig()
        self.output = OutputConfig()

        self.scheduler = SchedulerConfig()

        self.singleton_configs = {}

        self.user_configs = {}
        for user_config in self.core.user_configs:
            self.user_configs[user_config] = build_task_from_config(
                user_config)

        self._web = None
Ejemplo n.º 2
0
    def run_banner(self,
                   msg,
                   color="white",
                   show_run_info=False,
                   show_tasks_info=True):
        b = TextBanner(msg, color)
        run = self.run  # type: DatabandRun
        ctx = run.context
        task_run_env = ctx.task_run_env  # type: TaskRunEnvInfo
        driver_task = run.driver_task_run.task

        orchestration_mode = run.source == UpdateSource.dbnd

        b.column("TRACKER URL", run.run_url, skip_if_empty=True)
        b.column("TRACKERS", CoreConfig().tracker)
        if show_tasks_info and orchestration_mode and driver_task.is_driver:
            self._add_tasks_info(b)

        if run.root_run_info.root_run_uid != run.run_uid:
            b.column("ROOT TRACKER URL",
                     run.root_run_info.root_run_url,
                     skip_if_empty=True)
            b.column("ROOT UID URL",
                     run.root_run_info.root_run_uid,
                     skip_if_empty=True)

        if run.scheduled_run_info:
            b.column_properties(
                "SCHEDULED",
                [
                    ("scheduled_job",
                     run.scheduled_run_info.scheduled_job_uid),
                    ("scheduled_date", run.scheduled_run_info.scheduled_date),
                    ("dag_run_id",
                     run.scheduled_run_info.scheduled_job_dag_run_id),
                ],
            )

        if show_run_info:
            b.new_line()
            run_params = [
                ("user", task_run_env.user),
                ("run_uid", "%s" % run.run_uid),
                ("env", run.env.name),
            ]
            b.column("RUN", b.f_simple_dict(run_params))
            b.column(
                "LOG",
                b.f_simple_dict([
                    ("local", driver_task.local_driver_log),
                    ("remote", driver_task.remote_driver_root),
                ]),
            )
            b.column("USER CODE VERSION", task_run_env.user_code_version)
            b.column("CMD", task_run_env.cmd_line)

            if orchestration_mode:
                b.column(
                    "EXECUTE",
                    b.f_simple_dict(
                        [
                            ("TASK_EXECUTOR", run.task_executor_type),
                            ("PARALLEL", run.parallel),
                            ("SUBMIT_DRIVER", run.submit_driver),
                            ("SUBMIT_TASKS", run.submit_tasks),
                        ],
                        skip_if_empty=True,
                    ),
                    skip_if_empty=True,
                )
            if task_run_env.user_data and task_run_env.user_data != "None":
                b.column("USER DATA",
                         task_run_env.user_data,
                         skip_if_empty=True)
            b.new_line()

        failed_task_runs = [
            task_run for task_run in run.task_runs
            if task_run.task_run_state in TaskRunState.direct_fail_states()
        ]
        if failed_task_runs:
            f_msg = "\n\t".join(tr.task.task_id for tr in failed_task_runs)
            b.column("FAILED", f_msg)

        if run.root_task_run:
            b.column("TASK_BAND", run.root_task_run.task.task_band)

        b.new_line()

        return b.getvalue()