def list_rule_props(self, **kwargs): i = pa.parse_api_params(kwargs, 'i', 'S') rules = {} rule_id = i.rsplit('/')[-1] for rtp in ['w', 'a']: result = pa.api_call('management_api_call', i=flags.lm, f='list_rule_props', p={ 'i': f'{rule_id}_{rtp}', }) if result['code'] != apiclient.result_ok: raise pa.FunctionFailed( f'unable to list rule props {rule_id}_{rtp} at ' f'{flags.lm} ({result["code"]})') d = result['data'] for x in [ 'enabled', 'macro', 'macro_args', 'macro_kwargs', 'priority' ]: try: del d[x] except KeyError: pass rules['r' + rtp] = d return rules
def set_rule_props(self, **kwargs): i, rw, ra, save = pa.parse_api_params(kwargs, 'iwaS', 'S..b') rule_id = i.rsplit('/')[-1] if rw: result = pa.api_call('management_api_call', i=flags.lm, f='set_rule_prop', p={ 'i': f'{rule_id}_w', 'v': rw, 'save': save }) if result['code'] != apiclient.result_ok: raise pa.FunctionFailed( f'unable to set warning rule props {rule_id}_w at ' f'{flags.lm} ({result["code"]})') if ra: result = pa.api_call('management_api_call', i=flags.lm, f='set_rule_prop', p={ 'i': f'{rule_id}_a', 'v': ra, 'save': save }) if result['code'] != apiclient.result_ok: raise pa.FunctionFailed( f'unable to set alarm rule props {rule_id}_a at ' f'{flags.lm} ({result["code"]})') return True
def set_description(self, **kwargs): i, d, save = pa.parse_api_params(kwargs, 'idS', 'Ssb') lvar_id = f'lvar:alarmer/{i}' rule_id = i.rsplit('/')[-1] result = pa.api_call('management_api_call', i=flags.lm, f='set_prop', p={ 'i': lvar_id, 'p': 'description', 'v': d, 'save': save }) if result['code'] != apiclient.result_ok: raise pa.FunctionFailed( f'unable to set lvar description {lvar_id} at ' f'{flags.lm} ({result["code"]})') for rtp in ['w', 'a']: result = pa.api_call('management_api_call', i=flags.lm, f='set_rule_prop', p={ 'i': f'{rule_id}_{rtp}', 'p': 'description', 'v': d, 'save': save }) if result['code'] != apiclient.result_ok: raise pa.FunctionFailed( f'unable to set rule description {rule_id}_{rtp} at ' f'{flags.lm} ({result["code"]})') pa.api_call('reload_controller', i=flags.lm) return True
def my_square(self, **kwargs): # parse incoming params x = pa.parse_api_params(kwargs, 'x', 'N') if x < 0: raise pa.InvalidParameter('x < 0') # return some result # if API method produces no result, it SHOULD return True return { 'result': x * x, 'you': pa.get_aci('key_id'), 'me': [pa.get_directory('eva'), pa.get_product().build] }
def destroy(self, **kwargs): i = pa.parse_api_params(kwargs, 'i', 'S') return destroy_alarm(i)
def create(self, **kwargs): u, d, g, rw, ra, save = pa.parse_api_params(kwargs, 'udgwaS', 'sssRRb') import uuid alarm_id = u if u else str(uuid.uuid4()) alarm_full_id = f'{g if g else ""}{"/" if g else ""}{alarm_id}' lvar_id = f'alarmer{"/" if g else ""}{g if g else ""}/{alarm_id}' try: result = pa.api_call('management_api_call', i=flags.lm, f='create_lvar', p={ 'i': lvar_id, 'save': save and not d }) if result['code'] != apiclient.result_ok: raise pa.FunctionFailed(f'unable to create lvar {lvar_id} at' f' {flags.lm} ({result["code"]})') if d: result = pa.api_call('management_api_call', i=flags.lm, f='set_prop', p={ 'i': lvar_id, 'p': 'description', 'v': d, 'save': save }) if result['code'] != apiclient.result_ok: raise pa.FunctionFailed( f'unable to set lvar description {lvar_id} at ' f'{flags.lm} ({result["code"]})') result = pa.api_call('management_api_call', i=flags.lm, f='create_rule', p={ 'u': f'{alarm_id}_w', 'v': rw }) if result['code'] != apiclient.result_ok: raise pa.FunctionFailed( f'unable to create warning rule {alarm_id}w at ' f'{flags.lm} ({result["code"]})') result = pa.api_call('management_api_call', i=flags.lm, f='set_rule_prop', p={ 'i': f'{alarm_id}_w', 'v': { 'description': d, 'macro': '@x_alarmer_notify', 'macro_args': [alarm_full_id, 1], 'priority': 1, 'enabled': True }, 'save': save }) if result['code'] != apiclient.result_ok: raise pa.FunctionFailed( f'unable to set warning rule {alarm_id}_w props ' f'at {flags.lm} ({result["code"]})') result = pa.api_call('management_api_call', i=flags.lm, f='create_rule', p={ 'u': f'{alarm_id}_a', 'v': ra }) if result['code'] != apiclient.result_ok: raise pa.FunctionFailed( f'unable to create alarm rule {alarm_id}w at ' f'{flags.lm} ({result["code"]})') result = pa.api_call('management_api_call', i=flags.lm, f='set_rule_prop', p={ 'i': f'{alarm_id}_a', 'v': { 'description': d, 'macro': '@x_alarmer_notify', 'macro_args': [alarm_full_id, 2], 'priority': 1, 'enabled': True }, 'save': save }) if result['code'] != apiclient.result_ok: raise pa.FunctionFailed( f'unable to set alarm rule {alarm_id}_a props ' f'at {flags.lm} ({result["code"]})') pa.api_call('reload_controller', i=flags.lm) except: pa.log_traceback() destroy_alarm(f'{g if g else ""}{"/" if g else ""}{alarm_id}') raise return {'id': alarm_full_id, 'lvar_id': lvar_id}