首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从主厨LWRP更新节点标记

从主厨LWRP更新节点标记
EN

Stack Overflow用户
提问于 2014-03-03 11:58:06
回答 1查看 1.9K关注 0票数 2

对于给定的用例,我需要通过自定义LWRP更新节点的标记。我尝试过两种方法:

  • 使用'tag'/'untag‘。这会产生错误: 没有资源或方法名为“`tag”用于..。
  • 使用node[:tags].concat(<new_tags_array>)。这是可行的,但标签不持久化,所以我不能使用它进行搜索。

这里有我遗漏的东西吗?

谢谢

编辑:实际上,问题是:是否有可能从提供程序中更新节点属性?

EDIT2:所以这正确地设置了标记:

代码语言:javascript
复制
 tags = node[:tags]
 tags.concat(new_tags)
 node.override[:tags] = tags

但是,在每次主厨-客户端运行中,标签都会被重置,所以如果您在包含这些新标记之前(在第二次主厨-客户端运行时)检查是否存在这些新标记,则不会得到任何标记。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-03 15:24:42

我发现了问题所在。

总之:最初的问题是我无法在LWRP的提供者中使用厨师的标记/untag方法(可能有一种方法,但我没有找到任何方法),所以我选择修改节点上的‘tag’属性,它保存了所有的标记。

对我来说,在主厨和客户端运行之间保持标签也是很重要的。

实现这一目标的方法是将属性类型设置为normal,根据主厨文档,该属性类型永远不会重置:

在主厨-客户端运行开始时,将重置所有默认属性、覆盖属性和自动属性.厨师-客户端使用Ohai在主厨-客户端运行开始时收集的数据以及在烹饪书、角色和环境中定义的属性重新构建它们。正常属性永远不会重置。然后根据属性优先级将所有属性合并并应用到节点。在主厨-客户端运行结束时,所有默认属性、覆盖属性和自动属性都会消失,只留下一组将持续到下一次主厨-客户端运行的正常属性。

这将使它:

代码语言:javascript
复制
    tags = node[:tags]
    tags.concat(new_tags)
    node.normal[:tags] = tags
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22146165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档