mirror of https://github.com/fluxcd/cli-utils.git
add InventoryInfo() function to the provider interface
This commit is contained in:
parent
7915dc5de7
commit
cb0443cccc
|
|
@ -17,7 +17,6 @@ import (
|
||||||
"sigs.k8s.io/cli-utils/cmd/printers"
|
"sigs.k8s.io/cli-utils/cmd/printers"
|
||||||
"sigs.k8s.io/cli-utils/pkg/apply"
|
"sigs.k8s.io/cli-utils/pkg/apply"
|
||||||
"sigs.k8s.io/cli-utils/pkg/common"
|
"sigs.k8s.io/cli-utils/pkg/common"
|
||||||
"sigs.k8s.io/cli-utils/pkg/inventory"
|
|
||||||
"sigs.k8s.io/cli-utils/pkg/provider"
|
"sigs.k8s.io/cli-utils/pkg/provider"
|
||||||
"sigs.k8s.io/kustomize/kyaml/setters2"
|
"sigs.k8s.io/kustomize/kyaml/setters2"
|
||||||
)
|
)
|
||||||
|
|
@ -111,11 +110,8 @@ func (r *ApplyRunner) RunE(cmd *cobra.Command, args []string) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
inventoryClient, err := r.provider.InventoryClient()
|
|
||||||
if err != nil {
|
inv, objs, err := r.provider.InventoryInfo(objs)
|
||||||
return err
|
|
||||||
}
|
|
||||||
inv, objs, err := inventory.SplitUnstructureds(inventoryClient.InvInfoFactoryFunc(), objs)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,6 @@ import (
|
||||||
"k8s.io/kubectl/pkg/util/i18n"
|
"k8s.io/kubectl/pkg/util/i18n"
|
||||||
"sigs.k8s.io/cli-utils/cmd/printers"
|
"sigs.k8s.io/cli-utils/cmd/printers"
|
||||||
"sigs.k8s.io/cli-utils/pkg/apply"
|
"sigs.k8s.io/cli-utils/pkg/apply"
|
||||||
"sigs.k8s.io/cli-utils/pkg/inventory"
|
|
||||||
"sigs.k8s.io/cli-utils/pkg/provider"
|
"sigs.k8s.io/cli-utils/pkg/provider"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -64,12 +63,7 @@ func (r *DestroyRunner) RunE(cmd *cobra.Command, args []string) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
inventoryClient, err := r.provider.InventoryClient()
|
inv, _, err := r.provider.InventoryInfo(objs)
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
inv, _, err := inventory.SplitUnstructureds(inventoryClient.InvInfoFactoryFunc(), objs)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,6 @@ import (
|
||||||
"sigs.k8s.io/cli-utils/pkg/apply"
|
"sigs.k8s.io/cli-utils/pkg/apply"
|
||||||
"sigs.k8s.io/cli-utils/pkg/apply/event"
|
"sigs.k8s.io/cli-utils/pkg/apply/event"
|
||||||
"sigs.k8s.io/cli-utils/pkg/common"
|
"sigs.k8s.io/cli-utils/pkg/common"
|
||||||
"sigs.k8s.io/cli-utils/pkg/inventory"
|
|
||||||
"sigs.k8s.io/cli-utils/pkg/provider"
|
"sigs.k8s.io/cli-utils/pkg/provider"
|
||||||
"sigs.k8s.io/kustomize/kyaml/setters2"
|
"sigs.k8s.io/kustomize/kyaml/setters2"
|
||||||
)
|
)
|
||||||
|
|
@ -100,12 +99,8 @@ func (r *PreviewRunner) RunE(cmd *cobra.Command, args []string) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
inventoryClient, err := r.provider.InventoryClient()
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
inv, objs, err := inventory.SplitUnstructureds(inventoryClient.InvInfoFactoryFunc(), objs)
|
inv, objs, err := r.provider.InventoryInfo(objs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,6 @@ import (
|
||||||
"sigs.k8s.io/cli-utils/cmd/status/printers"
|
"sigs.k8s.io/cli-utils/cmd/status/printers"
|
||||||
"sigs.k8s.io/cli-utils/pkg/apply/poller"
|
"sigs.k8s.io/cli-utils/pkg/apply/poller"
|
||||||
"sigs.k8s.io/cli-utils/pkg/common"
|
"sigs.k8s.io/cli-utils/pkg/common"
|
||||||
"sigs.k8s.io/cli-utils/pkg/inventory"
|
|
||||||
"sigs.k8s.io/cli-utils/pkg/kstatus/polling"
|
"sigs.k8s.io/cli-utils/pkg/kstatus/polling"
|
||||||
"sigs.k8s.io/cli-utils/pkg/kstatus/polling/aggregator"
|
"sigs.k8s.io/cli-utils/pkg/kstatus/polling/aggregator"
|
||||||
"sigs.k8s.io/cli-utils/pkg/kstatus/polling/collector"
|
"sigs.k8s.io/cli-utils/pkg/kstatus/polling/collector"
|
||||||
|
|
@ -88,8 +87,7 @@ func (r *StatusRunner) runE(cmd *cobra.Command, args []string) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Find the inventory template among the manifests.
|
inv, _, err := r.provider.InventoryInfo(objs)
|
||||||
inv, _, err := inventory.SplitUnstructureds(invClient.InvInfoFactoryFunc(), objs)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -551,7 +551,7 @@ func createObjs(resources []resourceInfo) (inventory.InventoryInfo, []*unstructu
|
||||||
}
|
}
|
||||||
objs = append(objs, u)
|
objs = append(objs, u)
|
||||||
}
|
}
|
||||||
return inventory.SplitUnstructureds(inventory.WrapInventoryInfoObj, objs)
|
return inventory.SplitUnstructureds(objs)
|
||||||
}
|
}
|
||||||
|
|
||||||
// The handler interface allows different testcases to provide
|
// The handler interface allows different testcases to provide
|
||||||
|
|
|
||||||
|
|
@ -81,7 +81,3 @@ func (fic *FakeInventoryClient) SetError(err error) {
|
||||||
func (fic *FakeInventoryClient) ClearError() {
|
func (fic *FakeInventoryClient) ClearError() {
|
||||||
fic.Err = nil
|
fic.Err = nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (fic *FakeInventoryClient) InvInfoFactoryFunc() UnstructuredToInvInfoFunc {
|
|
||||||
return WrapInventoryInfoObj
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -42,8 +42,6 @@ type InventoryClient interface {
|
||||||
SetDryRunStrategy(drs common.DryRunStrategy)
|
SetDryRunStrategy(drs common.DryRunStrategy)
|
||||||
// ApplyInventoryNamespace applies the Namespace that the inventory object should be in.
|
// ApplyInventoryNamespace applies the Namespace that the inventory object should be in.
|
||||||
ApplyInventoryNamespace(invNamespace *unstructured.Unstructured) error
|
ApplyInventoryNamespace(invNamespace *unstructured.Unstructured) error
|
||||||
// InvInfoFactoryFunc returns the factory function to create an InventoryInfo from an unstructured.
|
|
||||||
InvInfoFactoryFunc() UnstructuredToInvInfoFunc
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ClusterInventoryClient is a concrete implementation of the
|
// ClusterInventoryClient is a concrete implementation of the
|
||||||
|
|
@ -56,7 +54,6 @@ type ClusterInventoryClient struct {
|
||||||
dryRunStrategy common.DryRunStrategy
|
dryRunStrategy common.DryRunStrategy
|
||||||
InventoryFactoryFunc InventoryFactoryFunc
|
InventoryFactoryFunc InventoryFactoryFunc
|
||||||
invToUnstructuredFunc InventoryToUnstructuredFunc
|
invToUnstructuredFunc InventoryToUnstructuredFunc
|
||||||
unsToInfoFunc UnstructuredToInvInfoFunc
|
|
||||||
infoHelper info.InfoHelper
|
infoHelper info.InfoHelper
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -66,8 +63,7 @@ var _ InventoryClient = &ClusterInventoryClient{}
|
||||||
// InventoryClient interface or an error.
|
// InventoryClient interface or an error.
|
||||||
func NewInventoryClient(factory cmdutil.Factory,
|
func NewInventoryClient(factory cmdutil.Factory,
|
||||||
invFunc InventoryFactoryFunc,
|
invFunc InventoryFactoryFunc,
|
||||||
invToUnstructuredFunc InventoryToUnstructuredFunc,
|
invToUnstructuredFunc InventoryToUnstructuredFunc) (*ClusterInventoryClient, error) {
|
||||||
unsToInfoFunc UnstructuredToInvInfoFunc) (*ClusterInventoryClient, error) {
|
|
||||||
var err error
|
var err error
|
||||||
mapper, err := factory.ToRESTMapper()
|
mapper, err := factory.ToRESTMapper()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -86,16 +82,11 @@ func NewInventoryClient(factory cmdutil.Factory,
|
||||||
dryRunStrategy: common.DryRunNone,
|
dryRunStrategy: common.DryRunNone,
|
||||||
InventoryFactoryFunc: invFunc,
|
InventoryFactoryFunc: invFunc,
|
||||||
invToUnstructuredFunc: invToUnstructuredFunc,
|
invToUnstructuredFunc: invToUnstructuredFunc,
|
||||||
unsToInfoFunc: unsToInfoFunc,
|
|
||||||
infoHelper: info.NewInfoHelper(factory),
|
infoHelper: info.NewInfoHelper(factory),
|
||||||
}
|
}
|
||||||
return &clusterInventoryClient, nil
|
return &clusterInventoryClient, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cic *ClusterInventoryClient) InvInfoFactoryFunc() UnstructuredToInvInfoFunc {
|
|
||||||
return cic.unsToInfoFunc
|
|
||||||
}
|
|
||||||
|
|
||||||
// Merge stores the union of the passed objects with the objects currently
|
// Merge stores the union of the passed objects with the objects currently
|
||||||
// stored in the cluster inventory object. Retrieves and caches the cluster
|
// stored in the cluster inventory object. Retrieves and caches the cluster
|
||||||
// inventory object. Returns the set differrence of the cluster inventory
|
// inventory object. Returns the set differrence of the cluster inventory
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ func TestGetClusterInventoryInfo(t *testing.T) {
|
||||||
for name, tc := range tests {
|
for name, tc := range tests {
|
||||||
t.Run(name, func(t *testing.T) {
|
t.Run(name, func(t *testing.T) {
|
||||||
invClient, _ := NewInventoryClient(tf,
|
invClient, _ := NewInventoryClient(tf,
|
||||||
WrapInventoryObj, InvInfoToConfigMap, WrapInventoryInfoObj)
|
WrapInventoryObj, InvInfoToConfigMap)
|
||||||
fakeBuilder := FakeBuilder{}
|
fakeBuilder := FakeBuilder{}
|
||||||
fakeBuilder.SetInventoryObjs(tc.localObjs)
|
fakeBuilder.SetInventoryObjs(tc.localObjs)
|
||||||
invClient.builderFunc = fakeBuilder.GetBuilder()
|
invClient.builderFunc = fakeBuilder.GetBuilder()
|
||||||
|
|
@ -163,7 +163,7 @@ func TestMerge(t *testing.T) {
|
||||||
t.Run(name, func(t *testing.T) {
|
t.Run(name, func(t *testing.T) {
|
||||||
// Create the local inventory object storing "tc.localObjs"
|
// Create the local inventory object storing "tc.localObjs"
|
||||||
invClient, _ := NewInventoryClient(tf,
|
invClient, _ := NewInventoryClient(tf,
|
||||||
WrapInventoryObj, InvInfoToConfigMap, WrapInventoryInfoObj)
|
WrapInventoryObj, InvInfoToConfigMap)
|
||||||
invClient.SetDryRunStrategy(drs)
|
invClient.SetDryRunStrategy(drs)
|
||||||
// Create a fake builder to return "tc.clusterObjs" from
|
// Create a fake builder to return "tc.clusterObjs" from
|
||||||
// the cluster inventory object.
|
// the cluster inventory object.
|
||||||
|
|
@ -250,7 +250,7 @@ func TestCreateInventory(t *testing.T) {
|
||||||
for name, tc := range tests {
|
for name, tc := range tests {
|
||||||
t.Run(name, func(t *testing.T) {
|
t.Run(name, func(t *testing.T) {
|
||||||
invClient, _ := NewInventoryClient(tf,
|
invClient, _ := NewInventoryClient(tf,
|
||||||
WrapInventoryObj, InvInfoToConfigMap, WrapInventoryInfoObj)
|
WrapInventoryObj, InvInfoToConfigMap)
|
||||||
inv := invClient.invToUnstructuredFunc(tc.inv)
|
inv := invClient.invToUnstructuredFunc(tc.inv)
|
||||||
if inv != nil {
|
if inv != nil {
|
||||||
inv = storeObjsInInventory(tc.inv, tc.localObjs)
|
inv = storeObjsInInventory(tc.inv, tc.localObjs)
|
||||||
|
|
@ -327,7 +327,7 @@ func TestReplace(t *testing.T) {
|
||||||
drs := common.Strategies[i]
|
drs := common.Strategies[i]
|
||||||
t.Run(name, func(t *testing.T) {
|
t.Run(name, func(t *testing.T) {
|
||||||
invClient, _ := NewInventoryClient(tf,
|
invClient, _ := NewInventoryClient(tf,
|
||||||
WrapInventoryObj, InvInfoToConfigMap, WrapInventoryInfoObj)
|
WrapInventoryObj, InvInfoToConfigMap)
|
||||||
invClient.SetDryRunStrategy(drs)
|
invClient.SetDryRunStrategy(drs)
|
||||||
// Create fake builder returning the cluster inventory object
|
// Create fake builder returning the cluster inventory object
|
||||||
// storing the "tc.clusterObjs" objects.
|
// storing the "tc.clusterObjs" objects.
|
||||||
|
|
@ -384,7 +384,7 @@ func TestGetClusterObjs(t *testing.T) {
|
||||||
for name, tc := range tests {
|
for name, tc := range tests {
|
||||||
t.Run(name, func(t *testing.T) {
|
t.Run(name, func(t *testing.T) {
|
||||||
invClient, _ := NewInventoryClient(tf,
|
invClient, _ := NewInventoryClient(tf,
|
||||||
WrapInventoryObj, InvInfoToConfigMap, WrapInventoryInfoObj)
|
WrapInventoryObj, InvInfoToConfigMap)
|
||||||
// Create fake builder returning "tc.clusterObjs" from cluster inventory.
|
// Create fake builder returning "tc.clusterObjs" from cluster inventory.
|
||||||
fakeBuilder := FakeBuilder{}
|
fakeBuilder := FakeBuilder{}
|
||||||
fakeBuilder.SetInventoryObjs(tc.clusterObjs)
|
fakeBuilder.SetInventoryObjs(tc.clusterObjs)
|
||||||
|
|
@ -464,7 +464,7 @@ func TestDeleteInventoryObj(t *testing.T) {
|
||||||
drs := common.Strategies[i]
|
drs := common.Strategies[i]
|
||||||
t.Run(name, func(t *testing.T) {
|
t.Run(name, func(t *testing.T) {
|
||||||
invClient, _ := NewInventoryClient(tf,
|
invClient, _ := NewInventoryClient(tf,
|
||||||
WrapInventoryObj, InvInfoToConfigMap, WrapInventoryInfoObj)
|
WrapInventoryObj, InvInfoToConfigMap)
|
||||||
invClient.SetDryRunStrategy(drs)
|
invClient.SetDryRunStrategy(drs)
|
||||||
inv := invClient.invToUnstructuredFunc(tc.inv)
|
inv := invClient.invToUnstructuredFunc(tc.inv)
|
||||||
if inv != nil {
|
if inv != nil {
|
||||||
|
|
@ -563,7 +563,7 @@ func TestMergeInventoryObjs(t *testing.T) {
|
||||||
drs := common.Strategies[i]
|
drs := common.Strategies[i]
|
||||||
t.Run(name, func(t *testing.T) {
|
t.Run(name, func(t *testing.T) {
|
||||||
invClient, _ := NewInventoryClient(tf,
|
invClient, _ := NewInventoryClient(tf,
|
||||||
WrapInventoryObj, InvInfoToConfigMap, WrapInventoryInfoObj)
|
WrapInventoryObj, InvInfoToConfigMap)
|
||||||
invClient.SetDryRunStrategy(drs)
|
invClient.SetDryRunStrategy(drs)
|
||||||
inventories := []*unstructured.Unstructured{}
|
inventories := []*unstructured.Unstructured{}
|
||||||
for _, i := range tc.invs {
|
for _, i := range tc.invs {
|
||||||
|
|
|
||||||
|
|
@ -46,10 +46,6 @@ type InventoryFactoryFunc func(*unstructured.Unstructured) Inventory
|
||||||
// given InventoryInfo.
|
// given InventoryInfo.
|
||||||
type InventoryToUnstructuredFunc func(InventoryInfo) *unstructured.Unstructured
|
type InventoryToUnstructuredFunc func(InventoryInfo) *unstructured.Unstructured
|
||||||
|
|
||||||
// UnstructuredToInvInfoFunc creates the object which implements the InventoryInfo
|
|
||||||
// interface from the passed unstructured object.
|
|
||||||
type UnstructuredToInvInfoFunc func(*unstructured.Unstructured) InventoryInfo
|
|
||||||
|
|
||||||
// FindInventoryObj returns the "Inventory" object (ConfigMap with
|
// FindInventoryObj returns the "Inventory" object (ConfigMap with
|
||||||
// inventory label) if it exists, or nil if it does not exist.
|
// inventory label) if it exists, or nil if it does not exist.
|
||||||
func FindInventoryObj(objs []*unstructured.Unstructured) *unstructured.Unstructured {
|
func FindInventoryObj(objs []*unstructured.Unstructured) *unstructured.Unstructured {
|
||||||
|
|
@ -114,7 +110,7 @@ func ValidateNoInventory(objs []*unstructured.Unstructured) error {
|
||||||
// splitUnstructureds takes a slice of unstructured.Unstructured objects and
|
// splitUnstructureds takes a slice of unstructured.Unstructured objects and
|
||||||
// splits it into one slice that contains the inventory object templates and
|
// splits it into one slice that contains the inventory object templates and
|
||||||
// another one that contains the remaining resources.
|
// another one that contains the remaining resources.
|
||||||
func SplitUnstructureds(factoryFunc UnstructuredToInvInfoFunc, objs []*unstructured.Unstructured) (InventoryInfo, []*unstructured.Unstructured, error) {
|
func SplitUnstructureds(objs []*unstructured.Unstructured) (InventoryInfo, []*unstructured.Unstructured, error) {
|
||||||
invs := make([]*unstructured.Unstructured, 0)
|
invs := make([]*unstructured.Unstructured, 0)
|
||||||
resources := make([]*unstructured.Unstructured, 0)
|
resources := make([]*unstructured.Unstructured, 0)
|
||||||
for _, obj := range objs {
|
for _, obj := range objs {
|
||||||
|
|
@ -131,7 +127,7 @@ func SplitUnstructureds(factoryFunc UnstructuredToInvInfoFunc, objs []*unstructu
|
||||||
InventoryObjectTemplates: invs,
|
InventoryObjectTemplates: invs,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return factoryFunc(invs[0]), resources, nil
|
return WrapInventoryInfoObj(invs[0]), resources, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// addSuffixToName adds the passed suffix (usually a hash) as a suffix
|
// addSuffixToName adds the passed suffix (usually a hash) as a suffix
|
||||||
|
|
|
||||||
|
|
@ -309,7 +309,7 @@ func TestSplitUnstructureds(t *testing.T) {
|
||||||
|
|
||||||
for name, tc := range tests {
|
for name, tc := range tests {
|
||||||
t.Run(name, func(t *testing.T) {
|
t.Run(name, func(t *testing.T) {
|
||||||
inv, infos, err := SplitUnstructureds(WrapInventoryInfoObj, tc.allObjs)
|
inv, infos, err := SplitUnstructureds(tc.allObjs)
|
||||||
if !tc.isError && err != nil {
|
if !tc.isError && err != nil {
|
||||||
t.Fatalf("unexpected error received: %s", err)
|
t.Fatalf("unexpected error received: %s", err)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import (
|
||||||
|
|
||||||
"k8s.io/apimachinery/pkg/api/meta"
|
"k8s.io/apimachinery/pkg/api/meta"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
||||||
"k8s.io/kubectl/pkg/cmd/util"
|
"k8s.io/kubectl/pkg/cmd/util"
|
||||||
"sigs.k8s.io/cli-utils/pkg/inventory"
|
"sigs.k8s.io/cli-utils/pkg/inventory"
|
||||||
"sigs.k8s.io/cli-utils/pkg/manifestreader"
|
"sigs.k8s.io/cli-utils/pkg/manifestreader"
|
||||||
|
|
@ -56,3 +57,7 @@ func (f *FakeProvider) ManifestReader(reader io.Reader, _ []string) (manifestrea
|
||||||
ReaderOptions: readerOptions,
|
ReaderOptions: readerOptions,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (f *FakeProvider) InventoryInfo(objs []*unstructured.Unstructured) (inventory.InventoryInfo, []*unstructured.Unstructured, error) {
|
||||||
|
return inventory.SplitUnstructureds(objs)
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import (
|
||||||
"io"
|
"io"
|
||||||
|
|
||||||
"k8s.io/apimachinery/pkg/api/meta"
|
"k8s.io/apimachinery/pkg/api/meta"
|
||||||
|
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
||||||
"k8s.io/kubectl/pkg/cmd/util"
|
"k8s.io/kubectl/pkg/cmd/util"
|
||||||
"sigs.k8s.io/cli-utils/pkg/inventory"
|
"sigs.k8s.io/cli-utils/pkg/inventory"
|
||||||
"sigs.k8s.io/cli-utils/pkg/manifestreader"
|
"sigs.k8s.io/cli-utils/pkg/manifestreader"
|
||||||
|
|
@ -20,6 +21,7 @@ var _ Provider = &InventoryProvider{}
|
||||||
type Provider interface {
|
type Provider interface {
|
||||||
Factory() util.Factory
|
Factory() util.Factory
|
||||||
InventoryClient() (inventory.InventoryClient, error)
|
InventoryClient() (inventory.InventoryClient, error)
|
||||||
|
InventoryInfo([]*unstructured.Unstructured) (inventory.InventoryInfo, []*unstructured.Unstructured, error)
|
||||||
ToRESTMapper() (meta.RESTMapper, error)
|
ToRESTMapper() (meta.RESTMapper, error)
|
||||||
ManifestReader(reader io.Reader, args []string) (manifestreader.ManifestReader, error)
|
ManifestReader(reader io.Reader, args []string) (manifestreader.ManifestReader, error)
|
||||||
}
|
}
|
||||||
|
|
@ -47,10 +49,13 @@ func (f *InventoryProvider) InventoryClient() (inventory.InventoryClient, error)
|
||||||
return inventory.NewInventoryClient(f.factory,
|
return inventory.NewInventoryClient(f.factory,
|
||||||
inventory.WrapInventoryObj,
|
inventory.WrapInventoryObj,
|
||||||
inventory.InvInfoToConfigMap,
|
inventory.InvInfoToConfigMap,
|
||||||
inventory.WrapInventoryInfoObj,
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (f *InventoryProvider) InventoryInfo(objs []*unstructured.Unstructured) (inventory.InventoryInfo, []*unstructured.Unstructured, error) {
|
||||||
|
return inventory.SplitUnstructureds(objs)
|
||||||
|
}
|
||||||
|
|
||||||
// ToRESTMapper returns a RESTMapper created by the stored kubectl factory.
|
// ToRESTMapper returns a RESTMapper created by the stored kubectl factory.
|
||||||
func (f *InventoryProvider) ToRESTMapper() (meta.RESTMapper, error) {
|
func (f *InventoryProvider) ToRESTMapper() (meta.RESTMapper, error) {
|
||||||
return f.factory.ToRESTMapper()
|
return f.factory.ToRESTMapper()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue