From 2c2dc983650130e56c673b52cb3b31f9ac519ee9 Mon Sep 17 00:00:00 2001 From: Enxebre Date: Wed, 14 Mar 2018 14:53:00 +0100 Subject: [PATCH 1/3] cli: add gometalinter support --- Jenkinsfile | 1 + WORKSPACE | 13 +++ installer/BUILD.bazel | 130 +++++++++++++++++++++ installer/cmd/tectonic/BUILD.bazel | 8 ++ installer/pkg/config-generator/BUILD.bazel | 8 ++ installer/pkg/config/BUILD.bazel | 8 ++ installer/pkg/config/aws/BUILD.bazel | 8 ++ installer/pkg/config/azure/BUILD.bazel | 8 ++ installer/pkg/config/gcp/BUILD.bazel | 8 ++ installer/pkg/config/govcloud/BUILD.bazel | 8 ++ installer/pkg/config/metal/BUILD.bazel | 8 ++ installer/pkg/config/openstack/BUILD.bazel | 8 ++ installer/pkg/config/vmware/BUILD.bazel | 8 ++ installer/pkg/validate/BUILD.bazel | 8 ++ installer/pkg/workflow/BUILD.bazel | 8 ++ installer/pkg/workflow/workflow.go | 4 +- 16 files changed, 242 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index c10430a7aa..a2566e9983 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -162,6 +162,7 @@ pipeline { withDockerContainer(tectonicBazelImage) { sh "bazel test terraform_fmt --test_output=all" sh "bazel test installer:cli_units --test_output=all" + sh "bazel test installer:cli_gometalinter --test_output=all" sh"""#!/bin/bash -ex bazel build tarball tests/smoke diff --git a/WORKSPACE b/WORKSPACE index 12b54518fd..4f7cfb3671 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -4,6 +4,8 @@ terrafom_version = "0.11.2" provider_matchbox_version = "0.2.2" +gometalinter_version="2.0.5" + supported_platforms = [ "linux", "darwin", @@ -54,3 +56,14 @@ visibility = ["//visibility:public"] strip_prefix = "terraform-provider-matchbox-v%s-%s-amd64/" % (provider_matchbox_version, platform), url = "https://github.com/coreos/terraform-provider-matchbox/releases/download/v%s/terraform-provider-matchbox-v%s-%s-amd64.tar.gz" % (provider_matchbox_version, provider_matchbox_version, platform), ) for platform in supported_platforms] + +[new_http_archive( + name = "gometalinter_runtime_%s" % platform, + build_file_content = """exports_files( +["gometalinter", "golint", "govet", "gocyclo", "misspell", "dupl"], +visibility = ["//visibility:public"] +)""", + strip_prefix = "gometalinter-%s-%s-amd64/" % (gometalinter_version, platform), + type = "tar.gz", + url = "https://github.com/alecthomas/gometalinter/releases/download/v%s/gometalinter-%s-%s-amd64.tar.gz" % (gometalinter_version, gometalinter_version, platform), +) for platform in supported_platforms] diff --git a/installer/BUILD.bazel b/installer/BUILD.bazel index fa2cfd519b..8fe0f90d64 100644 --- a/installer/BUILD.bazel +++ b/installer/BUILD.bazel @@ -7,3 +7,133 @@ test_suite( "//installer/pkg/workflow:go_default_test", ], ) + +genrule( + name = "gometalinter_runtime", + srcs = select({ + "//:darwin": ["@gometalinter_runtime_darwin//:gometalinter"], + "//:linux": ["@gometalinter_runtime_linux//:gometalinter"], + }), + outs = ["bin/gometalinter"], + cmd = "cp $(<) $(@)", + executable = True, + output_to_bindir = 1, +) + +genrule( + name = "golint_runtime", + srcs = select({ + "//:darwin": ["@gometalinter_runtime_darwin//:golint"], + "//:linux": ["@gometalinter_runtime_linux//:golint"], + }), + outs = ["bin/golint"], + cmd = "cp $(<) $(@)", + executable = True, + output_to_bindir = 1, +) + +genrule( + name = "govet_runtime", + srcs = select({ + "//:darwin": ["@gometalinter_runtime_darwin//:govet"], + "//:linux": ["@gometalinter_runtime_linux//:govet"], + }), + outs = ["bin/govet"], + cmd = "cp $(<) $(@)", + executable = True, + output_to_bindir = 1, +) + +genrule( + name = "gocyclo_runtime", + srcs = select({ + "//:darwin": ["@gometalinter_runtime_darwin//:gocyclo"], + "//:linux": ["@gometalinter_runtime_linux//:gocyclo"], + }), + outs = ["bin/gocyclo"], + cmd = "cp $(<) $(@)", + executable = True, + output_to_bindir = 1, +) + +genrule( + name = "misspell_runtime", + srcs = select({ + "//:darwin": ["@gometalinter_runtime_darwin//:misspell"], + "//:linux": ["@gometalinter_runtime_linux//:misspell"], + }), + outs = ["bin/misspell"], + cmd = "cp $(<) $(@)", + executable = True, + output_to_bindir = 1, +) + +genrule( + name = "dupl_runtime", + srcs = select({ + "//:darwin": ["@gometalinter_runtime_darwin//:dupl"], + "//:linux": ["@gometalinter_runtime_linux//:dupl"], + }), + outs = ["bin/dupl"], + cmd = "cp $(<) $(@)", + executable = True, + output_to_bindir = 1, +) + +genrule( + name = "gometalinter_sh", + outs = ["gometalinter.sh"], + cmd = "printf '" + '\n'.join([ + "#!/bin/bash -ex", + "export PATH=./installer/bin", + "export HOME=test", + "./installer/bin/gometalinter --deadline=240s --disable-all \ + --exclude=\"pkg\\/config\\/validate.*\\.go.*\\(dupl\\)$$\" \ + --cyclo-over=20 \ + --enable=golint \ + --enable=vet \ + --enable=gocyclo \ + --enable=misspell \ + --enable=dupl \ + installer/cmd/tectonic \ + installer/pkg/config \ + installer/pkg/config/aws \ + installer/pkg/config/azure \ + installer/pkg/config/gcp \ + installer/pkg/config/govcloud \ + installer/pkg/config/metal \ + installer/pkg/config/openstack \ + installer/pkg/config/vmware \ + installer/pkg/config-generator \ + installer/pkg/terraform-generator \ + installer/pkg/workflow", + ]) + "' > $@", + testonly = 1, +) + +sh_test( + name = "cli_gometalinter", + size = "large", + srcs = [":gometalinter_sh"], + data = [ + "//installer/cmd/tectonic:go_files", + "//installer/pkg/config:go_files", + "//installer/pkg/config/aws:go_files", + "//installer/pkg/config/azure:go_files", + "//installer/pkg/config/gcp:go_files", + "//installer/pkg/config/govcloud:go_files", + "//installer/pkg/config/metal:go_files", + "//installer/pkg/config/openstack:go_files", + "//installer/pkg/config/vmware:go_files", + "//installer/pkg/config-generator:go_files", + "//installer/pkg/terraform-generator:go_files", + "//installer/pkg/workflow:go_files", + "//installer:gometalinter_runtime", + "//installer:golint_runtime", + "//installer:govet_runtime", + "//installer:gocyclo_runtime", + "//installer:misspell_runtime", + "//installer:dupl_runtime", + ], +) + diff --git a/installer/cmd/tectonic/BUILD.bazel b/installer/cmd/tectonic/BUILD.bazel index de0b70758b..ee38484b97 100644 --- a/installer/cmd/tectonic/BUILD.bazel +++ b/installer/cmd/tectonic/BUILD.bazel @@ -49,3 +49,11 @@ go_binary( pure = "on", visibility = ["//visibility:public"], ) + +filegroup( + name = "go_files", + visibility = ["//visibility:public"], + srcs = glob([ + "*.go", + ]), +) diff --git a/installer/pkg/config-generator/BUILD.bazel b/installer/pkg/config-generator/BUILD.bazel index 02bce6f524..6a2f770cec 100644 --- a/installer/pkg/config-generator/BUILD.bazel +++ b/installer/pkg/config-generator/BUILD.bazel @@ -30,3 +30,11 @@ go_test( embed = [":go_default_library"], deps = ["//installer/pkg/config:go_default_library"], ) + +filegroup( + name = "go_files", + visibility = ["//visibility:public"], + srcs = glob([ + "*.go", + ]), +) diff --git a/installer/pkg/config/BUILD.bazel b/installer/pkg/config/BUILD.bazel index 7a96e5fd5f..63714d9c96 100644 --- a/installer/pkg/config/BUILD.bazel +++ b/installer/pkg/config/BUILD.bazel @@ -29,3 +29,11 @@ go_library( "//installer/vendor/gopkg.in/yaml.v2:go_default_library", ], ) + +filegroup( + name = "go_files", + visibility = ["//visibility:public"], + srcs = glob([ + "*.go", + ]), +) diff --git a/installer/pkg/config/aws/BUILD.bazel b/installer/pkg/config/aws/BUILD.bazel index 9520cd11b7..5c0a44b251 100644 --- a/installer/pkg/config/aws/BUILD.bazel +++ b/installer/pkg/config/aws/BUILD.bazel @@ -8,3 +8,11 @@ go_library( importpath = "github.com/coreos/tectonic-installer/installer/pkg/config/aws", visibility = ["//visibility:public"], ) + +filegroup( + name = "go_files", + visibility = ["//visibility:public"], + srcs = glob([ + "*.go", + ]), +) diff --git a/installer/pkg/config/azure/BUILD.bazel b/installer/pkg/config/azure/BUILD.bazel index 5f7d302497..87779310ec 100644 --- a/installer/pkg/config/azure/BUILD.bazel +++ b/installer/pkg/config/azure/BUILD.bazel @@ -8,3 +8,11 @@ go_library( importpath = "github.com/coreos/tectonic-installer/installer/pkg/config/azure", visibility = ["//visibility:public"], ) + +filegroup( + name = "go_files", + visibility = ["//visibility:public"], + srcs = glob([ + "*.go", + ]), +) diff --git a/installer/pkg/config/gcp/BUILD.bazel b/installer/pkg/config/gcp/BUILD.bazel index a850198db8..2163f3fde2 100644 --- a/installer/pkg/config/gcp/BUILD.bazel +++ b/installer/pkg/config/gcp/BUILD.bazel @@ -8,3 +8,11 @@ go_library( importpath = "github.com/coreos/tectonic-installer/installer/pkg/config/gcp", visibility = ["//visibility:public"], ) + +filegroup( + name = "go_files", + visibility = ["//visibility:public"], + srcs = glob([ + "*.go", + ]), +) diff --git a/installer/pkg/config/govcloud/BUILD.bazel b/installer/pkg/config/govcloud/BUILD.bazel index 166fe1e78c..384151e149 100644 --- a/installer/pkg/config/govcloud/BUILD.bazel +++ b/installer/pkg/config/govcloud/BUILD.bazel @@ -8,3 +8,11 @@ go_library( importpath = "github.com/coreos/tectonic-installer/installer/pkg/config/govcloud", visibility = ["//visibility:public"], ) + +filegroup( + name = "go_files", + visibility = ["//visibility:public"], + srcs = glob([ + "*.go", + ]), +) diff --git a/installer/pkg/config/metal/BUILD.bazel b/installer/pkg/config/metal/BUILD.bazel index 094d1b0ec0..9d6aefbd35 100644 --- a/installer/pkg/config/metal/BUILD.bazel +++ b/installer/pkg/config/metal/BUILD.bazel @@ -8,3 +8,11 @@ go_library( importpath = "github.com/coreos/tectonic-installer/installer/pkg/config/metal", visibility = ["//visibility:public"], ) + +filegroup( + name = "go_files", + visibility = ["//visibility:public"], + srcs = glob([ + "*.go", + ]), +) diff --git a/installer/pkg/config/openstack/BUILD.bazel b/installer/pkg/config/openstack/BUILD.bazel index b57d97bf98..608558a3d9 100644 --- a/installer/pkg/config/openstack/BUILD.bazel +++ b/installer/pkg/config/openstack/BUILD.bazel @@ -8,3 +8,11 @@ go_library( importpath = "github.com/coreos/tectonic-installer/installer/pkg/config/openstack", visibility = ["//visibility:public"], ) + +filegroup( + name = "go_files", + visibility = ["//visibility:public"], + srcs = glob([ + "*.go", + ]), +) diff --git a/installer/pkg/config/vmware/BUILD.bazel b/installer/pkg/config/vmware/BUILD.bazel index d46c987095..308499c23f 100644 --- a/installer/pkg/config/vmware/BUILD.bazel +++ b/installer/pkg/config/vmware/BUILD.bazel @@ -8,3 +8,11 @@ go_library( importpath = "github.com/coreos/tectonic-installer/installer/pkg/config/vmware", visibility = ["//visibility:public"], ) + +filegroup( + name = "go_files", + visibility = ["//visibility:public"], + srcs = glob([ + "*.go", + ]), +) diff --git a/installer/pkg/validate/BUILD.bazel b/installer/pkg/validate/BUILD.bazel index f3f0d9f05f..42b638ee68 100644 --- a/installer/pkg/validate/BUILD.bazel +++ b/installer/pkg/validate/BUILD.bazel @@ -12,3 +12,11 @@ go_library( importpath = "github.com/coreos/tectonic-installer/installer/pkg/validate", visibility = ["//visibility:public"], ) + +filegroup( + name = "go_files", + visibility = ["//visibility:public"], + srcs = glob([ + "*.go", + ]), +) diff --git a/installer/pkg/workflow/BUILD.bazel b/installer/pkg/workflow/BUILD.bazel index 7cf7a53db3..d7eac399b6 100644 --- a/installer/pkg/workflow/BUILD.bazel +++ b/installer/pkg/workflow/BUILD.bazel @@ -35,3 +35,11 @@ go_library( "//installer/vendor/k8s.io/client-go/tools/clientcmd:go_default_library", ], ) + +filegroup( + name = "go_files", + visibility = ["//visibility:public"], + srcs = glob([ + "*.go", + ]), +) diff --git a/installer/pkg/workflow/workflow.go b/installer/pkg/workflow/workflow.go index 849b1d92c5..14f85019a8 100644 --- a/installer/pkg/workflow/workflow.go +++ b/installer/pkg/workflow/workflow.go @@ -6,7 +6,7 @@ import "github.com/coreos/tectonic-installer/installer/pkg/config" // It is meant to carry state for one step to another. // When creating a new workflow, initial state from external parameters // is also injected by when initializing the metadata object. -// Steps taked thier inputs from the metadata object and persist +// Steps taked their inputs from the metadata object and persist // results onto it for later consumption. type metadata struct { cluster config.Cluster @@ -16,7 +16,7 @@ type metadata struct { // Step is the entrypoint of a workflow step implementation. // To add a new step, put your logic in a function that matches this signature. -// Next, add a refrence to this new function in a Workflow's steps list. +// Next, add a reference to this new function in a Workflow's steps list. type Step func(*metadata) error // Workflow is a high-level representation From 6146b32f9b2c5a3b2593e8f403b852c5ccbb9656 Mon Sep 17 00:00:00 2001 From: Enxebre Date: Wed, 21 Mar 2018 11:45:46 +0100 Subject: [PATCH 2/3] cli: cleanup gometalinter --- Jenkinsfile | 2 +- installer/BUILD.bazel | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index a2566e9983..2bd46e4c69 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -162,7 +162,7 @@ pipeline { withDockerContainer(tectonicBazelImage) { sh "bazel test terraform_fmt --test_output=all" sh "bazel test installer:cli_units --test_output=all" - sh "bazel test installer:cli_gometalinter --test_output=all" + sh "bazel test installer:gometalinter --test_output=all" sh"""#!/bin/bash -ex bazel build tarball tests/smoke diff --git a/installer/BUILD.bazel b/installer/BUILD.bazel index 8fe0f90d64..14615ae1b8 100644 --- a/installer/BUILD.bazel +++ b/installer/BUILD.bazel @@ -89,6 +89,7 @@ genrule( "export HOME=test", "./installer/bin/gometalinter --deadline=240s --disable-all \ --exclude=\"pkg\\/config\\/validate.*\\.go.*\\(dupl\\)$$\" \ + --exclude=\"pkg\\/validate.*\\.go.*\\(dupl\\)$$\" \ --cyclo-over=20 \ --enable=golint \ --enable=vet \ @@ -96,6 +97,7 @@ genrule( --enable=misspell \ --enable=dupl \ installer/cmd/tectonic \ + installer/pkg/validate \ installer/pkg/config \ installer/pkg/config/aws \ installer/pkg/config/azure \ @@ -105,18 +107,18 @@ genrule( installer/pkg/config/openstack \ installer/pkg/config/vmware \ installer/pkg/config-generator \ - installer/pkg/terraform-generator \ installer/pkg/workflow", ]) + "' > $@", testonly = 1, ) sh_test( - name = "cli_gometalinter", - size = "large", + name = "gometalinter", + size = "small", srcs = [":gometalinter_sh"], data = [ "//installer/cmd/tectonic:go_files", + "//installer/pkg/validate:go_files", "//installer/pkg/config:go_files", "//installer/pkg/config/aws:go_files", "//installer/pkg/config/azure:go_files", @@ -126,7 +128,6 @@ sh_test( "//installer/pkg/config/openstack:go_files", "//installer/pkg/config/vmware:go_files", "//installer/pkg/config-generator:go_files", - "//installer/pkg/terraform-generator:go_files", "//installer/pkg/workflow:go_files", "//installer:gometalinter_runtime", "//installer:golint_runtime", From 7f6454979bf75086944e345e59e27ac4c017941d Mon Sep 17 00:00:00 2001 From: Enxebre Date: Thu, 22 Mar 2018 10:48:42 +0100 Subject: [PATCH 3/3] cli: add smoke tests code to gometalinter --- installer/BUILD.bazel | 5 ++- tests/smoke/BUILD.bazel | 10 +++++ tests/smoke/cluster_test.go | 89 +++++++++++++++++-------------------- 3 files changed, 54 insertions(+), 50 deletions(-) diff --git a/installer/BUILD.bazel b/installer/BUILD.bazel index 14615ae1b8..cb6a1e5b7e 100644 --- a/installer/BUILD.bazel +++ b/installer/BUILD.bazel @@ -91,6 +91,7 @@ genrule( --exclude=\"pkg\\/config\\/validate.*\\.go.*\\(dupl\\)$$\" \ --exclude=\"pkg\\/validate.*\\.go.*\\(dupl\\)$$\" \ --cyclo-over=20 \ + --dupl-threshold=75 \ --enable=golint \ --enable=vet \ --enable=gocyclo \ @@ -107,7 +108,8 @@ genrule( installer/pkg/config/openstack \ installer/pkg/config/vmware \ installer/pkg/config-generator \ - installer/pkg/workflow", + installer/pkg/workflow, \ + tests/smoke", ]) + "' > $@", testonly = 1, ) @@ -129,6 +131,7 @@ sh_test( "//installer/pkg/config/vmware:go_files", "//installer/pkg/config-generator:go_files", "//installer/pkg/workflow:go_files", + "//tests/smoke:go_files", "//installer:gometalinter_runtime", "//installer:golint_runtime", "//installer:govet_runtime", diff --git a/tests/smoke/BUILD.bazel b/tests/smoke/BUILD.bazel index dca6d62523..dea809fca5 100644 --- a/tests/smoke/BUILD.bazel +++ b/tests/smoke/BUILD.bazel @@ -26,6 +26,7 @@ go_test( "//tests/smoke/vendor/k8s.io/client-go/tools/clientcmd:go_default_library", "//tests/smoke/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util:go_default_library", "//tests/smoke/vendor/k8s.io/kubernetes/pkg/kubectl/resource:go_default_library", + "//tests/smoke/vendor/k8s.io/client-go/rest:go_default_library", ], ) @@ -52,6 +53,7 @@ go_test( "//tests/smoke/vendor/k8s.io/client-go/tools/clientcmd:go_default_library", "//tests/smoke/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util:go_default_library", "//tests/smoke/vendor/k8s.io/kubernetes/pkg/kubectl/resource:go_default_library", + "//tests/smoke/vendor/k8s.io/client-go/rest:go_default_library", ], ) @@ -63,3 +65,11 @@ filegroup( ], visibility = ["//visibility:public"], ) + +filegroup( + name = "go_files", + visibility = ["//visibility:public"], + srcs = glob([ + "*.go", + ]), +) diff --git a/tests/smoke/cluster_test.go b/tests/smoke/cluster_test.go index 7f7140e4a9..f151167543 100644 --- a/tests/smoke/cluster_test.go +++ b/tests/smoke/cluster_test.go @@ -24,6 +24,7 @@ import ( "k8s.io/client-go/pkg/api/v1" "k8s.io/client-go/pkg/apis/extensions/v1beta1" rbacv1beta1 "k8s.io/client-go/pkg/apis/rbac/v1beta1" + "k8s.io/client-go/rest" "k8s.io/client-go/tools/clientcmd" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" @@ -396,6 +397,26 @@ roleRef: apiGroup: rbac.authorization.k8s.io `) +func nginxIsReachable(t *testing.T, nginx *testworkload.Nginx) error { + return wait.Poll(10*time.Second, 2*time.Minute, func() (bool, error) { + if err := nginx.IsReachable(); err != nil { + t.Logf("error not reachable %s: %v", nginx.Name, err) + return false, nil + } + return true, nil + }) +} + +func nginxIsUnReachable(t *testing.T, nginx *testworkload.Nginx) error { + return wait.Poll(10*time.Second, 2*time.Minute, func() (bool, error) { + if err := nginx.IsUnReachable(); err != nil { + t.Logf("error still reachable %s: %v", nginx.Name, err) + return false, nil + } + return true, nil + }) +} + // testNetworkPolicy permforms 3 tests: // * first ping test to check if network is setup correctly and reachable. // * second ping test after setting `default-deny` policy on `network-policy-test` namespace @@ -455,13 +476,7 @@ func testNetworkPolicy(t *testing.T) { } defer nginx.Delete() - if err := wait.Poll(10*time.Second, 2*time.Minute, func() (bool, error) { - if err := nginx.IsReachable(); err != nil { - t.Logf("error not reachable %s: %v", nginx.Name, err) - return false, nil - } - return true, nil - }); err != nil { + if err := nginxIsReachable(t, nginx); err != nil { t.Fatalf("network not set up correctly: %v", err) } @@ -469,6 +484,20 @@ func testNetworkPolicy(t *testing.T) { t.Run("NetworkPolicy", func(t *testing.T) { testAllowNetworkPolicy(t, client, namespace, nginx) }) } +func cleanNetworkPolicies(t *testing.T, httpRestClient rest.Interface, namespace string, np *v1beta1.NetworkPolicy) { + uri := fmt.Sprintf("/apis/%s/%s/namespaces/%s/%s/%s", + strings.ToLower("extensions"), + strings.ToLower("v1beta1"), + strings.ToLower(namespace), + strings.ToLower("NetworkPolicies"), + strings.ToLower(np.ObjectMeta.Name)) + + result := httpRestClient.Delete().RequestURI(uri).Do() + if result.Error() != nil { + t.Fatal(result.Error()) + } +} + func testDefaultDenyNetworkPolicy(t *testing.T, client kubernetes.Interface, namespace string, nginx *testworkload.Nginx) { var defaultDenyNetworkPolicy = []byte(`kind: NetworkPolicy apiVersion: extensions/v1beta1 @@ -498,28 +527,9 @@ spec: if result.Error() != nil { t.Fatal(result.Error()) } - defer func() { - uri = fmt.Sprintf("/apis/%s/%s/namespaces/%s/%s/%s", - strings.ToLower("extensions"), - strings.ToLower("v1beta1"), - strings.ToLower(namespace), - strings.ToLower("NetworkPolicies"), - strings.ToLower(np.ObjectMeta.Name)) - - result = httpRestClient.Delete().RequestURI(uri).Do() - if result.Error() != nil { - t.Fatal(result.Error()) - } + defer cleanNetworkPolicies(t, httpRestClient, namespace, np) - }() - - if err := wait.Poll(10*time.Second, 2*time.Minute, func() (bool, error) { - if err := nginx.IsUnReachable(); err != nil { - t.Logf("error still reachable %s: %v", nginx.Name, err) - return false, nil - } - return true, nil - }); err != nil { + if err := nginxIsUnReachable(t, nginx); err != nil { t.Fatalf("default deny failed: %v", err) } } @@ -561,28 +571,9 @@ spec: if result.Error() != nil { t.Fatal(result.Error()) } - defer func() { - uri = fmt.Sprintf("/apis/%s/%s/namespaces/%s/%s/%s", - strings.ToLower("extensions"), - strings.ToLower("v1beta1"), - strings.ToLower(namespace), - strings.ToLower("NetworkPolicies"), - strings.ToLower(np.ObjectMeta.Name)) - - result = httpRestClient.Delete().RequestURI(uri).Do() - if result.Error() != nil { - t.Fatal(result.Error()) - } - - }() + defer cleanNetworkPolicies(t, httpRestClient, namespace, np) - if err := wait.Poll(10*time.Second, 2*time.Minute, func() (bool, error) { - if err := nginx.IsReachable(); err != nil { - t.Logf("error not reachable %s: %v", nginx.Name, err) - return false, nil - } - return true, nil - }); err != nil { + if err := nginxIsReachable(t, nginx); err != nil { t.Fatalf("allow nginx network policy failed: %v", err) } }