Skip to content

Commit

Permalink
Add command to set port description (based on patch by Nikhil Moray)
Browse files Browse the repository at this point in the history
  • Loading branch information
lukasstockner authored Feb 22, 2023
1 parent bbc1e65 commit b992f09
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 1 deletion.
29 changes: 29 additions & 0 deletions config/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -3436,6 +3436,35 @@ def shutdown(ctx, interface_name):
if sp_name in intf_fs:
config_db.mod_entry("VLAN_SUB_INTERFACE", sp_name, {"admin_status": "down"})

#
# 'description' subcommand
#

@interface.command()
@click.pass_context
@click.argument('interface_name', metavar='<interface_name>', required=True)
@click.argument('interface_desc', metavar='<interface_desc>', required=True)
@click.option('-v', '--verbose', is_flag=True, help="Enable verbose output")
def description(ctx, interface_name, interface_desc, verbose):
"""Set interface description"""
config_db = ctx.obj['config_db']
if clicommon.get_interface_naming_mode() == "alias":
interface_name = interface_alias_to_name(interface_name)
if interface_name is None:
ctx.fail("'interface_name' is None!")

if interface_name_is_valid(config_db, interface_name) is False:
ctx.fail("Interface name is invalid. Please enter a valid interface name!!")

if ctx.obj['namespace'] is DEFAULT_NAMESPACE:
command = "portconfig -p {} -d '{}'".format(interface_name, interface_desc)
else:
command = "portconfig -p {} -d '{}' -n {}".format(interface_name, interface_desc, ctx.obj['namespace'])

if verbose:
command += " -vv"
clicommon.run_command(command, display_cmd=verbose)

#
# 'speed' subcommand
#
Expand Down
12 changes: 11 additions & 1 deletion scripts/portconfig
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ optional arguments:
-S --adv-speeds port advertised speeds
-t --interface-type port interface type
-T --adv-interface-types port advertised interface types
-d --description port description
"""
import os
import sys
Expand All @@ -42,6 +43,7 @@ from utilities_common.general import load_db_config

# APPL_DB constants
PORT_TABLE_NAME = "PORT"
PORT_DESC_FIELD_NAME = "description"
PORT_SPEED_CONFIG_FIELD_NAME = "speed"
PORT_FEC_CONFIG_FIELD_NAME = "fec"
PORT_MTU_CONFIG_FIELD_NAME = "mtu"
Expand Down Expand Up @@ -136,6 +138,11 @@ class portconfig(object):
mode = 'on' if mode == 'enabled' else 'off'
self.db.mod_entry(PORT_TABLE_NAME, port, {PORT_AUTONEG_CONFIG_FIELD_NAME: mode})

def set_description(self, port, desc):
if self.verbose:
print("Setting description %s on port %s" % (desc, port))
self.db.mod_entry(PORT_TABLE_NAME, port, {PORT_DESC_FIELD_NAME: desc})

def set_adv_speeds(self, port, adv_speeds):
if self.verbose:
print("Setting adv_speeds %s on port %s" % (adv_speeds, port))
Expand Down Expand Up @@ -244,6 +251,7 @@ def main():
parser.add_argument('-f', '--fec', type=str, help='port fec mode value in (none, rs, fc)', default=None)
parser.add_argument('-m', '--mtu', type=int, help='port mtu value in bytes', default=None)
parser.add_argument('-tp', '--tpid', type=str, help='port TPID value in hex (e.g. 0x8100)', default=None)
parser.add_argument('-d', '--description', type=str, help='port description', default=None)
parser.add_argument('-v', '--version', action='version', version='%(prog)s 1.0')
parser.add_argument('-vv', '--verbose', action='store_true', help='Verbose output', default=False)
parser.add_argument('-n', '--namespace', metavar='namespace details', type = str, required = False,
Expand All @@ -264,7 +272,7 @@ def main():
port = portconfig(args.verbose, args.port, args.namespace)
if args.list:
port.list_params(args.port)
elif args.speed or args.fec or args.mtu or args.autoneg or args.adv_speeds or args.interface_type or args.adv_interface_types or args.tpid:
elif args.speed or args.fec or args.mtu or args.autoneg or args.adv_speeds or args.interface_type or args.adv_interface_types or args.tpid or args.description:
if args.speed:
port.set_speed(args.port, args.speed)
if args.fec:
Expand All @@ -281,6 +289,8 @@ def main():
port.set_adv_interface_types(args.port, args.adv_interface_types)
if args.tpid:
port.set_tpid(args.port, args.tpid)
if args.description:
port.set_description(args.port, args.description)
else:
parser.print_help()
sys.exit(1)
Expand Down

0 comments on commit b992f09

Please sign in to comment.