2013-05-03 26 views
6

Bir sls dosyasında gerekli olan bir başka özel duruma nasıl bağımlı hale gelirim?Bir özel duruma nasıl bağımlı hale gelirim?

Örnek: _states/seuss.py modülde İki custom states:

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

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

Ben green_eggs bağımlı olmak ham istiyorum:

# init.sls 

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

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

nasıl ??? başarıyla tamamlanması üzerine bir bağımlılık yapabilirim green_eggs?

cevap

8

Sen isteyeyim:

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

Ancak, şu anda bir seuss.ham veya have_green_eggs adında bir seuss.green_eggs ya bu şartı yerine getirmek anlamına gelir bir seuss kaynak, iki durumlarını tanımlayan.

Bunu istemezseniz, durumları ayrı dosyalarda tanımlamanız gerekir (ör. seuss_ham.exists ve seuss_green_eggs.exists).

+1

Daniel'in söylediği gibi, özel durum modülünüzdeki farklı durumlar karşılıklı olarak özel olmalıdır. Örneğin, 'nginx' servisi için, 'nginx: - service.running' ve' nginx: - service.dead 'olan bir durum oluşturmazsınız. Bu nedenle, özel durum modülünüz yalnızca aynı anda kullanılmayan durumları içermelidir. – akoumjian

İlgili konular