|
@@ -20,6 +20,7 @@ import isc.dns
|
|
import isc.datasrc
|
|
import isc.datasrc
|
|
import json
|
|
import json
|
|
import os.path
|
|
import os.path
|
|
|
|
+import copy
|
|
|
|
|
|
spec = module_spec_from_file(path_search('datasrc.spec', PLUGIN_PATHS))
|
|
spec = module_spec_from_file(path_search('datasrc.spec', PLUGIN_PATHS))
|
|
|
|
|
|
@@ -44,11 +45,10 @@ def check(config):
|
|
return "The class '" + rr_class_str + "' is invalid"
|
|
return "The class '" + rr_class_str + "' is invalid"
|
|
|
|
|
|
dlist = isc.datasrc.ConfigurableClientList(rr_class)
|
|
dlist = isc.datasrc.ConfigurableClientList(rr_class)
|
|
- client_config = classes.get(rr_class_str)
|
|
+
|
|
- try:
|
|
+
|
|
- dlist.configure(json.dumps(client_config), False)
|
|
+
|
|
- except isc.datasrc.Error as dse:
|
|
+ client_config = copy.deepcopy(classes.get(rr_class_str))
|
|
- return str(dse)
|
|
|
|
|
|
|
|
for client in client_config:
|
|
for client in client_config:
|
|
if client['type'] == 'MasterFiles':
|
|
if client['type'] == 'MasterFiles':
|
|
@@ -64,6 +64,16 @@ def check(config):
|
|
return str(e)
|
|
return str(e)
|
|
if not os.path.exists(params[name]):
|
|
if not os.path.exists(params[name]):
|
|
return "Master file " + params[name] + " does not exist"
|
|
return "Master file " + params[name] + " does not exist"
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ client['params'] = {}
|
|
|
|
+
|
|
|
|
+ try:
|
|
|
|
+ dlist.configure(json.dumps(client_config), False)
|
|
|
|
+ except isc.datasrc.Error as dse:
|
|
|
|
+ return str(dse)
|
|
return None
|
|
return None
|
|
|
|
|
|
def load():
|
|
def load():
|