Skip to content

Commit

Permalink
Add "state" field in CONFIG_DB fabric_monitor table as a toggle of the
Browse files Browse the repository at this point in the history
fabric port monitoring feature. The command to set this is "config
fabric port monitor state <enable/disable>"

Signed-off-by: Jie Feng <[email protected]>
  • Loading branch information
jfeng-arista committed Aug 16, 2023
1 parent 3b7cc1f commit 018770e
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 6 deletions.
7 changes: 1 addition & 6 deletions config/fabric.py
Original file line number Diff line number Diff line change
Expand Up @@ -163,10 +163,6 @@ def setFabricPortMonitorState(state, namespace ):
config_db = ConfigDBConnector(use_unix_socket_path=True, namespace=namespace)
config_db.connect()

# Connect to state database
state_db = SonicV2Connector(use_unix_socket_path=True, namespace=namespace)
state_db.connect(state_db.STATE_DB, False)

# Make sure configuration data exists
monitorData = config_db.get_all(config_db.CONFIG_DB, "FABRIC_MONITOR|FABRIC_MONITOR_DATA")
if not bool(monitorData):
Expand All @@ -188,8 +184,7 @@ def state(state, namespace):

n_asics = multi_asic.get_num_asics()
if n_asics > 1 and namespace is None:
ns = multi_asic.get_all_namespaces()
ns_list = ns['front_ns'] + ns['back_ns'] + ns['fabric_ns']
ns_list = multi_asic.get_namespace_list()
for namespace in ns_list:
setFabricPortMonitorState(state, namespace)
else:
Expand Down
29 changes: 29 additions & 0 deletions tests/config_fabric_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,3 +103,32 @@ def test_config_fabric_monitor_state(self, ctx):
result = self.basic_check("port", ["monitor", "state", "disable"], ctx)
expect_result = 0
assert operator.eq(result.exit_code, expect_result)

class TestMultiAsicConfigFabric(object):
@classmethod
def setup_class(cls):
print("SETUP")
os.environ["PATH"] += os.pathsep + scripts_path
os.environ["UTILITIES_UNIT_TESTING"] = "2"
os.environ["UTILITIES_UNIT_TESTING_TOPOLOGY"] = "multi_asic"

def basic_check(self, command_name, para_list, ctx):
# This function issues command of "config fabric xxxx",
# and returns the result of the command.
runner = CliRunner()
result = runner.invoke(config.config.commands["fabric"].commands[command_name], para_list, obj = ctx)
print(result.output)
return result

def test_multi_config_fabric_monitor_state(self, ctx):
result = self.basic_check("port", ["monitor", "state", "disable"], ctx)
expect_result = 0
assert operator.eq(result.exit_code, expect_result)

@classmethod
def teardown_class(cls):
print("TEARDOWN_TEST")
os.environ["PATH"] = os.pathsep.join(
os.environ["PATH"].split(os.pathsep)[:-1])
os.environ["UTILITIES_UNIT_TESTING"] = "0"
os.environ["UTILITIES_UNIT_TESTING_TOPOLOGY"] = ""

0 comments on commit 018770e

Please sign in to comment.