- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
对于给定的用例,我需要通过自定义 LWRP 更新节点的标签。我尝试了两种方法:
使用“标记”/“取消标记”。这会产生错误:
No resource or method named `tag' for ...
使用 node[:tags].concat(<new_tags_array>)
.这行得通,但标签不会保留,所以我不能用它进行搜索。
我在这里遗漏了什么吗?
谢谢
编辑:实际上,问题是:甚至可以从提供者更新节点属性吗?
EDIT2:所以这正确地设置了标签:
tags = node[:tags]
tags.concat(new_tags)
node.override[:tags] = tags
但是,标签会在每次 chef-client 运行时重置,因此如果您在包含这些新标签之前检查它们是否存在(在第二次 chef-client 运行时),您将不会获得任何标签。
最佳答案
我发现了问题所在。
总结一下:最初的问题是我无法在 LWRP 的提供者中使用 Chef 的标记/取消标记方法(可能有办法做到这一点,但我还没有找到),所以我选择修改节点上的“标签”属性,其中包含所有标签。
对我来说,标签在 chef-client 运行之间持续存在也很重要。
实现这一点的方法是将属性类型设置为normal
,根据 chef 文档,它永远不会被重置:
At the beginning of a chef-client run, all default, override, and automatic attributes are reset. The chef-client rebuilds them using data collected by Ohai at the beginning of the chef-client run and by attributes that are defined in cookbooks, roles, and environments. Normal attributes are never reset. All attributes are then merged and applied to the node according to attribute precedence. At the conclusion of the chef-client run, all default, override, and automatic attributes disappear, leaving only a collection of normal attributes that will persist until the next chef-client run.
这将使它:
tags = node[:tags]
tags.concat(new_tags)
node.normal[:tags] = tags
关于ruby - 从 Chef LWRP 更新节点标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22146165/
(抱歉链接,我不能发布超过两个..)我正在尝试将提供程序添加到一本 Recipe 中,该 Recipe 包装了另一本包含 LWRP 的 Recipe 。 包装好的 Recipe 是风度翩翩的 Pyth
我正在使用新的 Unity 轻量级渲染管道。 使用从下拉菜单创建的新表面着色器创建 Material 后,我看到的只是粉红色。 根本没有关于为 LWRP 创建着色器的信息。看起来支持无光着色器没有问题
我对这两个 Chef 术语感到有点困惑。 Chef在线讨论多refers to LWRPs ,或轻量级资源提供者。但是,官方 Chef 文档 barely use this term ,并且不要在任何
我被困在尝试创建我的第一个 lwrp 我在以下位置创建了一个非常基本的资源 + 提供程序: resources/rack_site.rb providers/rack_site.rb 我一直在尝试在同
有没有办法通知由包含的 LWRP 定义的服务重新启动? 我写了一个名为“sidekiq”的 LWRP,它设置了一个像这样的服务,并且看起来可以自己正常工作。 service "#{new_resour
对于给定的用例,我需要通过自定义 LWRP 更新节点的标签。我尝试了两种方法: 使用“标记”/“取消标记”。这会产生错误: No resource or method named `tag' for
我在 chef 资源中有以下属性: attribute :attribName, kind_of: String, name_attribute: true, default: 'big string
我正在定义一个提供者如下: action :start do ... end action :stop do ... end action :restart do ... end 现在我不想在
我希望能够使用比方说 3 个参数来定义轻量级资源,其中两个是基本/基本参数,第三个是这两个参数的组合。我还想提供定制第三个参数的可能性。例如: 如何修改以下代码以实现 full_name 属性的上述行
我看到如果 service['somename']使用 use_inline_resources 在 LWRP 中创建启用,则此资源在其他上下文中不可见 - 如此处所述:Notify service
我对此 LWRP 的自定义定义有问题。 资源:user_postgresql。 actions :create, :alter default_action :create attribute :us
我的 Cookbook 中定义了 LWRP 资源 - 如 http://docs.getchef.com/chef/lwrps_custom.html#file-locations 中所述 所以让我们
我编写了一个自定义的轻量级资源。但是 notifies 和 only_if 不被识别。 还有其他人让这个工作吗? 我在 opsworks 供应资源中使用这些。所以我知道我正在正确使用它们。不幸的是专有
我是 Chef/OpsWorks 的新手,正在尝试一个简单的方法在 Ubuntu 12.04 实例上安装 Django 1.6: python_pip "Django" do version
我正在编写一个 LWRP 以使用 API key 为 redis 数据库播种以允许进行身份验证。我的麻烦是使用 ruby 的 redis 库。我四处搜索并在网上找到了一些示例,但没有一个对我有用。
cookbook/libraries/rn_helper.rb: def sample_func puts "woohoo" end Recipe/资源/rn.rb: action :create
我正在为 10 号 Chef 编写 LWRP。当该资源在其他配方中运行时,如果某些内容已更改,则应将其标记为“updated_by_last_action”。但如果一切都没有改变。 updated_b
我是一名优秀的程序员,十分优秀!