1212
1313
1414class St2BaseAction (Action ):
15+ def run (self , ** kwargs ):
16+ pass
17+
1518 def __init__ (self , config ):
1619 super (St2BaseAction , self ).__init__ (config )
1720 self ._client = Client
@@ -111,6 +114,22 @@ def _run_client_method(self, method, method_kwargs, format_func, format_kwargs=N
111114 return result
112115
113116 def _manipulate_rule (self , name , pack , enabled ):
117+ """
118+ Enable or disable rule.
119+
120+ :param name: Name of the rule
121+ :type name: ``str``
122+
123+ :param pack: Pack where the rule is
124+ :type pack: ``str``
125+
126+ :param enabled:
127+ :type enabled: ``bool``
128+
129+ :return: Updated rule or string in case of an error
130+ :rtype: ``dict`` or ``str``
131+ """
132+
114133 rule_name = '{}.{}' .format (pack , name )
115134 failure_reason = None
116135 rule = None
@@ -124,14 +143,21 @@ def _manipulate_rule(self, name, pack, enabled):
124143 if failure_reason :
125144 return 'Could not get rule {}: {}' .format (rule_name , failure_reason )
126145
127- rule_enabled = rule .enabled
128-
129- if isinstance (rule_enabled , bool ) and rule_enabled == enabled :
130- # already enabled, so just return true and formatted results
146+ try :
147+ rule_enabled = rule .enabled
148+ except AttributeError :
149+ # this should not happen, but better be safe than sorry
150+ self .logger .debug ("Hmm, rule {}.{} doesn't have attribute 'enabled', "
151+ "assuming it's off then." .format (name , pack ))
152+ rule_enabled = False
153+
154+ if rule_enabled == enabled :
155+ # already enabled/disabled, so just return true and formatted results
131156 return rule
132157
133- rule .enabled = enabled
134158 try :
159+ rule .enabled = enabled
160+
135161 self .client .rules .update (rule )
136162 except Exception as exc :
137163 return 'Could not update rule {}: {}' .format (rule_name , exc )
0 commit comments