From 616ac9a986c9eea8ec0f224846deac6668a8315b Mon Sep 17 00:00:00 2001 From: David Eads Date: Tue, 8 May 2018 18:22:54 -0400 Subject: [PATCH] remove legacy resource and kind checks from the CLI --- pkg/api/meta/pods.go | 17 +++---- pkg/apps/apis/apps/register.go | 20 +------- .../apis/authorization/register.go | 12 ----- .../jenkinsbootstrapper/admission.go | 7 ++- .../strategyrestrictions/admission.go | 26 +++++++---- pkg/build/apis/build/register.go | 18 -------- pkg/build/registry/buildconfig/webhook.go | 2 +- .../registry/buildconfig/webhook_test.go | 2 +- pkg/image/admission/admission.go | 2 +- pkg/image/apis/image/register.go | 12 ----- pkg/network/apis/network/register.go | 22 --------- pkg/oauth/apis/oauth/register.go | 22 --------- pkg/oc/admin/policy/reconcile_clusterroles.go | 2 +- pkg/oc/cli/cmd/cancelbuild.go | 6 +-- pkg/oc/cli/cmd/logs.go | 8 +++- pkg/oc/cli/cmd/newapp.go | 2 +- pkg/oc/cli/cmd/startbuild.go | 8 ++-- pkg/oc/cli/describe/deployments.go | 8 +++- pkg/oc/cli/util/clientcmd/factory.go | 2 +- pkg/oc/cli/util/clientcmd/factory_builder.go | 10 ++-- .../util/clientcmd/factory_client_access.go | 4 +- .../util/clientcmd/factory_object_mapping.go | 6 +-- pkg/oc/experimental/buildchain/buildchain.go | 4 +- pkg/oc/generate/app/pipeline.go | 6 +-- pkg/oc/graph/kubegraph/edges.go | 12 +++-- .../admission/requestlimit/admission.go | 4 +- pkg/project/apis/project/register.go | 17 ------- pkg/quota/apis/quota/register.go | 22 --------- pkg/route/apis/route/register.go | 22 --------- .../podnodeconstraints/admission_test.go | 4 +- pkg/security/apis/security/register.go | 20 -------- pkg/template/apis/template/register.go | 21 --------- pkg/template/controller/readiness.go | 28 +++++------ pkg/template/controller/readiness_test.go | 4 +- pkg/template/registry/template/rest_test.go | 12 ----- .../servicebroker/bind.go | 2 +- pkg/user/apis/user/register.go | 21 --------- test/integration/authorization_test.go | 46 +++++++++---------- 38 files changed, 127 insertions(+), 336 deletions(-) diff --git a/pkg/api/meta/pods.go b/pkg/api/meta/pods.go index 12262235aa9e..b07d0aa08388 100644 --- a/pkg/api/meta/pods.go +++ b/pkg/api/meta/pods.go @@ -61,14 +61,15 @@ var resourcesToCheck = map[schema.GroupResource]schema.GroupKind{ extensions.Resource("replicasets"): extensions.Kind("ReplicaSet"), apps.Resource("statefulsets"): apps.Kind("StatefulSet"), - appsapi.Resource("deploymentconfigs"): appsapi.Kind("DeploymentConfig"), - appsapi.LegacyResource("deploymentconfigs"): appsapi.LegacyKind("DeploymentConfig"), - securityapi.Resource("podsecuritypolicysubjectreviews"): securityapi.Kind("PodSecurityPolicySubjectReview"), - securityapi.LegacyResource("podsecuritypolicysubjectreviews"): securityapi.LegacyKind("PodSecurityPolicySubjectReview"), - securityapi.Resource("podsecuritypolicyselfsubjectreviews"): securityapi.Kind("PodSecurityPolicySelfSubjectReview"), - securityapi.LegacyResource("podsecuritypolicyselfsubjectreviews"): securityapi.LegacyKind("PodSecurityPolicySelfSubjectReview"), - securityapi.Resource("podsecuritypolicyreviews"): securityapi.Kind("PodSecurityPolicyReview"), - securityapi.LegacyResource("podsecuritypolicyreviews"): securityapi.LegacyKind("PodSecurityPolicyReview"), + {Group: "", Resource: "deploymentconfigs"}: {Group: "", Kind: "DeploymentConfig"}, + {Group: "", Resource: "podsecuritypolicysubjectreviews"}: {Group: "", Kind: "PodSecurityPolicySubjectReview"}, + {Group: "", Resource: "podsecuritypolicyselfsubjectreviews"}: {Group: "", Kind: "PodSecurityPolicySelfSubjectReview"}, + {Group: "", Resource: "podsecuritypolicyreviews"}: {Group: "", Kind: "PodSecurityPolicyReview"}, + + appsapi.Resource("deploymentconfigs"): appsapi.Kind("DeploymentConfig"), + securityapi.Resource("podsecuritypolicysubjectreviews"): securityapi.Kind("PodSecurityPolicySubjectReview"), + securityapi.Resource("podsecuritypolicyselfsubjectreviews"): securityapi.Kind("PodSecurityPolicySelfSubjectReview"), + securityapi.Resource("podsecuritypolicyreviews"): securityapi.Kind("PodSecurityPolicyReview"), } // HasPodSpec returns true if the resource is known to have a pod spec. diff --git a/pkg/apps/apis/apps/register.go b/pkg/apps/apis/apps/register.go index ff86f11d6012..352ea43e96ec 100644 --- a/pkg/apps/apis/apps/register.go +++ b/pkg/apps/apis/apps/register.go @@ -26,33 +26,17 @@ func Kind(kind string) schema.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() } -// LegacyKind takes an unqualified kind and returns back a Group qualified GroupKind -func LegacyKind(kind string) schema.GroupKind { - return LegacySchemeGroupVersion.WithKind(kind).GroupKind() -} - // Resource takes an unqualified resource and returns back a Group qualified GroupResource func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } -// LegacyResource takes an unqualified resource and returns back a Group qualified GroupResource +// LegacyResource takes an unqualified resource and returns back a Group qualified +// GroupResource using legacy API func LegacyResource(resource string) schema.GroupResource { return LegacySchemeGroupVersion.WithResource(resource).GroupResource() } -// IsKindOrLegacy checks if the provided GroupKind matches with the given kind by looking -// up the API group and also the legacy API. -func IsKindOrLegacy(kind string, gk schema.GroupKind) bool { - return gk == Kind(kind) || gk == LegacyKind(kind) -} - -// IsResourceOrLegacy checks if the provided GroupResources matches with the given -// resource by looking up the API group and also the legacy API. -func IsResourceOrLegacy(resource string, gr schema.GroupResource) bool { - return gr == Resource(resource) || gr == LegacyResource(resource) -} - // Adds the list of known types to api.Scheme. func addLegacyKnownTypes(scheme *runtime.Scheme) error { types := []runtime.Object{ diff --git a/pkg/authorization/apis/authorization/register.go b/pkg/authorization/apis/authorization/register.go index f5334eb283ef..0cbda643395f 100644 --- a/pkg/authorization/apis/authorization/register.go +++ b/pkg/authorization/apis/authorization/register.go @@ -42,18 +42,6 @@ func LegacyResource(resource string) schema.GroupResource { return LegacySchemeGroupVersion.WithResource(resource).GroupResource() } -// IsKindOrLegacy checks if the provided GroupKind matches with the given kind by looking -// up the API group and also the legacy API. -func IsKindOrLegacy(kind string, gk schema.GroupKind) bool { - return gk == Kind(kind) || gk == LegacyKind(kind) -} - -// IsResourceOrLegacy checks if the provided GroupResources matches with the given -// resource by looking up the API group and also the legacy API. -func IsResourceOrLegacy(resource string, gr schema.GroupResource) bool { - return gr == Resource(resource) || gr == LegacyResource(resource) -} - // Adds the list of known types to api.Scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, diff --git a/pkg/build/admission/jenkinsbootstrapper/admission.go b/pkg/build/admission/jenkinsbootstrapper/admission.go index 59d3b8fc88c7..23b50a943dce 100644 --- a/pkg/build/admission/jenkinsbootstrapper/admission.go +++ b/pkg/build/admission/jenkinsbootstrapper/admission.go @@ -63,7 +63,12 @@ func (a *jenkinsBootstrapper) Admit(attributes admission.Attributes) error { return nil } gr := attributes.GetResource().GroupResource() - if !buildapi.IsResourceOrLegacy("buildconfigs", gr) && !buildapi.IsResourceOrLegacy("builds", gr) { + switch gr { + case buildapi.Resource("buildconfigs"), + buildapi.Resource("builds"), + buildapi.LegacyResource("buildconfigs"), + buildapi.LegacyResource("builds"): + default: return nil } if !needsJenkinsTemplate(attributes.GetObject()) { diff --git a/pkg/build/admission/strategyrestrictions/admission.go b/pkg/build/admission/strategyrestrictions/admission.go index 767b26f846f6..0041b86b8c9a 100644 --- a/pkg/build/admission/strategyrestrictions/admission.go +++ b/pkg/build/admission/strategyrestrictions/admission.go @@ -49,12 +49,17 @@ func NewBuildByStrategy() admission.Interface { func (a *buildByStrategy) Admit(attr admission.Attributes) error { gr := attr.GetResource().GroupResource() - if !buildapi.IsResourceOrLegacy("buildconfigs", gr) && !buildapi.IsResourceOrLegacy("builds", gr) { - return nil - } - // Explicitly exclude the builds/details subresource because it's only - // updating commit info and cannot change build type. - if buildapi.IsResourceOrLegacy("builds", gr) && attr.GetSubresource() == "details" { + switch gr { + case buildapi.Resource("buildconfigs"), + buildapi.LegacyResource("buildconfigs"): + case buildapi.Resource("builds"), + buildapi.LegacyResource("builds"): + // Explicitly exclude the builds/details subresource because it's only + // updating commit info and cannot change build type. + if attr.GetSubresource() == "details" { + return nil + } + default: return nil } @@ -177,8 +182,9 @@ func (a *buildByStrategy) checkBuildConfigAuthorization(buildConfig *buildapi.Bu func (a *buildByStrategy) checkBuildRequestAuthorization(req *buildapi.BuildRequest, attr admission.Attributes) error { gr := attr.GetResource().GroupResource() - switch { - case buildapi.IsResourceOrLegacy("builds", gr): + switch gr { + case buildapi.Resource("builds"), + buildapi.LegacyResource("builds"): build, err := a.buildClient.Build().Builds(attr.GetNamespace()).Get(req.Name, metav1.GetOptions{}) if err != nil { return admission.NewForbidden(attr, err) @@ -188,7 +194,9 @@ func (a *buildByStrategy) checkBuildRequestAuthorization(req *buildapi.BuildRequ return admission.NewForbidden(attr, err) } return a.checkBuildAuthorization(internalBuild, attr) - case buildapi.IsResourceOrLegacy("buildconfigs", gr): + + case buildapi.Resource("buildconfigs"), + buildapi.LegacyResource("buildconfigs"): buildConfig, err := a.buildClient.Build().BuildConfigs(attr.GetNamespace()).Get(req.Name, metav1.GetOptions{}) if err != nil { return admission.NewForbidden(attr, err) diff --git a/pkg/build/apis/build/register.go b/pkg/build/apis/build/register.go index 506e3e8e7d54..e7cbb375a05f 100644 --- a/pkg/build/apis/build/register.go +++ b/pkg/build/apis/build/register.go @@ -27,33 +27,15 @@ func Kind(kind string) schema.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() } -// LegacyKind takes an unqualified kind and returns back a Group qualified GroupKind -func LegacyKind(kind string) schema.GroupKind { - return LegacySchemeGroupVersion.WithKind(kind).GroupKind() -} - // Resource takes an unqualified resource and returns back a Group qualified GroupResource func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } -// LegacyResource takes an unqualified resource and returns back a Group qualified GroupResource func LegacyResource(resource string) schema.GroupResource { return LegacySchemeGroupVersion.WithResource(resource).GroupResource() } -// IsKindOrLegacy checks if the provided GroupKind matches with the given kind by looking -// up the API group and also the legacy API. -func IsKindOrLegacy(kind string, gk schema.GroupKind) bool { - return gk == Kind(kind) || gk == LegacyKind(kind) -} - -// IsResourceOrLegacy checks if the provided GroupResources matches with the given -// resource by looking up the API group and also the legacy API. -func IsResourceOrLegacy(resource string, gr schema.GroupResource) bool { - return gr == Resource(resource) || gr == LegacyResource(resource) -} - // addKnownTypes adds types to API group func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, diff --git a/pkg/build/registry/buildconfig/webhook.go b/pkg/build/registry/buildconfig/webhook.go index 002a46ae70b0..deb2650a3030 100644 --- a/pkg/build/registry/buildconfig/webhook.go +++ b/pkg/build/registry/buildconfig/webhook.go @@ -110,7 +110,7 @@ func (w *WebHookHandler) ProcessWebHook(writer http.ResponseWriter, req *http.Re plugin, ok := w.plugins[hookType] if !ok { - return errors.NewNotFound(buildapi.LegacyResource("buildconfighook"), hookType) + return errors.NewNotFound(buildapi.Resource("buildconfighook"), hookType) } config, err := w.buildConfigClient.BuildConfigs(apirequest.NamespaceValue(ctx)).Get(name, metav1.GetOptions{}) diff --git a/pkg/build/registry/buildconfig/webhook_test.go b/pkg/build/registry/buildconfig/webhook_test.go index 420352a96a50..c895d11583ac 100644 --- a/pkg/build/registry/buildconfig/webhook_test.go +++ b/pkg/build/registry/buildconfig/webhook_test.go @@ -404,7 +404,7 @@ func TestInvokeWebhookMissingPlugin(t *testing.T) { t.Errorf("Unexpected error: %v", err) } if !responder.called || - !strings.Contains(responder.err.Error(), `buildconfighook "missingplugin" not found`) { + !strings.Contains(responder.err.Error(), `buildconfighook.build.openshift.io "missingplugin" not found`) { t.Errorf("Expected BadRequest, got %s, expected error %s!", responder.err.Error(), `buildconfighook.build.openshift.io "missingplugin" not found`) } } diff --git a/pkg/image/admission/admission.go b/pkg/image/admission/admission.go index 256b489ab845..f0a362a374a8 100644 --- a/pkg/image/admission/admission.go +++ b/pkg/image/admission/admission.go @@ -106,7 +106,7 @@ func (a *imageLimitRangerPlugin) SupportsAttributes(attr admission.Attributes) b return false } gk := attr.GetKind().GroupKind() - return imageapi.IsKindOrLegacy("ImageStreamMapping", gk) + return imageapi.Kind("ImageStreamMapping") == gk || imageapi.LegacyKind("ImageStreamMapping") == gk } // SupportsLimit provides a check to see if the limitRange is applicable to image objects. diff --git a/pkg/image/apis/image/register.go b/pkg/image/apis/image/register.go index 3912d805eb58..3f7820dfb7b1 100644 --- a/pkg/image/apis/image/register.go +++ b/pkg/image/apis/image/register.go @@ -40,18 +40,6 @@ func LegacyResource(resource string) schema.GroupResource { return LegacySchemeGroupVersion.WithResource(resource).GroupResource() } -// IsKindOrLegacy checks if the provided GroupKind matches with the given kind by looking -// up the API group and also the legacy API. -func IsKindOrLegacy(kind string, gk schema.GroupKind) bool { - return gk == Kind(kind) || gk == LegacyKind(kind) -} - -// IsResourceOrLegacy checks if the provided GroupResources matches with the given -// resource by looking up the API group and also the legacy API. -func IsResourceOrLegacy(resource string, gr schema.GroupResource) bool { - return gr == Resource(resource) || gr == LegacyResource(resource) -} - // Adds the list of known types to api.Scheme. func addLegacyKnownTypes(scheme *runtime.Scheme) error { types := []runtime.Object{ diff --git a/pkg/network/apis/network/register.go b/pkg/network/apis/network/register.go index 3e57e29d0612..faf2bf1e4adf 100644 --- a/pkg/network/apis/network/register.go +++ b/pkg/network/apis/network/register.go @@ -27,33 +27,11 @@ func Kind(kind string) schema.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() } -// LegacyKind takes an unqualified kind and returns back a Group qualified GroupKind -func LegacyKind(kind string) schema.GroupKind { - return LegacySchemeGroupVersion.WithKind(kind).GroupKind() -} - // Resource takes an unqualified resource and returns back a Group qualified GroupResource func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } -// LegacyResource takes an unqualified resource and returns back a Group qualified GroupResource -func LegacyResource(resource string) schema.GroupResource { - return LegacySchemeGroupVersion.WithResource(resource).GroupResource() -} - -// IsKindOrLegacy checks if the provided GroupKind matches with the given kind by looking -// up the API group and also the legacy API. -func IsKindOrLegacy(kind string, gk schema.GroupKind) bool { - return gk == Kind(kind) || gk == LegacyKind(kind) -} - -// IsResourceOrLegacy checks if the provided GroupResources matches with the given -// resource by looking up the API group and also the legacy API. -func IsResourceOrLegacy(resource string, gr schema.GroupResource) bool { - return gr == Resource(resource) || gr == LegacyResource(resource) -} - // Adds the list of known types to api.Scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, diff --git a/pkg/oauth/apis/oauth/register.go b/pkg/oauth/apis/oauth/register.go index 560d7dd0bb9a..94f9d4fc7f9b 100644 --- a/pkg/oauth/apis/oauth/register.go +++ b/pkg/oauth/apis/oauth/register.go @@ -27,33 +27,11 @@ func Kind(kind string) schema.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() } -// LegacyKind takes an unqualified kind and returns back a Group qualified GroupKind -func LegacyKind(kind string) schema.GroupKind { - return LegacySchemeGroupVersion.WithKind(kind).GroupKind() -} - // Resource takes an unqualified resource and returns back a Group qualified GroupResource func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } -// Resource takes an unqualified resource and returns back a Group qualified GroupResource -func LegacyResource(resource string) schema.GroupResource { - return LegacySchemeGroupVersion.WithResource(resource).GroupResource() -} - -// IsKindOrLegacy checks if the provided GroupKind matches with the given kind by looking -// up the API group and also the legacy API. -func IsKindOrLegacy(kind string, gk schema.GroupKind) bool { - return gk == Kind(kind) || gk == LegacyKind(kind) -} - -// IsResourceOrLegacy checks if the provided GroupResources matches with the given -// resource by looking up the API group and also the legacy API. -func IsResourceOrLegacy(resource string, gr schema.GroupResource) bool { - return gr == Resource(resource) || gr == LegacyResource(resource) -} - // Adds the list of known types to api.Scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, diff --git a/pkg/oc/admin/policy/reconcile_clusterroles.go b/pkg/oc/admin/policy/reconcile_clusterroles.go index ea0d850a3812..cd10841dac3f 100644 --- a/pkg/oc/admin/policy/reconcile_clusterroles.go +++ b/pkg/oc/admin/policy/reconcile_clusterroles.go @@ -133,7 +133,7 @@ func (o *ReconcileClusterRolesOptions) Complete(cmd *cobra.Command, f *clientcmd if err != nil { return err } - if !authorizationapi.IsResourceOrLegacy("clusterroles", resource) { + if authorizationapi.Resource("clusterroles") != resource { return fmt.Errorf("%v is not a valid resource type for this command", resource) } if len(name) == 0 { diff --git a/pkg/oc/cli/cmd/cancelbuild.go b/pkg/oc/cli/cmd/cancelbuild.go index cdb0b92c8e60..8a1643cc04aa 100644 --- a/pkg/oc/cli/cmd/cancelbuild.go +++ b/pkg/oc/cli/cmd/cancelbuild.go @@ -154,8 +154,8 @@ func (o *CancelBuildOptions) Complete(f *clientcmd.Factory, cmd *cobra.Command, return err } - switch { - case buildapi.IsResourceOrLegacy("buildconfigs", resource): + switch resource { + case buildapi.Resource("buildconfigs"): list, err := buildutil.BuildConfigBuilds(o.BuildLister, o.Namespace, name, nil) if err != nil { return err @@ -163,7 +163,7 @@ func (o *CancelBuildOptions) Complete(f *clientcmd.Factory, cmd *cobra.Command, for _, b := range list { o.BuildNames = append(o.BuildNames, b.Name) } - case buildapi.IsResourceOrLegacy("builds", resource): + case buildapi.Resource("builds"): o.BuildNames = append(o.BuildNames, strings.TrimSpace(name)) default: return fmt.Errorf("invalid resource provided: %v", resource) diff --git a/pkg/oc/cli/cmd/logs.go b/pkg/oc/cli/cmd/logs.go index dab0b26f8093..7ddd0f52bc52 100644 --- a/pkg/oc/cli/cmd/logs.go +++ b/pkg/oc/cli/cmd/logs.go @@ -156,7 +156,10 @@ func (o *OpenShiftLogsOptions) Complete(f *clientcmd.Factory, cmd *cobra.Command gr := resource.GroupResource() // TODO: podLogOptions should be included in our own logOptions objects. switch { - case buildapi.IsResourceOrLegacy("build", gr), buildapi.IsResourceOrLegacy("buildconfig", gr): + case buildapi.Resource("build") == gr, + buildapi.Resource("builds") == gr, + buildapi.Resource("buildconfig") == gr, + buildapi.Resource("buildconfigs") == gr: bopts := &buildapi.BuildLogOptions{ Follow: podLogOptions.Follow, Previous: podLogOptions.Previous, @@ -171,7 +174,8 @@ func (o *OpenShiftLogsOptions) Complete(f *clientcmd.Factory, cmd *cobra.Command } o.Options = bopts - case appsapi.IsResourceOrLegacy("deploymentconfig", gr): + case appsapi.Resource("deploymentconfig") == gr, + appsapi.Resource("deploymentconfigs") == gr: dopts := &appsapi.DeploymentLogOptions{ Container: podLogOptions.Container, Follow: podLogOptions.Follow, diff --git a/pkg/oc/cli/cmd/newapp.go b/pkg/oc/cli/cmd/newapp.go index 508c7629d93e..c72257dba1ef 100644 --- a/pkg/oc/cli/cmd/newapp.go +++ b/pkg/oc/cli/cmd/newapp.go @@ -715,7 +715,7 @@ func retryBuildConfig(info *resource.Info, err error) runtime.Object { buildapi.GitLabWebHookBuildTriggerType: {}, buildapi.BitbucketWebHookBuildTriggerType: {}, } - if buildapi.IsKindOrLegacy("BuildConfig", info.Mapping.GroupVersionKind.GroupKind()) && isInvalidTriggerError(err) { + if buildapi.Kind("BuildConfig") == info.Mapping.GroupVersionKind.GroupKind() && isInvalidTriggerError(err) { bc, ok := info.Object.(*buildapi.BuildConfig) if !ok { return nil diff --git a/pkg/oc/cli/cmd/startbuild.go b/pkg/oc/cli/cmd/startbuild.go index 6b8d8ddb3cfa..55233aca9719 100644 --- a/pkg/oc/cli/cmd/startbuild.go +++ b/pkg/oc/cli/cmd/startbuild.go @@ -256,10 +256,10 @@ func (o *StartBuildOptions) Complete(f *clientcmd.Factory, cmd *cobra.Command, c if err != nil { return err } - switch { - case buildapi.IsResourceOrLegacy("buildconfigs", resource): + switch resource { + case buildapi.Resource("buildconfigs"): // no special handling required - case buildapi.IsResourceOrLegacy("builds", resource): + case buildapi.Resource("builds"): if len(o.ListWebhooks) == 0 { return fmt.Errorf("use --from-build to rerun your builds") } @@ -269,7 +269,7 @@ func (o *StartBuildOptions) Complete(f *clientcmd.Factory, cmd *cobra.Command, c } // when listing webhooks, allow --from-build to lookup a build config - if buildapi.IsResourceOrLegacy("builds", resource) && len(o.ListWebhooks) > 0 { + if buildapi.Resource("builds") == resource && len(o.ListWebhooks) > 0 { build, err := o.BuildClient.Builds(namespace).Get(name, metav1.GetOptions{}) if err != nil { return err diff --git a/pkg/oc/cli/describe/deployments.go b/pkg/oc/cli/describe/deployments.go index 7510ccf76b69..326e81d420c5 100644 --- a/pkg/oc/cli/describe/deployments.go +++ b/pkg/oc/cli/describe/deployments.go @@ -293,7 +293,13 @@ func printDeploymentConfigSpec(kc kclientset.Interface, dc appsapi.DeploymentCon // Autoscaling info // FIXME: The CrossVersionObjectReference should specify the Group - printAutoscalingInfo([]schema.GroupResource{appsapi.Resource("DeploymentConfig"), appsapi.LegacyResource("DeploymentConfig")}, dc.Namespace, dc.Name, kc, w) + printAutoscalingInfo( + []schema.GroupResource{ + appsapi.Resource("DeploymentConfig"), + // this needs to remain as long as HPA supports putting in the "wrong" DC scheme + appsapi.LegacyResource("DeploymentConfig"), + }, + dc.Namespace, dc.Name, kc, w) // Triggers printTriggers(spec.Triggers, w) diff --git a/pkg/oc/cli/util/clientcmd/factory.go b/pkg/oc/cli/util/clientcmd/factory.go index 1016ad9fb3d2..4fc5d629008e 100644 --- a/pkg/oc/cli/util/clientcmd/factory.go +++ b/pkg/oc/cli/util/clientcmd/factory.go @@ -341,7 +341,7 @@ func (f *Factory) PodForResource(resource string, timeout time.Duration) (string return "", err } return pod.Name, nil - case appsapi.Resource("deploymentconfigs"), appsapi.LegacyResource("deploymentconfigs"): + case appsapi.Resource("deploymentconfigs"): appsClient, err := appsclientinternal.NewForConfig(clientConfig) if err != nil { return "", err diff --git a/pkg/oc/cli/util/clientcmd/factory_builder.go b/pkg/oc/cli/util/clientcmd/factory_builder.go index 6063be4c6bdb..757e438d78ac 100644 --- a/pkg/oc/cli/util/clientcmd/factory_builder.go +++ b/pkg/oc/cli/util/clientcmd/factory_builder.go @@ -64,20 +64,20 @@ func (f *ring2Factory) Reaper(mapping *meta.RESTMapping) (kubectl.Reaper, error) } gk := mapping.GroupVersionKind.GroupKind() - switch { - case authorizationapi.IsKindOrLegacy("Role", gk): + switch gk { + case authorizationapi.Kind("Role"): kubeClient, err := f.clientAccessFactory.KubernetesClientSet() if err != nil { return nil, err } return authprune.NewRoleReaper(kubeClient.RbacV1(), kubeClient.RbacV1()), nil - case authorizationapi.IsKindOrLegacy("ClusterRole", gk): + case authorizationapi.Kind("ClusterRole"): kubeClient, err := f.clientAccessFactory.KubernetesClientSet() if err != nil { return nil, err } return authprune.NewClusterRoleReaper(kubeClient.RbacV1(), kubeClient.RbacV1(), kubeClient.RbacV1()), nil - case userapi.IsKindOrLegacy("User", gk): + case userapi.Kind("User"): userClient, err := userclientinternal.NewForConfig(clientConfig) if err != nil { return nil, err @@ -100,7 +100,7 @@ func (f *ring2Factory) Reaper(mapping *meta.RESTMapping) (kubectl.Reaper, error) oauthClient, securityClient.Security().SecurityContextConstraints(), ), nil - case userapi.IsKindOrLegacy("Group", gk): + case userapi.Kind("Group"): userClient, err := userclientinternal.NewForConfig(clientConfig) if err != nil { return nil, err diff --git a/pkg/oc/cli/util/clientcmd/factory_client_access.go b/pkg/oc/cli/util/clientcmd/factory_client_access.go index 1309b2c5c4a8..288b31b9574a 100644 --- a/pkg/oc/cli/util/clientcmd/factory_client_access.go +++ b/pkg/oc/cli/util/clientcmd/factory_client_access.go @@ -256,14 +256,14 @@ func (f *ring0Factory) Generators(cmdName string) map[string]kubectl.Generator { } func (f *ring0Factory) CanBeExposed(kind schema.GroupKind) error { - if appsapi.IsKindOrLegacy("DeploymentConfig", kind) { + if appsapi.Kind("DeploymentConfig") == kind { return nil } return f.kubeClientAccessFactory.CanBeExposed(kind) } func (f *ring0Factory) CanBeAutoscaled(kind schema.GroupKind) error { - if appsapi.IsKindOrLegacy("DeploymentConfig", kind) { + if appsapi.Kind("DeploymentConfig") == kind { return nil } return f.kubeClientAccessFactory.CanBeAutoscaled(kind) diff --git a/pkg/oc/cli/util/clientcmd/factory_object_mapping.go b/pkg/oc/cli/util/clientcmd/factory_object_mapping.go index 9990c4158fc1..8e1ce514aaa7 100644 --- a/pkg/oc/cli/util/clientcmd/factory_object_mapping.go +++ b/pkg/oc/cli/util/clientcmd/factory_object_mapping.go @@ -151,7 +151,7 @@ func (f *ring1Factory) LogsForObject(object, options runtime.Object, timeout tim } func (f *ring1Factory) HistoryViewer(mapping *meta.RESTMapping) (kubectl.HistoryViewer, error) { - if appsapi.IsKindOrLegacy("DeploymentConfig", mapping.GroupVersionKind.GroupKind()) { + if appsapi.Kind("DeploymentConfig") == mapping.GroupVersionKind.GroupKind() { kc, err := f.clientAccessFactory.ClientSet() if err != nil { return nil, err @@ -162,7 +162,7 @@ func (f *ring1Factory) HistoryViewer(mapping *meta.RESTMapping) (kubectl.History } func (f *ring1Factory) Rollbacker(mapping *meta.RESTMapping) (kubectl.Rollbacker, error) { - if appsapi.IsKindOrLegacy("DeploymentConfig", mapping.GroupVersionKind.GroupKind()) { + if appsapi.Kind("DeploymentConfig") == mapping.GroupVersionKind.GroupKind() { config, err := f.clientAccessFactory.ClientConfig() if err != nil { return nil, err @@ -177,7 +177,7 @@ func (f *ring1Factory) StatusViewer(mapping *meta.RESTMapping) (kubectl.StatusVi if err != nil { return nil, err } - if appsapi.IsKindOrLegacy("DeploymentConfig", mapping.GroupVersionKind.GroupKind()) { + if appsapi.Kind("DeploymentConfig") == mapping.GroupVersionKind.GroupKind() { return deploymentcmd.NewDeploymentConfigStatusViewer(appsclient.NewForConfigOrDie(config)), nil } return f.kubeObjectMappingFactory.StatusViewer(mapping) diff --git a/pkg/oc/experimental/buildchain/buildchain.go b/pkg/oc/experimental/buildchain/buildchain.go index 6cefb1f661b7..5bbf1b794b16 100644 --- a/pkg/oc/experimental/buildchain/buildchain.go +++ b/pkg/oc/experimental/buildchain/buildchain.go @@ -122,8 +122,8 @@ func (o *BuildChainOptions) Complete(f *clientcmd.Factory, cmd *cobra.Command, a return err } - switch { - case imageapi.IsResourceOrLegacy("imagestreamtags", resource): + switch resource { + case imageapi.Resource("imagestreamtags"): o.name = imageapi.NormalizeImageStreamTag(o.name) glog.V(4).Infof("Using %q as the image stream tag to look dependencies for", o.name) default: diff --git a/pkg/oc/generate/app/pipeline.go b/pkg/oc/generate/app/pipeline.go index 03238d4867d1..e7460c7555fb 100644 --- a/pkg/oc/generate/app/pipeline.go +++ b/pkg/oc/generate/app/pipeline.go @@ -486,7 +486,7 @@ func (a *acceptNonExistentImageStream) Accept(from interface{}) bool { return false } gk := gvk[0].GroupKind() - if !imageapi.IsKindOrLegacy("ImageStream", gk) { + if !(imageapi.Kind("ImageStream") == gk || imageapi.LegacyKind("ImageStream") == gk) { return true } is, ok := from.(*imageapi.ImageStream) @@ -531,7 +531,7 @@ func (a *acceptNonExistentImageStreamTag) Accept(from interface{}) bool { return false } gk := gvk[0].GroupKind() - if !imageapi.IsKindOrLegacy("ImageStreamTag", gk) { + if !(imageapi.Kind("ImageStreamTag") == gk || imageapi.LegacyKind("ImageStreamTag") == gk) { return true } ist, ok := from.(*imageapi.ImageStreamTag) @@ -585,7 +585,7 @@ func (a *acceptBuildConfigs) Accept(from interface{}) bool { return false } gk := gvk[0].GroupKind() - return buildapi.IsKindOrLegacy("BuildConfig", gk) || imageapi.IsKindOrLegacy("ImageStream", gk) + return buildapi.Kind("BuildConfig") == gk || imageapi.Kind("ImageStream") == gk } // NewAcceptBuildConfigs creates an acceptor accepting BuildConfig objects diff --git a/pkg/oc/graph/kubegraph/edges.go b/pkg/oc/graph/kubegraph/edges.go index c98b6d8aec81..4633330502b8 100644 --- a/pkg/oc/graph/kubegraph/edges.go +++ b/pkg/oc/graph/kubegraph/edges.go @@ -253,14 +253,16 @@ func AddHPAScaleRefEdges(g osgraph.Graph) { var syntheticNode graph.Node r := groupVersionResource.GroupResource() - switch { - case r == kapi.Resource("replicationcontrollers"): + switch r { + case kapi.Resource("replicationcontrollers"): syntheticNode = kubegraph.FindOrCreateSyntheticReplicationControllerNode(g, &kapi.ReplicationController{ObjectMeta: syntheticMeta}) - case appsapi.IsResourceOrLegacy("deploymentconfigs", r): + case appsapi.Resource("deploymentconfigs"), + // we need the legacy resource until we stop supporting HPA having old refs + appsapi.LegacyResource("deploymentconfigs"): syntheticNode = appsgraph.FindOrCreateSyntheticDeploymentConfigNode(g, &appsapi.DeploymentConfig{ObjectMeta: syntheticMeta}) - case r == extensions.Resource("deployments"): + case extensions.Resource("deployments"): syntheticNode = kubegraph.FindOrCreateSyntheticDeploymentNode(g, &extensions.Deployment{ObjectMeta: syntheticMeta}) - case r == extensions.Resource("replicasets"): + case extensions.Resource("replicasets"): syntheticNode = kubegraph.FindOrCreateSyntheticReplicaSetNode(g, &extensions.ReplicaSet{ObjectMeta: syntheticMeta}) default: continue diff --git a/pkg/project/admission/requestlimit/admission.go b/pkg/project/admission/requestlimit/admission.go index e6b730fe574a..c6324b68633f 100644 --- a/pkg/project/admission/requestlimit/admission.go +++ b/pkg/project/admission/requestlimit/admission.go @@ -77,7 +77,9 @@ func (o *projectRequestLimit) Admit(a admission.Attributes) (err error) { if o.config == nil { return nil } - if !projectapi.IsResourceOrLegacy("projectrequests", a.GetResource().GroupResource()) { + switch a.GetResource().GroupResource() { + case projectapi.Resource("projectrequests"), projectapi.LegacyResource("projectrequests"): + default: return nil } if _, isProjectRequest := a.GetObject().(*projectapi.ProjectRequest); !isProjectRequest { diff --git a/pkg/project/apis/project/register.go b/pkg/project/apis/project/register.go index f1be2dc48527..8e4837927b08 100644 --- a/pkg/project/apis/project/register.go +++ b/pkg/project/apis/project/register.go @@ -27,11 +27,6 @@ func Kind(kind string) schema.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() } -// LegacyKind takes an unqualified kind and returns back a Group qualified GroupKind -func LegacyKind(kind string) schema.GroupKind { - return LegacySchemeGroupVersion.WithKind(kind).GroupKind() -} - // Resource takes an unqualified resource and returns back a Group qualified GroupResource func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() @@ -41,18 +36,6 @@ func LegacyResource(resource string) schema.GroupResource { return LegacySchemeGroupVersion.WithResource(resource).GroupResource() } -// IsKindOrLegacy checks if the provided GroupKind matches with the given kind by looking -// up the API group and also the legacy API. -func IsKindOrLegacy(kind string, gk schema.GroupKind) bool { - return gk == Kind(kind) || gk == LegacyKind(kind) -} - -// IsResourceOrLegacy checks if the provided GroupResources matches with the given -// resource by looking up the API group and also the legacy API. -func IsResourceOrLegacy(resource string, gr schema.GroupResource) bool { - return gr == Resource(resource) || gr == LegacyResource(resource) -} - // Adds the list of known types to api.Scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, diff --git a/pkg/quota/apis/quota/register.go b/pkg/quota/apis/quota/register.go index 190f06181ca6..9926e016ad19 100644 --- a/pkg/quota/apis/quota/register.go +++ b/pkg/quota/apis/quota/register.go @@ -27,33 +27,11 @@ func Kind(kind string) schema.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() } -// LegacyKind takes an unqualified kind and returns back a Group qualified GroupKind -func LegacyKind(kind string) schema.GroupKind { - return LegacySchemeGroupVersion.WithKind(kind).GroupKind() -} - // Resource takes an unqualified resource and returns back a Group qualified GroupResource func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } -// LegacyResource takes an unqualified resource and returns back a Group qualified GroupResource -func LegacyResource(resource string) schema.GroupResource { - return LegacySchemeGroupVersion.WithResource(resource).GroupResource() -} - -// IsKindOrLegacy checks if the provided GroupKind matches with the given kind by looking -// up the API group and also the legacy API. -func IsKindOrLegacy(kind string, gk schema.GroupKind) bool { - return gk == Kind(kind) || gk == LegacyKind(kind) -} - -// IsResourceOrLegacy checks if the provided GroupResources matches with the given -// resource by looking up the API group and also the legacy API. -func IsResourceOrLegacy(resource string, gr schema.GroupResource) bool { - return gr == Resource(resource) || gr == LegacyResource(resource) -} - // Adds the list of known types to api.Scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, diff --git a/pkg/route/apis/route/register.go b/pkg/route/apis/route/register.go index 6ff2d74fc106..3c764dbb6546 100644 --- a/pkg/route/apis/route/register.go +++ b/pkg/route/apis/route/register.go @@ -27,33 +27,11 @@ func Kind(kind string) schema.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() } -// LegacyKind takes an unqualified kind and returns back a Group qualified GroupKind -func LegacyKind(kind string) schema.GroupKind { - return LegacySchemeGroupVersion.WithKind(kind).GroupKind() -} - // Resource takes an unqualified resource and returns back a Group qualified GroupResource func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } -// LegacyResource takes an unqualified resource and returns back a Group qualified GroupResource -func LegacyResource(resource string) schema.GroupResource { - return LegacySchemeGroupVersion.WithResource(resource).GroupResource() -} - -// IsKindOrLegacy checks if the provided GroupKind matches with the given kind by looking -// up the API group and also the legacy API. -func IsKindOrLegacy(kind string, gk schema.GroupKind) bool { - return gk == Kind(kind) || gk == LegacyKind(kind) -} - -// IsResourceOrLegacy checks if the provided GroupResources matches with the given -// resource by looking up the API group and also the legacy API. -func IsResourceOrLegacy(resource string, gr schema.GroupResource) bool { - return gr == Resource(resource) || gr == LegacyResource(resource) -} - // Adds the list of known types to api.Scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, diff --git a/pkg/scheduler/admission/podnodeconstraints/admission_test.go b/pkg/scheduler/admission/podnodeconstraints/admission_test.go index a40f06397d15..41f079f90756 100644 --- a/pkg/scheduler/admission/podnodeconstraints/admission_test.go +++ b/pkg/scheduler/admission/podnodeconstraints/admission_test.go @@ -202,8 +202,8 @@ func TestPodNodeConstraintsResources(t *testing.T) { }, { resource: podTemplate, - kind: appsapi.LegacyKind("PodTemplate"), - groupresource: appsapi.LegacyResource("podtemplates"), + kind: kapi.Kind("PodTemplate"), + groupresource: kapi.Resource("podtemplates"), prefix: "PodTemplate", }, { diff --git a/pkg/security/apis/security/register.go b/pkg/security/apis/security/register.go index f6230bbd8ed5..f017cb2bda28 100644 --- a/pkg/security/apis/security/register.go +++ b/pkg/security/apis/security/register.go @@ -27,31 +27,11 @@ func Kind(kind string) schema.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() } -func LegacyKind(kind string) schema.GroupKind { - return LegacySchemeGroupVersion.WithKind(kind).GroupKind() -} - // Resource takes an unqualified resource and returns back a Group qualified GroupResource func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } -func LegacyResource(resource string) schema.GroupResource { - return LegacySchemeGroupVersion.WithResource(resource).GroupResource() -} - -// IsKindOrLegacy checks if the provided GroupKind matches with the given kind by looking -// up the API group and also the legacy API. -func IsKindOrLegacy(kind string, gk schema.GroupKind) bool { - return gk == Kind(kind) || gk == LegacyKind(kind) -} - -// IsResourceOrLegacy checks if the provided GroupResources matches with the given -// resource by looking up the API group and also the legacy API. -func IsResourceOrLegacy(resource string, gr schema.GroupResource) bool { - return gr == Resource(resource) || gr == LegacyResource(resource) -} - // Adds the list of known types to api.Scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, diff --git a/pkg/template/apis/template/register.go b/pkg/template/apis/template/register.go index 60e79f8c749f..5e834d70ad2f 100644 --- a/pkg/template/apis/template/register.go +++ b/pkg/template/apis/template/register.go @@ -28,32 +28,11 @@ func Kind(kind string) schema.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() } -// LegacyKind takes an unqualified kind and returns back a Group qualified GroupKind -func LegacyKind(kind string) schema.GroupKind { - return LegacySchemeGroupVersion.WithKind(kind).GroupKind() -} - // Resource takes an unqualified resource and returns back a Group qualified GroupResource func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } -func LegacyResource(resource string) schema.GroupResource { - return LegacySchemeGroupVersion.WithResource(resource).GroupResource() -} - -// IsKindOrLegacy checks if the provided GroupKind matches with the given kind by looking -// up the API group and also the legacy API. -func IsKindOrLegacy(kind string, gk schema.GroupKind) bool { - return gk == Kind(kind) || gk == LegacyKind(kind) -} - -// IsResourceOrLegacy checks if the provided GroupResources matches with the given -// resource by looking up the API group and also the legacy API. -func IsResourceOrLegacy(resource string, gr schema.GroupResource) bool { - return gr == Resource(resource) || gr == LegacyResource(resource) -} - // Adds the list of known types to api.Scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, diff --git a/pkg/template/controller/readiness.go b/pkg/template/controller/readiness.go index d45bc307a632..99ea26010f46 100644 --- a/pkg/template/controller/readiness.go +++ b/pkg/template/controller/readiness.go @@ -146,22 +146,22 @@ func checkRouteReadiness(obj runtime.Object) (bool, bool, error) { // readinessCheckers maps GroupKinds to the appropriate function. Note that in // some cases more than one GK maps to the same function. var readinessCheckers = map[schema.GroupKind]func(runtime.Object) (bool, bool, error){ - buildapi.LegacyKind("Build"): checkBuildReadiness, - buildapi.Kind("Build"): checkBuildReadiness, - apps.Kind("Deployment"): checkDeploymentReadiness, - extensions.Kind("Deployment"): checkDeploymentReadiness, - appsapi.LegacyKind("DeploymentConfig"): checkDeploymentConfigReadiness, - appsapi.Kind("DeploymentConfig"): checkDeploymentConfigReadiness, - batch.Kind("Job"): checkJobReadiness, - apps.Kind("StatefulSet"): checkStatefulSetReadiness, - routeapi.Kind("Route"): checkRouteReadiness, - routeapi.LegacyKind("Route"): checkRouteReadiness, + buildapi.Kind("Build"): checkBuildReadiness, + apps.Kind("Deployment"): checkDeploymentReadiness, + extensions.Kind("Deployment"): checkDeploymentReadiness, + appsapi.Kind("DeploymentConfig"): checkDeploymentConfigReadiness, + batch.Kind("Job"): checkJobReadiness, + apps.Kind("StatefulSet"): checkStatefulSetReadiness, + routeapi.Kind("Route"): checkRouteReadiness, + {Group: "", Kind: "Build"}: checkBuildReadiness, + {Group: "", Kind: "DeploymentConfig"}: checkDeploymentConfigReadiness, + {Group: "", Kind: "Route"}: checkRouteReadiness, } // CanCheckReadiness indicates whether a readiness check exists for a GK. func CanCheckReadiness(ref kapi.ObjectReference) bool { - if ref.GroupVersionKind().GroupKind() == buildapi.LegacyKind("BuildConfig") || - ref.GroupVersionKind().GroupKind() == buildapi.Kind("BuildConfig") { + switch ref.GroupVersionKind().GroupKind() { + case buildapi.Kind("BuildConfig"), schema.GroupKind{Group: "", Kind: "BuildConfig"}: return true } _, found := readinessCheckers[ref.GroupVersionKind().GroupKind()] @@ -172,8 +172,8 @@ func CanCheckReadiness(ref kapi.ObjectReference) bool { // "oc client.Interface" and error once BuildConfigs can report on the status of // their latest build. func CheckReadiness(oc buildclient.Interface, ref kapi.ObjectReference, obj runtime.Object) (bool, bool, error) { - if ref.GroupVersionKind().GroupKind() == buildapi.LegacyKind("BuildConfig") || - ref.GroupVersionKind().GroupKind() == buildapi.Kind("BuildConfig") { + switch ref.GroupVersionKind().GroupKind() { + case buildapi.Kind("BuildConfig"), schema.GroupKind{Group: "", Kind: "BuildConfig"}: return checkBuildConfigReadiness(oc, obj) } return readinessCheckers[ref.GroupVersionKind().GroupKind()](obj) diff --git a/pkg/template/controller/readiness_test.go b/pkg/template/controller/readiness_test.go index 95679d55ee98..94737197e443 100644 --- a/pkg/template/controller/readiness_test.go +++ b/pkg/template/controller/readiness_test.go @@ -250,7 +250,7 @@ func TestCheckReadiness(t *testing.T) { expectedReady: true, }, { - groupKind: routeapi.LegacyKind("Route"), + groupKind: schema.GroupKind{Group: "", Kind: "Route"}, object: &routeapi.Route{ Spec: routeapi.RouteSpec{ Host: "", @@ -259,7 +259,7 @@ func TestCheckReadiness(t *testing.T) { expectedReady: false, }, { - groupKind: routeapi.LegacyKind("Route"), + groupKind: schema.GroupKind{Group: "", Kind: "Route"}, object: &routeapi.Route{ Spec: routeapi.RouteSpec{ Host: "app.example.com", diff --git a/pkg/template/registry/template/rest_test.go b/pkg/template/registry/template/rest_test.go index 25901cef85fa..2b01cde90113 100644 --- a/pkg/template/registry/template/rest_test.go +++ b/pkg/template/registry/template/rest_test.go @@ -17,18 +17,6 @@ import ( _ "k8s.io/kubernetes/pkg/apis/core/install" ) -func TestNewRESTInvalidType(t *testing.T) { - storage := NewREST() - _, err := storage.Create(nil, &kapi.Pod{}, rest.ValidateAllObjectFunc, false) - if err == nil { - t.Errorf("Expected type error.") - } - - if _, err := legacyscheme.Registry.RESTMapper().KindFor(template.LegacyResource("processedtemplates").WithVersion("")); err != nil { - t.Errorf("no processed templates: %v", err) - } -} - func TestNewRESTDefaultsName(t *testing.T) { storage := NewREST() obj, err := storage.Create(nil, &template.Template{ diff --git a/pkg/templateservicebroker/servicebroker/bind.go b/pkg/templateservicebroker/servicebroker/bind.go index e54ff7615070..d49897726357 100644 --- a/pkg/templateservicebroker/servicebroker/bind.go +++ b/pkg/templateservicebroker/servicebroker/bind.go @@ -191,7 +191,7 @@ func (b *Broker) Bind(u user.Info, instanceID, bindingID string, breq *api.BindR kapi.Kind("Secret"), kapi.Kind("Service"), routeapi.Kind("Route"), - routeapi.LegacyKind("Route"): + schema.GroupKind{Group: "", Kind: "Route"}: default: continue } diff --git a/pkg/user/apis/user/register.go b/pkg/user/apis/user/register.go index 695d81506a28..b92bfcfc5263 100644 --- a/pkg/user/apis/user/register.go +++ b/pkg/user/apis/user/register.go @@ -27,32 +27,11 @@ func Kind(kind string) schema.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() } -func LegacyKind(kind string) schema.GroupKind { - return LegacySchemeGroupVersion.WithKind(kind).GroupKind() -} - // Resource takes an unqualified resource and returns back a Group qualified GroupResource func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } -// Resource takes an unqualified resource and returns back a Group qualified GroupResource -func LegacyResource(resource string) schema.GroupResource { - return LegacySchemeGroupVersion.WithResource(resource).GroupResource() -} - -// IsKindOrLegacy checks if the provided GroupKind matches with the given kind by looking -// up the API group and also the legacy API. -func IsKindOrLegacy(kind string, gk schema.GroupKind) bool { - return gk == Kind(kind) || gk == LegacyKind(kind) -} - -// IsResourceOrLegacy checks if the provided GroupResources matches with the given -// resource by looking up the API group and also the legacy API. -func IsResourceOrLegacy(resource string, gr schema.GroupResource) bool { - return gr == Resource(resource) || gr == LegacyResource(resource) -} - // Adds the list of known types to api.Scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, diff --git a/test/integration/authorization_test.go b/test/integration/authorization_test.go index 6efcb8171d84..1e8c3d82b58f 100644 --- a/test/integration/authorization_test.go +++ b/test/integration/authorization_test.go @@ -131,20 +131,20 @@ func TestClusterReaderCoverage(t *testing.T) { } escalatingResources := map[schema.GroupResource]bool{ - oauthapi.Resource("oauthauthorizetokens"): true, - oauthapi.LegacyResource("oauthauthorizetokens"): true, - oauthapi.Resource("oauthaccesstokens"): true, - oauthapi.LegacyResource("oauthaccesstokens"): true, - oauthapi.Resource("oauthclients"): true, - oauthapi.LegacyResource("oauthclients"): true, - imageapi.Resource("imagestreams/secrets"): true, - imageapi.LegacyResource("imagestreams/secrets"): true, - kapi.Resource("secrets"): true, - kapi.Resource("pods/exec"): true, - kapi.Resource("pods/proxy"): true, - kapi.Resource("pods/portforward"): true, - kapi.Resource("nodes/proxy"): true, - kapi.Resource("services/proxy"): true, + oauthapi.Resource("oauthauthorizetokens"): true, + oauthapi.Resource("oauthaccesstokens"): true, + oauthapi.Resource("oauthclients"): true, + imageapi.Resource("imagestreams/secrets"): true, + kapi.Resource("secrets"): true, + kapi.Resource("pods/exec"): true, + kapi.Resource("pods/proxy"): true, + kapi.Resource("pods/portforward"): true, + kapi.Resource("nodes/proxy"): true, + kapi.Resource("services/proxy"): true, + {Group: "", Resource: "oauthauthorizetokens"}: true, + {Group: "", Resource: "oauthaccesstokens"}: true, + {Group: "", Resource: "oauthclients"}: true, + {Group: "", Resource: "imagestreams/secrets"}: true, } readerRole, err := authorizationclient.NewForConfigOrDie(clusterAdminClientConfig).Authorization().ClusterRoles().Get(bootstrappolicy.ClusterReaderRoleName, metav1.GetOptions{}) @@ -171,27 +171,27 @@ func TestClusterReaderCoverage(t *testing.T) { // remove resources without read APIs nonreadingResources := []schema.GroupResource{ buildapi.Resource("buildconfigs/instantiatebinary"), - buildapi.LegacyResource("buildconfigs/instantiatebinary"), buildapi.Resource("buildconfigs/instantiate"), - buildapi.LegacyResource("buildconfigs/instantiate"), buildapi.Resource("builds/clone"), - buildapi.LegacyResource("builds/clone"), oappsapi.Resource("deploymentconfigrollbacks"), - oappsapi.LegacyResource("deploymentconfigrollbacks"), oappsapi.Resource("generatedeploymentconfigs"), - oappsapi.LegacyResource("generatedeploymentconfigs"), oappsapi.Resource("deploymentconfigs/rollback"), - oappsapi.LegacyResource("deploymentconfigs/rollback"), oappsapi.Resource("deploymentconfigs/instantiate"), - oappsapi.LegacyResource("deploymentconfigs/instantiate"), imageapi.Resource("imagestreamimports"), - imageapi.LegacyResource("imagestreamimports"), imageapi.Resource("imagestreammappings"), - imageapi.LegacyResource("imagestreammappings"), extensionsapi.Resource("deployments/rollback"), appsapi.Resource("deployments/rollback"), kapi.Resource("pods/attach"), kapi.Resource("namespaces/finalize"), + {Group: "", Resource: "buildconfigs/instantiatebinary"}, + {Group: "", Resource: "buildconfigs/instantiate"}, + {Group: "", Resource: "builds/clone"}, + {Group: "", Resource: "deploymentconfigrollbacks"}, + {Group: "", Resource: "generatedeploymentconfigs"}, + {Group: "", Resource: "deploymentconfigs/rollback"}, + {Group: "", Resource: "deploymentconfigs/instantiate"}, + {Group: "", Resource: "imagestreamimports"}, + {Group: "", Resource: "imagestreammappings"}, } for _, resource := range nonreadingResources { delete(allResources, resource)