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 | sa.ForeignKey('alert_channels_actions.pkey')) |
|
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 | DATE_FRMT = '%Y-%m-%dT%H:%M' |
|
45 | DATE_FRMT = '%Y-%m-%dT%H:%M' | |
38 |
|
46 | |||
39 |
|
47 | |||
@@ -70,6 +78,12 b' class AlertChannel(Base, BaseModel):' | |||||
70 | passive_updates=True, |
|
78 | passive_updates=True, | |
71 | secondary=channel_rules_m2m_table, |
|
79 | secondary=channel_rules_m2m_table, | |
72 | backref='channels') |
|
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 | @property |
|
88 | @property | |
75 | def channel_visible_value(self): |
|
89 | def channel_visible_value(self): |
@@ -92,7 +92,12 b' class Event(Base, BaseModel):' | |||||
92 | users = set([p.user for p in resource.users_for_perm('view')]) |
|
92 | users = set([p.user for p in resource.users_for_perm('view')]) | |
93 | for user in users: |
|
93 | for user in users: | |
94 | for channel in user.alert_channels: |
|
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 | continue |
|
101 | continue | |
97 | else: |
|
102 | else: | |
98 | try: |
|
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