Auto status change to "Under Review"
Show More
@@ -0,0 +1,30 b'' | |||
|
1 | """connect resources to alert_channels | |
|
2 | ||
|
3 | Revision ID: e9fcfbdd9498 | |
|
4 | Revises: 55b6e612672f | |
|
5 | Create Date: 2018-02-28 13:52:50.717217 | |
|
6 | ||
|
7 | """ | |
|
8 | ||
|
9 | # revision identifiers, used by Alembic. | |
|
10 | revision = 'e9fcfbdd9498' | |
|
11 | down_revision = '55b6e612672f' | |
|
12 | ||
|
13 | from alembic import op | |
|
14 | import sqlalchemy as sa | |
|
15 | ||
|
16 | ||
|
17 | def upgrade(): | |
|
18 | op.create_table( | |
|
19 | 'channels_resources', | |
|
20 | sa.Column('channel_pkey', sa.Integer, | |
|
21 | sa.ForeignKey('alert_channels.pkey', | |
|
22 | ondelete='CASCADE', onupdate='CASCADE')), | |
|
23 | sa.Column('resource_id', sa.Integer, | |
|
24 | sa.ForeignKey('resources.resource_id', | |
|
25 | ondelete='CASCADE', onupdate='CASCADE')) | |
|
26 | ) | |
|
27 | ||
|
28 | ||
|
29 | def downgrade(): | |
|
30 | op.drop_table('channels_resources') |
@@ -34,6 +34,14 b' channel_rules_m2m_table = sa.Table(' | |||
|
34 | 34 | sa.ForeignKey('alert_channels_actions.pkey')) |
|
35 | 35 | ) |
|
36 | 36 | |
|
37 | channel_resources_m2m_table = sa.Table( | |
|
38 | 'channels_resources', Base.metadata, | |
|
39 | sa.Column('channel_pkey', sa.Integer, | |
|
40 | sa.ForeignKey('alert_channels.pkey')), | |
|
41 | sa.Column('resource_id', sa.Integer, | |
|
42 | sa.ForeignKey('resources.resource_id')) | |
|
43 | ) | |
|
44 | ||
|
37 | 45 | DATE_FRMT = '%Y-%m-%dT%H:%M' |
|
38 | 46 | |
|
39 | 47 | |
@@ -70,6 +78,12 b' class AlertChannel(Base, BaseModel):' | |||
|
70 | 78 | passive_updates=True, |
|
71 | 79 | secondary=channel_rules_m2m_table, |
|
72 | 80 | backref='channels') |
|
81 | resources = sa.orm.relationship('Resource', | |
|
82 | cascade="all, delete-orphan", | |
|
83 | passive_deletes=True, | |
|
84 | passive_updates=True, | |
|
85 | secondary=channel_resources_m2m_table, | |
|
86 | backref='resources') | |
|
73 | 87 | |
|
74 | 88 | @property |
|
75 | 89 | def channel_visible_value(self): |
@@ -92,7 +92,12 b' class Event(Base, BaseModel):' | |||
|
92 | 92 | users = set([p.user for p in resource.users_for_perm('view')]) |
|
93 | 93 | for user in users: |
|
94 | 94 | for channel in user.alert_channels: |
|
95 | if not channel.channel_validated or not channel.send_alerts: | |
|
95 | matches_resource = not channel.resources or resource in [r.resource_id for r in channel.resources] | |
|
96 | if ( | |
|
97 | not channel.channel_validated or | |
|
98 | not channel.send_alerts or | |
|
99 | not matches_resource | |
|
100 | ): | |
|
96 | 101 | continue |
|
97 | 102 | else: |
|
98 | 103 | try: |
General Comments 2
Please use: https://github.com/Appenlight/appenlight to contribute :) Thanks !
You need to be logged in to leave comments.
Login now