Skip to content
Snippets Groups Projects
Commit ecd6bd72 authored by Lluis Gifre Renom's avatar Lluis Gifre Renom
Browse files

Code Cleanup

parent 80f5f6cb
No related branches found
No related tags found
3 merge requests!142Release TeraFlowSDN 2.1,!132NetSoft Hackfest extensions, gNMI Driver, gNMI L3NM Service Handler, multiple fixes,!113Draft: NetSoft Hackfest extensions
...@@ -55,24 +55,23 @@ RETRY_DECORATOR = retry(max_retries=MAX_RETRIES, delay_function=DELAY_FUNCTION, ...@@ -55,24 +55,23 @@ RETRY_DECORATOR = retry(max_retries=MAX_RETRIES, delay_function=DELAY_FUNCTION,
class NetconfSessionHandler: class NetconfSessionHandler:
def __init__(self, address : str, port : int, **settings) -> None: def __init__(self, address : str, port : int, **settings) -> None:
mensaje = f"__init__: address={address}, port={port}, settings={settings}"
self.__lock = threading.RLock() self.__lock = threading.RLock()
self.__connected = threading.Event() self.__connected = threading.Event()
self.__address = address self.__address = address
self.__port = int(port) self.__port = int(port)
self.__username = settings.get('username') self.__username = settings.get('username')
self.__password = settings.get('password') self.__password = settings.get('password')
self.__vendor = settings.get('vendor') self.__vendor = settings.get('vendor')
self.__version = settings.get('version', "1") self.__version = settings.get('version', "1")
self.__key_filename = settings.get('key_filename') self.__key_filename = settings.get('key_filename')
self.__hostkey_verify = settings.get('hostkey_verify', True) self.__hostkey_verify = settings.get('hostkey_verify', True)
self.__look_for_keys = settings.get('look_for_keys', True) self.__look_for_keys = settings.get('look_for_keys', True)
self.__allow_agent = settings.get('allow_agent', True) self.__allow_agent = settings.get('allow_agent', True)
self.__force_running = settings.get('force_running', False) self.__force_running = settings.get('force_running', False)
self.__commit_per_rule = settings.get('commit_per_rule', False) self.__commit_per_rule = settings.get('commit_per_rule', False)
self.__device_params = settings.get('device_params', {}) self.__device_params = settings.get('device_params', {})
self.__manager_params = settings.get('manager_params', {}) self.__manager_params = settings.get('manager_params', {})
self.__nc_params = settings.get('nc_params', {}) self.__nc_params = settings.get('nc_params', {})
self.__message_renderer = settings.get('message_renderer','jinja') self.__message_renderer = settings.get('message_renderer','jinja')
self.__manager : Manager = None self.__manager : Manager = None
self.__candidate_supported = False self.__candidate_supported = False
...@@ -202,13 +201,13 @@ def do_sampling( ...@@ -202,13 +201,13 @@ def do_sampling(
except: # pylint: disable=bare-except except: # pylint: disable=bare-except
logger.exception('Error retrieving samples') logger.exception('Error retrieving samples')
def edit_config( # edit the configuration of openconfig devices def edit_config(
netconf_handler : NetconfSessionHandler, logger : logging.Logger, resources : List[Tuple[str, Any]], delete=False, netconf_handler : NetconfSessionHandler, logger : logging.Logger, resources : List[Tuple[str, Any]], delete=False,
commit_per_rule=False, target='running', default_operation='merge', test_option=None, error_option=None, commit_per_rule=False, target='running', default_operation='merge', test_option=None, error_option=None,
format='xml' # pylint: disable=redefined-builtin format='xml' # pylint: disable=redefined-builtin
): ):
str_method = 'DeleteConfig' if delete else 'SetConfig' str_method = 'DeleteConfig' if delete else 'SetConfig'
logger.debug('[{:s}] resources = {:s}'.format(str_method, str(resources))) #logger.debug('[{:s}] resources = {:s}'.format(str_method, str(resources)))
results = [None for _ in resources] results = [None for _ in resources]
for i,resource in enumerate(resources): for i,resource in enumerate(resources):
str_resource_name = 'resources[#{:d}]'.format(i) str_resource_name = 'resources[#{:d}]'.format(i)
...@@ -218,17 +217,17 @@ def edit_config( ...@@ -218,17 +217,17 @@ def edit_config(
chk_length(str_resource_name, resource, min_length=2, max_length=2) chk_length(str_resource_name, resource, min_length=2, max_length=2)
resource_key,resource_value = resource resource_key,resource_value = resource
chk_string(str_resource_name + '.key', resource_key, allow_empty=False) chk_string(str_resource_name + '.key', resource_key, allow_empty=False)
str_config_messages = compose_config( # get template for configuration str_config_messages = compose_config(
resource_key, resource_value, delete=delete, vendor=netconf_handler.vendor, message_renderer=netconf_handler.message_renderer) resource_key, resource_value, delete=delete, vendor=netconf_handler.vendor, message_renderer=netconf_handler.message_renderer)
for str_config_message in str_config_messages: # configuration of the received templates for str_config_message in str_config_messages:
if str_config_message is None: raise UnsupportedResourceKeyException(resource_key) if str_config_message is None: raise UnsupportedResourceKeyException(resource_key)
logger.debug('[{:s}] str_config_message[{:d}] = {:s}'.format( logger.debug('[{:s}] str_config_message[{:d}] = {:s}'.format(
str_method, len(str_config_message), str(str_config_message))) str_method, len(str_config_message), str(str_config_message)))
netconf_handler.edit_config( # configure the device netconf_handler.edit_config(
config=str_config_message, target=target, default_operation=default_operation, config=str_config_message, target=target, default_operation=default_operation,
test_option=test_option, error_option=error_option, format=format) test_option=test_option, error_option=error_option, format=format)
if commit_per_rule: if commit_per_rule:
netconf_handler.commit() # configuration commit netconf_handler.commit()
results[i] = True results[i] = True
except Exception as e: # pylint: disable=broad-except except Exception as e: # pylint: disable=broad-except
str_operation = 'preparing' if target == 'candidate' else ('deleting' if delete else 'setting') str_operation = 'preparing' if target == 'candidate' else ('deleting' if delete else 'setting')
...@@ -373,7 +372,6 @@ class OpenConfigDriver(_Driver): ...@@ -373,7 +372,6 @@ class OpenConfigDriver(_Driver):
end_date = start_date + timedelta(seconds=sampling_duration) end_date = start_date + timedelta(seconds=sampling_duration)
job_id = 'k={:s}/d={:f}/i={:f}'.format(resource_key, sampling_duration, sampling_interval) job_id = 'k={:s}/d={:f}/i={:f}'.format(resource_key, sampling_duration, sampling_interval)
job = self.__scheduler.add_job( job = self.__scheduler.add_job(
do_sampling, args=(self.__samples_cache, self.__logger, resource_key, self.__out_samples), do_sampling, args=(self.__samples_cache, self.__logger, resource_key, self.__out_samples),
kwargs={}, id=job_id, trigger='interval', seconds=sampling_interval, kwargs={}, id=job_id, trigger='interval', seconds=sampling_interval,
...@@ -438,4 +436,4 @@ class OpenConfigDriver(_Driver): ...@@ -438,4 +436,4 @@ class OpenConfigDriver(_Driver):
if blocking: continue if blocking: continue
return return
if sample is None: continue if sample is None: continue
yield sample yield sample
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment