diff --git a/src/conf_mode/service-pppoe.py b/src/conf_mode/service-pppoe.py index 9693f3e619..4e72606371 100755 --- a/src/conf_mode/service-pppoe.py +++ b/src/conf_mode/service-pppoe.py @@ -362,83 +362,83 @@ def get_config(): 'sesscrtl': 'replace' } - c.set_level('service pppoe-server') + c.set_level(['service', 'pppoe-server']) # general options - if c.exists('access-concentrator'): - config_data['concentrator'] = c.return_value('access-concentrator') - if c.exists('service-name'): - config_data['svc_name'] = c.return_value('service-name') - if c.exists('interface'): - for intfc in c.list_nodes('interface'): + if c.exists(['access-concentrator']): + config_data['concentrator'] = c.return_value(['access-concentrator']) + if c.exists(['service-name']): + config_data['svc_name'] = c.return_value(['service-name']) + if c.exists(['interface']): + for intfc in c.list_nodes(['interface']): config_data['interface'][intfc] = {'vlans': []} - if c.exists('interface ' + intfc + ' vlan-id'): + if c.exists(['interface', intfc, 'vlan-id']): config_data['interface'][intfc]['vlans'] += c.return_values( - 'interface ' + intfc + ' vlan-id') - if c.exists('interface ' + intfc + ' vlan-range'): + ['interface', intfc , 'vlan-id']) + if c.exists(['interface', intfc, 'vlan-range']): config_data['interface'][intfc]['vlans'] += c.return_values( - 'interface ' + intfc + ' vlan-range') - if c.exists('local-ip'): - config_data['ppp_gw'] = c.return_value('local-ip') - if c.exists('dns-servers'): - if c.return_value('dns-servers server-1'): - config_data['dns'].append(c.return_value('dns-servers server-1')) - if c.return_value('dns-servers server-2'): - config_data['dns'].append(c.return_value('dns-servers server-2')) - if c.exists('dnsv6-servers'): - if c.return_value('dnsv6-servers server-1'): + ['interface', intfc, 'vlan-range']) + if c.exists(['local-ip']): + config_data['ppp_gw'] = c.return_value(['local-ip']) + if c.exists(['dns-servers']): + if c.return_value(['dns-servers', 'server-1']): + config_data['dns'].append(c.return_value(['dns-servers', 'server-1'])) + if c.return_value(['dns-servers', 'server-2']): + config_data['dns'].append(c.return_value(['dns-servers', 'server-2'])) + if c.exists(['dnsv6-servers']): + if c.return_value(['dnsv6-servers', 'server-1']): config_data['dnsv6'].append( - c.return_value('dnsv6-servers server-1')) - if c.return_value('dnsv6-servers server-2'): + c.return_value(['dnsv6-servers', 'server-1'])) + if c.return_value(['dnsv6-servers', 'server-2']): config_data['dnsv6'].append( - c.return_value('dnsv6-servers server-2')) - if c.return_value('dnsv6-servers server-3'): + c.return_value(['dnsv6-servers', 'server-2'])) + if c.return_value(['dnsv6-servers', 'server-3']): config_data['dnsv6'].append( - c.return_value('dnsv6-servers server-3')) - if c.exists('wins-servers'): - if c.return_value('wins-servers server-1'): - config_data['wins'].append(c.return_value('wins-servers server-1')) - if c.return_value('wins-servers server-2'): - config_data['wins'].append(c.return_value('wins-servers server-2')) - if c.exists('client-ip-pool'): - if c.exists('client-ip-pool start'): + c.return_value(['dnsv6-servers', 'server-3'])) + if c.exists(['wins-servers']): + if c.return_value(['wins-servers', 'server-1']): + config_data['wins'].append(c.return_value(['wins-servers', 'server-1'])) + if c.return_value(['wins-servers', 'server-2']): + config_data['wins'].append(c.return_value(['wins-servers', 'server-2'])) + if c.exists(['client-ip-pool']): + if c.exists(['client-ip-pool', 'start']): config_data['client_ip_pool'] = c.return_value( - 'client-ip-pool start') - if c.exists('client-ip-pool stop'): + ['client-ip-pool start']) + if c.exists(['client-ip-pool stop']): config_data['client_ip_pool'] += '-' + re.search( - '[0-9]+$', c.return_value('client-ip-pool stop')).group(0) + '[0-9]+$', c.return_value(['client-ip-pool', 'stop'])).group(0) else: raise ConfigError('client ip pool stop required') - if c.exists('client-ip-pool subnet'): + if c.exists(['client-ip-pool', 'subnet']): config_data['client_ip_subnets'] = c.return_values( - 'client-ip-pool subnet') - if c.exists('client-ipv6-pool prefix'): + ['client-ip-pool', 'subnet']) + if c.exists(['client-ipv6-pool', 'prefix']): config_data['client_ipv6_pool'][ - 'prefix'] = c.return_values('client-ipv6-pool prefix') - if c.exists('client-ipv6-pool delegate-prefix'): + 'prefix'] = c.return_values(['client-ipv6-pool', 'prefix']) + if c.exists(['client-ipv6-pool', 'delegate-prefix']): config_data['client_ipv6_pool']['delegate-prefix'] = c.return_values( - 'client-ipv6-pool delegate-prefix') - if c.exists('limits'): - if c.exists('limits burst'): + ['client-ipv6-pool', 'delegate-prefix']) + if c.exists(['limits']): + if c.exists(['limits', 'burst']): config_data['limits']['burst'] = str( - c.return_value('limits burst')) - if c.exists('limits timeout'): + c.return_value(['limits', 'burst'])) + if c.exists(['limits', 'timeout']): config_data['limits']['timeout'] = str( - c.return_value('limits timeout')) - if c.exists('limits connection-limit'): + c.return_value(['limits', 'timeout'])) + if c.exists(['limits', 'connection-limit']): config_data['limits']['conn-limit'] = str( - c.return_value('limits connection-limit')) - if c.exists('snmp'): + c.return_value(['limits', 'connection-limit'])) + if c.exists(['snmp']): config_data['snmp'] = 'enable' - if c.exists('snmp master-agent'): + if c.exists(['snmp', 'master-agent']): config_data['snmp'] = 'enable-ma' # authentication mode local - if not c.exists('authentication mode'): + if not c.exists(['authentication', 'mode']): raise ConfigError('pppoe-server authentication mode required') - if c.exists('authentication mode local'): - if c.exists('authentication local-users username'): - for usr in c.list_nodes('authentication local-users username'): + if c.exists(['authentication', 'mode', 'local']): + if c.exists(['authentication', 'local-users', 'username']): + for usr in c.list_nodes(['authentication', 'local-users', 'username']): config_data['authentication']['local-users'].update( { usr: { @@ -450,42 +450,42 @@ def get_config(): } } ) - if c.exists('authentication local-users username ' + usr + ' password'): + if c.exists(['authentication', 'local-users', 'username', usr, 'password']): config_data['authentication']['local-users'][usr]['passwd'] = c.return_value( - 'authentication local-users username ' + usr + ' password') - if c.exists('authentication local-users username ' + usr + ' disable'): + ['authentication', 'local-users', 'username', usr, 'password']) + if c.exists(['authentication', 'local-users', 'username', usr, 'disable']): config_data['authentication'][ 'local-users'][usr]['state'] = 'disable' - if c.exists('authentication local-users username ' + usr + ' static-ip'): + if c.exists(['authentication', 'local-users', 'username', usr, 'static-ip']): config_data['authentication']['local-users'][usr]['ip'] = c.return_value( - 'authentication local-users username ' + usr + ' static-ip') - if c.exists('authentication local-users username ' + usr + ' rate-limit download'): + ['authentication', 'local-users', 'username', usr, 'static-ip']) + if c.exists(['authentication', 'local-users', 'username', usr, 'rate-limit', 'download']): config_data['authentication']['local-users'][usr]['download'] = c.return_value( - 'authentication local-users username ' + usr + ' rate-limit download') - if c.exists('authentication local-users username ' + usr + ' rate-limit upload'): + ['authentication', 'local-users', 'username', usr, 'rate-limit', 'download']) + if c.exists(['authentication', 'local-users', 'username', usr, 'rate-limit', 'upload']): config_data['authentication']['local-users'][usr]['upload'] = c.return_value( - 'authentication local-users username ' + usr + ' rate-limit upload') + ['authentication', 'local-users', 'username', usr, 'rate-limit', 'upload']) # authentication mode radius servers and settings - if c.exists('authentication mode radius'): + if c.exists(['authentication', 'mode', 'radius']): config_data['authentication']['mode'] = 'radius' - rsrvs = c.list_nodes('authentication radius-server') + rsrvs = c.list_nodes(['authentication', 'radius-server']) for rsrv in rsrvs: - if c.return_value('authentication radius-server ' + rsrv + ' fail-time') == None: + if c.return_value(['authentication', 'radius-server', rsrv, 'fail-time']) == None: ftime = '0' else: ftime = str( - c.return_value('authentication radius-server ' + rsrv + ' fail-time')) - if c.return_value('authentication radius-server ' + rsrv + ' req-limit') == None: + c.return_value(['authentication', 'radius-server', rsrv, 'fail-time'])) + if c.return_value(['authentication', 'radius-server', rsrv, 'req-limit']) == None: reql = '0' else: reql = str( - c.return_value('authentication radius-server ' + rsrv + ' req-limit')) + c.return_value(['authentication', 'radius-server', rsrv, 'req-limit'])) config_data['authentication']['radiussrv'].update( { rsrv: { - 'secret': c.return_value('authentication radius-server ' + rsrv + ' secret'), + 'secret': c.return_value(['authentication', 'radius-server', rsrv, 'secret']), 'fail-time': ftime, 'req-limit': reql } @@ -493,86 +493,86 @@ def get_config(): ) # advanced radius-setting - if c.exists('authentication radius-settings'): - if c.exists('authentication radius-settings acct-timeout'): + if c.exists(['authentication', 'radius-settings']): + if c.exists(['authentication', 'radius-settings', 'acct-timeout']): config_data['authentication']['radiusopt']['acct-timeout'] = c.return_value( - 'authentication radius-settings acct-timeout') - if c.exists('authentication radius-settings max-try'): + ['authentication', 'radius-settings', 'acct-timeout']) + if c.exists(['authentication', 'radius-settings', 'max-try']): config_data['authentication']['radiusopt'][ - 'max-try'] = c.return_value('authentication radius-settings max-try') - if c.exists('authentication radius-settings timeout'): + 'max-try'] = c.return_value(['authentication', 'radius-settings', 'max-try']) + if c.exists(['authentication', 'radius-settings', 'timeout']): config_data['authentication']['radiusopt'][ - 'timeout'] = c.return_value('authentication radius-settings timeout') - if c.exists('authentication radius-settings nas-identifier'): + 'timeout'] = c.return_value(['authentication', 'radius-settings', 'timeout']) + if c.exists(['authentication', 'radius-settings', 'nas-identifier']): config_data['authentication']['radiusopt']['nas-id'] = c.return_value( - 'authentication radius-settings nas-identifier') - if c.exists('authentication radius-settings nas-ip-address'): + ['authentication', 'radius-settings', 'nas-identifier']) + if c.exists(['authentication', 'radius-settings', 'nas-ip-address']): config_data['authentication']['radiusopt']['nas-ip'] = c.return_value( - 'authentication radius-settings nas-ip-address') - if c.exists('authentication radius-settings dae-server'): + ['authentication', 'radius-settings', 'nas-ip-address']) + if c.exists(['authentication', 'radius-settings', 'dae-server']): config_data['authentication']['radiusopt'].update( { 'dae-srv': { - 'ip-addr': c.return_value('authentication radius-settings dae-server ip-address'), - 'port': c.return_value('authentication radius-settings dae-server port'), - 'secret': str(c.return_value('authentication radius-settings dae-server secret')) + 'ip-addr': c.return_value(['authentication', 'radius-settings', 'dae-server', 'ip-address']), + 'port': c.return_value(['authentication', 'radius-settings', 'dae-server', 'port']), + 'secret': str(c.return_value(['authentication', 'radius-settings', 'dae-server', 'secret'])) } } ) # filter-id is the internal accel default if attribute is empty # set here as default for visibility which may change in the future - if c.exists('authentication radius-settings rate-limit enable'): - if not c.exists('authentication radius-settings rate-limit attribute'): + if c.exists(['authentication', 'radius-settings', 'rate-limit', 'enable']): + if not c.exists(['authentication', 'radius-settings', 'rate-limit', 'attribute']): config_data['authentication']['radiusopt']['shaper'] = { 'attr': 'Filter-Id' } else: config_data['authentication']['radiusopt']['shaper'] = { - 'attr': c.return_value('authentication radius-settings rate-limit attribute') + 'attr': c.return_value(['authentication', 'radius-settings', 'rate-limit', 'attribute']) } - if c.exists('authentication radius-settings rate-limit vendor'): + if c.exists(['authentication', 'radius-settings', 'rate-limit', 'vendor']): config_data['authentication']['radiusopt']['shaper'][ - 'vendor'] = c.return_value('authentication radius-settings rate-limit vendor') + 'vendor'] = c.return_value(['authentication', 'radius-settings', 'rate-limit', 'vendor']) - if c.exists('mtu'): - config_data['mtu'] = c.return_value('mtu') + if c.exists(['mtu']): + config_data['mtu'] = c.return_value(['mtu']) # ppp_options ppp_options = {} - if c.exists('ppp-options'): - if c.exists('ppp-options ccp'): - ppp_options['ccp'] = c.return_value('ppp-options ccp') - if c.exists('ppp-options min-mtu'): - ppp_options['min-mtu'] = c.return_value('ppp-options min-mtu') - if c.exists('ppp-options mru'): - ppp_options['mru'] = c.return_value('ppp-options mru') - if c.exists('ppp-options mppe deny'): + if c.exists(['ppp-options']): + if c.exists(['ppp-options', 'ccp']): + ppp_options['ccp'] = c.return_value(['ppp-options', 'ccp']) + if c.exists(['ppp-options', 'min-mtu']): + ppp_options['min-mtu'] = c.return_value(['ppp-options', 'min-mtu']) + if c.exists(['ppp-options', 'mru']): + ppp_options['mru'] = c.return_value(['ppp-options', 'mru']) + if c.exists(['ppp-options', 'mppe deny']): ppp_options['mppe'] = 'deny' - if c.exists('ppp-options mppe require'): - ppp_options['mppe'] = 'requre' - if c.exists('ppp-options mppe prefer'): + if c.exists(['ppp-options', 'mppe', 'require']): + ppp_options['mppe'] = 'require' + if c.exists(['ppp-options', 'mppe', 'prefer']): ppp_options['mppe'] = 'prefer' - if c.exists('ppp-options lcp-echo-failure'): + if c.exists(['ppp-options', 'lcp-echo-failure']): ppp_options['lcp-echo-failure'] = c.return_value( - 'ppp-options lcp-echo-failure') - if c.exists('ppp-options lcp-echo-interval'): + ['ppp-options', 'lcp-echo-failure']) + if c.exists(['ppp-options', 'lcp-echo-interval']): ppp_options['lcp-echo-interval'] = c.return_value( - 'ppp-options lcp-echo-interval') - if c.exists('ppp-options ipv4'): - ppp_options['ipv4'] = c.return_value('ppp-options ipv4') - if c.exists('ppp-options ipv6'): - ppp_options['ipv6'] = c.return_value('ppp-options ipv6') - if c.exists('ppp-options ipv6-accept-peer-intf-id'): + ['ppp-options', 'lcp-echo-interval']) + if c.exists(['ppp-options', 'ipv4']): + ppp_options['ipv4'] = c.return_value(['ppp-options', 'ipv4']) + if c.exists(['ppp-options', 'ipv6']): + ppp_options['ipv6'] = c.return_value(['ppp-options', 'ipv6']) + if c.exists(['ppp-options', 'ipv6-accept-peer-intf-id']): ppp_options['ipv6-accept-peer-intf-id'] = 1 - if c.exists('ppp-options ipv6-intf-id'): + if c.exists(['ppp-options', 'ipv6-intf-id']): ppp_options['ipv6-intf-id'] = c.return_value( - 'ppp-options ipv6-intf-id') - if c.exists('ppp-options ipv6-peer-intf-id'): + ['ppp-options', 'ipv6-intf-id']) + if c.exists(['ppp-options', 'ipv6-peer-intf-id']): ppp_options['ipv6-peer-intf-id'] = c.return_value( - 'ppp-options ipv6-peer-intf-id') - if c.exists('ppp-options lcp-echo-timeout'): + ['ppp-options', 'ipv6-peer-intf-id']) + if c.exists(['ppp-options', 'lcp-echo-timeout']): ppp_options['lcp-echo-timeout'] = c.return_value( - 'ppp-options lcp-echo-timeout') + ['ppp-options', 'lcp-echo-timeout']) if len(ppp_options) != 0: config_data['ppp_options'] = ppp_options