diff --git a/pkg/oc/cli/util/clientcmd/factory_builder.go b/pkg/oc/cli/util/clientcmd/factory_builder.go index 0898d0cc350f..013b1b884c56 100644 --- a/pkg/oc/cli/util/clientcmd/factory_builder.go +++ b/pkg/oc/cli/util/clientcmd/factory_builder.go @@ -25,12 +25,12 @@ import ( ) type ring2Factory struct { - clientAccessFactory ClientAccessFactory + clientAccessFactory kcmdutil.ClientAccessFactory objectMappingFactory kcmdutil.ObjectMappingFactory kubeBuilderFactory kcmdutil.BuilderFactory } -func NewBuilderFactory(clientAccessFactory ClientAccessFactory, objectMappingFactory kcmdutil.ObjectMappingFactory) kcmdutil.BuilderFactory { +func NewBuilderFactory(clientAccessFactory kcmdutil.ClientAccessFactory, objectMappingFactory kcmdutil.ObjectMappingFactory) kcmdutil.BuilderFactory { return &ring2Factory{ clientAccessFactory: clientAccessFactory, objectMappingFactory: objectMappingFactory, diff --git a/pkg/oc/cli/util/clientcmd/factory_object_mapping.go b/pkg/oc/cli/util/clientcmd/factory_object_mapping.go index 0704795f0883..89717cf2566c 100644 --- a/pkg/oc/cli/util/clientcmd/factory_object_mapping.go +++ b/pkg/oc/cli/util/clientcmd/factory_object_mapping.go @@ -11,7 +11,6 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/client-go/dynamic" restclient "k8s.io/client-go/rest" kapi "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/controller" @@ -23,7 +22,6 @@ import ( "k8s.io/kubernetes/pkg/kubectl/validation" kprinters "k8s.io/kubernetes/pkg/printers" - "github.com/openshift/origin/pkg/api/latest" appsapi "github.com/openshift/origin/pkg/apps/apis/apps" appsmanualclient "github.com/openshift/origin/pkg/apps/client/internalversion" appsclient "github.com/openshift/origin/pkg/apps/generated/internalclientset" @@ -33,18 +31,16 @@ import ( buildmanualclient "github.com/openshift/origin/pkg/build/client/internalversion" buildclientinternal "github.com/openshift/origin/pkg/build/generated/internalclientset" buildutil "github.com/openshift/origin/pkg/build/util" - configcmd "github.com/openshift/origin/pkg/bulk" imageapi "github.com/openshift/origin/pkg/image/apis/image" deploymentcmd "github.com/openshift/origin/pkg/oc/cli/deploymentconfigs" - "github.com/openshift/origin/pkg/oc/cli/describe" ) type ring1Factory struct { - clientAccessFactory ClientAccessFactory + clientAccessFactory kcmdutil.ClientAccessFactory kubeObjectMappingFactory kcmdutil.ObjectMappingFactory } -func NewObjectMappingFactory(clientAccessFactory ClientAccessFactory) kcmdutil.ObjectMappingFactory { +func NewObjectMappingFactory(clientAccessFactory kcmdutil.ClientAccessFactory) kcmdutil.ObjectMappingFactory { return &ring1Factory{ clientAccessFactory: clientAccessFactory, kubeObjectMappingFactory: kcmdutil.NewObjectMappingFactory(clientAccessFactory), @@ -60,69 +56,14 @@ func (f *ring1Factory) CategoryExpander() categories.CategoryExpander { } func (f *ring1Factory) ClientForMapping(mapping *meta.RESTMapping) (resource.RESTClient, error) { - // TODO only do this for legacy kinds - if latest.OriginKind(mapping.GroupVersionKind) { - cfg, err := f.clientAccessFactory.ClientConfig() - if err != nil { - return nil, err - } - if err := configcmd.SetLegacyOpenShiftDefaults(cfg); err != nil { - return nil, err - } - cfg.APIPath = "/apis" - if mapping.GroupVersionKind.Group == kapi.GroupName { - cfg.APIPath = "/oapi" - } - gv := mapping.GroupVersionKind.GroupVersion() - cfg.GroupVersion = &gv - return restclient.RESTClientFor(cfg) - } return f.kubeObjectMappingFactory.ClientForMapping(mapping) } func (f *ring1Factory) UnstructuredClientForMapping(mapping *meta.RESTMapping) (resource.RESTClient, error) { - // TODO only do this for legacy kinds - if latest.OriginKind(mapping.GroupVersionKind) { - cfg, err := f.clientAccessFactory.ClientConfig() - if err != nil { - return nil, err - } - if err := configcmd.SetLegacyOpenShiftDefaults(cfg); err != nil { - return nil, err - } - cfg.APIPath = "/apis" - if mapping.GroupVersionKind.Group == kapi.GroupName { - cfg.APIPath = "/oapi" - } - gv := mapping.GroupVersionKind.GroupVersion() - cfg.ContentConfig = dynamic.ContentConfig() - cfg.GroupVersion = &gv - return restclient.RESTClientFor(cfg) - } return f.kubeObjectMappingFactory.UnstructuredClientForMapping(mapping) } func (f *ring1Factory) Describer(mapping *meta.RESTMapping) (kprinters.Describer, error) { - // TODO we need to refactor the describer logic to handle misses or run serverside. - // for now we can special case our "sometimes origin, sometimes kube" resource - // I think it is correct for more code if this is NOT considered an origin type since - // it wasn't an origin type pre 3.6. - isSCC := mapping.GroupVersionKind.Kind == "SecurityContextConstraints" - if latest.OriginKind(mapping.GroupVersionKind) || isSCC { - kClient, err := f.clientAccessFactory.ClientSet() - if err != nil { - return nil, fmt.Errorf("unable to create client %s: %v", mapping.GroupVersionKind.Kind, err) - } - clientConfig, err := f.clientAccessFactory.ClientConfig() - if err != nil { - return nil, fmt.Errorf("unable to create client config %s: %v", mapping.GroupVersionKind.Kind, err) - } - describer, ok := describe.DescriberFor(mapping.GroupVersionKind.GroupKind(), clientConfig, kClient, clientConfig.Host) - if !ok { - return nil, fmt.Errorf("no description has been implemented for %q", mapping.GroupVersionKind.Kind) - } - return describer, nil - } return f.kubeObjectMappingFactory.Describer(mapping) }