本文整理汇总了Python中salt.state.HighState.get_active方法的典型用法代码示例。如果您正苦于以下问题:Python HighState.get_active方法的具体用法?Python HighState.get_active怎么用?Python HighState.get_active使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类salt.state.HighState
的用法示例。
在下文中一共展示了HighState.get_active方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: to_highstate
# 需要导入模块: from salt.state import HighState [as 别名]
# 或者: from salt.state.HighState import get_active [as 别名]
def to_highstate(self, slsmod):
# generate a state that uses the stateconf.set state, which
# is a no-op state, to hold a reference to the sls module
# containing the DSL statements. This is to prevent the module
# from being GC'ed, so that objects defined in it will be
# available while salt is executing the states.
slsmod_id = '_slsmod_' + self.name
self.state(slsmod_id).stateconf.set(slsmod=slsmod)
del self.get_all_decls()[slsmod_id]
highstate = OrderedDict()
if self.includes:
highstate['include'] = [{t[0]: t[1]} for t in self.includes]
if self.extends:
highstate['extend'] = extend = OrderedDict()
for ext in self.extends:
extend[ext._id] = ext._repr(context='extend')
for decl in self.decls:
highstate[decl._id] = decl._repr()
if self.included_highstate:
errors = []
HighState.get_active().merge_included_states(
highstate, self.included_highstate, errors
)
if errors:
raise PyDslError('\n'.join(errors))
return highstate
示例2: __init__
# 需要导入模块: from salt.state import HighState [as 别名]
# 或者: from salt.state.HighState import get_active [as 别名]
def __init__(self, sls, saltenv, rendered_sls):
self.name = sls
self.saltenv = saltenv
self.includes = []
self.included_highstate = HighState.get_active().building_highstate
self.extends = []
self.decls = []
self.options = Options()
self.funcs = [] # track the ordering of state func declarations
self.rendered_sls = rendered_sls # a set of names of rendered sls modules
if not HighState.get_active():
raise PyDslError('PyDSL only works with a running high state!')
示例3: __call__
# 需要导入模块: from salt.state import HighState [as 别名]
# 或者: from salt.state.HighState import get_active [as 别名]
def __call__(self, check=True):
sls = Sls.get_render_stack()[-1]
if self._id in sls.get_all_decls():
last_func = sls.last_func()
if last_func and self._mods[-1]._func is not last_func:
raise PyDslError(
('Cannot run state({0}: {1}) that is required by a runtime '
'state({2}: {3}), at compile time.').format(
self._mods[-1]._name, self._id,
last_func.mod, last_func.mod._state_id
)
)
sls.get_all_decls().pop(self._id)
sls.decls.remove(self)
self._mods[0]._func._remove_auto_require()
for m in self._mods:
try:
sls.funcs.remove(m._func)
except ValueError:
pass
result = HighState.get_active().state.functions['state.high']({self._id: self._repr()})
result = sorted(result.iteritems(), key=lambda t: t[1]['__run_num__'])
if check:
for k, v in result:
if not v['result']:
import pprint
raise PyDslError(
'Failed executing low state at compile time:\n{0}'
.format(pprint.pformat({k:v})))
return result
示例4: include
# 需要导入模块: from salt.state import HighState [as 别名]
# 或者: from salt.state.HighState import get_active [as 别名]
def include(self, *sls_names, **kws):
if kws.get('env', None) is not None:
warn_until(
'Boron',
'Passing a salt environment should be done using \'saltenv\' '
'not \'env\'. This functionality will be removed in Salt Boron.'
)
# Backwards compatibility
kws['saltenv'] = kws.pop('env')
saltenv = kws.get('saltenv', self.saltenv)
if kws.get('delayed', False):
for incl in sls_names:
self.includes.append((saltenv, incl))
return
HIGHSTATE = HighState.get_active()
global SLS_MATCHES
if SLS_MATCHES is None:
SLS_MATCHES = HIGHSTATE.top_matches(HIGHSTATE.get_top())
highstate = self.included_highstate
slsmods = [] # a list of pydsl sls modules rendered.
for sls in sls_names:
r_env = '{0}:{1}'.format(saltenv, sls)
if r_env not in self.rendered_sls:
self.rendered_sls.add(sls) # needed in case the starting sls
# uses the pydsl renderer.
histates, errors = HIGHSTATE.render_state(
sls, saltenv, self.rendered_sls, SLS_MATCHES
)
HIGHSTATE.merge_included_states(highstate, histates, errors)
if errors:
raise PyDslError('\n'.join(errors))
HIGHSTATE.clean_duplicate_extends(highstate)
state_id = '_slsmod_{0}'.format(sls)
if state_id not in highstate:
slsmods.append(None)
else:
for arg in highstate[state_id]['stateconf']:
if isinstance(arg, dict) and iter(arg).next() == 'slsmod':
slsmods.append(arg['slsmod'])
break
if not slsmods:
return None
return slsmods[0] if len(slsmods) == 1 else slsmods
示例5: include
# 需要导入模块: from salt.state import HighState [as 别名]
# 或者: from salt.state.HighState import get_active [as 别名]
def include(self, *sls_names, **kws):
if 'env' in kws:
warn_until(
'Oxygen',
'Parameter \'env\' has been detected in the argument list. This '
'parameter is no longer used and has been replaced by \'saltenv\' '
'as of Salt 2016.11.0. This warning will be removed in Salt Oxygen.'
)
kws.pop('env')
saltenv = kws.get('saltenv', self.saltenv)
if kws.get('delayed', False):
for incl in sls_names:
self.includes.append((saltenv, incl))
return
HIGHSTATE = HighState.get_active()
global SLS_MATCHES
if SLS_MATCHES is None:
SLS_MATCHES = HIGHSTATE.top_matches(HIGHSTATE.get_top())
highstate = self.included_highstate
slsmods = [] # a list of pydsl sls modules rendered.
for sls in sls_names:
r_env = '{0}:{1}'.format(saltenv, sls)
if r_env not in self.rendered_sls:
self.rendered_sls.add(sls) # needed in case the starting sls uses the pydsl renderer.
histates, errors = HIGHSTATE.render_state(
sls, saltenv, self.rendered_sls, SLS_MATCHES
)
HIGHSTATE.merge_included_states(highstate, histates, errors)
if errors:
raise PyDslError('\n'.join(errors))
HIGHSTATE.clean_duplicate_extends(highstate)
state_id = '_slsmod_{0}'.format(sls)
if state_id not in highstate:
slsmods.append(None)
else:
for arg in highstate[state_id]['stateconf']:
if isinstance(arg, dict) and next(iter(arg)) == 'slsmod':
slsmods.append(arg['slsmod'])
break
if not slsmods:
return None
return slsmods[0] if len(slsmods) == 1 else slsmods
示例6: include
# 需要导入模块: from salt.state import HighState [as 别名]
# 或者: from salt.state.HighState import get_active [as 别名]
def include(self, *sls_names, **kws):
env = kws.get('env', self.env)
if kws.get('delayed', False):
for incl in sls_names:
self.includes.append((env, incl))
return
HIGHSTATE = HighState.get_active()
global SLS_MATCHES
if SLS_MATCHES is None:
SLS_MATCHES = HIGHSTATE.top_matches(HIGHSTATE.get_top())
highstate = self.included_highstate
slsmods = [] # a list of pydsl sls modules rendered.
for sls in sls_names:
if sls not in self.rendered_sls:
self.rendered_sls.add(sls) # needed in case the starting sls
# uses the pydsl renderer.
histates, errors = HIGHSTATE.render_state(
sls, env, self.rendered_sls, SLS_MATCHES
)
HIGHSTATE.merge_included_states(highstate, histates, errors)
if errors:
raise PyDslError('\n'.join(errors))
HIGHSTATE.clean_duplicate_extends(highstate)
state_id = '_slsmod_{0}'.format(sls)
if state_id not in highstate:
slsmods.append(None)
else:
for arg in highstate[state_id]['stateconf']:
if isinstance(arg, dict) and iter(arg).next() == 'slsmod':
slsmods.append(arg['slsmod'])
break
if not slsmods:
return None
return slsmods[0] if len(slsmods) == 1 else slsmods
示例7: get_render_stack
# 需要导入模块: from salt.state import HighState [as 别名]
# 或者: from salt.state.HighState import get_active [as 别名]
def get_render_stack(cls):
return HighState.get_active()._pydsl_render_stack
示例8: get_all_decls
# 需要导入模块: from salt.state import HighState [as 别名]
# 或者: from salt.state.HighState import get_active [as 别名]
def get_all_decls(cls):
return HighState.get_active()._pydsl_all_decls