2016-08-08 19 views
1

나는 간단한 속성 파일 인 attributes/default.rb을 가지고 있습니다.kitchen.yml 속성이 기본값을 덮어 쓰지 않습니다 - Chef 12.12 - Kitchen 1.10

log "default['simpleattr']: "+node.default['simpleattr'] 

을 그리고 난 항상 출력으로 'file value'보다는 'value from kitchen' 수 :

default['simpleattr'] = 'file value' 

그리고 kitchen.yml 내부

, 나는 내가 할 레시피 내부

suites: 
    - name: default 
    run_list: 
     - recipe[simple::default] 
    attributes: 
    simpleattr: 'value from kitchen' 
    simple: 
     simpleattr: 'value from kitchen' 

을한다.

테스트에서 값을 무시하고 싶습니다.

+1

당신이 테스트 부엌에서 정의하는 값에 액세스하는 것입니다 그런 다음 모든 것이 당신 것

node.default['simpleattr'] 

대신

node['simpleattr'] 

를 사용하지 마십시오 'node [ 'simple'] [ 'simpleattr']'에 액세스해야합니다. 'node.default'를 통해 속성에 접근하지 말고'node [ 'simpleattr']를 대신 사용하십시오. YAML에서,'attributes' 행 아래의 줄은 한 칸 들여 쓰기가 부족합니다. YAML이 'kitchen diagnose'를 통해 올바르게 구문 분석되는지 확인할 수 있습니다. – StephenKing

+1

내가 문제의 뿌리를 가지기를 바란다. (나의 대답을 보아라.) – StephenKing

+1

나는 내 의견에 쓴 모든 것을 행복하게 무시하고 있었다. – StephenKing

답변

4

node.default[]을 통해 노드 값에 액세스하지 말고 대신 node[]을 사용하십시오. 주방장 attribute hierarchy은 우선 순위에 따라 자동으로 값을 계산합니다.

문제점을 재현하여 업로드했습니다 (here on Github). solution도 이전에 내 의견에 설명되어 있습니다. 예상과 출력,

Recipe: simple::default 
    * log[default['simpleattr']: value from kitchen] action write