added short names for resources which are exposed during discovery
This commit is contained in:
		@@ -2818,6 +2818,16 @@ runTests() {
 | 
				
			|||||||
    kube::test::get_object_assert rolebinding/sarole "{{range.subjects}}{{.name}}:{{end}}" 'sa-name:'
 | 
					    kube::test::get_object_assert rolebinding/sarole "{{range.subjects}}{{.name}}:{{end}}" 'sa-name:'
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  #########################
 | 
				
			||||||
 | 
					  # Assert short name     #
 | 
				
			||||||
 | 
					  #########################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  kube::log::status "Testing propagation of short names for resources"
 | 
				
			||||||
 | 
					  output_message=$(kubectl get --raw=/api/v1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ## test if a short name is exported during discovery
 | 
				
			||||||
 | 
					  kube::test::if_has_string "${output_message}" '{"name":"configmaps","namespaced":true,"kind":"ConfigMap","verbs":\["create","delete","deletecollection","get","list","patch","update","watch"\],"shortNames":\["cm"\]}'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ###########################
 | 
					  ###########################
 | 
				
			||||||
  # POD creation / deletion #
 | 
					  # POD creation / deletion #
 | 
				
			||||||
  ###########################
 | 
					  ###########################
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -60,6 +60,14 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
 | 
				
			|||||||
	return &REST{store}, &StatusREST{store: &statusStore}
 | 
						return &REST{store}, &StatusREST{store: &statusStore}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Implement ShortNamesProvider
 | 
				
			||||||
 | 
					var _ rest.ShortNamesProvider = &REST{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ShortNames implements the ShortNamesProvider interface. Returns a list of short names for a resource.
 | 
				
			||||||
 | 
					func (r *REST) ShortNames() []string {
 | 
				
			||||||
 | 
						return []string{"hpa"}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// StatusREST implements the REST endpoint for changing the status of a daemonset
 | 
					// StatusREST implements the REST endpoint for changing the status of a daemonset
 | 
				
			||||||
type StatusREST struct {
 | 
					type StatusREST struct {
 | 
				
			||||||
	store *genericregistry.Store
 | 
						store *genericregistry.Store
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -140,4 +140,12 @@ func TestWatch(t *testing.T) {
 | 
				
			|||||||
	)
 | 
						)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestShortNames(t *testing.T) {
 | 
				
			||||||
 | 
						storage, _, server := newStorage(t)
 | 
				
			||||||
 | 
						defer server.Terminate(t)
 | 
				
			||||||
 | 
						defer storage.Store.DestroyFunc()
 | 
				
			||||||
 | 
						expected := []string{"hpa"}
 | 
				
			||||||
 | 
						registrytest.AssertShortNames(t, storage, expected)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// TODO TestUpdateStatus
 | 
					// TODO TestUpdateStatus
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -67,6 +67,14 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST, *Approva
 | 
				
			|||||||
	return &REST{store}, &StatusREST{store: &statusStore}, &ApprovalREST{store: &approvalStore}
 | 
						return &REST{store}, &StatusREST{store: &statusStore}, &ApprovalREST{store: &approvalStore}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Implement ShortNamesProvider
 | 
				
			||||||
 | 
					var _ rest.ShortNamesProvider = &REST{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ShortNames implements the ShortNamesProvider interface. Returns a list of short names for a resource.
 | 
				
			||||||
 | 
					func (r *REST) ShortNames() []string {
 | 
				
			||||||
 | 
						return []string{"csr"}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// StatusREST implements the REST endpoint for changing the status of a CSR.
 | 
					// StatusREST implements the REST endpoint for changing the status of a CSR.
 | 
				
			||||||
type StatusREST struct {
 | 
					type StatusREST struct {
 | 
				
			||||||
	store *genericregistry.Store
 | 
						store *genericregistry.Store
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -25,6 +25,7 @@ go_library(
 | 
				
			|||||||
        "//vendor:k8s.io/apimachinery/pkg/runtime",
 | 
					        "//vendor:k8s.io/apimachinery/pkg/runtime",
 | 
				
			||||||
        "//vendor:k8s.io/apimachinery/pkg/util/net",
 | 
					        "//vendor:k8s.io/apimachinery/pkg/util/net",
 | 
				
			||||||
        "//vendor:k8s.io/apiserver/pkg/endpoints/request",
 | 
					        "//vendor:k8s.io/apiserver/pkg/endpoints/request",
 | 
				
			||||||
 | 
					        "//vendor:k8s.io/apiserver/pkg/registry/rest",
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -24,6 +24,7 @@ import (
 | 
				
			|||||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
						metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/runtime"
 | 
						"k8s.io/apimachinery/pkg/runtime"
 | 
				
			||||||
	genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
 | 
						genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
 | 
				
			||||||
 | 
						"k8s.io/apiserver/pkg/registry/rest"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/api"
 | 
						"k8s.io/kubernetes/pkg/api"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/probe"
 | 
						"k8s.io/kubernetes/pkg/probe"
 | 
				
			||||||
	httpprober "k8s.io/kubernetes/pkg/probe/http"
 | 
						httpprober "k8s.io/kubernetes/pkg/probe/http"
 | 
				
			||||||
@@ -117,3 +118,11 @@ func (rs *REST) getComponentStatus(name string, server Server) *api.ComponentSta
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	return retVal
 | 
						return retVal
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Implement ShortNamesProvider
 | 
				
			||||||
 | 
					var _ rest.ShortNamesProvider = &REST{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ShortNames implements the ShortNamesProvider interface. Returns a list of short names for a resource.
 | 
				
			||||||
 | 
					func (r *REST) ShortNames() []string {
 | 
				
			||||||
 | 
						return []string{"cs"}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -36,6 +36,7 @@ go_library(
 | 
				
			|||||||
        "//vendor:k8s.io/apimachinery/pkg/runtime",
 | 
					        "//vendor:k8s.io/apimachinery/pkg/runtime",
 | 
				
			||||||
        "//vendor:k8s.io/apiserver/pkg/registry/generic",
 | 
					        "//vendor:k8s.io/apiserver/pkg/registry/generic",
 | 
				
			||||||
        "//vendor:k8s.io/apiserver/pkg/registry/generic/registry",
 | 
					        "//vendor:k8s.io/apiserver/pkg/registry/generic/registry",
 | 
				
			||||||
 | 
					        "//vendor:k8s.io/apiserver/pkg/registry/rest",
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,6 +20,7 @@ import (
 | 
				
			|||||||
	"k8s.io/apimachinery/pkg/runtime"
 | 
						"k8s.io/apimachinery/pkg/runtime"
 | 
				
			||||||
	"k8s.io/apiserver/pkg/registry/generic"
 | 
						"k8s.io/apiserver/pkg/registry/generic"
 | 
				
			||||||
	genericregistry "k8s.io/apiserver/pkg/registry/generic/registry"
 | 
						genericregistry "k8s.io/apiserver/pkg/registry/generic/registry"
 | 
				
			||||||
 | 
						"k8s.io/apiserver/pkg/registry/rest"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/api"
 | 
						"k8s.io/kubernetes/pkg/api"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
						"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/registry/core/configmap"
 | 
						"k8s.io/kubernetes/pkg/registry/core/configmap"
 | 
				
			||||||
@@ -53,3 +54,11 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	return &REST{store}
 | 
						return &REST{store}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Implement ShortNamesProvider
 | 
				
			||||||
 | 
					var _ rest.ShortNamesProvider = &REST{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ShortNames implements the ShortNamesProvider interface. Returns a list of short names for a resource.
 | 
				
			||||||
 | 
					func (r *REST) ShortNames() []string {
 | 
				
			||||||
 | 
						return []string{"cm"}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -159,3 +159,11 @@ func TestWatch(t *testing.T) {
 | 
				
			|||||||
		},
 | 
							},
 | 
				
			||||||
	)
 | 
						)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestShortNames(t *testing.T) {
 | 
				
			||||||
 | 
						storage, server := newStorage(t)
 | 
				
			||||||
 | 
						defer server.Terminate(t)
 | 
				
			||||||
 | 
						defer storage.Store.DestroyFunc()
 | 
				
			||||||
 | 
						expected := []string{"cm"}
 | 
				
			||||||
 | 
						registrytest.AssertShortNames(t, storage, expected)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -36,6 +36,7 @@ go_library(
 | 
				
			|||||||
        "//vendor:k8s.io/apimachinery/pkg/runtime",
 | 
					        "//vendor:k8s.io/apimachinery/pkg/runtime",
 | 
				
			||||||
        "//vendor:k8s.io/apiserver/pkg/registry/generic",
 | 
					        "//vendor:k8s.io/apiserver/pkg/registry/generic",
 | 
				
			||||||
        "//vendor:k8s.io/apiserver/pkg/registry/generic/registry",
 | 
					        "//vendor:k8s.io/apiserver/pkg/registry/generic/registry",
 | 
				
			||||||
 | 
					        "//vendor:k8s.io/apiserver/pkg/registry/rest",
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,6 +20,7 @@ import (
 | 
				
			|||||||
	"k8s.io/apimachinery/pkg/runtime"
 | 
						"k8s.io/apimachinery/pkg/runtime"
 | 
				
			||||||
	"k8s.io/apiserver/pkg/registry/generic"
 | 
						"k8s.io/apiserver/pkg/registry/generic"
 | 
				
			||||||
	genericregistry "k8s.io/apiserver/pkg/registry/generic/registry"
 | 
						genericregistry "k8s.io/apiserver/pkg/registry/generic/registry"
 | 
				
			||||||
 | 
						"k8s.io/apiserver/pkg/registry/rest"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/api"
 | 
						"k8s.io/kubernetes/pkg/api"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
						"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/registry/core/endpoint"
 | 
						"k8s.io/kubernetes/pkg/registry/core/endpoint"
 | 
				
			||||||
@@ -52,3 +53,11 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	return &REST{store}
 | 
						return &REST{store}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Implement ShortNamesProvider
 | 
				
			||||||
 | 
					var _ rest.ShortNamesProvider = &REST{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ShortNames implements the ShortNamesProvider interface. Returns a list of short names for a resource.
 | 
				
			||||||
 | 
					func (r *REST) ShortNames() []string {
 | 
				
			||||||
 | 
						return []string{"ep"}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -34,6 +34,7 @@ go_library(
 | 
				
			|||||||
        "//vendor:k8s.io/apimachinery/pkg/runtime",
 | 
					        "//vendor:k8s.io/apimachinery/pkg/runtime",
 | 
				
			||||||
        "//vendor:k8s.io/apiserver/pkg/registry/generic",
 | 
					        "//vendor:k8s.io/apiserver/pkg/registry/generic",
 | 
				
			||||||
        "//vendor:k8s.io/apiserver/pkg/registry/generic/registry",
 | 
					        "//vendor:k8s.io/apiserver/pkg/registry/generic/registry",
 | 
				
			||||||
 | 
					        "//vendor:k8s.io/apiserver/pkg/registry/rest",
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,6 +20,7 @@ import (
 | 
				
			|||||||
	"k8s.io/apimachinery/pkg/runtime"
 | 
						"k8s.io/apimachinery/pkg/runtime"
 | 
				
			||||||
	"k8s.io/apiserver/pkg/registry/generic"
 | 
						"k8s.io/apiserver/pkg/registry/generic"
 | 
				
			||||||
	genericregistry "k8s.io/apiserver/pkg/registry/generic/registry"
 | 
						genericregistry "k8s.io/apiserver/pkg/registry/generic/registry"
 | 
				
			||||||
 | 
						"k8s.io/apiserver/pkg/registry/rest"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/api"
 | 
						"k8s.io/kubernetes/pkg/api"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
						"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/registry/core/event"
 | 
						"k8s.io/kubernetes/pkg/registry/core/event"
 | 
				
			||||||
@@ -65,3 +66,11 @@ func NewREST(optsGetter generic.RESTOptionsGetter, ttl uint64) *REST {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	return &REST{store}
 | 
						return &REST{store}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Implement ShortNamesProvider
 | 
				
			||||||
 | 
					var _ rest.ShortNamesProvider = &REST{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ShortNames implements the ShortNamesProvider interface. Returns a list of short names for a resource.
 | 
				
			||||||
 | 
					func (r *REST) ShortNames() []string {
 | 
				
			||||||
 | 
						return []string{"ev"}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -99,3 +99,11 @@ func TestDelete(t *testing.T) {
 | 
				
			|||||||
	test := registrytest.New(t, storage.Store)
 | 
						test := registrytest.New(t, storage.Store)
 | 
				
			||||||
	test.TestDelete(validNewEvent(test.TestNamespace()))
 | 
						test.TestDelete(validNewEvent(test.TestNamespace()))
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestShortNames(t *testing.T) {
 | 
				
			||||||
 | 
						storage, server := newStorage(t)
 | 
				
			||||||
 | 
						defer server.Terminate(t)
 | 
				
			||||||
 | 
						defer storage.Store.DestroyFunc()
 | 
				
			||||||
 | 
						expected := []string{"ev"}
 | 
				
			||||||
 | 
						registrytest.AssertShortNames(t, storage, expected)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -37,6 +37,7 @@ go_library(
 | 
				
			|||||||
        "//vendor:k8s.io/apimachinery/pkg/runtime",
 | 
					        "//vendor:k8s.io/apimachinery/pkg/runtime",
 | 
				
			||||||
        "//vendor:k8s.io/apiserver/pkg/registry/generic",
 | 
					        "//vendor:k8s.io/apiserver/pkg/registry/generic",
 | 
				
			||||||
        "//vendor:k8s.io/apiserver/pkg/registry/generic/registry",
 | 
					        "//vendor:k8s.io/apiserver/pkg/registry/generic/registry",
 | 
				
			||||||
 | 
					        "//vendor:k8s.io/apiserver/pkg/registry/rest",
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,6 +20,7 @@ import (
 | 
				
			|||||||
	"k8s.io/apimachinery/pkg/runtime"
 | 
						"k8s.io/apimachinery/pkg/runtime"
 | 
				
			||||||
	"k8s.io/apiserver/pkg/registry/generic"
 | 
						"k8s.io/apiserver/pkg/registry/generic"
 | 
				
			||||||
	genericregistry "k8s.io/apiserver/pkg/registry/generic/registry"
 | 
						genericregistry "k8s.io/apiserver/pkg/registry/generic/registry"
 | 
				
			||||||
 | 
						"k8s.io/apiserver/pkg/registry/rest"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/api"
 | 
						"k8s.io/kubernetes/pkg/api"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
						"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/registry/core/limitrange"
 | 
						"k8s.io/kubernetes/pkg/registry/core/limitrange"
 | 
				
			||||||
@@ -53,3 +54,11 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	return &REST{store}
 | 
						return &REST{store}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Implement ShortNamesProvider
 | 
				
			||||||
 | 
					var _ rest.ShortNamesProvider = &REST{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ShortNames implements the ShortNamesProvider interface. Returns a list of short names for a resource.
 | 
				
			||||||
 | 
					func (r *REST) ShortNames() []string {
 | 
				
			||||||
 | 
						return []string{"limits"}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -157,3 +157,11 @@ func TestWatch(t *testing.T) {
 | 
				
			|||||||
		},
 | 
							},
 | 
				
			||||||
	)
 | 
						)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestShortNames(t *testing.T) {
 | 
				
			||||||
 | 
						storage, server := newStorage(t)
 | 
				
			||||||
 | 
						defer server.Terminate(t)
 | 
				
			||||||
 | 
						defer storage.Store.DestroyFunc()
 | 
				
			||||||
 | 
						expected := []string{"limits"}
 | 
				
			||||||
 | 
						registrytest.AssertShortNames(t, storage, expected)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -173,6 +173,14 @@ func (r *REST) Delete(ctx genericapirequest.Context, name string, options *metav
 | 
				
			|||||||
	return r.Store.Delete(ctx, name, options)
 | 
						return r.Store.Delete(ctx, name, options)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Implement ShortNamesProvider
 | 
				
			||||||
 | 
					var _ rest.ShortNamesProvider = &REST{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ShortNames implements the ShortNamesProvider interface. Returns a list of short names for a resource.
 | 
				
			||||||
 | 
					func (r *REST) ShortNames() []string {
 | 
				
			||||||
 | 
						return []string{"ns"}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (r *StatusREST) New() runtime.Object {
 | 
					func (r *StatusREST) New() runtime.Object {
 | 
				
			||||||
	return r.store.New()
 | 
						return r.store.New()
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -186,3 +186,11 @@ func TestDeleteNamespaceWithCompleteFinalizers(t *testing.T) {
 | 
				
			|||||||
		t.Errorf("unexpected error: %v", err)
 | 
							t.Errorf("unexpected error: %v", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestShortNames(t *testing.T) {
 | 
				
			||||||
 | 
						storage, server := newStorage(t)
 | 
				
			||||||
 | 
						defer server.Terminate(t)
 | 
				
			||||||
 | 
						defer storage.Store.DestroyFunc()
 | 
				
			||||||
 | 
						expected := []string{"ns"}
 | 
				
			||||||
 | 
						registrytest.AssertShortNames(t, storage, expected)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -140,3 +140,8 @@ var _ = rest.Redirector(&REST{})
 | 
				
			|||||||
func (r *REST) ResourceLocation(ctx genericapirequest.Context, id string) (*url.URL, http.RoundTripper, error) {
 | 
					func (r *REST) ResourceLocation(ctx genericapirequest.Context, id string) (*url.URL, http.RoundTripper, error) {
 | 
				
			||||||
	return node.ResourceLocation(r, r.connection, r.proxyTransport, ctx, id)
 | 
						return node.ResourceLocation(r, r.connection, r.proxyTransport, ctx, id)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ShortNames implements the ShortNamesProvider interface. Returns a list of short names for a resource.
 | 
				
			||||||
 | 
					func (r *REST) ShortNames() []string {
 | 
				
			||||||
 | 
						return []string{"no"}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -150,3 +150,11 @@ func TestWatch(t *testing.T) {
 | 
				
			|||||||
		},
 | 
							},
 | 
				
			||||||
	)
 | 
						)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestShortNames(t *testing.T) {
 | 
				
			||||||
 | 
						storage, server := newStorage(t)
 | 
				
			||||||
 | 
						defer server.Terminate(t)
 | 
				
			||||||
 | 
						defer storage.Store.DestroyFunc()
 | 
				
			||||||
 | 
						expected := []string{"no"}
 | 
				
			||||||
 | 
						registrytest.AssertShortNames(t, storage, expected)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -61,6 +61,14 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
 | 
				
			|||||||
	return &REST{store}, &StatusREST{store: &statusStore}
 | 
						return &REST{store}, &StatusREST{store: &statusStore}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Implement ShortNamesProvider
 | 
				
			||||||
 | 
					var _ rest.ShortNamesProvider = &REST{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ShortNames implements the ShortNamesProvider interface. Returns a list of short names for a resource.
 | 
				
			||||||
 | 
					func (r *REST) ShortNames() []string {
 | 
				
			||||||
 | 
						return []string{"pv"}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// StatusREST implements the REST endpoint for changing the status of a persistentvolume.
 | 
					// StatusREST implements the REST endpoint for changing the status of a persistentvolume.
 | 
				
			||||||
type StatusREST struct {
 | 
					type StatusREST struct {
 | 
				
			||||||
	store *genericregistry.Store
 | 
						store *genericregistry.Store
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -195,3 +195,11 @@ func TestUpdateStatus(t *testing.T) {
 | 
				
			|||||||
		t.Errorf("unexpected object: %s", diff.ObjectDiff(pvIn.Status, pvOut.Status))
 | 
							t.Errorf("unexpected object: %s", diff.ObjectDiff(pvIn.Status, pvOut.Status))
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestShortNames(t *testing.T) {
 | 
				
			||||||
 | 
						storage, _, server := newStorage(t)
 | 
				
			||||||
 | 
						defer server.Terminate(t)
 | 
				
			||||||
 | 
						defer storage.Store.DestroyFunc()
 | 
				
			||||||
 | 
						expected := []string{"pv"}
 | 
				
			||||||
 | 
						registrytest.AssertShortNames(t, storage, expected)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -61,6 +61,14 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
 | 
				
			|||||||
	return &REST{store}, &StatusREST{store: &statusStore}
 | 
						return &REST{store}, &StatusREST{store: &statusStore}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Implement ShortNamesProvider
 | 
				
			||||||
 | 
					var _ rest.ShortNamesProvider = &REST{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ShortNames implements the ShortNamesProvider interface. Returns a list of short names for a resource.
 | 
				
			||||||
 | 
					func (r *REST) ShortNames() []string {
 | 
				
			||||||
 | 
						return []string{"pvc"}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// StatusREST implements the REST endpoint for changing the status of a persistentvolumeclaim.
 | 
					// StatusREST implements the REST endpoint for changing the status of a persistentvolumeclaim.
 | 
				
			||||||
type StatusREST struct {
 | 
					type StatusREST struct {
 | 
				
			||||||
	store *genericregistry.Store
 | 
						store *genericregistry.Store
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -192,3 +192,11 @@ func TestUpdateStatus(t *testing.T) {
 | 
				
			|||||||
		t.Errorf("unexpected object: %s", diff.ObjectDiff(pvc.Status, pvcOut.Status))
 | 
							t.Errorf("unexpected object: %s", diff.ObjectDiff(pvc.Status, pvcOut.Status))
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestShortNames(t *testing.T) {
 | 
				
			||||||
 | 
						storage, _, server := newStorage(t)
 | 
				
			||||||
 | 
						defer server.Terminate(t)
 | 
				
			||||||
 | 
						defer storage.Store.DestroyFunc()
 | 
				
			||||||
 | 
						expected := []string{"pvc"}
 | 
				
			||||||
 | 
						registrytest.AssertShortNames(t, storage, expected)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -105,6 +105,14 @@ func (r *REST) ResourceLocation(ctx genericapirequest.Context, name string) (*ur
 | 
				
			|||||||
	return pod.ResourceLocation(r, r.proxyTransport, ctx, name)
 | 
						return pod.ResourceLocation(r, r.proxyTransport, ctx, name)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Implement ShortNamesProvider
 | 
				
			||||||
 | 
					var _ rest.ShortNamesProvider = &REST{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ShortNames implements the ShortNamesProvider interface. Returns a list of short names for a resource.
 | 
				
			||||||
 | 
					func (r *REST) ShortNames() []string {
 | 
				
			||||||
 | 
						return []string{"po"}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// BindingREST implements the REST endpoint for binding pods to nodes when etcd is in use.
 | 
					// BindingREST implements the REST endpoint for binding pods to nodes when etcd is in use.
 | 
				
			||||||
type BindingREST struct {
 | 
					type BindingREST struct {
 | 
				
			||||||
	store *genericregistry.Store
 | 
						store *genericregistry.Store
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -795,3 +795,11 @@ func TestEtcdUpdateStatus(t *testing.T) {
 | 
				
			|||||||
		t.Errorf("objects differ: %v", diff.ObjectDiff(podOut, expected))
 | 
							t.Errorf("objects differ: %v", diff.ObjectDiff(podOut, expected))
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestShortNames(t *testing.T) {
 | 
				
			||||||
 | 
						storage, _, _, server := newStorage(t)
 | 
				
			||||||
 | 
						defer server.Terminate(t)
 | 
				
			||||||
 | 
						defer storage.Store.DestroyFunc()
 | 
				
			||||||
 | 
						expected := []string{"po"}
 | 
				
			||||||
 | 
						registrytest.AssertShortNames(t, storage, expected)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -86,6 +86,14 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
 | 
				
			|||||||
	return &REST{store}, &StatusREST{store: &statusStore}
 | 
						return &REST{store}, &StatusREST{store: &statusStore}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Implement ShortNamesProvider
 | 
				
			||||||
 | 
					var _ rest.ShortNamesProvider = &REST{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ShortNames implements the ShortNamesProvider interface. Returns a list of short names for a resource.
 | 
				
			||||||
 | 
					func (r *REST) ShortNames() []string {
 | 
				
			||||||
 | 
						return []string{"rc"}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// StatusREST implements the REST endpoint for changing the status of a replication controller
 | 
					// StatusREST implements the REST endpoint for changing the status of a replication controller
 | 
				
			||||||
type StatusREST struct {
 | 
					type StatusREST struct {
 | 
				
			||||||
	store *genericregistry.Store
 | 
						store *genericregistry.Store
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -327,3 +327,11 @@ func TestScaleUpdate(t *testing.T) {
 | 
				
			|||||||
		t.Fatalf("unexpected error, expecting an update conflict but got %v", err)
 | 
							t.Fatalf("unexpected error, expecting an update conflict but got %v", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestShortNames(t *testing.T) {
 | 
				
			||||||
 | 
						storage, server := newStorage(t)
 | 
				
			||||||
 | 
						defer server.Terminate(t)
 | 
				
			||||||
 | 
						defer storage.Controller.Store.DestroyFunc()
 | 
				
			||||||
 | 
						expected := []string{"rc"}
 | 
				
			||||||
 | 
						registrytest.AssertShortNames(t, storage.Controller, expected)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -61,6 +61,14 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
 | 
				
			|||||||
	return &REST{store}, &StatusREST{store: &statusStore}
 | 
						return &REST{store}, &StatusREST{store: &statusStore}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Implement ShortNamesProvider
 | 
				
			||||||
 | 
					var _ rest.ShortNamesProvider = &REST{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ShortNames implements the ShortNamesProvider interface. Returns a list of short names for a resource.
 | 
				
			||||||
 | 
					func (r *REST) ShortNames() []string {
 | 
				
			||||||
 | 
						return []string{"quota"}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// StatusREST implements the REST endpoint for changing the status of a resourcequota.
 | 
					// StatusREST implements the REST endpoint for changing the status of a resourcequota.
 | 
				
			||||||
type StatusREST struct {
 | 
					type StatusREST struct {
 | 
				
			||||||
	store *genericregistry.Store
 | 
						store *genericregistry.Store
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -202,3 +202,11 @@ func TestUpdateStatus(t *testing.T) {
 | 
				
			|||||||
		t.Errorf("unexpected object: %s", diff.ObjectDiff(resourcequotaIn, rqOut))
 | 
							t.Errorf("unexpected object: %s", diff.ObjectDiff(resourcequotaIn, rqOut))
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestShortNames(t *testing.T) {
 | 
				
			||||||
 | 
						storage, _, server := newStorage(t)
 | 
				
			||||||
 | 
						defer server.Terminate(t)
 | 
				
			||||||
 | 
						defer storage.Store.DestroyFunc()
 | 
				
			||||||
 | 
						expected := []string{"quota"}
 | 
				
			||||||
 | 
						registrytest.AssertShortNames(t, storage, expected)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -60,6 +60,14 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
 | 
				
			|||||||
	return &REST{store}, &StatusREST{store: &statusStore}
 | 
						return &REST{store}, &StatusREST{store: &statusStore}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Implement ShortNamesProvider
 | 
				
			||||||
 | 
					var _ rest.ShortNamesProvider = &REST{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ShortNames implements the ShortNamesProvider interface. Returns a list of short names for a resource.
 | 
				
			||||||
 | 
					func (r *REST) ShortNames() []string {
 | 
				
			||||||
 | 
						return []string{"svc"}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// StatusREST implements the REST endpoint for changing the status of a service.
 | 
					// StatusREST implements the REST endpoint for changing the status of a service.
 | 
				
			||||||
type StatusREST struct {
 | 
					type StatusREST struct {
 | 
				
			||||||
	store *genericregistry.Store
 | 
						store *genericregistry.Store
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -167,3 +167,11 @@ func TestWatch(t *testing.T) {
 | 
				
			|||||||
		},
 | 
							},
 | 
				
			||||||
	)
 | 
						)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestShortNames(t *testing.T) {
 | 
				
			||||||
 | 
						storage, _, server := newStorage(t)
 | 
				
			||||||
 | 
						defer server.Terminate(t)
 | 
				
			||||||
 | 
						defer storage.Store.DestroyFunc()
 | 
				
			||||||
 | 
						expected := []string{"svc"}
 | 
				
			||||||
 | 
						registrytest.AssertShortNames(t, storage, expected)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -36,6 +36,7 @@ go_library(
 | 
				
			|||||||
        "//vendor:k8s.io/apimachinery/pkg/runtime",
 | 
					        "//vendor:k8s.io/apimachinery/pkg/runtime",
 | 
				
			||||||
        "//vendor:k8s.io/apiserver/pkg/registry/generic",
 | 
					        "//vendor:k8s.io/apiserver/pkg/registry/generic",
 | 
				
			||||||
        "//vendor:k8s.io/apiserver/pkg/registry/generic/registry",
 | 
					        "//vendor:k8s.io/apiserver/pkg/registry/generic/registry",
 | 
				
			||||||
 | 
					        "//vendor:k8s.io/apiserver/pkg/registry/rest",
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,6 +20,7 @@ import (
 | 
				
			|||||||
	"k8s.io/apimachinery/pkg/runtime"
 | 
						"k8s.io/apimachinery/pkg/runtime"
 | 
				
			||||||
	"k8s.io/apiserver/pkg/registry/generic"
 | 
						"k8s.io/apiserver/pkg/registry/generic"
 | 
				
			||||||
	genericregistry "k8s.io/apiserver/pkg/registry/generic/registry"
 | 
						genericregistry "k8s.io/apiserver/pkg/registry/generic/registry"
 | 
				
			||||||
 | 
						"k8s.io/apiserver/pkg/registry/rest"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/api"
 | 
						"k8s.io/kubernetes/pkg/api"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
						"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/registry/core/serviceaccount"
 | 
						"k8s.io/kubernetes/pkg/registry/core/serviceaccount"
 | 
				
			||||||
@@ -53,3 +54,11 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	return &REST{store}
 | 
						return &REST{store}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Implement ShortNamesProvider
 | 
				
			||||||
 | 
					var _ rest.ShortNamesProvider = &REST{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ShortNames implements the ShortNamesProvider interface. Returns a list of short names for a resource.
 | 
				
			||||||
 | 
					func (r *REST) ShortNames() []string {
 | 
				
			||||||
 | 
						return []string{"sa"}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -133,3 +133,11 @@ func TestWatch(t *testing.T) {
 | 
				
			|||||||
		},
 | 
							},
 | 
				
			||||||
	)
 | 
						)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestShortNames(t *testing.T) {
 | 
				
			||||||
 | 
						storage, server := newStorage(t)
 | 
				
			||||||
 | 
						defer server.Terminate(t)
 | 
				
			||||||
 | 
						defer storage.Store.DestroyFunc()
 | 
				
			||||||
 | 
						expected := []string{"sa"}
 | 
				
			||||||
 | 
						registrytest.AssertShortNames(t, storage, expected)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -62,6 +62,14 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
 | 
				
			|||||||
	return &REST{store}, &StatusREST{store: &statusStore}
 | 
						return &REST{store}, &StatusREST{store: &statusStore}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Implement ShortNamesProvider
 | 
				
			||||||
 | 
					var _ rest.ShortNamesProvider = &REST{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ShortNames implements the ShortNamesProvider interface. Returns a list of short names for a resource.
 | 
				
			||||||
 | 
					func (r *REST) ShortNames() []string {
 | 
				
			||||||
 | 
						return []string{"ds"}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// StatusREST implements the REST endpoint for changing the status of a daemonset
 | 
					// StatusREST implements the REST endpoint for changing the status of a daemonset
 | 
				
			||||||
type StatusREST struct {
 | 
					type StatusREST struct {
 | 
				
			||||||
	store *genericregistry.Store
 | 
						store *genericregistry.Store
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -181,4 +181,12 @@ func TestWatch(t *testing.T) {
 | 
				
			|||||||
	)
 | 
						)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestShortNames(t *testing.T) {
 | 
				
			||||||
 | 
						storage, _, server := newStorage(t)
 | 
				
			||||||
 | 
						defer server.Terminate(t)
 | 
				
			||||||
 | 
						defer storage.Store.DestroyFunc()
 | 
				
			||||||
 | 
						expected := []string{"ds"}
 | 
				
			||||||
 | 
						registrytest.AssertShortNames(t, storage, expected)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// TODO TestUpdateStatus
 | 
					// TODO TestUpdateStatus
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -87,6 +87,14 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST, *Rollbac
 | 
				
			|||||||
	return &REST{store}, &StatusREST{store: &statusStore}, &RollbackREST{store: store}
 | 
						return &REST{store}, &StatusREST{store: &statusStore}, &RollbackREST{store: store}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Implement ShortNamesProvider
 | 
				
			||||||
 | 
					var _ rest.ShortNamesProvider = &REST{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ShortNames implements the ShortNamesProvider interface. Returns a list of short names for a resource.
 | 
				
			||||||
 | 
					func (r *REST) ShortNames() []string {
 | 
				
			||||||
 | 
						return []string{"deploy"}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// StatusREST implements the REST endpoint for changing the status of a deployment
 | 
					// StatusREST implements the REST endpoint for changing the status of a deployment
 | 
				
			||||||
type StatusREST struct {
 | 
					type StatusREST struct {
 | 
				
			||||||
	store *genericregistry.Store
 | 
						store *genericregistry.Store
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -388,3 +388,11 @@ func TestEtcdCreateDeploymentRollbackNoDeployment(t *testing.T) {
 | 
				
			|||||||
		t.Fatalf("Unexpected error: %v", err)
 | 
							t.Fatalf("Unexpected error: %v", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestShortNames(t *testing.T) {
 | 
				
			||||||
 | 
						storage, server := newStorage(t)
 | 
				
			||||||
 | 
						defer server.Terminate(t)
 | 
				
			||||||
 | 
						defer storage.Deployment.Store.DestroyFunc()
 | 
				
			||||||
 | 
						expected := []string{"deploy"}
 | 
				
			||||||
 | 
						registrytest.AssertShortNames(t, storage.Deployment, expected)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -61,6 +61,14 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
 | 
				
			|||||||
	return &REST{store}, &StatusREST{store: &statusStore}
 | 
						return &REST{store}, &StatusREST{store: &statusStore}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Implement ShortNamesProvider
 | 
				
			||||||
 | 
					var _ rest.ShortNamesProvider = &REST{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ShortNames implements the ShortNamesProvider interface. Returns a list of short names for a resource.
 | 
				
			||||||
 | 
					func (r *REST) ShortNames() []string {
 | 
				
			||||||
 | 
						return []string{"ing"}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// StatusREST implements the REST endpoint for changing the status of an ingress
 | 
					// StatusREST implements the REST endpoint for changing the status of an ingress
 | 
				
			||||||
type StatusREST struct {
 | 
					type StatusREST struct {
 | 
				
			||||||
	store *genericregistry.Store
 | 
						store *genericregistry.Store
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -224,4 +224,12 @@ func TestWatch(t *testing.T) {
 | 
				
			|||||||
	)
 | 
						)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestShortNames(t *testing.T) {
 | 
				
			||||||
 | 
						storage, _, server := newStorage(t)
 | 
				
			||||||
 | 
						defer server.Terminate(t)
 | 
				
			||||||
 | 
						defer storage.Store.DestroyFunc()
 | 
				
			||||||
 | 
						expected := []string{"ing"}
 | 
				
			||||||
 | 
						registrytest.AssertShortNames(t, storage, expected)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// TODO TestUpdateStatus
 | 
					// TODO TestUpdateStatus
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -55,3 +55,8 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	return &REST{store}
 | 
						return &REST{store}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ShortNames implements the ShortNamesProvider interface. Returns a list of short names for a resource.
 | 
				
			||||||
 | 
					func (r *REST) ShortNames() []string {
 | 
				
			||||||
 | 
						return []string{"psp"}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -85,6 +85,14 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
 | 
				
			|||||||
	return &REST{store}, &StatusREST{store: &statusStore}
 | 
						return &REST{store}, &StatusREST{store: &statusStore}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Implement ShortNamesProvider
 | 
				
			||||||
 | 
					var _ rest.ShortNamesProvider = &REST{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ShortNames implements the ShortNamesProvider interface. Returns a list of short names for a resource.
 | 
				
			||||||
 | 
					func (r *REST) ShortNames() []string {
 | 
				
			||||||
 | 
						return []string{"rs"}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// StatusREST implements the REST endpoint for changing the status of a ReplicaSet
 | 
					// StatusREST implements the REST endpoint for changing the status of a ReplicaSet
 | 
				
			||||||
type StatusREST struct {
 | 
					type StatusREST struct {
 | 
				
			||||||
	store *genericregistry.Store
 | 
						store *genericregistry.Store
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -368,3 +368,11 @@ func TestStatusUpdate(t *testing.T) {
 | 
				
			|||||||
		t.Errorf("we expected .status.replicas to be updated to %d but it was %v", defaultReplicas, rs.Status.Replicas)
 | 
							t.Errorf("we expected .status.replicas to be updated to %d but it was %v", defaultReplicas, rs.Status.Replicas)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestShortNames(t *testing.T) {
 | 
				
			||||||
 | 
						storage, server := newStorage(t)
 | 
				
			||||||
 | 
						defer server.Terminate(t)
 | 
				
			||||||
 | 
						defer storage.ReplicaSet.DestroyFunc()
 | 
				
			||||||
 | 
						expected := []string{"rs"}
 | 
				
			||||||
 | 
						registrytest.AssertShortNames(t, storage.ReplicaSet, expected)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -61,6 +61,11 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
 | 
				
			|||||||
	return &REST{store}, &StatusREST{store: &statusStore}
 | 
						return &REST{store}, &StatusREST{store: &statusStore}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ShortNames implements the ShortNamesProvider interface. Returns a list of short names for a resource.
 | 
				
			||||||
 | 
					func (r *REST) ShortNames() []string {
 | 
				
			||||||
 | 
						return []string{"pdb"}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// StatusREST implements the REST endpoint for changing the status of an podDisruptionBudget
 | 
					// StatusREST implements the REST endpoint for changing the status of an podDisruptionBudget
 | 
				
			||||||
type StatusREST struct {
 | 
					type StatusREST struct {
 | 
				
			||||||
	store *genericregistry.Store
 | 
						store *genericregistry.Store
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,6 +15,7 @@ go_library(
 | 
				
			|||||||
        "etcd.go",
 | 
					        "etcd.go",
 | 
				
			||||||
        "node.go",
 | 
					        "node.go",
 | 
				
			||||||
        "service.go",
 | 
					        "service.go",
 | 
				
			||||||
 | 
					        "shortNamesProvider.go",
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
    tags = ["automanaged"],
 | 
					    tags = ["automanaged"],
 | 
				
			||||||
    deps = [
 | 
					    deps = [
 | 
				
			||||||
@@ -30,6 +31,7 @@ go_library(
 | 
				
			|||||||
        "//vendor:k8s.io/apimachinery/pkg/watch",
 | 
					        "//vendor:k8s.io/apimachinery/pkg/watch",
 | 
				
			||||||
        "//vendor:k8s.io/apiserver/pkg/endpoints/request",
 | 
					        "//vendor:k8s.io/apiserver/pkg/endpoints/request",
 | 
				
			||||||
        "//vendor:k8s.io/apiserver/pkg/registry/generic/registry",
 | 
					        "//vendor:k8s.io/apiserver/pkg/registry/generic/registry",
 | 
				
			||||||
 | 
					        "//vendor:k8s.io/apiserver/pkg/registry/rest",
 | 
				
			||||||
        "//vendor:k8s.io/apiserver/pkg/registry/rest/resttest",
 | 
					        "//vendor:k8s.io/apiserver/pkg/registry/rest/resttest",
 | 
				
			||||||
        "//vendor:k8s.io/apiserver/pkg/storage/etcd",
 | 
					        "//vendor:k8s.io/apiserver/pkg/storage/etcd",
 | 
				
			||||||
        "//vendor:k8s.io/apiserver/pkg/storage/etcd/testing",
 | 
					        "//vendor:k8s.io/apiserver/pkg/storage/etcd/testing",
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										32
									
								
								pkg/registry/registrytest/shortNamesProvider.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								pkg/registry/registrytest/shortNamesProvider.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					Copyright 2014 The Kubernetes Authors.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 | 
					you may not use this file except in compliance with the License.
 | 
				
			||||||
 | 
					You may obtain a copy of the License at
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    http://www.apache.org/licenses/LICENSE-2.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Unless required by applicable law or agreed to in writing, software
 | 
				
			||||||
 | 
					distributed under the License is distributed on an "AS IS" BASIS,
 | 
				
			||||||
 | 
					WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
				
			||||||
 | 
					See the License for the specific language governing permissions and
 | 
				
			||||||
 | 
					limitations under the License.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					package registrytest
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"reflect"
 | 
				
			||||||
 | 
						"testing"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"k8s.io/apiserver/pkg/registry/rest"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func AssertShortNames(t *testing.T, storage rest.ShortNamesProvider, expected []string) {
 | 
				
			||||||
 | 
						actual := storage.ShortNames()
 | 
				
			||||||
 | 
						ok := reflect.DeepEqual(actual, expected)
 | 
				
			||||||
 | 
						if !ok {
 | 
				
			||||||
 | 
							t.Errorf("short names not equal. expected = %v actual = %v", expected, actual)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -35,10 +35,10 @@ import (
 | 
				
			|||||||
	"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/types"
 | 
						"k8s.io/apimachinery/pkg/types"
 | 
				
			||||||
 | 
						"k8s.io/apiserver/pkg/endpoints/handlers"
 | 
				
			||||||
	"k8s.io/apiserver/pkg/endpoints/handlers/negotiation"
 | 
						"k8s.io/apiserver/pkg/endpoints/handlers/negotiation"
 | 
				
			||||||
	"k8s.io/apiserver/pkg/endpoints/metrics"
 | 
						"k8s.io/apiserver/pkg/endpoints/metrics"
 | 
				
			||||||
	"k8s.io/apiserver/pkg/endpoints/request"
 | 
						"k8s.io/apiserver/pkg/endpoints/request"
 | 
				
			||||||
	"k8s.io/apiserver/pkg/endpoints/handlers"
 | 
					 | 
				
			||||||
	"k8s.io/apiserver/pkg/registry/rest"
 | 
						"k8s.io/apiserver/pkg/registry/rest"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/emicklei/go-restful"
 | 
						"github.com/emicklei/go-restful"
 | 
				
			||||||
@@ -368,6 +368,12 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag
 | 
				
			|||||||
		resourceKind = kind
 | 
							resourceKind = kind
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						var shortNames []string
 | 
				
			||||||
 | 
						shortNamesProvider, ok := storage.(rest.ShortNamesProvider)
 | 
				
			||||||
 | 
						if ok {
 | 
				
			||||||
 | 
							shortNames = shortNamesProvider.ShortNames()
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	var apiResource metav1.APIResource
 | 
						var apiResource metav1.APIResource
 | 
				
			||||||
	// Get the list of actions for the given scope.
 | 
						// Get the list of actions for the given scope.
 | 
				
			||||||
	switch scope.Name() {
 | 
						switch scope.Name() {
 | 
				
			||||||
@@ -796,6 +802,7 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag
 | 
				
			|||||||
		apiResource.Verbs = append(apiResource.Verbs, kubeVerb)
 | 
							apiResource.Verbs = append(apiResource.Verbs, kubeVerb)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	sort.Strings(apiResource.Verbs)
 | 
						sort.Strings(apiResource.Verbs)
 | 
				
			||||||
 | 
						apiResource.ShortNames = shortNames
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return &apiResource, nil
 | 
						return &apiResource, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -65,6 +65,11 @@ type KindProvider interface {
 | 
				
			|||||||
	Kind() string
 | 
						Kind() string
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ShortNamesProvider is an interface for RESTful storage services. Delivers a list of short names for a resource. The list is used by kubectl to have short names representation of resources.
 | 
				
			||||||
 | 
					type ShortNamesProvider interface {
 | 
				
			||||||
 | 
						ShortNames() []string
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Lister is an object that can retrieve resources that match the provided field and label criteria.
 | 
					// Lister is an object that can retrieve resources that match the provided field and label criteria.
 | 
				
			||||||
type Lister interface {
 | 
					type Lister interface {
 | 
				
			||||||
	// NewList returns an empty object that can be used with the List call.
 | 
						// NewList returns an empty object that can be used with the List call.
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user