diff options
| author | Viacheslav Hletenko <v.gletenko@vyos.io> | 2023-02-18 09:38:51 +0000 | 
|---|---|---|
| committer | Viacheslav Hletenko <v.gletenko@vyos.io> | 2023-02-18 09:38:51 +0000 | 
| commit | 9e2e1700c9ea6b9f7fe5662f45672943380b3905 (patch) | |
| tree | 630c099f6d8b116b55a7bef94dd7b9995446bb87 /src | |
| parent | b4d25eafdba1150176f71598a770bc694b51054e (diff) | |
| download | vyos-1x-9e2e1700c9ea6b9f7fe5662f45672943380b3905.tar.gz vyos-1x-9e2e1700c9ea6b9f7fe5662f45672943380b3905.zip | |
T5013: Extend accelppp op-mode script to get statistic
Extend accelppp.py op-mode script to get
subnet/start/stop/gateway/client_ip_pool/ etc
info from the configuration
Diffstat (limited to 'src')
| -rwxr-xr-x | src/op_mode/accelppp.py | 38 | 
1 files changed, 30 insertions, 8 deletions
| diff --git a/src/op_mode/accelppp.py b/src/op_mode/accelppp.py index 2fd045dc3..87a25bb96 100755 --- a/src/op_mode/accelppp.py +++ b/src/op_mode/accelppp.py @@ -27,29 +27,51 @@ from vyos.util import rc_cmd  accel_dict = {      'ipoe': {          'port': 2002, -        'path': 'service ipoe-server' +        'path': 'service ipoe-server', +        'base_path': 'service ipoe-server'      },      'pppoe': {          'port': 2001, -        'path': 'service pppoe-server' +        'path': 'service pppoe-server', +        'base_path': 'service pppoe-server'      },      'pptp': {          'port': 2003, -        'path': 'vpn pptp' +        'path': 'vpn pptp', +        'base_path': 'vpn pptp'      },      'l2tp': {          'port': 2004, -        'path': 'vpn l2tp' +        'path': 'vpn l2tp', +        'base_path': 'vpn l2tp remote-access'      },      'sstp': {          'port': 2005, -        'path': 'vpn sstp' +        'path': 'vpn sstp', +        'base_path': 'vpn sstp'      }  } -def _get_raw_statistics(accel_output, pattern): -    return vyos.accel_ppp.get_server_statistics(accel_output, pattern, sep=':') +def _get_config_settings(protocol): +    '''Get config dict from VyOS configuration''' +    conf = ConfigTreeQuery() +    base_path = accel_dict[protocol]['base_path'] +    data = conf.get_config_dict(base_path, +                                key_mangling=('-', '_'), +                                get_first_key=True, +                                no_tag_node_value_mangle=True) +    if conf.exists(f'{base_path} authentication local-users'): +        # Delete sensitive data +        del data['authentication']['local_users'] +    return {'config_option': data} + + +def _get_raw_statistics(accel_output, pattern, protocol): +    return { +        **vyos.accel_ppp.get_server_statistics(accel_output, pattern, sep=':'), +        **_get_config_settings(protocol) +    }  def _get_raw_sessions(port): @@ -103,7 +125,7 @@ def show_statistics(raw: bool, protocol: str):      rc, output = rc_cmd(f'/usr/bin/accel-cmd -p {port} show stat')      if raw: -        return _get_raw_statistics(output, pattern) +        return _get_raw_statistics(output, pattern, protocol)      return output | 
