From 648a394f7a318443dfd82f790f83a79616c26905 Mon Sep 17 00:00:00 2001 From: yayogev Date: Tue, 27 Feb 2018 17:00:05 +0200 Subject: US3541 merge various fixes to OPNFV branch timestamp of last commit tt was merged: 26-Jan-2018 16:25. Change-Id: I7b0bf7885d7d0badb81c794a52c480b905d78459 Signed-off-by: yayogev --- app/monitoring/setup/monitoring_handler.py | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) (limited to 'app/monitoring/setup/monitoring_handler.py') diff --git a/app/monitoring/setup/monitoring_handler.py b/app/monitoring/setup/monitoring_handler.py index 903b8d8..0eeb668 100644 --- a/app/monitoring/setup/monitoring_handler.py +++ b/app/monitoring/setup/monitoring_handler.py @@ -105,13 +105,25 @@ class MonitoringHandler(MongoAccess, CliAccess, BinaryConverter): if 'condition' not in doc: return True condition = doc['condition'] - if 'mechanism_drivers' not in condition: - return True - required_mechanism_drivers = condition['mechanism_drivers'] - if not isinstance(required_mechanism_drivers, list): - required_mechanism_drivers = [required_mechanism_drivers] - intersection = [val for val in required_mechanism_drivers - if val in self.mechanism_drivers] + if not isinstance(condition, dict): + self.log.error('incorrect condition in monitoring ({}): ' + 'condition must be a dict' + .format(doc.get(doc.get('type'), ''))) + return False + for key, required_value in condition.items(): + if not self.check_env_config(key, required_value): + return False + return True + + def check_env_config(self, config_name, required_config_value): + required_config_values = required_config_value \ + if isinstance(required_config_value, list) \ + else [required_config_value] + conf_values = self.configuration.environment.get(config_name, []) + conf_values = conf_values if isinstance(conf_values, list) \ + else [conf_values] + intersection = [val for val in required_config_values + if val in conf_values] return bool(intersection) def content_replace(self, content): @@ -435,6 +447,7 @@ class MonitoringHandler(MongoAccess, CliAccess, BinaryConverter): if '/*' in local_dir else local_dir if local_dir_base.strip('/*') == remote_path.strip('/*'): return # same directory - nothing to do + self.make_remote_dir(host, remote_path) cmd = 'cp {} {}'.format(what_to_copy, remote_path) self.run(cmd, ssh=ssh) return -- cgit 1.2.3-korg