application_postprocess_conf.py
47 lines
| 1.7 KiB
| text/x-python
|
PythonLexer
r0 | # -*- coding: utf-8 -*- | |||
r112 | # Copyright 2010 - 2017 RhodeCode GmbH and the AppEnlight project authors | |||
r0 | # | |||
r112 | # Licensed under the Apache License, Version 2.0 (the "License"); | |||
# you may not use this file except in compliance with the License. | ||||
# You may obtain a copy of the License at | ||||
r0 | # | |||
r112 | # http://www.apache.org/licenses/LICENSE-2.0 | |||
r0 | # | |||
r112 | # Unless required by applicable law or agreed to in writing, software | |||
# distributed under the License is distributed on an "AS IS" BASIS, | ||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
# See the License for the specific language governing permissions and | ||||
# limitations under the License. | ||||
r0 | ||||
from ziggurat_foundations.models.base import BaseModel | ||||
import sqlalchemy as sa | ||||
from appenlight.models import Base | ||||
from appenlight.models.report_group import ReportGroup | ||||
class ApplicationPostprocessConf(Base, BaseModel): | ||||
""" | ||||
Stores prioritizing conditions for reports | ||||
This is later used for rule parsing like "if 10 occurences bump priority +1" | ||||
""" | ||||
r153 | __tablename__ = "application_postprocess_conf" | |||
r0 | ||||
pkey = sa.Column(sa.Integer(), nullable=False, primary_key=True) | ||||
r153 | resource_id = sa.Column( | |||
sa.Integer(), | ||||
sa.ForeignKey("resources.resource_id", onupdate="CASCADE", ondelete="CASCADE"), | ||||
) | ||||
r0 | do = sa.Column(sa.Unicode(25), nullable=False) | |||
r153 | new_value = sa.Column(sa.UnicodeText(), nullable=False, default="") | |||
rule = sa.Column( | ||||
sa.dialects.postgresql.JSON, | ||||
nullable=False, | ||||
default={"field": "http_status", "op": "ge", "value": "500"}, | ||||
) | ||||
r0 | ||||
def postprocess(self, item): | ||||
new_value = int(self.new_value) | ||||
item.priority = ReportGroup.priority + new_value | ||||