Updated ping command to work with MCC/MOS
- updated Pinger class with inherited structure for Salt and Kube
- implemented DeamonSet handling in KubeApi interface
- implemented put-textfile and series of ConfigMap methods in KubeApi
- updated Pinger to use multiple --cidr commands at once
- update Summary section to be more informative and human readable
Change-Id: Iac18a619d0bb9a36a286a07f38aeba8f99a454ca
Related-PROD: PROD-36603
diff --git a/cfg_checker/modules/network/mapper.py b/cfg_checker/modules/network/mapper.py
index f0fd78d..875f633 100644
--- a/cfg_checker/modules/network/mapper.py
+++ b/cfg_checker/modules/network/mapper.py
@@ -769,6 +769,7 @@
skip_list_file=None
):
self.master = KubeNodes(config)
+ self.daemonset = None
super(KubeNetworkMapper, self).__init__(
config,
errors_class=errors_class,
@@ -776,22 +777,25 @@
skip_list_file=skip_list_file
)
+ def get_daemonset(self):
+ if not self.daemonset:
+ _d = self.master.prepare_daemonset("daemonset_template.yaml")
+
+ # wait for daemonset, normally less than 60 sec for all
+ # but still, let us give it 10 second per pod
+ _timeout = self.master.nodes.__len__() * 10
+ if not self.master.wait_for_daemonset(_d, timeout=_timeout):
+ raise KubeException("Daemonset deployment fail")
+ self.daemonset = _d
+ return self.daemonset
+
def get_script_output(self, script, args=None):
"""
Get runtime network by creating DaemonSet with Host network parameter
"""
# prepare daemonset
logger_cli.info("-> Preparing daemonset to get node info")
- _daemonset = self.master.prepare_daemonset(
- "daemonset_template.yaml",
- config_map=script
- )
-
- # wait for daemonset, normally less than 60 sec for all
- # but still, let us give it 10 second per pod
- _timeout = self.master.nodes.__len__() * 10
- if not self.master.wait_for_daemonset(_daemonset, timeout=_timeout):
- raise KubeException("Daemonset deployment fail")
+ _daemonset = self.get_daemonset()
logger_cli.info("-> Running script on daemonset")
# exec script on all pods in daemonset
_result = self.master.execute_script_on_daemon_set(
@@ -801,7 +805,8 @@
)
# delete daemonset
- self.master.delete_daemonset(_daemonset)
+ # TODO: handle daemonset delete properly
+ # self.master.delete_daemonset(_daemonset)
return _result
@@ -810,9 +815,11 @@
self.map_network(self.RUNTIME)
def map_network(self, source):
+ # if network type is mapped - just return it
+ if source in self.networks:
+ return self.networks[source]
# maps target network using given source
_networks = None
-
if source == self.RUNTIME:
logger_cli.info("# Mapping node runtime network data")
_r = self.get_script_output("ifs_data.py", args="json")