mirror of
https://github.com/rancher/norman.git
synced 2025-09-25 22:54:28 +00:00
Give access to unstructured client
This commit is contained in:
@@ -6,6 +6,7 @@ import (
|
|||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"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/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/apimachinery/pkg/watch"
|
"k8s.io/apimachinery/pkg/watch"
|
||||||
@@ -18,6 +19,17 @@ type ObjectFactory interface {
|
|||||||
List() runtime.Object
|
List() runtime.Object
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type UnstructuredObjectFactory struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
func (u *UnstructuredObjectFactory) Object() runtime.Object {
|
||||||
|
return &unstructured.Unstructured{}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (u *UnstructuredObjectFactory) List() runtime.Object {
|
||||||
|
return &unstructured.UnstructuredList{}
|
||||||
|
}
|
||||||
|
|
||||||
type ObjectClient struct {
|
type ObjectClient struct {
|
||||||
restClient rest.Interface
|
restClient rest.Interface
|
||||||
resource *metav1.APIResource
|
resource *metav1.APIResource
|
||||||
@@ -36,6 +48,16 @@ func NewObjectClient(namespace string, restClient rest.Interface, apiResource *m
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p *ObjectClient) UnstructuredClient() *ObjectClient {
|
||||||
|
return &ObjectClient{
|
||||||
|
restClient: p.restClient,
|
||||||
|
resource: p.resource,
|
||||||
|
gvk: p.gvk,
|
||||||
|
ns: p.ns,
|
||||||
|
Factory: &UnstructuredObjectFactory{},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (p *ObjectClient) getAPIPrefix() string {
|
func (p *ObjectClient) getAPIPrefix() string {
|
||||||
if p.gvk.Group == "" {
|
if p.gvk.Group == "" {
|
||||||
return "api"
|
return "api"
|
||||||
|
Reference in New Issue
Block a user