16
16
17
17
print_to_console = False
18
18
19
+
19
20
def set_verbose (verbose = False ):
20
21
global print_to_console , logger
21
22
@@ -34,11 +35,12 @@ def log_error(m):
34
35
logger .log (logger .LOG_PRIORITY_ERROR , m , print_to_console )
35
36
36
37
37
- def get_config_db (namespace = multi_asic .DEFAULT_NAMESPACE ):
38
- config_db = ConfigDBConnector (use_unix_socket_path = True , namespace = namespace )
38
+ def get_config_db (scope = multi_asic .DEFAULT_NAMESPACE ):
39
+ config_db = ConfigDBConnector (use_unix_socket_path = True , namespace = scope )
39
40
config_db .connect ()
40
41
return config_db
41
42
43
+
42
44
def set_config (config_db , tbl , key , data ):
43
45
config_db .set_entry (tbl , key , data )
44
46
@@ -61,11 +63,9 @@ class DryRunChangeApplier:
61
63
def __init__ (self , config_wrapper ):
62
64
self .config_wrapper = config_wrapper
63
65
64
-
65
66
def apply (self , change ):
66
67
self .config_wrapper .apply_change_to_config_db (change )
67
68
68
-
69
69
def remove_backend_tables_from_config (self , data ):
70
70
return data
71
71
@@ -74,9 +74,9 @@ class ChangeApplier:
74
74
75
75
updater_conf = None
76
76
77
- def __init__ (self , namespace = multi_asic .DEFAULT_NAMESPACE ):
78
- self .namespace = namespace
79
- self .config_db = get_config_db (self .namespace )
77
+ def __init__ (self , scope = multi_asic .DEFAULT_NAMESPACE ):
78
+ self .scope = scope
79
+ self .config_db = get_config_db (self .scope )
80
80
self .backend_tables = [
81
81
"BUFFER_PG" ,
82
82
"BUFFER_PROFILE" ,
@@ -86,7 +86,6 @@ def __init__(self, namespace=multi_asic.DEFAULT_NAMESPACE):
86
86
with open (UPDATER_CONF_FILE , "r" ) as s :
87
87
ChangeApplier .updater_conf = json .load (s )
88
88
89
-
90
89
def _invoke_cmd (self , cmd , old_cfg , upd_cfg , keys ):
91
90
# cmd is in the format as <package/module name>.<method name>
92
91
#
@@ -98,7 +97,6 @@ def _invoke_cmd(self, cmd, old_cfg, upd_cfg, keys):
98
97
99
98
return method_to_call (old_cfg , upd_cfg , keys )
100
99
101
-
102
100
def _services_validate (self , old_cfg , upd_cfg , keys ):
103
101
lst_svcs = set ()
104
102
lst_cmds = set ()
@@ -124,7 +122,6 @@ def _services_validate(self, old_cfg, upd_cfg, keys):
124
122
log_debug ("service invoked: {}" .format (cmd ))
125
123
return 0
126
124
127
-
128
125
def _upd_data (self , tbl , run_tbl , upd_tbl , upd_keys ):
129
126
for key in set (run_tbl .keys ()).union (set (upd_tbl .keys ())):
130
127
run_data = run_tbl .get (key , None )
@@ -135,20 +132,17 @@ def _upd_data(self, tbl, run_tbl, upd_tbl, upd_keys):
135
132
upd_keys [tbl ][key ] = {}
136
133
log_debug ("Patch affected tbl={} key={}" .format (tbl , key ))
137
134
138
-
139
135
def _report_mismatch (self , run_data , upd_data ):
140
136
log_error ("run_data vs expected_data: {}" .format (
141
137
str (jsondiff .diff (run_data , upd_data ))[0 :40 ]))
142
138
143
-
144
139
def apply (self , change ):
145
140
run_data = self ._get_running_config ()
146
141
upd_data = prune_empty_table (change .apply (copy .deepcopy (run_data )))
147
142
upd_keys = defaultdict (dict )
148
143
149
144
for tbl in sorted (set (run_data .keys ()).union (set (upd_data .keys ()))):
150
- self ._upd_data (tbl , run_data .get (tbl , {}),
151
- upd_data .get (tbl , {}), upd_keys )
145
+ self ._upd_data (tbl , run_data .get (tbl , {}), upd_data .get (tbl , {}), upd_keys )
152
146
153
147
ret = self ._services_validate (run_data , upd_data , upd_keys )
154
148
if not ret :
@@ -168,9 +162,9 @@ def remove_backend_tables_from_config(self, data):
168
162
169
163
def _get_running_config (self ):
170
164
_ , fname = tempfile .mkstemp (suffix = "_changeApplier" )
171
-
172
- if self .namespace :
173
- cmd = ['sonic-cfggen' , '-d' , '--print-data' , '-n' , self .namespace ]
165
+
166
+ if self .scope :
167
+ cmd = ['sonic-cfggen' , '-d' , '--print-data' , '-n' , self .scope ]
174
168
else :
175
169
cmd = ['sonic-cfggen' , '-d' , '--print-data' ]
176
170
@@ -181,7 +175,9 @@ def _get_running_config(self):
181
175
return_code = result .returncode
182
176
if return_code :
183
177
os .remove (fname )
184
- raise GenericConfigUpdaterError (f"Failed to get running config for namespace: { self .namespace } , Return code: { return_code } , Error: { err } " )
178
+ raise GenericConfigUpdaterError (
179
+ f"Failed to get running config for scope: { self .scope } ," +
180
+ f"Return code: { return_code } , Error: { err } " )
185
181
186
182
run_data = {}
187
183
try :
0 commit comments