我使用的是Apache Nifi,我正在编写一个tool以基于Nifi API自动化。这个工具是一个红宝石宝石,所以我想用它作为我的Nifi manifest中的傀儡类型/提供者。链接提供商
类型(LIB /木偶/类型/ nifi_pg.rb)看起来像这样:
Puppet::Type.newtype(:nifi_pg) do
@doc = "Manage Nifi process groups"
ensurable
newparam(:name) do
isnamevar
desc "Process group Name"
validate do |value|
end
end
newparam(:id) do
desc "Process group ID"
validate do |value|
end
end
end
提供商(LIB /木偶/提供者/ nifi_pg/ruby.rb)看起来像这样:
require 'nifi_sdk_ruby'
Puppet::Type.type(:nifi_pg).provide(:ruby) do
def create
nifi_client = Nifi.new()
nifi_client.set_debug(true)
nifi_client.create_process_group(:name => resource[:name])
end
def destroy
nifi_client = Nifi.new()
nifi_client.set_debug(true)
nifi_client.delete_process_group(resource[:id])
end
def exists?
false
end
end
使用它很简单:
nifi_pg {"test":
ensure => present
}
问题是我需要关于创建资源的一些信息(如新进程组标识)来使用它,例如,将模板上传到此新进程组。木偶资源不会返回任何东西。
任何想法解决?我想答案不是。
这个explanation完美地解释它。
关闭我的头顶,这是不可能的,因为事实和函数在编译时执行,并且您需要一个或两个来解决此问题。但是,您是否可以编辑此理论模板的问题,以了解资源和模板的外观?这种情况可能有解决方法。 –
或者,这是否需要在节点上执行?如果不是的话,那里也有前进的道路。 –