From 2fa16c24f73c3e89473fd6d09e1b51be20ad1486 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Wed, 24 Jun 2020 10:45:58 -0400 Subject: [PATCH] remove unused interfaces RemovableIfNotTargeted and GraphNodeTargetDownstream are no longer used by the target transformer. --- terraform/node_local.go | 12 -------- terraform/node_module_expand.go | 19 ------------ terraform/node_module_variable.go | 19 ------------ terraform/node_output.go | 47 ++--------------------------- terraform/node_provider_abstract.go | 8 ----- terraform/node_provider_disabled.go | 1 - terraform/transform_provider.go | 7 ----- terraform/transform_targets.go | 26 ---------------- 8 files changed, 2 insertions(+), 137 deletions(-) diff --git a/terraform/node_local.go b/terraform/node_local.go index 8c008dddb..6be28b036 100644 --- a/terraform/node_local.go +++ b/terraform/node_local.go @@ -18,7 +18,6 @@ type nodeExpandLocal struct { } var ( - _ RemovableIfNotTargeted = (*nodeExpandLocal)(nil) _ GraphNodeReferenceable = (*nodeExpandLocal)(nil) _ GraphNodeReferencer = (*nodeExpandLocal)(nil) _ GraphNodeDynamicExpandable = (*nodeExpandLocal)(nil) @@ -48,11 +47,6 @@ func (n *nodeExpandLocal) ModulePath() addrs.Module { return n.Module } -// RemovableIfNotTargeted -func (n *nodeExpandLocal) RemoveIfNotTargeted() bool { - return true -} - // GraphNodeReferenceable func (n *nodeExpandLocal) ReferenceableAddrs() []addrs.Referenceable { return []addrs.Referenceable{n.Addr} @@ -89,7 +83,6 @@ type NodeLocal struct { var ( _ GraphNodeModuleInstance = (*NodeLocal)(nil) - _ RemovableIfNotTargeted = (*NodeLocal)(nil) _ GraphNodeReferenceable = (*NodeLocal)(nil) _ GraphNodeReferencer = (*NodeLocal)(nil) _ GraphNodeEvalable = (*NodeLocal)(nil) @@ -116,11 +109,6 @@ func (n *NodeLocal) ModulePath() addrs.Module { return n.Addr.Module.Module() } -// RemovableIfNotTargeted -func (n *NodeLocal) RemoveIfNotTargeted() bool { - return true -} - // GraphNodeReferenceable func (n *NodeLocal) ReferenceableAddrs() []addrs.Referenceable { return []addrs.Referenceable{n.Addr.LocalValue} diff --git a/terraform/node_module_expand.go b/terraform/node_module_expand.go index c19df33b4..330f3e674 100644 --- a/terraform/node_module_expand.go +++ b/terraform/node_module_expand.go @@ -22,7 +22,6 @@ type nodeExpandModule struct { } var ( - _ RemovableIfNotTargeted = (*nodeExpandModule)(nil) _ GraphNodeEvalable = (*nodeExpandModule)(nil) _ GraphNodeReferencer = (*nodeExpandModule)(nil) _ GraphNodeReferenceOutside = (*nodeExpandModule)(nil) @@ -99,13 +98,6 @@ func (n *nodeExpandModule) ReferenceOutside() (selfPath, referencePath addrs.Mod return n.Addr, n.Addr.Parent() } -// RemovableIfNotTargeted implementation -func (n *nodeExpandModule) RemoveIfNotTargeted() bool { - // We need to add this so that this node will be removed if - // it isn't targeted or a dependency of a target. - return true -} - // GraphNodeEvalable func (n *nodeExpandModule) EvalTree() EvalNode { return &evalPrepareModuleExpansion{ @@ -146,10 +138,6 @@ func (n *nodeCloseModule) ReferenceableAddrs() []addrs.Referenceable { } } -func (n *nodeCloseModule) TargetDownstream(targeted, untargeted dag.Set) bool { - return true -} - func (n *nodeCloseModule) Name() string { if len(n.Addr) == 0 { return "root" @@ -157,13 +145,6 @@ func (n *nodeCloseModule) Name() string { return n.Addr.String() + " (close)" } -// RemovableIfNotTargeted implementation -func (n *nodeCloseModule) RemoveIfNotTargeted() bool { - // We need to add this so that this node will be removed if - // it isn't targeted or a dependency of a target. - return true -} - func (n *nodeCloseModule) EvalTree() EvalNode { return &EvalSequence{ Nodes: []EvalNode{ diff --git a/terraform/node_module_variable.go b/terraform/node_module_variable.go index e0d007f59..5009f54d6 100644 --- a/terraform/node_module_variable.go +++ b/terraform/node_module_variable.go @@ -26,7 +26,6 @@ var ( _ GraphNodeReferenceable = (*nodeExpandModuleVariable)(nil) _ GraphNodeReferencer = (*nodeExpandModuleVariable)(nil) _ graphNodeTemporaryValue = (*nodeExpandModuleVariable)(nil) - _ RemovableIfNotTargeted = (*nodeExpandModuleVariable)(nil) _ graphNodeExpandsInstances = (*nodeExpandModuleVariable)(nil) ) @@ -98,16 +97,6 @@ func (n *nodeExpandModuleVariable) ReferenceableAddrs() []addrs.Referenceable { return []addrs.Referenceable{n.Addr} } -// RemovableIfNotTargeted -func (n *nodeExpandModuleVariable) RemoveIfNotTargeted() bool { - return true -} - -// GraphNodeTargetDownstream -func (n *nodeExpandModuleVariable) TargetDownstream(targetedDeps, untargetedDeps dag.Set) bool { - return true -} - // nodeModuleVariable represents a module variable input during // the apply step. type nodeModuleVariable struct { @@ -123,7 +112,6 @@ type nodeModuleVariable struct { // implementing. var ( _ GraphNodeModuleInstance = (*nodeModuleVariable)(nil) - _ RemovableIfNotTargeted = (*nodeModuleVariable)(nil) _ GraphNodeEvalable = (*nodeModuleVariable)(nil) _ graphNodeTemporaryValue = (*nodeModuleVariable)(nil) _ dag.GraphNodeDotter = (*nodeModuleVariable)(nil) @@ -149,13 +137,6 @@ func (n *nodeModuleVariable) ModulePath() addrs.Module { return n.Addr.Module.Module() } -// RemovableIfNotTargeted -func (n *nodeModuleVariable) RemoveIfNotTargeted() bool { - // We need to add this so that this node will be removed if - // it isn't targeted or a dependency of a target. - return true -} - // GraphNodeEvalable func (n *nodeModuleVariable) EvalTree() EvalNode { // If we have no value, do nothing diff --git a/terraform/node_output.go b/terraform/node_output.go index 74950ede8..6c3713fd1 100644 --- a/terraform/node_output.go +++ b/terraform/node_output.go @@ -19,7 +19,6 @@ type nodeExpandOutput struct { } var ( - _ RemovableIfNotTargeted = (*nodeExpandOutput)(nil) _ GraphNodeReferenceable = (*nodeExpandOutput)(nil) _ GraphNodeReferencer = (*nodeExpandOutput)(nil) _ GraphNodeReferenceOutside = (*nodeExpandOutput)(nil) @@ -100,16 +99,6 @@ func (n *nodeExpandOutput) References() []*addrs.Reference { return appendResourceDestroyReferences(referencesForOutput(n.Config)) } -// RemovableIfNotTargeted -func (n *nodeExpandOutput) RemoveIfNotTargeted() bool { - return true -} - -// GraphNodeTargetDownstream -func (n *nodeExpandOutput) TargetDownstream(targetedDeps, untargetedDeps dag.Set) bool { - return true -} - // NodeApplyableOutput represents an output that is "applyable": // it is ready to be applied. type NodeApplyableOutput struct { @@ -119,8 +108,6 @@ type NodeApplyableOutput struct { var ( _ GraphNodeModuleInstance = (*NodeApplyableOutput)(nil) - _ RemovableIfNotTargeted = (*NodeApplyableOutput)(nil) - _ GraphNodeTargetDownstream = (*NodeApplyableOutput)(nil) _ GraphNodeReferenceable = (*NodeApplyableOutput)(nil) _ GraphNodeReferencer = (*NodeApplyableOutput)(nil) _ GraphNodeReferenceOutside = (*NodeApplyableOutput)(nil) @@ -148,21 +135,6 @@ func (n *NodeApplyableOutput) ModulePath() addrs.Module { return n.Addr.Module.Module() } -// RemovableIfNotTargeted -func (n *NodeApplyableOutput) RemoveIfNotTargeted() bool { - // We need to add this so that this node will be removed if - // it isn't targeted or a dependency of a target. - return true -} - -// GraphNodeTargetDownstream -func (n *NodeApplyableOutput) TargetDownstream(targetedDeps, untargetedDeps dag.Set) bool { - // If any of the direct dependencies of an output are targeted then - // the output must always be targeted as well, so its value will always - // be up-to-date at the completion of an apply walk. - return true -} - func referenceOutsideForOutput(addr addrs.AbsOutputValue) (selfPath, referencePath addrs.Module) { // Output values have their expressions resolved in the context of the // module where they are defined. @@ -255,10 +227,8 @@ type NodeDestroyableOutput struct { } var ( - _ RemovableIfNotTargeted = (*NodeDestroyableOutput)(nil) - _ GraphNodeTargetDownstream = (*NodeDestroyableOutput)(nil) - _ GraphNodeEvalable = (*NodeDestroyableOutput)(nil) - _ dag.GraphNodeDotter = (*NodeDestroyableOutput)(nil) + _ GraphNodeEvalable = (*NodeDestroyableOutput)(nil) + _ dag.GraphNodeDotter = (*NodeDestroyableOutput)(nil) ) func (n *NodeDestroyableOutput) Name() string { @@ -275,19 +245,6 @@ func (n *NodeDestroyableOutput) temporaryValue() bool { return !n.Addr.Module.IsRoot() } -// RemovableIfNotTargeted -func (n *NodeDestroyableOutput) RemoveIfNotTargeted() bool { - // We need to add this so that this node will be removed if - // it isn't targeted or a dependency of a target. - return true -} - -// This will keep the destroy node in the graph if its corresponding output -// node is also in the destroy graph. -func (n *NodeDestroyableOutput) TargetDownstream(targetedDeps, untargetedDeps dag.Set) bool { - return true -} - // GraphNodeEvalable func (n *NodeDestroyableOutput) EvalTree() EvalNode { return &EvalDeleteOutput{ diff --git a/terraform/node_provider_abstract.go b/terraform/node_provider_abstract.go index 5c30364ee..7903ff6d7 100644 --- a/terraform/node_provider_abstract.go +++ b/terraform/node_provider_abstract.go @@ -27,7 +27,6 @@ type NodeAbstractProvider struct { var ( _ GraphNodeModulePath = (*NodeAbstractProvider)(nil) - _ RemovableIfNotTargeted = (*NodeAbstractProvider)(nil) _ GraphNodeReferencer = (*NodeAbstractProvider)(nil) _ GraphNodeProvider = (*NodeAbstractProvider)(nil) _ GraphNodeAttachProvider = (*NodeAbstractProvider)(nil) @@ -51,13 +50,6 @@ func (n *NodeAbstractProvider) ModulePath() addrs.Module { return n.Addr.Module } -// RemovableIfNotTargeted -func (n *NodeAbstractProvider) RemoveIfNotTargeted() bool { - // We need to add this so that this node will be removed if - // it isn't targeted or a dependency of a target. - return true -} - // GraphNodeReferencer func (n *NodeAbstractProvider) References() []*addrs.Reference { if n.Config == nil || n.Schema == nil { diff --git a/terraform/node_provider_disabled.go b/terraform/node_provider_disabled.go index 6f7a6d27e..75f980234 100644 --- a/terraform/node_provider_disabled.go +++ b/terraform/node_provider_disabled.go @@ -15,7 +15,6 @@ type NodeDisabledProvider struct { var ( _ GraphNodeModulePath = (*NodeDisabledProvider)(nil) - _ RemovableIfNotTargeted = (*NodeDisabledProvider)(nil) _ GraphNodeReferencer = (*NodeDisabledProvider)(nil) _ GraphNodeProvider = (*NodeDisabledProvider)(nil) _ GraphNodeAttachProvider = (*NodeDisabledProvider)(nil) diff --git a/terraform/transform_provider.go b/terraform/transform_provider.go index 0051da03d..fdfde6114 100644 --- a/terraform/transform_provider.go +++ b/terraform/transform_provider.go @@ -488,13 +488,6 @@ func (n *graphNodeCloseProvider) DotNode(name string, opts *dag.DotOpts) *dag.Do } } -// RemovableIfNotTargeted -func (n *graphNodeCloseProvider) RemoveIfNotTargeted() bool { - // We need to add this so that this node will be removed if - // it isn't targeted or a dependency of a target. - return true -} - // graphNodeProxyProvider is a GraphNodeProvider implementation that is used to // store the name and value of a provider node for inheritance between modules. // These nodes are only used to store the data while loading the provider diff --git a/terraform/transform_targets.go b/terraform/transform_targets.go index efd9da684..e2b2cf525 100644 --- a/terraform/transform_targets.go +++ b/terraform/transform_targets.go @@ -16,21 +16,6 @@ type GraphNodeTargetable interface { SetTargets([]addrs.Targetable) } -// GraphNodeTargetDownstream is an interface for graph nodes that need to -// be remain present under targeting if any of their dependencies are targeted. -// TargetDownstream is called with the set of vertices that are direct -// dependencies for the node, and it should return true if the node must remain -// in the graph in support of those dependencies. -// -// This is used in situations where the dependency edges are representing an -// ordering relationship but the dependency must still be visited if its -// dependencies are visited. This is true for outputs, for example, since -// they must get updated if any of their dependent resources get updated, -// which would not normally be true if one of their dependencies were targeted. -type GraphNodeTargetDownstream interface { - TargetDownstream(targeted, untargeted dag.Set) bool -} - // TargetsTransformer is a GraphTransformer that, when the user specifies a // list of resources to target, limits the graph to only those resources and // their dependencies. @@ -174,14 +159,3 @@ func (t *TargetsTransformer) nodeIsTarget(v dag.Vertex, targets []addrs.Targetab return false } - -// RemovableIfNotTargeted is a special interface for graph nodes that -// aren't directly addressable, but need to be removed from the graph when they -// are not targeted. (Nodes that are not directly targeted end up in the set of -// targeted nodes because something that _is_ targeted depends on them.) The -// initial use case for this interface is GraphNodeConfigVariable, which was -// having trouble interpolating for module variables in targeted scenarios that -// filtered out the resource node being referenced. -type RemovableIfNotTargeted interface { - RemoveIfNotTargeted() bool -}