Ejemplo n.º 1
0
class IncidentEdit(View):

    template_name = 'templates/admin/incident/edit.html'
    __context = Context()
    __incident = IncidentModule()
    __incident_update = IncidentUpdateModule()
    __component = ComponentModule()
    __component_group = ComponentGroupModule()
    __correlation_id = None

    @login_if_not_authenticated
    def get(self, request, incident_id):

        self.__correlation_id = request.META[
            "X-Correlation-ID"] if "X-Correlation-ID" in request.META else ""
        incident = self.__incident.get_one_by_id(incident_id)

        if not incident:
            raise Http404("Incident not found.")

        self.__context.autoload_options()
        self.__context.autoload_user(
            request.user.id if request.user.is_authenticated else None)
        self.__context.push({
            "page_title":
            _("Edit Incident · %s") % self.__context.get(
                "app_name", os.getenv("APP_NAME", "Silverback")),
            "incident":
            incident
        })

        return render(request, self.template_name, self.__context.get())
Ejemplo n.º 2
0
class IncidentAdd(View):

    template_name = 'templates/admin/incident/add.html'
    __context = Context()
    __incident = IncidentModule()
    __incident_update = IncidentUpdateModule()
    __component = ComponentModule()
    __component_group = ComponentGroupModule()
    __correlation_id = None

    @login_if_not_authenticated
    def get(self, request):

        self.__correlation_id = request.META[
            "X-Correlation-ID"] if "X-Correlation-ID" in request.META else ""
        self.__context.autoload_options()
        self.__context.autoload_user(
            request.user.id if request.user.is_authenticated else None)
        self.__context.push({
            "page_title":
            _("Add an Incident · %s") %
            self.__context.get("app_name", os.getenv("APP_NAME", "Silverback"))
        })

        return render(request, self.template_name, self.__context.get())
Ejemplo n.º 3
0
 def __init__(self):
     self.__request = Request()
     self.__response = Response()
     self.__helpers = Helpers()
     self.__form = Form()
     self.__component = ComponentModule()
     self.__logger = self.__helpers.get_logger(__name__)
     self.__form.add_validator(ExtraRules())
Ejemplo n.º 4
0
 def __init__(self):
     self.__request = Request()
     self.__response = Response()
     self.__helpers = Helpers()
     self.__form = Form()
     self.__component = ComponentModule()
     self.__component_group = ComponentGroupModule()
     self.__logger = self.__helpers.get_logger(__name__)
     self.__form.add_validator(ExtraRules())
     self.__user_id = None
     self.__correlation_id = ""
Ejemplo n.º 5
0
    def get(self, request, incident_id, update_id):

        self.__context = Context()
        self.__incident = IncidentModule()
        self.__incident_update = IncidentUpdateModule()
        self.__incident_update_component = IncidentUpdateComponentModule()
        self.__component = ComponentModule()
        self.__component_group = ComponentGroupModule()
        self.__incident_update_notification = IncidentUpdateNotificationModule(
        )
        self.__correlation_id = request.META[
            "X-Correlation-ID"] if "X-Correlation-ID" in request.META else ""
        incident = self.__incident.get_one_by_id(incident_id)

        if not incident:
            raise Http404("Incident not found.")

        update = self.__incident_update.get_one_by_id(update_id)

        if not update:
            raise Http404("Incident update not found.")

        update["datetime"] = update["datetime"].strftime("%b %d %Y %H:%M:%S")
        update["message"] = markdown2.markdown(update["message"])
        update[
            "notified_subscribers"] = self.__incident_update_notification.count_by_update_status(
                update["id"], IncidentUpdateNotificationModule.SUCCESS)
        update[
            "failed_subscribers"] = self.__incident_update_notification.count_by_update_status(
                update["id"], IncidentUpdateNotificationModule.FAILED)

        components = self.__format_components(self.__component.get_all())
        affected_components = self.__format_affected_components(
            self.__incident_update_component.get_all(update_id))

        self.__context.autoload_options()
        self.__context.autoload_user(
            request.user.id if request.user.is_authenticated else None)
        self.__context.push({
            "page_title":
            _("View Incident Update  · %s") % self.__context.get(
                "app_name", os.getenv("APP_NAME", "Silverback")),
            "update":
            update,
            "incident":
            incident,
            "components":
            components,
            "affected_components":
            affected_components
        })

        return render(request, self.template_name, self.__context.get())
Ejemplo n.º 6
0
    def get(self, request):

        self.__component = ComponentModule()
        self.autoload_options()
        self.autoload_user(
            request.user.id if request.user.is_authenticated else None)
        self.context_push({
            "page_title":
            _("Components · %s") %
            self.context_get("app_name", os.getenv("APP_NAME", "Silverback"))
        })

        return render(request, self.template_name, self.context_get())
Ejemplo n.º 7
0
    def get(self, request):

        self.__context = Context()
        self.__incident = IncidentModule()
        self.__incident_update = IncidentUpdateModule()
        self.__component = ComponentModule()
        self.__component_group = ComponentGroupModule()
        self.__correlation_id = request.META[
            "X-Correlation-ID"] if "X-Correlation-ID" in request.META else ""
        self.__context.autoload_options()
        self.__context.autoload_user(
            request.user.id if request.user.is_authenticated else None)
        self.__context.push({
            "page_title":
            _("Incidents · %s") %
            self.__context.get("app_name", os.getenv("APP_NAME", "Silverback"))
        })

        return render(request, self.template_name, self.__context.get())
Ejemplo n.º 8
0
    def get(self, request, component_id):

        self.__component = ComponentModule()
        component = self.__component.get_one_by_id(component_id)

        if not component:
            raise Http404("Component not found.")

        self.autoload_options()
        self.autoload_user(
            request.user.id if request.user.is_authenticated else None)
        self.context_push({
            "page_title":
            _("Edit Component · %s") %
            self.context_get("app_name", os.getenv("APP_NAME", "Silverback")),
            "component":
            component,
            "groups":
            self.__component.get_all_groups()
        })

        return render(request, self.template_name, self.context_get())
Ejemplo n.º 9
0
    def get(self, request):

        self.__context = Context()
        self.__metric = MetricModule()
        self.__component = ComponentModule()
        self.__component_group = ComponentGroupModule()
        self.__correlation_id = request.META[
            "X-Correlation-ID"] if "X-Correlation-ID" in request.META else ""
        self.__context.autoload_options()
        self.__context.autoload_user(
            request.user.id if request.user.is_authenticated else None)
        self.__context.load_options({
            "builder_headline": "",
            "builder_favicon_url": "",
            "builder_logo_url": "",
            "builder_about": "",
            "builder_components": json.dumps([]),
            "builder_metrics": json.dumps([])
        })
        self.__context.push({
            "page_title":
            _("Status Page Builder · %s") % self.__context.get(
                "app_name", os.getenv("APP_NAME", "Silverback")),
            "groups":
            self.__format_groups(self.__component.get_all_groups()),
            "components":
            self.__format_components(self.__component.get_all()),
            "metrics":
            self.__format_metrics(self.__metric.get_all())
        })

        self.__context.push({
            "builder_components":
            json.loads(str(self.__context.get("builder_components"))),
            "builder_metrics":
            json.loads(str(self.__context.get("builder_metrics")))
        })

        return render(request, self.template_name, self.__context.get())
Ejemplo n.º 10
0
    def get(self, request, incident_id):

        self.__incident = IncidentModule()
        self.__incident_update = IncidentUpdateModule()
        self.__component = ComponentModule()
        self.__component_group = ComponentGroupModule()
        incident = self.__incident.get_one_by_id(incident_id)

        if not incident:
            raise Http404("Incident not found.")

        self.autoload_options()
        self.autoload_user(
            request.user.id if request.user.is_authenticated else None)
        self.context_push({
            "page_title":
            _("Edit Incident · %s") %
            self.context_get("app_name", os.getenv("APP_NAME", "Silverback")),
            "incident":
            incident
        })

        return render(request, self.template_name, self.context_get())
Ejemplo n.º 11
0
 def __init__(self):
     self.__settings = Settings()
     self.__component = ComponentModule()
     self.__component_group = ComponentGroupModule()
Ejemplo n.º 12
0
class Builder(View):

    template_name = 'templates/admin/builder.html'
    __context = Context()
    __metric = MetricModule()
    __component = ComponentModule()
    __component_group = ComponentGroupModule()
    __correlation_id = None

    @login_if_not_authenticated_or_no_permission("manage_settings")
    def get(self, request):

        self.__correlation_id = request.META["X-Correlation-ID"] if "X-Correlation-ID" in request.META else ""
        self.__context.autoload_options()
        self.__context.autoload_user(request.user.id if request.user.is_authenticated else None)
        self.__context.load_options({
            "builder_headline": "",
            "builder_favicon_url": "",
            "builder_logo_url": "",
            "builder_about": "",
            "builder_components": json.dumps([]),
            "builder_metrics": json.dumps([])
        })
        self.__context.push({
            "page_title": _("Status Page Builder · %s") % self.__context.get("app_name", os.getenv("APP_NAME", "Silverback")),
            "groups": self.__format_groups(self.__component.get_all_groups()),
            "components": self.__format_components(self.__component.get_all()),
            "metrics": self.__format_metrics(self.__metric.get_all())
        })

        self.__context.push({
            "builder_components": json.loads(str(self.__context.get("builder_components"))),
            "builder_metrics": json.loads(str(self.__context.get("builder_metrics")))
        })

        return render(request, self.template_name, self.__context.get())

    def __format_components(self, components):
        components_list = []

        for component in components:
            components_list.append({
                "id": "c-%d" % component.id,
                "name": component.name
            })

        return components_list

    def __format_groups(self, groups):
        groups_list = []

        for group in groups:
            groups_list.append({
                "id": "g-%d" % group.id,
                "name": group.name
            })

        return groups_list

    def __format_metrics(self, metrics):
        metrics_list = []

        for metric in metrics:
            metrics_list.append({
                "id": "m-%d" % metric.id,
                "title": metric.title
            })

        return metrics_list