@@ -1312,6 +1312,54 @@ def naming_mode_alias():
1312
1312
"""Set CLI interface naming mode to ALIAS (Vendor port alias)"""
1313
1313
set_interface_naming_mode ('alias' )
1314
1314
1315
+ #
1316
+ # 'syslog' group ('config syslog ...')
1317
+ #
1318
+ @config .group ()
1319
+ @click .pass_context
1320
+ def syslog (ctx ):
1321
+ """Syslog server configuration tasks"""
1322
+ config_db = ConfigDBConnector ()
1323
+ config_db .connect ()
1324
+ ctx .obj = {'db' : config_db }
1325
+ pass
1326
+
1327
+ @syslog .command ('add' )
1328
+ @click .argument ('syslog_ip_address' , metavar = '<syslog_ip_address>' , required = True )
1329
+ @click .pass_context
1330
+ def add_syslog_server (ctx , syslog_ip_address ):
1331
+ """ Add syslog server IP """
1332
+ if not is_ipaddress (syslog_ip_address ):
1333
+ ctx .fail ('Invalid ip address' )
1334
+ db = ctx .obj ['db' ]
1335
+ syslog_servers = db .get_table ("SYSLOG_SERVER" )
1336
+ if syslog_ip_address in syslog_servers :
1337
+ click .echo ("Syslog server {} is already configured" .format (syslog_ip_address ))
1338
+ return
1339
+ else :
1340
+ db .set_entry ('SYSLOG_SERVER' , syslog_ip_address , {'NULL' : 'NULL' })
1341
+ click .echo ("Syslog server {} added to configuration" .format (syslog_ip_address ))
1342
+ try :
1343
+ click .echo ("Restarting rsyslog-config service..." )
1344
+ run_command ("systemctl restart rsyslog-config" , display_cmd = False )
1345
+ except SystemExit as e :
1346
+ ctx .fail ("Restart service rsyslog-config failed with error {}" .format (e ))
1347
+
1348
+ @syslog .command ('del' )
1349
+ @click .argument ('syslog_ip_address' , metavar = '<syslog_ip_address>' , required = True )
1350
+ @click .pass_context
1351
+ def del_syslog_server (ctx , syslog_ip_address ):
1352
+ """ Delete syslog server IP """
1353
+ if not is_ipaddress (syslog_ip_address ):
1354
+ ctx .fail ('Invalid IP address' )
1355
+ db = ctx .obj ['db' ]
1356
+ db .set_entry ('SYSLOG_SERVER' , '{}' .format (syslog_ip_address ), None )
1357
+ click .echo ("Syslog server {} removed from configuration" .format (syslog_ip_address ))
1358
+ try :
1359
+ click .echo ("Restarting rsyslog-config service..." )
1360
+ run_command ("systemctl restart rsyslog-config" , display_cmd = False )
1361
+ except SystemExit as e :
1362
+ ctx .fail ("Restart service rsyslog-config failed with error {}" .format (e ))
1315
1363
1316
1364
if __name__ == '__main__' :
1317
1365
config ()
0 commit comments