2014-04-22 16 views
7

sto cercando di ignorare attributi nella java libro di cucina con test-kitchen.aggiunta di attributi per Test Kitchen

Quando provo corro kitchen converge default-centos-64, un errore di YAML male si presenta.

--- 
driver: 
    name: vagrant 
    customize: 
    memory: 1024 
    cpuexecutioncap: 50 

provisioner: 
    name: chef_solo 

platforms: 
    - name: centos-6.4 

suites: 
    - name: default 
    run_list: 
     - recipe[java::default] 
     - recipe[maven::default] 
    attributes: { 
        java.install_flavor: "oracle", 
        java.jdk_version: "7" 
       } 

ho incollato il sopra in http://yamllint.com/. Quando premo "Vai", rimuove tutte le righe che iniziano con "attributi", quindi mostra un "Valido YAML" verde.

+2

rifornimento attributi anche come yaml, non come JSON. – StephenKing

+0

Grazie, ha funzionato. Vuoi pubblicare la risposta per il credito? –

+0

Grazie per quello, sono contento che sia stato d'aiuto. Durante la ricerca di qualsiasi documentazione mi chiedo sull'esempio nel wiki di github. – StephenKing

risposta

15

attributi vengono forniti come normale contenuto yaml:

suites: 
    - name: default 
    run_list: 
     - recipe[java::default] 
     - recipe[maven::default] 
    attributes: 
     java: 
     install_flavor: "oracle", 
     jdk_version: "7" 

Il Getting Started mostra una sintassi simile al vostro:

suites: 
    - name: default 
    run_list: 
     - recipe[java::default] 
     - recipe[maven::default] 
    attributes: { 'java': { 'install_flavor': 'oracle' } } 
+0

quindi le parentesi '{}' non sono necessarie? Li ho usati con successo. esempio: 'attributes: {'java': {'install_flavor': 'oracle'}}' –

+0

Sto usando lo stile yaml completo [qui] (https://github.com/TYPO3-cookbooks/gerrit/blob/ 77f05d33aefb93de670796e81c7b3322264c22a4/.kitchen.yml # L30-33), ma sembra che non abbia importanza, se è completamente yaml o l'intero attributo un hash json valido (direi che il tuo non è uno stile json valido). Sto aggiornando la mia risposta. – StephenKing

+1

È facile confondere la nuova notazione di hash rubino con la notazione hash json. Questo è un hash rubino con un simbolo chiamato chiave associata a una stringa di "valore": '{key: "valore"}'. E questo è un hash JSON corrispondente '{ "chiave": "valore"}'. Era più facile individuare gli hash rubino prima di ruby ​​2.0 erano tutti così '{: chiave =>" valore "}' –

Problemi correlati