【发布时间】:2016-03-30 07:52:26
【问题描述】:
Chef Node API,如 /nodes/nodename 将返回完整的节点对象,如:
{
"name": "node_name",
"chef_environment": "_default",
"run_list": [
"recipe[recipe_name]"
]
"json_class": "Chef::Node",
"chef_type": "node",
"automatic": { ... },
"normal": { "tags": [ ] },
"default": { },
"override": { "cookbook1_name"=>{
"attribute1"=>"overridevalue"
}}
}
我正在尝试使用 Chef::Search::Query.search REST API 来仅返回一些必需的列而不是完整的节点对象。例如:
Chef::Search::Query.new("server url").search(:node, '*:*', :filter_result => {'name' => ['name'] } )
它只返回节点名称,但是当我尝试添加覆盖数据时,它总是返回 null...
Chef::Search::Query.new("server url").search(:node, '*:*', :filter_result => {'name' => ['name'], 'override' => ['override'] } )
filter_result 似乎可以用于字符串或数组等类型,但 override 是一个 json 对象,如何将其包含在结果中?
谢谢!
【问题讨论】:
标签: rest search filter chef-infra