BGPSpeaker: Enhance APIs for operator.show
This patch enhances the APIs of BGPSpeaker class which call 'operator.show' APIs. Note: This patch renames the argument 'routetype' of neighbor_get() into 'route_type' for the consistency of APIs. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
This commit is contained in:
parent
7201a6085d
commit
6522ea1c83
@ -663,24 +663,42 @@ class BGPSpeaker(object):
|
||||
|
||||
call('vrf.delete', **vrf)
|
||||
|
||||
def vrfs_get(self, format='json'):
|
||||
def vrfs_get(self, subcommand='routes', route_dist=None,
|
||||
route_family='all', format='json'):
|
||||
""" This method returns the existing vrfs.
|
||||
|
||||
``subcommand`` specifies the subcommand.
|
||||
|
||||
'routes': shows routes present for vrf
|
||||
|
||||
'summary': shows configuration and summary of vrf
|
||||
|
||||
``route_dist`` specifies a route distinguisher value.
|
||||
If route_family is not 'all', this value must be specified.
|
||||
|
||||
``route_family`` specifies route family of the VRF.
|
||||
This parameter must be RF_VPN_V4, RF_VPN_V6 or RF_L2_EVPN
|
||||
or 'all'.
|
||||
|
||||
``format`` specifies the format of the response.
|
||||
This parameter must be 'json' or 'cli'.
|
||||
"""
|
||||
show = {
|
||||
'params': ['vrf', 'routes', 'all'],
|
||||
'format': format,
|
||||
}
|
||||
if route_family in SUPPORTED_VRF_RF:
|
||||
assert route_dist is not None
|
||||
show['params'] = ['vrf', subcommand, route_dist, route_family]
|
||||
else:
|
||||
show['params'] = ['vrf', subcommand, 'all']
|
||||
|
||||
return call('operator.show', **show)
|
||||
|
||||
def rib_get(self, family='ipv4', format='json'):
|
||||
def rib_get(self, family='all', format='json'):
|
||||
""" This method returns the BGP routing information in a json
|
||||
format. This will be improved soon.
|
||||
|
||||
``family`` specifies the address family of the RIB.
|
||||
``family`` specifies the address family of the RIB (e.g. 'ipv4').
|
||||
|
||||
``format`` specifies the format of the response.
|
||||
This parameter must be 'json' or 'cli'.
|
||||
@ -692,11 +710,11 @@ class BGPSpeaker(object):
|
||||
|
||||
return call('operator.show', **show)
|
||||
|
||||
def neighbor_get(self, routetype, address, format='json'):
|
||||
""" This method returns the BGP adj-RIB-in information in a json
|
||||
format.
|
||||
def neighbor_get(self, route_type, address, format='json'):
|
||||
""" This method returns the BGP adj-RIB-in/adj-RIB-out information
|
||||
in a json format.
|
||||
|
||||
``routetype`` This parameter is necessary for only received-routes
|
||||
``route_type`` This parameter is necessary for only received-routes
|
||||
and sent-routes.
|
||||
|
||||
received-routes : paths received and not withdrawn by given peer
|
||||
@ -712,13 +730,26 @@ class BGPSpeaker(object):
|
||||
show = {
|
||||
'format': format,
|
||||
}
|
||||
if routetype == 'sent-routes' or routetype == 'received-routes':
|
||||
show['params'] = ['neighbor', routetype, address, 'all']
|
||||
if route_type == 'sent-routes' or route_type == 'received-routes':
|
||||
show['params'] = ['neighbor', route_type, address, 'all']
|
||||
else:
|
||||
show['params'] = ['neighbor', 'received-routes', address, 'all']
|
||||
|
||||
return call('operator.show', **show)
|
||||
|
||||
def neighbors_get(self, format='json'):
|
||||
""" This method returns a list of the BGP neighbors.
|
||||
|
||||
``format`` specifies the format of the response.
|
||||
This parameter must be 'json' or 'cli'.
|
||||
"""
|
||||
show = {
|
||||
'params': ['neighbor'],
|
||||
'format': format,
|
||||
}
|
||||
|
||||
return call('operator.show', **show)
|
||||
|
||||
def _set_filter(self, filter_type, address, filters):
|
||||
assert filter_type in ('in', 'out'),\
|
||||
'filter type must be \'in\' or \'out\''
|
||||
|
Loading…
Reference in New Issue
Block a user