Skip to content

Commit a942c4b

Browse files
committed
refactor to latest chnages
Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan <arlakshm@microsoft.com>
1 parent b77f2ac commit a942c4b

File tree

1 file changed

+20
-40
lines changed

1 file changed

+20
-40
lines changed

show/interfaces/portchannel.py

+20-40
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
1-
import click
21

3-
from tabulate import tabulate
4-
from natsort import natsorted
2+
import os
3+
import sys
54

5+
import click
66
import utilities_common.cli as clicommon
7+
from natsort import natsorted
8+
from tabulate import tabulate
9+
import utilities_common.multi_asic as multi_asic_util
10+
from utilities_common.constants import PORT_CHANNEL_OBJ
711

812
"""
913
Script to show LAG and LAG member status in a summary view
@@ -24,20 +28,6 @@
2428
2529
"""
2630

27-
import json
28-
import os
29-
import subprocess
30-
import sys
31-
32-
from tabulate import tabulate
33-
from natsort import natsorted
34-
35-
from sonic_py_common.multi_asic_device_info import get_asic_id_from_name
36-
from utilities_common.multi_asic import MultiAsic
37-
from utilities_common.multi_asic import run_on_all_asics
38-
from utilities_common.multi_asic import multi_asic_args
39-
from utilities_common.multi_asic import PORT_CHANNEL_OBJ
40-
4131
PORT_CHANNEL_APPL_TABLE_PREFIX = "LAG_TABLE:"
4232
PORT_CHANNEL_CFG_TABLE_PREFIX = "PORTCHANNEL|"
4333
PORT_CHANNEL_STATE_TABLE_PREFIX = "LAG_TABLE|"
@@ -48,15 +38,15 @@
4838
PORT_CHANNEL_MEMBER_STATUS_FIELD = "status"
4939

5040
class Teamshow(object):
51-
def __init__(self,display_option, namespace_option):
41+
def __init__(self, namespace_option, display_option):
5242
self.teams = []
5343
self.teamsraw = {}
5444
self.summary = {}
5545
self.err = None
5646
self.db = None
57-
self.multi_asic = MultiAsic(display_option, namespace_option)
47+
self.multi_asic = multi_asic_util.MultiAsic(display_option, namespace_option)
5848

59-
@run_on_all_asics
49+
@multi_asic_util.run_on_multi_asic
6050
def get_teams_info(self):
6151
self.get_portchannel_names()
6252
self.get_teamdctl()
@@ -143,7 +133,7 @@ def get_teamshow_result(self):
143133
pstate = self.db.get_all(self.db.STATE_DB, PORT_CHANNEL_MEMBER_STATE_TABLE_PREFIX+team+'|'+port)
144134
selected = True if pstate['runner.aggregator.selected'] == "true" else False
145135
if clicommon.get_interface_naming_mode() == "alias":
146-
alias = clicommon.InterfaceAliasConverter(self.db2).name_to_alias(port)
136+
alias = clicommon.InterfaceAliasConverter().name_to_alias(port)
147137
info["ports"] += alias + "("
148138
else:
149139
info["ports"] += port + "("
@@ -167,22 +157,12 @@ def display_summary(self):
167157
output.append([team_id, 'PortChannel'+team_id, self.summary[team_id]['protocol'], self.summary[team_id]['ports']])
168158
print tabulate(output, header)
169159

170-
def main():
171-
if os.geteuid() != 0:
172-
exit("This utility must be run as root")
173-
174-
parser = multi_asic_args()
175-
args = parser.parse_args()
176-
177-
display_option = args.display
178-
namespace_option = args.namespace
179-
180-
try:
181-
team = Teamshow(display_option, namespace_option)
182-
team.get_teams_info()
183-
team.display_summary()
184-
except Exception as e:
185-
sys.exit(e.message)
186-
187-
if __name__ == "__main__":
188-
main()
160+
# 'portchannel' subcommand ("show interfaces portchannel")
161+
@click.command()
162+
@multi_asic_util.multi_asic_click_options
163+
@click.option('--verbose', is_flag=True, help="Enable verbose output")
164+
def portchannel(namespace, display, verbose):
165+
"""Show PortChannel information"""
166+
team = Teamshow(namespace, display)
167+
team.get_teams_info()
168+
team.display_summary()

0 commit comments

Comments
 (0)