Beispiel #1
0
 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
Beispiel #2
0
 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
Beispiel #3
0
 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
Beispiel #4
0
Datei: my.py Projekt: alttch/eva3
 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]
     }
Beispiel #5
0
 def destroy(self, **kwargs):
     i = pa.parse_api_params(kwargs, 'i', 'S')
     return destroy_alarm(i)
Beispiel #6
0
 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}