Automatic nodes listing from API
diff --git a/cfg_checker/common/salt_utils.py b/cfg_checker/common/salt_utils.py
index 1a9d1da..4aba178 100644
--- a/cfg_checker/common/salt_utils.py
+++ b/cfg_checker/common/salt_utils.py
@@ -283,13 +283,15 @@
def list_minions(self):
"""
Fails in salt version 2016.3.8
+ Works starting from 2017.7.7
api returns dict of minions with grains
"""
- return self.salt_request('get', 'minions')
+ return self.salt_request('get', 'minions')[0]
def list_keys(self):
"""
Fails in salt version 2016.3.8
+ Works starting from 2017.7.7
api should return dict:
{
'local': [],
@@ -303,6 +305,7 @@
def get_status(self):
"""
+ Fails in salt version 2017.7.7
'runner' client is the equivalent of 'salt-run'
Returns the
"""
@@ -312,6 +315,10 @@
)
def get_active_nodes(self):
+ """Used when other minion list metods fail
+
+ :return: json result from salt test.ping
+ """
if config.skip_nodes:
logger.info("Nodes to be skipped: {0}".format(config.skip_nodes))
return self.cmd(
diff --git a/cfg_checker/common/settings.py b/cfg_checker/common/settings.py
index 1ee36b4..39aeff2 100644
--- a/cfg_checker/common/settings.py
+++ b/cfg_checker/common/settings.py
@@ -13,6 +13,12 @@
class CheckerConfiguration(object):
+ def load_nodes_list():
+ return utils.get_nodes_list(
+ os.environ.get('CFG_ALL_NODES', None),
+ os.environ.get('SALT_NODE_LIST_FILE', None)
+ )
+
def _init_values(self):
"""Load values from environment variables or put default ones
"""
@@ -39,10 +45,7 @@
'SALT_SCRIPTS_FOLDER',
'cfg_checker_scripts'
)
- self.all_nodes = utils.get_nodes_list(
- os.environ.get('CFG_ALL_NODES', None),
- os.environ.get('SALT_NODE_LIST_FILE', None)
- )
+
self.skip_nodes = utils.node_string_to_list(os.environ.get(
'CFG_SKIP_NODES',
None