Skip to content

Commit 334433b

Browse files
committed
change to configdb instead of ns
1 parent 0bedc63 commit 334433b

File tree

3 files changed

+23
-21
lines changed

3 files changed

+23
-21
lines changed

config/config_mgmt.py

+20-18
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
import sonic_yang
1717
from jsondiff import diff
18-
from sonic_py_common import port_util, multi_asic
18+
from sonic_py_common import port_util
1919
from swsscommon.swsscommon import SonicV2Connector, ConfigDBConnector
2020
from utilities_common.general import load_module_from_source
2121

@@ -36,7 +36,7 @@ class ConfigMgmt():
3636
'''
3737

3838
def __init__(self, source="configDB", debug=False, allowTablesWithoutYang=True,
39-
sonicYangOptions=0, namespace=multi_asic.DEFAULT_NAMESPACE):
39+
sonicYangOptions=0, configdb=None):
4040
'''
4141
Initialise the class, --read the config, --load in data tree.
4242
@@ -45,7 +45,8 @@ def __init__(self, source="configDB", debug=False, allowTablesWithoutYang=True,
4545
debug (bool): verbose mode.
4646
allowTablesWithoutYang (bool): allow tables without yang model in
4747
config or not.
48-
namespace(str): namespace to work on.
48+
configdb: configdb to work on.
49+
4950
Returns:
5051
void
5152
'''
@@ -55,27 +56,31 @@ def __init__(self, source="configDB", debug=False, allowTablesWithoutYang=True,
5556
self.source = source
5657
self.allowTablesWithoutYang = allowTablesWithoutYang
5758
self.sonicYangOptions = sonicYangOptions
58-
self.namespace = namespace
59+
if configdb is None:
60+
self.configdb = ConfigDBConnector()
61+
self.configdb.connect()
62+
else:
63+
self.configdb = configdb
5964

6065
# logging vars
6166
self.SYSLOG_IDENTIFIER = "ConfigMgmt"
6267
self.DEBUG = debug
6368

64-
self.__init_sonic_yang(namespace=self.namespace)
69+
self.__init_sonic_yang()
6570

6671
except Exception as e:
6772
self.sysLog(doPrint=True, logLevel=syslog.LOG_ERR, msg=str(e))
6873
raise Exception('ConfigMgmt Class creation failed')
6974

7075
return
7176

72-
def __init_sonic_yang(self, namespace=multi_asic.DEFAULT_NAMESPACE):
77+
def __init_sonic_yang(self):
7378
self.sy = sonic_yang.SonicYang(YANG_DIR, debug=self.DEBUG, sonic_yang_options=self.sonicYangOptions)
7479
# load yang models
7580
self.sy.loadYangModel()
7681
# load jIn from config DB or from config DB json file.
7782
if self.source.lower() == 'configdb':
78-
self.readConfigDB(namespace)
83+
self.readConfigDB()
7984
# treat any other source as file input
8085
else:
8186
self.readConfigDBJson(self.source)
@@ -183,45 +188,42 @@ def readConfigDBJson(self, source=CONFIG_DB_JSON_FILE):
183188
"""
184189
Get config from redis config DB
185190
"""
186-
def readConfigDB(self, namespace=multi_asic.DEFAULT_NAMESPACE):
191+
def readConfigDB(self):
187192
'''
188193
Read the config in Config DB. Assign it in self.configdbJsonIn.
189194
190195
Parameters:
191-
namespace: namespace to work on.
196+
(void)
192197
193198
Returns:
194199
(void)
195200
'''
196201
self.sysLog(doPrint=True, msg='Reading data from Redis configDb')
197202
# Read from config DB on sonic switch
198203
data = dict()
199-
configdb = ConfigDBConnector(namespace=namespace)
200-
configdb.connect()
204+
configdb = self.configdb
201205
sonic_cfggen.deep_update(data, sonic_cfggen.FormatConverter.db_to_output(configdb.get_config()))
202206
self.configdbJsonIn = sonic_cfggen.FormatConverter.to_serialized(data)
203-
self.sysLog(syslog.LOG_DEBUG, 'Reading Input from ConfigDB {} {}'.\
204-
format(namespace, self.configdbJsonIn))
207+
self.sysLog(syslog.LOG_DEBUG, 'Reading Input from ConfigDB {}'.\
208+
format(self.configdbJsonIn))
205209

206210
return
207211

208-
def writeConfigDB(self, jDiff, namespace=multi_asic.DEFAULT_NAMESPACE):
212+
def writeConfigDB(self, jDiff):
209213
'''
210214
Write the diff in Config DB.
211215
212216
Parameters:
213217
jDiff (dict): config to push in config DB.
214-
namespace (str): namespace to work on.
215218
216219
Returns:
217220
void
218221
'''
219222
self.sysLog(doPrint=True, msg='Writing in Config DB')
220223
data = dict()
221-
configdb = ConfigDBConnector(namespace=namespace)
222-
configdb.connect(False)
224+
configdb = self.configdb
223225
sonic_cfggen.deep_update(data, sonic_cfggen.FormatConverter.to_deserialized(jDiff))
224-
self.sysLog(msg="Write in DB {}: {}".format(namespace, data))
226+
self.sysLog(msg="Write in DB: {}".format(data))
225227
configdb.mod_config(sonic_cfggen.FormatConverter.output_to_db(data))
226228

227229
return

config/main.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1921,7 +1921,7 @@ def override_config_table(db, input_config_db, dry_run):
19211921
# The ConfigMgmt will load YANG and running
19221922
# config during initialization.
19231923
try:
1924-
cm = ConfigMgmt(namespace=ns)
1924+
cm = ConfigMgmt(configdb=config_db)
19251925
cm.validateConfigData()
19261926
except Exception as ex:
19271927
click.secho("Failed to validate running config. Error: {}".format(ex), fg="magenta")

tests/config_override_test.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ def test_yang_verification_enabled(self):
174174
def is_yang_config_validation_enabled_side_effect(filename):
175175
return True
176176

177-
def config_mgmt_side_effect(namespace):
177+
def config_mgmt_side_effect(configdb):
178178
return config_mgmt.ConfigMgmt(source=CONFIG_DB_JSON_FILE)
179179

180180
db = Db()
@@ -233,7 +233,7 @@ def check_yang_verification_failure(self, db, config, running_config,
233233
def read_json_file_side_effect(filename):
234234
return golden_config
235235

236-
def config_mgmt_side_effect(namespace):
236+
def config_mgmt_side_effect(configdb):
237237
return config_mgmt.ConfigMgmt(source=CONFIG_DB_JSON_FILE)
238238

239239
# ConfigMgmt will call ConfigDBConnector to load default config_db.json.

0 commit comments

Comments
 (0)