blob: 20874d60334e81645c92ea8939cf4827adce76cd [file] [log] [blame]
import reclass
from reclass.adapters import salt as reclass_salt
from reclass import config as reclass_config
from reclass import core as reclass_core
#import salt.cli.call
#import salt.cli.caller
def get_core():
"""Initializes reclass Core() using /etc/reclass settings"""
defaults = reclass_config.find_and_read_configfile()
inventory_base_uri = defaults['inventory_base_uri']
storage_type = defaults['storage_type']
nodes_uri, classes_uri = reclass_config.path_mangler(inventory_base_uri,
None, None)
storage = reclass.get_storage(storage_type, nodes_uri, classes_uri,
default_environment='base')
return reclass_core.Core(storage, None, None)
#def get_minion_domain():
# """Try to get domain from the local salt minion"""
# client = salt.cli.call.SaltCall()
# client.parse_args(args=['pillar.items'])
# caller = salt.cli.caller.Caller.factory(client.config)
# result = caller.call()
# # Warning! There is a model-related parameter
# # TODO: move the path to the parameter to a settings/defaults
# domain = result['return']['_param']['cluster_domain']
# return domain
def inventory_list(domain=None):
core = get_core()
inventory = core.inventory()
nodes_list = inventory['nodes'].keys()
if domain is not None:
#domain = get_minion_domain()
nodes_list = [node for node in nodes_list if node.endswith(domain)]
print('\n'.join(sorted(nodes_list)))