Merge pull request #81989 from RainbowMango/pr_cleanup_staticcheck_for_apiextension

Cleanup staticcheck issues for apiextension
This commit is contained in:
Kubernetes Prow Robot 2019-09-26 01:25:23 -07:00 committed by GitHub
commit d82ab4054d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 36 additions and 60 deletions

View File

@ -126,16 +126,6 @@ test/integration/serving
test/integration/ttlcontroller test/integration/ttlcontroller
test/integration/volume test/integration/volume
test/utils test/utils
vendor/k8s.io/apiextensions-apiserver/pkg/apiserver
vendor/k8s.io/apiextensions-apiserver/pkg/apiserver/conversion
vendor/k8s.io/apiextensions-apiserver/pkg/apiserver/schema
vendor/k8s.io/apiextensions-apiserver/pkg/apiserver/schema/objectmeta
vendor/k8s.io/apiextensions-apiserver/pkg/apiserver/schema/pruning
vendor/k8s.io/apiextensions-apiserver/pkg/controller/finalizer
vendor/k8s.io/apiextensions-apiserver/pkg/registry/customresource
vendor/k8s.io/apiextensions-apiserver/test/integration
vendor/k8s.io/apiextensions-apiserver/test/integration/conversion
vendor/k8s.io/apiextensions-apiserver/test/integration/fixtures
vendor/k8s.io/apimachinery/pkg/api/meta vendor/k8s.io/apimachinery/pkg/api/meta
vendor/k8s.io/apimachinery/pkg/api/resource vendor/k8s.io/apimachinery/pkg/api/resource
vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured

View File

@ -112,16 +112,6 @@ func (f *webhookConverterFactory) NewWebhookConverter(crd *internal.CustomResour
}, nil }, nil
} }
// hasConversionReviewVersion check whether a version is accepted by a given webhook.
func (c *webhookConverter) hasConversionReviewVersion(v string) bool {
for _, b := range c.conversionReviewVersions {
if b == v {
return true
}
}
return false
}
// getObjectsToConvert returns a list of objects requiring conversion. // getObjectsToConvert returns a list of objects requiring conversion.
// if obj is a list, getObjectsToConvert returns a (potentially empty) list of the items that are not already in the desired version. // if obj is a list, getObjectsToConvert returns a (potentially empty) list of the items that are not already in the desired version.
// if obj is not a list, and is already in the desired version, getObjectsToConvert returns an empty list. // if obj is not a list, and is already in the desired version, getObjectsToConvert returns an empty list.

View File

@ -96,6 +96,9 @@ func TestConvertFieldLabel(t *testing.T) {
t.Fatal(err) t.Fatal(err)
} }
_, c, err := f.NewConverter(&crd) _, c, err := f.NewConverter(&crd)
if err != nil {
t.Fatalf("Failed to create CR converter. error: %v", err)
}
label, value, err := c.ConvertFieldLabel(schema.GroupVersionKind{}, test.label, "value") label, value, err := c.ConvertFieldLabel(schema.GroupVersionKind{}, test.label, "value")
if e, a := test.expectError, err != nil; e != a { if e, a := test.expectError, err != nil; e != a {

View File

@ -19,7 +19,6 @@ package schema
import ( import (
"math/rand" "math/rand"
"reflect" "reflect"
"regexp"
"testing" "testing"
"time" "time"
@ -31,8 +30,6 @@ import (
"k8s.io/apimachinery/pkg/util/json" "k8s.io/apimachinery/pkg/util/json"
) )
var nullTypeRE = regexp.MustCompile(`"type":\["([^"]*)","null"]`)
func TestStructuralRoundtrip(t *testing.T) { func TestStructuralRoundtrip(t *testing.T) {
f := fuzz.New() f := fuzz.New()
seed := time.Now().UnixNano() seed := time.Now().UnixNano()

View File

@ -225,18 +225,6 @@ func required(path ...string) validationMatch {
func invalid(path ...string) validationMatch { func invalid(path ...string) validationMatch {
return validationMatch{path: field.NewPath(path[0], path[1:]...), errorType: field.ErrorTypeInvalid} return validationMatch{path: field.NewPath(path[0], path[1:]...), errorType: field.ErrorTypeInvalid}
} }
func invalidIndex(index int, path ...string) validationMatch {
return validationMatch{path: field.NewPath(path[0], path[1:]...).Index(index), errorType: field.ErrorTypeInvalid}
}
func unsupported(path ...string) validationMatch {
return validationMatch{path: field.NewPath(path[0], path[1:]...), errorType: field.ErrorTypeNotSupported}
}
func immutable(path ...string) validationMatch {
return validationMatch{path: field.NewPath(path[0], path[1:]...), errorType: field.ErrorTypeInvalid}
}
func forbidden(path ...string) validationMatch {
return validationMatch{path: field.NewPath(path[0], path[1:]...), errorType: field.ErrorTypeForbidden}
}
func (v validationMatch) matches(err *field.Error) bool { func (v validationMatch) matches(err *field.Error) bool {
return err.Type == v.errorType && err.Field == v.path.String() return err.Type == v.errorType && err.Field == v.path.String()

View File

@ -636,6 +636,7 @@ func BenchmarkDeepCopy(b *testing.B) {
b.StartTimer() b.StartTimer()
for i := 0; i < b.N; i++ { for i := 0; i < b.N; i++ {
//lint:ignore SA4010 the result of append is never used, it's acceptable since in benchmark testing.
instances = append(instances, runtime.DeepCopyJSON(obj)) instances = append(instances, runtime.DeepCopyJSON(obj))
} }
} }

View File

@ -149,8 +149,7 @@ func (c *CRDFinalizer) sync(key string) error {
cond, deleteErr := c.deleteInstances(crd) cond, deleteErr := c.deleteInstances(crd)
apiextensions.SetCRDCondition(crd, cond) apiextensions.SetCRDCondition(crd, cond)
if deleteErr != nil { if deleteErr != nil {
crd, err = c.crdClient.CustomResourceDefinitions().UpdateStatus(crd) if _, err = c.crdClient.CustomResourceDefinitions().UpdateStatus(crd); err != nil {
if err != nil {
utilruntime.HandleError(err) utilruntime.HandleError(err)
} }
return deleteErr return deleteErr
@ -165,7 +164,7 @@ func (c *CRDFinalizer) sync(key string) error {
} }
apiextensions.CRDRemoveFinalizer(crd, apiextensions.CustomResourceCleanupFinalizer) apiextensions.CRDRemoveFinalizer(crd, apiextensions.CustomResourceCleanupFinalizer)
crd, err = c.crdClient.CustomResourceDefinitions().UpdateStatus(crd) _, err = c.crdClient.CustomResourceDefinitions().UpdateStatus(crd)
if apierrors.IsNotFound(err) || apierrors.IsConflict(err) { if apierrors.IsNotFound(err) || apierrors.IsConflict(err) {
// deleted or changed in the meantime, we'll get called again // deleted or changed in the meantime, we'll get called again
return nil return nil

View File

@ -342,7 +342,7 @@ func scaleFromCustomResource(cr *unstructured.Unstructured, specReplicasPath, st
var labelSelector string var labelSelector string
if len(labelSelectorPath) > 0 { if len(labelSelectorPath) > 0 {
labelSelectorPath = strings.TrimPrefix(labelSelectorPath, ".") // ignore leading period labelSelectorPath = strings.TrimPrefix(labelSelectorPath, ".") // ignore leading period
labelSelector, found, err = unstructured.NestedString(cr.UnstructuredContent(), strings.Split(labelSelectorPath, ".")...) labelSelector, _, err = unstructured.NestedString(cr.UnstructuredContent(), strings.Split(labelSelectorPath, ".")...)
if err != nil { if err != nil {
return nil, false, err return nil, false, err
} }

View File

@ -524,8 +524,7 @@ func TestDiscovery(t *testing.T) {
scope := apiextensionsv1beta1.NamespaceScoped scope := apiextensionsv1beta1.NamespaceScoped
noxuDefinition := fixtures.NewNoxuCustomResourceDefinition(scope) noxuDefinition := fixtures.NewNoxuCustomResourceDefinition(scope)
noxuDefinition, err = fixtures.CreateNewCustomResourceDefinition(noxuDefinition, apiExtensionClient, dynamicClient) if _, err = fixtures.CreateNewCustomResourceDefinition(noxuDefinition, apiExtensionClient, dynamicClient); err != nil {
if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -828,12 +827,18 @@ func TestCrossNamespaceListWatch(t *testing.T) {
noxuNamespacedResourceClient1 := newNamespacedCustomResourceClient(ns1, dynamicClient, noxuDefinition) noxuNamespacedResourceClient1 := newNamespacedCustomResourceClient(ns1, dynamicClient, noxuDefinition)
instances[ns1] = createInstanceWithNamespaceHelper(t, ns1, "foo1", noxuNamespacedResourceClient1, noxuDefinition) instances[ns1] = createInstanceWithNamespaceHelper(t, ns1, "foo1", noxuNamespacedResourceClient1, noxuDefinition)
noxuNamespacesWatch1, err := noxuNamespacedResourceClient1.Watch(metav1.ListOptions{ResourceVersion: initialListListMeta.GetResourceVersion()}) noxuNamespacesWatch1, err := noxuNamespacedResourceClient1.Watch(metav1.ListOptions{ResourceVersion: initialListListMeta.GetResourceVersion()})
if err != nil {
t.Fatalf("Failed to watch namespace: %s, error: %v", ns1, err)
}
defer noxuNamespacesWatch1.Stop() defer noxuNamespacesWatch1.Stop()
ns2 := "namespace-2" ns2 := "namespace-2"
noxuNamespacedResourceClient2 := newNamespacedCustomResourceClient(ns2, dynamicClient, noxuDefinition) noxuNamespacedResourceClient2 := newNamespacedCustomResourceClient(ns2, dynamicClient, noxuDefinition)
instances[ns2] = createInstanceWithNamespaceHelper(t, ns2, "foo2", noxuNamespacedResourceClient2, noxuDefinition) instances[ns2] = createInstanceWithNamespaceHelper(t, ns2, "foo2", noxuNamespacedResourceClient2, noxuDefinition)
noxuNamespacesWatch2, err := noxuNamespacedResourceClient2.Watch(metav1.ListOptions{ResourceVersion: initialListListMeta.GetResourceVersion()}) noxuNamespacesWatch2, err := noxuNamespacedResourceClient2.Watch(metav1.ListOptions{ResourceVersion: initialListListMeta.GetResourceVersion()})
if err != nil {
t.Fatalf("Failed to watch namespace: %s, error: %v", ns2, err)
}
defer noxuNamespacesWatch2.Stop() defer noxuNamespacesWatch2.Stop()
createdList, err := noxuResourceClient.List(metav1.ListOptions{}) createdList, err := noxuResourceClient.List(metav1.ListOptions{})

View File

@ -73,9 +73,12 @@ func TestChangeCRD(t *testing.T) {
default: default:
} }
time.Sleep(10 * time.Millisecond)
noxuDefinitionToUpdate, err := apiExtensionsClient.ApiextensionsV1beta1().CustomResourceDefinitions().Get(noxuDefinition.Name, metav1.GetOptions{}) noxuDefinitionToUpdate, err := apiExtensionsClient.ApiextensionsV1beta1().CustomResourceDefinitions().Get(noxuDefinition.Name, metav1.GetOptions{})
if err != nil { if err != nil {
t.Fatal(err) t.Error(err)
continue
} }
if len(noxuDefinitionToUpdate.Spec.Versions) == 1 { if len(noxuDefinitionToUpdate.Spec.Versions) == 1 {
v2 := noxuDefinitionToUpdate.Spec.Versions[0] v2 := noxuDefinitionToUpdate.Spec.Versions[0]
@ -87,9 +90,9 @@ func TestChangeCRD(t *testing.T) {
noxuDefinitionToUpdate.Spec.Versions = noxuDefinitionToUpdate.Spec.Versions[0:1] noxuDefinitionToUpdate.Spec.Versions = noxuDefinitionToUpdate.Spec.Versions[0:1]
} }
if _, err := apiExtensionsClient.ApiextensionsV1beta1().CustomResourceDefinitions().Update(noxuDefinitionToUpdate); err != nil && !apierrors.IsConflict(err) { if _, err := apiExtensionsClient.ApiextensionsV1beta1().CustomResourceDefinitions().Update(noxuDefinitionToUpdate); err != nil && !apierrors.IsConflict(err) {
t.Fatal(err) t.Error(err)
continue
} }
time.Sleep(10 * time.Millisecond)
} }
}() }()
@ -100,18 +103,20 @@ func TestChangeCRD(t *testing.T) {
defer wg.Done() defer wg.Done()
noxuInstanceToCreate := fixtures.NewNoxuInstance(ns, fmt.Sprintf("foo-%d", i)) noxuInstanceToCreate := fixtures.NewNoxuInstance(ns, fmt.Sprintf("foo-%d", i))
if _, err := noxuNamespacedResourceClient.Create(noxuInstanceToCreate, metav1.CreateOptions{}); err != nil { if _, err := noxuNamespacedResourceClient.Create(noxuInstanceToCreate, metav1.CreateOptions{}); err != nil {
t.Fatal(err) t.Error(err)
return
} }
for { for {
time.Sleep(10 * time.Millisecond)
select { select {
case <-stopChan: case <-stopChan:
return return
default: default:
if _, err := noxuNamespacedResourceClient.Get(noxuInstanceToCreate.GetName(), metav1.GetOptions{}); err != nil { if _, err := noxuNamespacedResourceClient.Get(noxuInstanceToCreate.GetName(), metav1.GetOptions{}); err != nil {
t.Fatal(err) t.Error(err)
continue
} }
} }
time.Sleep(10 * time.Millisecond)
} }
}(i) }(i)
@ -119,13 +124,15 @@ func TestChangeCRD(t *testing.T) {
go func(i int) { go func(i int) {
defer wg.Done() defer wg.Done()
for { for {
time.Sleep(10 * time.Millisecond)
select { select {
case <-stopChan: case <-stopChan:
return return
default: default:
w, err := noxuNamespacedResourceClient.Watch(metav1.ListOptions{}) w, err := noxuNamespacedResourceClient.Watch(metav1.ListOptions{})
if err != nil { if err != nil {
t.Fatalf("unexpected error establishing watch: %v", err) t.Errorf("unexpected error establishing watch: %v", err)
continue
} }
for event := range w.ResultChan() { for event := range w.ResultChan() {
switch event.Type { switch event.Type {
@ -136,7 +143,6 @@ func TestChangeCRD(t *testing.T) {
} }
} }
} }
time.Sleep(10 * time.Millisecond)
} }
}(i) }(i)
} }

View File

@ -45,7 +45,6 @@ import (
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1" apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
"k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset" "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
"k8s.io/apiextensions-apiserver/pkg/cmd/server/options"
serveroptions "k8s.io/apiextensions-apiserver/pkg/cmd/server/options" serveroptions "k8s.io/apiextensions-apiserver/pkg/cmd/server/options"
apiextensionsfeatures "k8s.io/apiextensions-apiserver/pkg/features" apiextensionsfeatures "k8s.io/apiextensions-apiserver/pkg/features"
"k8s.io/apiextensions-apiserver/test/integration/fixtures" "k8s.io/apiextensions-apiserver/test/integration/fixtures"
@ -271,8 +270,7 @@ func validateStorageVersion(t *testing.T, ctc *conversionTestContext) {
} }
ctc.setAndWaitStorageVersion(t, "v1beta2") ctc.setAndWaitStorageVersion(t, "v1beta2")
obj, err = client.Get(obj.GetName(), metav1.GetOptions{}) if _, err = client.Get(obj.GetName(), metav1.GetOptions{}); err != nil {
if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -942,7 +940,6 @@ type conversionTestContext struct {
namespace string namespace string
apiExtensionsClient clientset.Interface apiExtensionsClient clientset.Interface
dynamicClient dynamic.Interface dynamicClient dynamic.Interface
options *options.CustomResourceDefinitionsServerOptions
crd *apiextensionsv1beta1.CustomResourceDefinition crd *apiextensionsv1beta1.CustomResourceDefinition
etcdObjectReader *storage.EtcdObjectReader etcdObjectReader *storage.EtcdObjectReader
} }

View File

@ -34,6 +34,9 @@ import (
func StartDefaultServer(t servertesting.Logger, flags ...string) (func(), *rest.Config, *options.CustomResourceDefinitionsServerOptions, error) { func StartDefaultServer(t servertesting.Logger, flags ...string) (func(), *rest.Config, *options.CustomResourceDefinitionsServerOptions, error) {
// create kubeconfig which will not actually be used. But authz/authn needs it to startup. // create kubeconfig which will not actually be used. But authz/authn needs it to startup.
fakeKubeConfig, err := ioutil.TempFile("", "kubeconfig") fakeKubeConfig, err := ioutil.TempFile("", "kubeconfig")
if err != nil {
return nil, nil, nil, err
}
fakeKubeConfig.WriteString(` fakeKubeConfig.WriteString(`
apiVersion: v1 apiVersion: v1
kind: Config kind: Config

View File

@ -536,7 +536,7 @@ func TestValidateOnlyStatus(t *testing.T) {
if err != nil { if err != nil {
t.Fatalf("unexpected error setting .status.num: %v", err) t.Fatalf("unexpected error setting .status.num: %v", err)
} }
createdNoxuInstance, err = noxuResourceClient.UpdateStatus(createdNoxuInstance, metav1.UpdateOptions{}) _, err = noxuResourceClient.UpdateStatus(createdNoxuInstance, metav1.UpdateOptions{})
if err == nil { if err == nil {
t.Fatal("expected error, but got none") t.Fatal("expected error, but got none")
} }

View File

@ -582,8 +582,7 @@ spec:
// create CRDs // create CRDs
t.Logf("Creating CRD %s", crd.Name) t.Logf("Creating CRD %s", crd.Name)
crd, err = apiExtensionClient.ApiextensionsV1beta1().CustomResourceDefinitions().Create(crd) if _, err = apiExtensionClient.ApiextensionsV1beta1().CustomResourceDefinitions().Create(crd); err != nil {
if err != nil {
t.Fatalf("unexpected create error: %v", err) t.Fatalf("unexpected create error: %v", err)
} }
@ -613,8 +612,7 @@ spec:
t.Fatalf("unexpected get error: %v", err) t.Fatalf("unexpected get error: %v", err)
} }
crd.Spec.Validation = nil crd.Spec.Validation = nil
crd, err = apiExtensionClient.ApiextensionsV1beta1().CustomResourceDefinitions().Update(crd) if _, err = apiExtensionClient.ApiextensionsV1beta1().CustomResourceDefinitions().Update(crd); apierrors.IsConflict(err) {
if apierrors.IsConflict(err) {
continue continue
} }
if err != nil { if err != nil {
@ -647,8 +645,7 @@ spec:
t.Fatalf("unexpected get error: %v", err) t.Fatalf("unexpected get error: %v", err)
} }
crd.Spec.Validation = &apiextensionsv1beta1.CustomResourceValidation{OpenAPIV3Schema: origSchema} crd.Spec.Validation = &apiextensionsv1beta1.CustomResourceValidation{OpenAPIV3Schema: origSchema}
crd, err = apiExtensionClient.ApiextensionsV1beta1().CustomResourceDefinitions().Update(crd) if _, err = apiExtensionClient.ApiextensionsV1beta1().CustomResourceDefinitions().Update(crd); apierrors.IsConflict(err) {
if apierrors.IsConflict(err) {
continue continue
} }
if err != nil { if err != nil {