2011-09-27 6 views
7

C'è un modo per affermare che una variabile (o più specificamente, un fatto) nel burattino ha un valore particolare, e di interrompere l'installazione se non lo fa?È possibile "asserire" in Marionetta?

per il fondo, ecco la situazione:

Nella maggior parte dei casi posso fare riferimento a nomi di host, ma a volte ho bisogno di utilizzare un indirizzo IP. Ad esempio, il nostro host del log collector deve aprire una porta nel firewall per diversi computer specifici (e non un'intera sottorete). Devo usare gli indirizzi IP per aprire un buco nel firewall. Poiché gli indirizzi IP delle macchine non cambiano, stavo progettando di codificare l'indirizzo IP come parte della configurazione, ma vorrei verificare sui singoli host che l'indirizzo IP effettivo corrisponda a quello della sua configurazione e fallire se non è così. È possibile?

risposta

11

credo che qualcosa di simile potrebbe funzionare:

if $ipaddress != $expectedipaddress { 
    fail("IP mismatch") 
} 

Il fail() function causa un errore di analisi. Avvolgendolo in modo condizionale dovrebbe ottenere il comportamento assert desiderato.

Non ho testato questo uso specifico, ma se l'analisi non riesce un nuovo catalogo non viene compilato e il client non ottiene nulla.