【发布时间】:2016-04-13 02:20:17
【问题描述】:
我有一个关于 ruby/chef 的问题,我正在创建一个配方,一旦我们厨师客户端节点将设置一个 cron 作业,并且在我运行厨房测试时遇到语法错误
以下代码块是我的食谱的一部分
action node["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["enabled"] = ? :create : :delete
minute node["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["minute"]
hour node["hadoop_temp"]["scripts"]["cron"]["clean_teamp"]["hour"]
day node["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["day"]
month node["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["month"]
weekday node["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["weekday"]
以下块是我的属性的一部分。
#Run the cron every day at 12AM cleans /temp
default["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["enabled"] = false
default["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["minute"] = "0"
default["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["hour"] = "0"
default["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["day"] = "*"
default["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["month"] = "*"
default["hadoop_temp"]["scripts"]["cron"]["clean_temp"]["weekday"] = "*"
当我运行厨房测试时,出现以下错误。
SyntaxError
-----------
/tmp/kitchen/cache/cookbooks/hadoop_temp/recipes/clean_temp.rb:25: syntax error, unexpected '?'
..."hadoop_temp"]["enabled"] = ? :create : :delete
我不明白 ruby 中的 boolean 100% 我想要完成的是如果条目存在创建但如果将来我想删除我只需将属性切换为 true。
【问题讨论】:
-
删除
=符号。 -
谢谢@StephenKing 我的测试通过了!这很容易!
-
请将此作为答案发布
标签: ruby chef-infra