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
}
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()
defer c.Unlock()
regions, ok := c.forwardingRules[project]
@ -91,7 +91,7 @@ func (c *forwardingRuleClient) SetLabels(ctx context.Context, project, region, n
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()
defer c.Unlock()
regions, ok := c.forwardingRules[project]
@ -109,7 +109,7 @@ func (c *forwardingRuleClient) Delete(project, region, name string) (*compute.Op
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()
defer c.Unlock()
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 {
ctx := context.TODO()
c := cloud.(gce.GCECloud)
t := r.Obj.(*compute.ForwardingRule)
@ -509,7 +511,7 @@ func deleteForwardingRule(cloud fi.Cloud, r *resources.Resource) error {
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 gce.IsNotFound(err) {
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
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 gce.IsNotFound(err) {
// 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 {
Insert(project, region string, fr *compute.ForwardingRule) (*compute.Operation, error)
Delete(project, region, name string) (*compute.Operation, error)
Get(project, region, name string) (*compute.ForwardingRule, error)
Insert(ctx context.Context, project, region string, fr *compute.ForwardingRule) (*compute.Operation, error)
Delete(ctx context.Context, project, region, name string) (*compute.Operation, error)
Get(ctx context.Context, project, region, name 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)
}
@ -375,16 +375,16 @@ type forwardingRuleClientImpl struct {
var _ ForwardingRuleClient = &forwardingRuleClientImpl{}
func (c *forwardingRuleClientImpl) Insert(project, region string, fr *compute.ForwardingRule) (*compute.Operation, error) {
return c.srv.Insert(project, region, fr).Do()
func (c *forwardingRuleClientImpl) Insert(ctx context.Context, project, region string, fr *compute.ForwardingRule) (*compute.Operation, error) {
return c.srv.Insert(project, region, fr).Context(ctx).Do()
}
func (c *forwardingRuleClientImpl) Delete(project, region, name string) (*compute.Operation, error) {
return c.srv.Delete(project, region, name).Do()
func (c *forwardingRuleClientImpl) Delete(ctx context.Context, project, region, name string) (*compute.Operation, error) {
return c.srv.Delete(project, region, name).Context(ctx).Do()
}
func (c *forwardingRuleClientImpl) Get(project, region, name string) (*compute.ForwardingRule, error) {
return c.srv.Get(project, region, name).Do()
func (c *forwardingRuleClientImpl) Get(ctx context.Context, project, region, name string) (*compute.ForwardingRule, error) {
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) {

View File

@ -65,10 +65,12 @@ func (e *ForwardingRule) CompareWithID() *string {
}
func (e *ForwardingRule) Find(c *fi.CloudupContext) (*ForwardingRule, error) {
ctx := c.Context()
cloud := c.T.Cloud.(gce.GCECloud)
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 gce.IsNotFound(err) {
return nil, nil
@ -212,7 +214,7 @@ func (_ *ForwardingRule) RenderGCE(t *gce.GCEAPITarget, a, e, changes *Forwardin
if a == nil {
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 {
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 {
// 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 {
return fmt.Errorf("reading created ForwardingRule %q: %v", name, err)
}