Skip to content

Commit 8e5d478

Browse files
authored
[ssip]: Add CLI (sonic-net#2191)
- What I did Implemented CLI for Syslog Source IP How I did it N/A - How to verify it N/A Previous command output (if the output of a command-line utility has changed) - N/A New command output (if the output of a command-line utility has changed) root@sonic:/home/admin# show syslog SERVER IP SOURCE IP PORT VRF ----------- ----------- ------ -------- 2.2.2.2 1.1.1.1 514 default 3.3.3.3 1.1.1.1 514 mgmt 2222::2222 1111::1111 514 Vrf-Data Signed-off-by: Nazarii Hnydyn <[email protected]>
1 parent 1dacb7f commit 8e5d478

File tree

10 files changed

+937
-91
lines changed

10 files changed

+937
-91
lines changed

config/main.py

+10-52
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
from . import plugins
4848
from .config_mgmt import ConfigMgmtDPB
4949
from . import mclag
50+
from . import syslog
5051

5152
# mock masic APIs for unit test
5253
try:
@@ -1213,6 +1214,9 @@ def config(ctx):
12131214
config.add_command(mclag.mclag_member)
12141215
config.add_command(mclag.mclag_unique_ip)
12151216

1217+
# syslog module
1218+
config.add_command(syslog.syslog)
1219+
12161220
@config.command()
12171221
@click.option('-y', '--yes', is_flag=True, callback=_abort_if_false,
12181222
expose_value=False, prompt='Existing files will be overwritten, continue?')
@@ -5056,6 +5060,12 @@ def del_vrf(ctx, vrf_name):
50565060
ctx.fail("'vrf_name' is not start with Vrf, mgmt or management!")
50575061
if len(vrf_name) > 15:
50585062
ctx.fail("'vrf_name' is too long!")
5063+
syslog_table = config_db.get_table("SYSLOG_SERVER")
5064+
syslog_vrf_dev = "mgmt" if vrf_name == "management" else vrf_name
5065+
for syslog_entry, syslog_data in syslog_table.items():
5066+
syslog_vrf = syslog_data.get("vrf")
5067+
if syslog_vrf == syslog_vrf_dev:
5068+
ctx.fail("Failed to remove VRF device: {} is in use by SYSLOG_SERVER|{}".format(syslog_vrf, syslog_entry))
50595069
if (vrf_name == 'mgmt' or vrf_name == 'management'):
50605070
vrf_delete_management_vrf(config_db)
50615071
else:
@@ -6082,58 +6092,6 @@ def enable(enable):
60826092
command = "ztp enable"
60836093
clicommon.run_command(command, display_cmd=True)
60846094

6085-
#
6086-
# 'syslog' group ('config syslog ...')
6087-
#
6088-
@config.group(cls=clicommon.AbbreviationGroup, name='syslog')
6089-
@click.pass_context
6090-
def syslog_group(ctx):
6091-
"""Syslog server configuration tasks"""
6092-
config_db = ConfigDBConnector()
6093-
config_db.connect()
6094-
ctx.obj = {'db': config_db}
6095-
6096-
@syslog_group.command('add')
6097-
@click.argument('syslog_ip_address', metavar='<syslog_ip_address>', required=True)
6098-
@click.pass_context
6099-
def add_syslog_server(ctx, syslog_ip_address):
6100-
""" Add syslog server IP """
6101-
if not clicommon.is_ipaddress(syslog_ip_address):
6102-
ctx.fail('Invalid ip address')
6103-
db = ctx.obj['db']
6104-
syslog_servers = db.get_table("SYSLOG_SERVER")
6105-
if syslog_ip_address in syslog_servers:
6106-
click.echo("Syslog server {} is already configured".format(syslog_ip_address))
6107-
return
6108-
else:
6109-
db.set_entry('SYSLOG_SERVER', syslog_ip_address, {'NULL': 'NULL'})
6110-
click.echo("Syslog server {} added to configuration".format(syslog_ip_address))
6111-
try:
6112-
click.echo("Restarting rsyslog-config service...")
6113-
clicommon.run_command("systemctl restart rsyslog-config", display_cmd=False)
6114-
except SystemExit as e:
6115-
ctx.fail("Restart service rsyslog-config failed with error {}".format(e))
6116-
6117-
@syslog_group.command('del')
6118-
@click.argument('syslog_ip_address', metavar='<syslog_ip_address>', required=True)
6119-
@click.pass_context
6120-
def del_syslog_server(ctx, syslog_ip_address):
6121-
""" Delete syslog server IP """
6122-
if not clicommon.is_ipaddress(syslog_ip_address):
6123-
ctx.fail('Invalid IP address')
6124-
db = ctx.obj['db']
6125-
syslog_servers = db.get_table("SYSLOG_SERVER")
6126-
if syslog_ip_address in syslog_servers:
6127-
db.set_entry('SYSLOG_SERVER', '{}'.format(syslog_ip_address), None)
6128-
click.echo("Syslog server {} removed from configuration".format(syslog_ip_address))
6129-
else:
6130-
ctx.fail("Syslog server {} is not configured.".format(syslog_ip_address))
6131-
try:
6132-
click.echo("Restarting rsyslog-config service...")
6133-
clicommon.run_command("systemctl restart rsyslog-config", display_cmd=False)
6134-
except SystemExit as e:
6135-
ctx.fail("Restart service rsyslog-config failed with error {}".format(e))
6136-
61376095
#
61386096
# 'ntp' group ('config ntp ...')
61396097
#

0 commit comments

Comments
 (0)