コード例 #1
0
 def get_list(self,
              page,
              sort_field,
              sort_desc,
              search,
              filters,
              page_size=None):
     print(VariablesReportRepo.list()[0].subscribers)
     return None, VariablesReportRepo.list()
コード例 #2
0
    def check_unique_field(self, report_exists, field_name):
        """
        Check if field is already exists.

        :param report_exists: whether the report exists
        :type report_exists: Boolean

        :param field_name: name of report attribute
        :type field_name: String

        Return boolean on whether entry is unique.
        """

        for report in VariablesReportRepo.list():
            # dont check against the report being editted
            if report_exists:
                if getattr(report,
                           "report_id") == self.report_dict["report_id"]:
                    continue

            # alert user that field_name is being used by another report
            if str(getattr(report,
                           field_name)) == self.report_dict[field_name]:
                logging.error("Error: %s (%s) already taken." %
                              (field_name, self.report_dict[field_name]))
                flash("Error: %s (%s) already taken." %
                      (field_name, self.report_dict[field_name]))
                return False
        return True
コード例 #3
0
    def get_one(self, id):
        report = VariablesReportRepo.get_report(id)
        if not report:
            return None

        # We want subscribers to be a comma seperated
        # string in the edit report form
        report.subscribers = ",".join(report.subscribers)
        return report
コード例 #4
0
ファイル: views.py プロジェクト: trejas/rb_status_plugin
    def form_get(self, form, report_title):
        # !get report by report_title and prefill form with its values
        requested_report = {}
        for report in VariablesReportRepo.list():
            if str(report.report_title_id) == report_title:
                requested_report = report

        if requested_report:
            form = ReportFormSaver.load_form(form, requested_report)
            return form
        return None
コード例 #5
0
ファイル: views.py プロジェクト: trejas/rb_status_plugin
    def reports_data(self):
        """
        Generate reports data.
        It retrieves a list of reports, generates summary status
        and pass it all down to the template
        """
        reports = []
        passed = True
        updated = None
        logging.info("Loading reports")
        for report in VariablesReportRepo.list():
            try:
                ri = ReportInstance.get_latest(report)

                if not updated:
                    updated = ri.updated

                if updated < ri.updated:
                    updated = ri.updated

                r = {
                    "id": ri.id,
                    "passed": ri.passed,
                    "updated": self.get_updated(ri.updated),
                    "report_title": report.report_title,
                    "report_title_id": report.report_title_id,
                    "owner_name": report.owner_name,
                    "owner_email": report.owner_email,
                    "description": report.description,
                    "subscribers": report.subscribers,
                }

                r["errors"] = ri.errors()
                if len(r["errors"]) > 0:
                    passed = False
                reports.append(r)
            except Exception as e:
                logging.exception(e)
                logging.error("Failed to generate report: " + str(e))
                flash("Failed to generate report: " + str(e), "error")

        rbac_val = conf.getboolean("webserver", "rbac")
        data = {
            "summary": {
                "passed": passed,
                "updated": self.get_updated(updated)
            },
            "reports": reports,
            "rbac": rbac_val,
        }
        return data
コード例 #6
0
 def test_parse_variable_name_ci(self):
     parsed = VariablesReportRepo.parse_variable_name("RB_STATUS_BOB")
     assert parsed == "BOB"
コード例 #7
0
 def test_parse_variable_name(self):
     parsed = VariablesReportRepo.parse_variable_name("rb_status_bob")
     assert parsed == "bob"
コード例 #8
0
 def test_parse_variable_value_no_json(self):
     parsed = VariablesReportRepo.parse_variable_val("not_json")
     assert parsed is None
コード例 #9
0
 def test_parse_variable_value(self):
     parsed = VariablesReportRepo.parse_variable_val(self.dummy_test)
     assert parsed["tests"] == [
         "example_dag.python_print_date_0",
         "example_dag.python_random_0",
     ]
コード例 #10
0
ファイル: rb_status.py プロジェクト: trejas/rb_status_plugin
    )

    with dag:
        test_prefix = "test_"

        start = LatestOnlyOperator(task_id="start_dag")
        send_email = PythonOperator(
            task_id="call_email_function",
            python_callable=report_notify_email,
            trigger_rule="all_done",
            op_kwargs={
                "report": report,
                "email_template_location": SINGLE_EMAIL_TEMPLATE,
            },
            provide_context=True,
        )
        for test in report.tests:
            t1 = StatusSensor(
                task_id=test_prefix + test,
                test_dag_id=test.split(".")[0],
                test_task_id=test.split(".")[1],
            )
            start >> t1 >> send_email

    return dag


report = []
for report in VariablesReportRepo.list():
    globals()[report.name] = create_dag(report, default_args)
コード例 #11
0
 def test_return_report(self):
     parsed = json.loads(self.dummy_test)
     r = VariablesReportRepo.to_report("bob", parsed)
     self.assertIsInstance(r, Report)
コード例 #12
0
 def test_parse_variable_name(self):
     parsed = VariablesReportRepo.parse_variable_name("rb_status_bob")
     self.assertEqual(parsed, "bob")
コード例 #13
0
 def test_parse_variable_value_no_json(self):
     parsed = VariablesReportRepo.parse_variable_val("not_json")
     self.assertIsNone(parsed)
コード例 #14
0
ファイル: views.py プロジェクト: trejas/rb_status_plugin
 def list(self):
     return self.render_template("reports.html",
                                 content=VariablesReportRepo.list())
コード例 #15
0
 def test_parse_variable_name_none(self):
     parsed = VariablesReportRepo.parse_variable_name("not_correct")
     assert parsed is None
コード例 #16
0
 def test_parse_variable_name_ci(self):
     parsed = VariablesReportRepo.parse_variable_name("RB_STATUS_BOB")
     self.assertEqual(parsed, "BOB")
コード例 #17
0
 def test_return_report(self):
     parsed = json.loads(self.dummy_test)
     r = VariablesReportRepo.to_report("bob", parsed)
     assert type(r) == Report
コード例 #18
0
 def list(self):
     return self.render("no_rbac/reports.html",
                        content=VariablesReportRepo.list())