是否必须为 Puppet 提供程序实施 self.instances 和 self.prefetch 方法
Is it mandatory to implement self.instances and self.prefetch methods for a Puppet provider
我们正在为网络存储设备编写 Puppet 模块。我们正在实现自定义类型和提供者,对于其中一种类型,我们平均拥有大约 40k 个对象。
通过预取和 self.instances 获取这么多资源将非常耗费性能。是否必须为提供商实施 self.instances 和预取方法?如果我们不实施它们,我们会失去什么?
Is it mandatory to implement self.instances and pre-fetch methods for
a provider?
不,不是。
What will we lose if we do not implement them?
您将无法使用 Resources
资源清除相关类型的非托管资源。但是有这么多的资源,我倾向于认为你只会积极管理一些,而不会想清除其他的。
您将无法使用 puppet resource
命令枚举您的自定义类型的所有资源。
您还需要在调用提供者的 getter 方法时按需检索单个资源属性,或者跟踪是否已检索每个单独资源的状态并让每个 getter 如果需要,首先加载状态。两者皆可。
为了比较,请考虑 File
资源,这些资源在概念上与您的想法相似。 Puppet 不会尝试预取给定系统的所有 File
资源,而且没有实际可行的方法。
我们正在为网络存储设备编写 Puppet 模块。我们正在实现自定义类型和提供者,对于其中一种类型,我们平均拥有大约 40k 个对象。 通过预取和 self.instances 获取这么多资源将非常耗费性能。是否必须为提供商实施 self.instances 和预取方法?如果我们不实施它们,我们会失去什么?
Is it mandatory to implement self.instances and pre-fetch methods for a provider?
不,不是。
What will we lose if we do not implement them?
您将无法使用 Resources
资源清除相关类型的非托管资源。但是有这么多的资源,我倾向于认为你只会积极管理一些,而不会想清除其他的。
您将无法使用 puppet resource
命令枚举您的自定义类型的所有资源。
您还需要在调用提供者的 getter 方法时按需检索单个资源属性,或者跟踪是否已检索每个单独资源的状态并让每个 getter 如果需要,首先加载状态。两者皆可。
为了比较,请考虑 File
资源,这些资源在概念上与您的想法相似。 Puppet 不会尝试预取给定系统的所有 File
资源,而且没有实际可行的方法。