mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
Merge pull request #25752 from thatch45/state_top_saltenv
State top saltenv
This commit is contained in:
commit
c1236595f9
5 changed files with 24 additions and 1 deletions
|
@ -89,6 +89,7 @@ VALID_OPTS = {
|
|||
'environment': str,
|
||||
'pillarenv': str,
|
||||
'state_top': str,
|
||||
'state_top_saltenv': str,
|
||||
'startup_states': str,
|
||||
'sls_list': list,
|
||||
'top_file': str,
|
||||
|
@ -325,6 +326,7 @@ DEFAULT_MINION_OPTS = {
|
|||
'pillarenv': None,
|
||||
'extension_modules': '',
|
||||
'state_top': 'top.sls',
|
||||
'state_top_saltenv': None,
|
||||
'startup_states': '',
|
||||
'sls_list': [],
|
||||
'top_file': '',
|
||||
|
@ -542,6 +544,7 @@ DEFAULT_MASTER_OPTS = {
|
|||
'renderer': 'yaml_jinja',
|
||||
'failhard': False,
|
||||
'state_top': 'top.sls',
|
||||
'state_top_saltenv': None,
|
||||
'master_tops': {},
|
||||
'order_masters': False,
|
||||
'job_cache': True,
|
||||
|
|
|
@ -460,6 +460,7 @@ class RemoteFuncs(object):
|
|||
mopts['renderer'] = self.opts['renderer']
|
||||
mopts['failhard'] = self.opts['failhard']
|
||||
mopts['state_top'] = self.opts['state_top']
|
||||
mopts['state_top_saltenv'] = self.opts['state_top_saltenv']
|
||||
mopts['nodegroups'] = self.opts['nodegroups']
|
||||
mopts['state_auto_order'] = self.opts['state_auto_order']
|
||||
mopts['state_events'] = self.opts['state_events']
|
||||
|
|
|
@ -1056,6 +1056,7 @@ class AESFuncs(object):
|
|||
mopts['renderer'] = self.opts['renderer']
|
||||
mopts['failhard'] = self.opts['failhard']
|
||||
mopts['state_top'] = self.opts['state_top']
|
||||
mopts['state_top_saltenv'] = self.opts['state_top_saltenv']
|
||||
mopts['nodegroups'] = self.opts['nodegroups']
|
||||
mopts['state_auto_order'] = self.opts['state_auto_order']
|
||||
mopts['state_events'] = self.opts['state_events']
|
||||
|
|
|
@ -731,6 +731,7 @@ def sls(mods,
|
|||
def top(topfn,
|
||||
test=None,
|
||||
queue=False,
|
||||
saltenv=None,
|
||||
**kwargs):
|
||||
'''
|
||||
Execute a specific top file instead of the default
|
||||
|
@ -767,6 +768,8 @@ def top(topfn,
|
|||
st_ = salt.state.HighState(opts, pillar)
|
||||
st_.push_active()
|
||||
st_.opts['state_top'] = os.path.join('salt://', topfn)
|
||||
if saltenv:
|
||||
st_.opts['state_top_saltenv'] = saltenv
|
||||
try:
|
||||
ret = st_.call_highstate(
|
||||
exclude=kwargs.get('exclude', []),
|
||||
|
|
|
@ -2245,6 +2245,7 @@ class BaseHighState(object):
|
|||
opts['state_top'] = os.path.join('salt://', mopts['state_top'][1:])
|
||||
else:
|
||||
opts['state_top'] = os.path.join('salt://', mopts['state_top'])
|
||||
opts['state_top_saltenv'] = mopts.get('state_top_saltenv', None)
|
||||
opts['nodegroups'] = mopts.get('nodegroups', {})
|
||||
opts['state_auto_order'] = mopts.get(
|
||||
'state_auto_order',
|
||||
|
@ -2286,7 +2287,8 @@ class BaseHighState(object):
|
|||
)
|
||||
]
|
||||
else:
|
||||
for saltenv in self._get_envs():
|
||||
if self.opts.get('state_top_saltenv', False):
|
||||
saltenv = self.opts['state_top_saltenv']
|
||||
tops[saltenv].append(
|
||||
compile_template(
|
||||
self.client.cache_file(
|
||||
|
@ -2298,6 +2300,19 @@ class BaseHighState(object):
|
|||
saltenv=saltenv
|
||||
)
|
||||
)
|
||||
else:
|
||||
for saltenv in self._get_envs():
|
||||
tops[saltenv].append(
|
||||
compile_template(
|
||||
self.client.cache_file(
|
||||
self.opts['state_top'],
|
||||
saltenv
|
||||
),
|
||||
self.state.rend,
|
||||
self.state.opts['renderer'],
|
||||
saltenv=saltenv
|
||||
)
|
||||
)
|
||||
|
||||
# Search initial top files for includes
|
||||
for saltenv, ctops in tops.items():
|
||||
|
|
Loading…
Add table
Reference in a new issue