Skip to content

Commit

Permalink
service-pppoe: T1766: service-pppoe - vyos.config rewrite
Browse files Browse the repository at this point in the history
  • Loading branch information
hagbard-01 committed Jan 23, 2020
1 parent 4920143 commit b11a301
Showing 1 changed file with 118 additions and 118 deletions.
236 changes: 118 additions & 118 deletions src/conf_mode/service-pppoe.py
Expand Up @@ -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: {
Expand All @@ -450,129 +450,129 @@ 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
}
}
)

# 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
Expand Down

0 comments on commit b11a301

Please sign in to comment.