Skip to content

Commit e670bc8

Browse files
committed
fix(api): cmdb trigger
1 parent 7170c3a commit e670bc8

2 files changed

Lines changed: 15 additions & 1 deletion

File tree

cmdb-api/api/commands/click_cmdb.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,9 @@ def cmdb_trigger():
262262
i = 0
263263
triggers = CITypeTrigger.get_by(to_dict=False, __func_isnot__key_attr_id=None)
264264
for trigger in triggers:
265+
if not trigger.option.get('enable'):
266+
continue
267+
265268
try:
266269
ready_cis = CITriggerManager.waiting_cis(trigger)
267270
except Exception as e:

cmdb-api/api/lib/cmdb/ci.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1721,6 +1721,9 @@ def fire_by_trigger(cls, trigger, operate_type, ci_dict, record_id=None):
17211721

17221722
@classmethod
17231723
def waiting_cis(cls, trigger):
1724+
if not trigger.option.get('enable'):
1725+
return []
1726+
17241727
now = datetime.datetime.today()
17251728

17261729
config = trigger.option.get('notifies') or {}
@@ -1731,7 +1734,12 @@ def waiting_cis(cls, trigger):
17311734

17321735
value_table = TableMap(attr=attr).table
17331736

1734-
values = value_table.get_by(attr_id=attr.id, to_dict=False)
1737+
values = (
1738+
value_table.get_by(attr_id=attr.id, to_dict=False, only_query=True)
1739+
.join(CI, CI.id == value_table.ci_id)
1740+
.filter(CI.type_id == trigger.type_id)
1741+
.filter(CI.deleted.is_(False))
1742+
)
17351743

17361744
result = []
17371745
for v in values:
@@ -1754,6 +1762,9 @@ def trigger_notify(cls, trigger, ci, only_test=False):
17541762
:param only_test:
17551763
:return:
17561764
"""
1765+
if not only_test and not trigger.option.get('enable'):
1766+
return False
1767+
17571768
if (trigger.option.get('notifies', {}).get('notify_at') == datetime.datetime.now().strftime("%H:%M") or
17581769
not trigger.option.get('notifies', {}).get('notify_at')) or only_test:
17591770

0 commit comments

Comments
 (0)