From 81725cab3444a000f63d01bc66ce5132f1829d64 Mon Sep 17 00:00:00 2001 From: Bowei Du Date: Wed, 17 Jan 2018 21:57:19 -0800 Subject: [PATCH 1/2] Update Forwarding rules to use generated code --- .../providers/gce/gce_forwardingrule.go | 72 ++++++------------- test/e2e/network/network_tiers.go | 2 +- 2 files changed, 23 insertions(+), 51 deletions(-) diff --git a/pkg/cloudprovider/providers/gce/gce_forwardingrule.go b/pkg/cloudprovider/providers/gce/gce_forwardingrule.go index f674b205705..1dff3a76121 100644 --- a/pkg/cloudprovider/providers/gce/gce_forwardingrule.go +++ b/pkg/cloudprovider/providers/gce/gce_forwardingrule.go @@ -17,8 +17,12 @@ limitations under the License. package gce import ( + "context" + computealpha "google.golang.org/api/compute/v0.alpha" compute "google.golang.org/api/compute/v1" + "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter" + "k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta" ) func newForwardingRuleMetricContext(request, region string) *metricContext { @@ -31,79 +35,62 @@ func newForwardingRuleMetricContextWithVersion(request, region, version string) // CreateGlobalForwardingRule creates the passed GlobalForwardingRule func (gce *GCECloud) CreateGlobalForwardingRule(rule *compute.ForwardingRule) error { mc := newForwardingRuleMetricContext("create", "") - op, err := gce.service.GlobalForwardingRules.Insert(gce.projectID, rule).Do() - if err != nil { - return mc.Observe(err) - } - return gce.waitForGlobalOp(op, mc) + return mc.Observe(gce.c.GlobalForwardingRules().Insert(context.Background(), meta.GlobalKey(rule.Name), rule)) } // SetProxyForGlobalForwardingRule links the given TargetHttp(s)Proxy with the given GlobalForwardingRule. // targetProxyLink is the SelfLink of a TargetHttp(s)Proxy. func (gce *GCECloud) SetProxyForGlobalForwardingRule(forwardingRuleName, targetProxyLink string) error { mc := newForwardingRuleMetricContext("set_proxy", "") - op, err := gce.service.GlobalForwardingRules.SetTarget( - gce.projectID, forwardingRuleName, &compute.TargetReference{Target: targetProxyLink}).Do() - if err != nil { - return mc.Observe(err) - } - - return gce.waitForGlobalOp(op, mc) + target := &compute.TargetReference{Target: targetProxyLink} + return mc.Observe(gce.c.GlobalForwardingRules().SetTarget(context.Background(), meta.GlobalKey(forwardingRuleName), target)) } -// DeleteGlobalForwardingRule deletes the GlobalForwardingRule by name. +// DeleteGlobalForwardingRule deletes the GlobalForwakdingRule by name. func (gce *GCECloud) DeleteGlobalForwardingRule(name string) error { mc := newForwardingRuleMetricContext("delete", "") - op, err := gce.service.GlobalForwardingRules.Delete(gce.projectID, name).Do() - if err != nil { - return mc.Observe(err) - } - - return gce.waitForGlobalOp(op, mc) + return mc.Observe(gce.c.GlobalForwardingRules().Delete(context.Background(), meta.GlobalKey(name))) } // GetGlobalForwardingRule returns the GlobalForwardingRule by name. func (gce *GCECloud) GetGlobalForwardingRule(name string) (*compute.ForwardingRule, error) { mc := newForwardingRuleMetricContext("get", "") - v, err := gce.service.GlobalForwardingRules.Get(gce.projectID, name).Do() + v, err := gce.c.GlobalForwardingRules().Get(context.Background(), meta.GlobalKey(name)) return v, mc.Observe(err) } // ListGlobalForwardingRules lists all GlobalForwardingRules in the project. -func (gce *GCECloud) ListGlobalForwardingRules() (*compute.ForwardingRuleList, error) { +func (gce *GCECloud) ListGlobalForwardingRules() ([]*compute.ForwardingRule, error) { mc := newForwardingRuleMetricContext("list", "") - // TODO: use PageToken to list all not just the first 500 - v, err := gce.service.GlobalForwardingRules.List(gce.projectID).Do() + v, err := gce.c.GlobalForwardingRules().List(context.Background(), filter.None) return v, mc.Observe(err) } // GetRegionForwardingRule returns the RegionalForwardingRule by name & region. func (gce *GCECloud) GetRegionForwardingRule(name, region string) (*compute.ForwardingRule, error) { mc := newForwardingRuleMetricContext("get", region) - v, err := gce.service.ForwardingRules.Get(gce.projectID, region, name).Do() + v, err := gce.c.ForwardingRules().Get(context.Background(), meta.RegionalKey(name, region)) return v, mc.Observe(err) } // GetAlphaRegionForwardingRule returns the Alpha forwarding rule by name & region. func (gce *GCECloud) GetAlphaRegionForwardingRule(name, region string) (*computealpha.ForwardingRule, error) { mc := newForwardingRuleMetricContextWithVersion("get", region, computeAlphaVersion) - v, err := gce.serviceAlpha.ForwardingRules.Get(gce.projectID, region, name).Do() + v, err := gce.c.AlphaForwardingRules().Get(context.Background(), meta.RegionalKey(name, region)) return v, mc.Observe(err) } // ListRegionForwardingRules lists all RegionalForwardingRules in the project & region. -func (gce *GCECloud) ListRegionForwardingRules(region string) (*compute.ForwardingRuleList, error) { +func (gce *GCECloud) ListRegionForwardingRules(region string) ([]*compute.ForwardingRule, error) { mc := newForwardingRuleMetricContext("list", region) - // TODO: use PageToken to list all not just the first 500 - v, err := gce.service.ForwardingRules.List(gce.projectID, region).Do() + v, err := gce.c.ForwardingRules().List(context.Background(), region, filter.None) return v, mc.Observe(err) } -// ListRegionForwardingRules lists all RegionalForwardingRules in the project & region. -func (gce *GCECloud) ListAlphaRegionForwardingRules(region string) (*computealpha.ForwardingRuleList, error) { +// ListAlphaRegionForwardingRules lists all RegionalForwardingRules in the project & region. +func (gce *GCECloud) ListAlphaRegionForwardingRules(region string) ([]*computealpha.ForwardingRule, error) { mc := newForwardingRuleMetricContextWithVersion("list", region, computeAlphaVersion) - // TODO: use PageToken to list all not just the first 500 - v, err := gce.serviceAlpha.ForwardingRules.List(gce.projectID, region).Do() + v, err := gce.c.AlphaForwardingRules().List(context.Background(), region, filter.None) return v, mc.Observe(err) } @@ -111,35 +98,20 @@ func (gce *GCECloud) ListAlphaRegionForwardingRules(region string) (*computealph // RegionalForwardingRule that points to the given BackendService func (gce *GCECloud) CreateRegionForwardingRule(rule *compute.ForwardingRule, region string) error { mc := newForwardingRuleMetricContext("create", region) - op, err := gce.service.ForwardingRules.Insert(gce.projectID, region, rule).Do() - if err != nil { - return mc.Observe(err) - } - - return gce.waitForRegionOp(op, region, mc) + return mc.Observe(gce.c.ForwardingRules().Insert(context.Background(), meta.RegionalKey(rule.Name, region), rule)) } // CreateAlphaRegionForwardingRule creates and returns an Alpha // forwarding fule in the given region. func (gce *GCECloud) CreateAlphaRegionForwardingRule(rule *computealpha.ForwardingRule, region string) error { mc := newForwardingRuleMetricContextWithVersion("create", region, computeAlphaVersion) - op, err := gce.serviceAlpha.ForwardingRules.Insert(gce.projectID, region, rule).Do() - if err != nil { - return mc.Observe(err) - } - - return gce.waitForRegionOp(op, region, mc) + return mc.Observe(gce.c.AlphaForwardingRules().Insert(context.Background(), meta.RegionalKey(rule.Name, region), rule)) } // DeleteRegionForwardingRule deletes the RegionalForwardingRule by name & region. func (gce *GCECloud) DeleteRegionForwardingRule(name, region string) error { mc := newForwardingRuleMetricContext("delete", region) - op, err := gce.service.ForwardingRules.Delete(gce.projectID, region, name).Do() - if err != nil { - return mc.Observe(err) - } - - return gce.waitForRegionOp(op, region, mc) + return mc.Observe(gce.c.ForwardingRules().Delete(context.Background(), meta.RegionalKey(name, region))) } // TODO(#51665): retire this function once Network Tiers becomes Beta in GCP. diff --git a/test/e2e/network/network_tiers.go b/test/e2e/network/network_tiers.go index d3a14aab221..db00c788af5 100644 --- a/test/e2e/network/network_tiers.go +++ b/test/e2e/network/network_tiers.go @@ -195,7 +195,7 @@ func getGCEForwardingRuleByIP(ip string) (*computealpha.ForwardingRule, error) { if err != nil { return nil, err } - for _, rule := range ruleList.Items { + for _, rule := range ruleList { if rule.IPAddress == ip { return rule, nil } From 0fbfc23b26061a78a5f07f56b15ff0e46e62c61f Mon Sep 17 00:00:00 2001 From: Bowei Du Date: Wed, 17 Jan 2018 22:00:08 -0800 Subject: [PATCH 2/2] Update bazel --- pkg/cloudprovider/providers/gce/BUILD | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/cloudprovider/providers/gce/BUILD b/pkg/cloudprovider/providers/gce/BUILD index c6583798dc8..034e4a4a895 100644 --- a/pkg/cloudprovider/providers/gce/BUILD +++ b/pkg/cloudprovider/providers/gce/BUILD @@ -49,6 +49,7 @@ go_library( "//pkg/api/v1/service:go_default_library", "//pkg/cloudprovider:go_default_library", "//pkg/cloudprovider/providers/gce/cloud:go_default_library", + "//pkg/cloudprovider/providers/gce/cloud/filter:go_default_library", "//pkg/cloudprovider/providers/gce/cloud/meta:go_default_library", "//pkg/controller:go_default_library", "//pkg/kubelet/apis:go_default_library",