Refactor: Plumb context through GCE firewallRule methods

Helps with more coherent tracing/logging.
This commit is contained in:
justinsb 2024-01-12 22:00:23 -05:00
parent 862fe05197
commit 6871aa7148
4 changed files with 21 additions and 17 deletions

View File

@ -53,7 +53,7 @@ func (c *forwardingRuleClient) All() map[string]interface{} {
return m return m
} }
func (c *forwardingRuleClient) Insert(project, region string, fr *compute.ForwardingRule) (*compute.Operation, error) { func (c *forwardingRuleClient) Insert(ctx context.Context, project, region string, fr *compute.ForwardingRule) (*compute.Operation, error) {
c.Lock() c.Lock()
defer c.Unlock() defer c.Unlock()
regions, ok := c.forwardingRules[project] regions, ok := c.forwardingRules[project]
@ -91,7 +91,7 @@ func (c *forwardingRuleClient) SetLabels(ctx context.Context, project, region, n
return doneOperation(), nil return doneOperation(), nil
} }
func (c *forwardingRuleClient) Delete(project, region, name string) (*compute.Operation, error) { func (c *forwardingRuleClient) Delete(ctx context.Context, project, region, name string) (*compute.Operation, error) {
c.Lock() c.Lock()
defer c.Unlock() defer c.Unlock()
regions, ok := c.forwardingRules[project] regions, ok := c.forwardingRules[project]
@ -109,7 +109,7 @@ func (c *forwardingRuleClient) Delete(project, region, name string) (*compute.Op
return doneOperation(), nil return doneOperation(), nil
} }
func (c *forwardingRuleClient) Get(project, region, name string) (*compute.ForwardingRule, error) { func (c *forwardingRuleClient) Get(ctx context.Context, project, region, name string) (*compute.ForwardingRule, error) {
c.Lock() c.Lock()
defer c.Unlock() defer c.Unlock()
regions, ok := c.forwardingRules[project] regions, ok := c.forwardingRules[project]

View File

@ -500,6 +500,8 @@ func (d *clusterDiscoveryGCE) listForwardingRules() ([]*resources.Resource, erro
} }
func deleteForwardingRule(cloud fi.Cloud, r *resources.Resource) error { func deleteForwardingRule(cloud fi.Cloud, r *resources.Resource) error {
ctx := context.TODO()
c := cloud.(gce.GCECloud) c := cloud.(gce.GCECloud)
t := r.Obj.(*compute.ForwardingRule) t := r.Obj.(*compute.ForwardingRule)
@ -509,7 +511,7 @@ func deleteForwardingRule(cloud fi.Cloud, r *resources.Resource) error {
return err return err
} }
op, err := c.Compute().ForwardingRules().Delete(u.Project, u.Region, u.Name) op, err := c.Compute().ForwardingRules().Delete(ctx, u.Project, u.Region, u.Name)
if err != nil { if err != nil {
if gce.IsNotFound(err) { if gce.IsNotFound(err) {
klog.Infof("ForwardingRule not found, assuming deleted: %q", t.SelfLink) klog.Infof("ForwardingRule not found, assuming deleted: %q", t.SelfLink)
@ -585,7 +587,7 @@ nextFirewallRule:
// We lookup the forwarding rule by name, but we then validate that it points to one of our resources // We lookup the forwarding rule by name, but we then validate that it points to one of our resources
forwardingRuleName := strings.TrimPrefix(firewallRule.Name, "k8s-fw-") forwardingRuleName := strings.TrimPrefix(firewallRule.Name, "k8s-fw-")
forwardingRule, err := c.Compute().ForwardingRules().Get(c.Project(), c.Region(), forwardingRuleName) forwardingRule, err := c.Compute().ForwardingRules().Get(ctx, c.Project(), c.Region(), forwardingRuleName)
if err != nil { if err != nil {
if gce.IsNotFound(err) { if gce.IsNotFound(err) {
// We looked it up by name, so an error isn't unlikely // We looked it up by name, so an error isn't unlikely

View File

@ -362,9 +362,9 @@ func (c *routeClientImpl) List(ctx context.Context, project string) ([]*compute.
} }
type ForwardingRuleClient interface { type ForwardingRuleClient interface {
Insert(project, region string, fr *compute.ForwardingRule) (*compute.Operation, error) Insert(ctx context.Context, project, region string, fr *compute.ForwardingRule) (*compute.Operation, error)
Delete(project, region, name string) (*compute.Operation, error) Delete(ctx context.Context, project, region, name string) (*compute.Operation, error)
Get(project, region, name string) (*compute.ForwardingRule, error) Get(ctx context.Context, project, region, name string) (*compute.ForwardingRule, error)
List(ctx context.Context, project, region string) ([]*compute.ForwardingRule, error) List(ctx context.Context, project, region string) ([]*compute.ForwardingRule, error)
SetLabels(ctx context.Context, project, region, resource string, request *compute.RegionSetLabelsRequest) (*compute.Operation, error) SetLabels(ctx context.Context, project, region, resource string, request *compute.RegionSetLabelsRequest) (*compute.Operation, error)
} }
@ -375,16 +375,16 @@ type forwardingRuleClientImpl struct {
var _ ForwardingRuleClient = &forwardingRuleClientImpl{} var _ ForwardingRuleClient = &forwardingRuleClientImpl{}
func (c *forwardingRuleClientImpl) Insert(project, region string, fr *compute.ForwardingRule) (*compute.Operation, error) { func (c *forwardingRuleClientImpl) Insert(ctx context.Context, project, region string, fr *compute.ForwardingRule) (*compute.Operation, error) {
return c.srv.Insert(project, region, fr).Do() return c.srv.Insert(project, region, fr).Context(ctx).Do()
} }
func (c *forwardingRuleClientImpl) Delete(project, region, name string) (*compute.Operation, error) { func (c *forwardingRuleClientImpl) Delete(ctx context.Context, project, region, name string) (*compute.Operation, error) {
return c.srv.Delete(project, region, name).Do() return c.srv.Delete(project, region, name).Context(ctx).Do()
} }
func (c *forwardingRuleClientImpl) Get(project, region, name string) (*compute.ForwardingRule, error) { func (c *forwardingRuleClientImpl) Get(ctx context.Context, project, region, name string) (*compute.ForwardingRule, error) {
return c.srv.Get(project, region, name).Do() return c.srv.Get(project, region, name).Context(ctx).Do()
} }
func (c *forwardingRuleClientImpl) SetLabels(ctx context.Context, project string, region string, resource string, request *compute.RegionSetLabelsRequest) (*compute.Operation, error) { func (c *forwardingRuleClientImpl) SetLabels(ctx context.Context, project string, region string, resource string, request *compute.RegionSetLabelsRequest) (*compute.Operation, error) {

View File

@ -65,10 +65,12 @@ func (e *ForwardingRule) CompareWithID() *string {
} }
func (e *ForwardingRule) Find(c *fi.CloudupContext) (*ForwardingRule, error) { func (e *ForwardingRule) Find(c *fi.CloudupContext) (*ForwardingRule, error) {
ctx := c.Context()
cloud := c.T.Cloud.(gce.GCECloud) cloud := c.T.Cloud.(gce.GCECloud)
name := fi.ValueOf(e.Name) name := fi.ValueOf(e.Name)
r, err := cloud.Compute().ForwardingRules().Get(cloud.Project(), cloud.Region(), name) r, err := cloud.Compute().ForwardingRules().Get(ctx, cloud.Project(), cloud.Region(), name)
if err != nil { if err != nil {
if gce.IsNotFound(err) { if gce.IsNotFound(err) {
return nil, nil return nil, nil
@ -212,7 +214,7 @@ func (_ *ForwardingRule) RenderGCE(t *gce.GCEAPITarget, a, e, changes *Forwardin
if a == nil { if a == nil {
klog.V(4).Infof("Creating ForwardingRule %q", o.Name) klog.V(4).Infof("Creating ForwardingRule %q", o.Name)
op, err := t.Cloud.Compute().ForwardingRules().Insert(t.Cloud.Project(), t.Cloud.Region(), o) op, err := t.Cloud.Compute().ForwardingRules().Insert(ctx, t.Cloud.Project(), t.Cloud.Region(), o)
if err != nil { if err != nil {
return fmt.Errorf("error creating ForwardingRule %q: %v", o.Name, err) return fmt.Errorf("error creating ForwardingRule %q: %v", o.Name, err)
} }
@ -223,7 +225,7 @@ func (_ *ForwardingRule) RenderGCE(t *gce.GCEAPITarget, a, e, changes *Forwardin
if e.Labels != nil { if e.Labels != nil {
// We can't set labels on creation; we have to read the object to get the fingerprint // We can't set labels on creation; we have to read the object to get the fingerprint
r, err := t.Cloud.Compute().ForwardingRules().Get(t.Cloud.Project(), t.Cloud.Region(), name) r, err := t.Cloud.Compute().ForwardingRules().Get(ctx, t.Cloud.Project(), t.Cloud.Region(), name)
if err != nil { if err != nil {
return fmt.Errorf("reading created ForwardingRule %q: %v", name, err) return fmt.Errorf("reading created ForwardingRule %q: %v", name, err)
} }