Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
160 changes: 160 additions & 0 deletions config/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -3916,6 +3916,166 @@ def del_user(db, user):
click.echo("Restart service snmp failed with error {}".format(e))
raise click.Abort()

#
# 'bmp' group ('config bmp ...')
#

@config.group()
@click.pass_context
def bmp(ctx):
"""BMP-related configuration"""

#
# 'enable' subgroup ('config bmp enable ...')
#
@bmp.group()
@click.pass_context
def enable(ctx):
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

enable

Please add unit test and ensure each changed line covered.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed. and moved into #3286 since this PR was not created on fork branch.

"""Enable BMP table dump """

#
# 'bgp-neighbor-table' command ('config bmp enable bgp-neighbor-table')
#
@enable.command('bgp-neighbor-table')
@click.pass_context
def enable_bgp_neighbor_table(ctx):
"""enable bgp-neighbor-table sessions
In the case of Multi-Asic platform, corresponding database instance of neighbor will be operated.
"""
log.log_info("'bmp enable bgp-neighbor-table' executing...")
config_db = ConfigDBConnector()
config_db.connect()
bmp_table = config_db.get_table('BMP')
if not bmp_table:
bmp_table = {'table': {'bgp_neighbor_table': 'true'}}
else:
bmp_table['table']['bgp_neighbor_table'] = 'true'
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

table

If 'table' not in bmp_table, will it throw exception?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed. and moved into #3286 since this PR was not created on fork branch.

try:
config_db.mod_entry('BMP', 'table', bmp_table['table'])
except ValueError as e:
ctx.fail("Invalid ConfigDB. Error: {}".format(e))



#
# 'bgp-rib-out-table' command ('config bmp enable bgp-rib-out-table')
#
@enable.command('bgp-rib-out-table')
@click.pass_context
def enable_bgp_rib_out_table(ctx):
"""enable bgp-rib-out-table sessions
In the case of Multi-Asic platform, corresponding database instance of neighbor will be operated.
"""
log.log_info("'bmp enable bgp-rib-out-table' executing...")
config_db = ConfigDBConnector()
config_db.connect()
bmp_table = config_db.get_table('BMP')
if not bmp_table:
bmp_table = {'table': {'bgp-rib-out-table': 'true'}}
else:
bmp_table['table']['bgp-rib-out-table'] = 'true'
try:
config_db.mod_entry('BMP', 'table', bmp_table['table'])
except ValueError as e:
ctx.fail("Invalid ConfigDB. Error: {}".format(e))

#
# 'bgp-rib-in-table' command ('config bmp enable bgp-rib-in-table')
#
@enable.command('bgp-rib-in-table')
@click.pass_context
def enable_bgp_rib_out_table(ctx):
"""enable bgp-rib-in-table sessions
In the case of Multi-Asic platform, corresponding database instance of neighbor will be operated.
"""
log.log_info("'bmp enable bgp-rib-in-table' executing...")
config_db = ConfigDBConnector()
config_db.connect()
bmp_table = config_db.get_table('BMP')
if not bmp_table:
bmp_table = {'table': {'bgp-rib-in-table': 'true'}}
else:
bmp_table['table']['bgp-rib-in-table'] = 'true'
try:
config_db.mod_entry('BMP', 'table', bmp_table['table'])
except ValueError as e:
ctx.fail("Invalid ConfigDB. Error: {}".format(e))

#
# 'disable' subgroup ('config bmp disable ...')
#
@bmp.group()
@click.pass_context
def disable(ctx):
"""Disable BMP table dump """

#
# 'bgp-neighbor-table' command ('config bmp disable bgp-neighbor-table')
#
@disable.command('bgp-neighbor-table')
@click.pass_context
def disable_bgp_neighbor_table(ctx):
"""disable bgp-neighbor-table sessions
In the case of Multi-Asic platform, corresponding database instance of neighbor will be operated.
"""
log.log_info("'bmp disable bgp-neighbor-table' executing...")
config_db = ConfigDBConnector()
config_db.connect()
bmp_table = config_db.get_table('BMP')
if not bmp_table:
bmp_table = {'table': {'bgp-neighbor-table': 'false'}}
else:
bmp_table['table']['bgp-neighbor-table'] = 'false'
try:
config_db.mod_entry('BMP', 'table', bmp_table['table'])
except ValueError as e:
ctx.fail("Invalid ConfigDB. Error: {}".format(e))

#
# 'bgp-rib-out-table' command ('config bmp disable bgp-rib-out-table')
#
@enable.command('bgp-rib-out-table')
@click.pass_context
def diable_bgp_rib_out_table(ctx):
"""disable bgp-rib-out-table sessions
In the case of Multi-Asic platform, corresponding database instance of neighbor will be operated.
"""
log.log_info("'bmp disable bgp-rib-out-table' executing...")
config_db = ConfigDBConnector()
config_db.connect()
bmp_table = config_db.get_table('BMP')
if not bmp_table:
bmp_table = {'table': {'bgp-rib-out-table': 'false'}}
else:
bmp_table['table']['bgp-rib-out-table'] = 'false'
try:
config_db.mod_entry('BMP', 'table', bmp_table['table'])
except ValueError as e:
ctx.fail("Invalid ConfigDB. Error: {}".format(e))


#
# 'bgp-rib-in-table' command ('config bmp disable bgp-rib-in-table')
#
@enable.command('bgp-rib-in-table')
@click.pass_context
def disable_bgp_rib_out_table(ctx):
"""disable bgp-rib-in-table sessions
In the case of Multi-Asic platform, corresponding database instance of neighbor will be operated.
"""
log.log_info("'bmp disable bgp-rib-in-table' executing...")
config_db = ConfigDBConnector()
config_db.connect()
bmp_table = config_db.get_table('BMP')
if not bmp_table:
bmp_table = {'table': {'bgp-rib-in-table': 'false'}}
else:
bmp_table['table']['bgp-rib-in-table'] = 'false'
try:
config_db.mod_entry('BMP', 'table', bmp_table['table'])
except ValueError as e:
ctx.fail("Invalid ConfigDB. Error: {}".format(e))

#
# 'bgp' group ('config bgp ...')
#
Expand Down