2013-05-03 92 views
6

如何使一个自定义状态依赖于另一个具有必需的sls文件?如何使一个自定义状态依赖于另一个?

例子:两个custom states_states/seuss.py模块:

# seuss.py 
def green_eggs(): 
    return {'name': 'green_eggs', 'result': True, 'comment': '', 'changes': {}} 

def ham(): 
    return {'name': 'ham', 'result': True, 'comment': '', 'changes': {}} 

我想ham依赖于green_eggs

# init.sls 

have_green_eggs: 
    seuss.green_eggs: 
    - require: 
    - user: seuss 

have_ham: 
    seuss.ham: 
    - require: 
    - ??? 

我如何???上成功完成的依赖green_eggs

回答

8

你会想:

have_ham: 
    seuss.ham: 
    - require: 
     - seuss: have_green_eggs 

然而,目前要定义seuss资源,这意味着无论是seuss.ham或称为have_green_eggsseuss.green_eggs能够满足这一要求的两种状态。

如果你不想这样做,那么你将不得不在分开的文件中定义状态(例如seuss_ham.existsseuss_green_eggs.exists)。

+1

继续Daniel的说法,你自定义状态模块中的不同状态应该是相互排斥的。例如,对于服务'nginx',你不会设置一个状态为'nginx: - service.running',而一个状态为'nginx: - service.dead'。所以你的自定义状态模块也应该只包含不能同时使用的状态。 – akoumjian 2013-05-03 15:47:05

相关问题