Merge pull request #12340 from hashicorp/jbardin/GH-12253
return 0 from resourceCountMax with a nil Resource
This commit is contained in:
commit
e5e37b0025
|
@ -698,6 +698,10 @@ func (i *Interpolater) resourceCountMax(
|
|||
// from the state. Plan and so on may not have any state yet so
|
||||
// we do a full interpolation.
|
||||
if i.Operation != walkApply {
|
||||
if cr == nil {
|
||||
return 0, nil
|
||||
}
|
||||
|
||||
count, err := cr.Count()
|
||||
if err != nil {
|
||||
return 0, err
|
||||
|
|
|
@ -680,7 +680,7 @@ func TestInterpolator_interpolatedListOrder(t *testing.T) {
|
|||
&ModuleState{
|
||||
Path: rootModulePath,
|
||||
Resources: map[string]*ResourceState{
|
||||
"aws_route53_zone.list": &ResourceState{
|
||||
"aws_route53_zone.yada": &ResourceState{
|
||||
Type: "aws_route53_zone",
|
||||
Dependencies: []string{},
|
||||
Primary: &InstanceState{
|
||||
|
@ -719,7 +719,7 @@ func TestInterpolator_interpolatedListOrder(t *testing.T) {
|
|||
|
||||
list := []interface{}{"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l"}
|
||||
|
||||
testInterpolate(t, i, scope, "aws_route53_zone.list.foo",
|
||||
testInterpolate(t, i, scope, "aws_route53_zone.yada.foo",
|
||||
interfaceToVariableSwallowError(list))
|
||||
}
|
||||
|
||||
|
@ -844,7 +844,7 @@ func TestInterpolator_sets(t *testing.T) {
|
|||
&ModuleState{
|
||||
Path: rootModulePath,
|
||||
Resources: map[string]*ResourceState{
|
||||
"aws_network_interface.set": &ResourceState{
|
||||
"aws_route53_zone.yada": &ResourceState{
|
||||
Type: "aws_network_interface",
|
||||
Dependencies: []string{},
|
||||
Primary: &InstanceState{
|
||||
|
@ -872,10 +872,27 @@ func TestInterpolator_sets(t *testing.T) {
|
|||
|
||||
set := []interface{}{"10.42.16.179"}
|
||||
|
||||
testInterpolate(t, i, scope, "aws_network_interface.set.private_ips",
|
||||
testInterpolate(t, i, scope, "aws_route53_zone.yada.private_ips",
|
||||
interfaceToVariableSwallowError(set))
|
||||
}
|
||||
|
||||
// When a splat reference is made to a resource that is unknown, we should
|
||||
// return an empty list rather than panicking.
|
||||
func TestInterpolater_resourceUnknownVariableList(t *testing.T) {
|
||||
i := &Interpolater{
|
||||
Module: testModule(t, "plan-computed-data-resource"),
|
||||
State: NewState(), // state,
|
||||
StateLock: new(sync.RWMutex),
|
||||
}
|
||||
|
||||
scope := &InterpolationScope{
|
||||
Path: rootModulePath,
|
||||
}
|
||||
|
||||
testInterpolate(t, i, scope, "aws_vpc.bar.*.foo",
|
||||
interfaceToVariableSwallowError([]interface{}{}))
|
||||
}
|
||||
|
||||
func testInterpolate(
|
||||
t *testing.T, i *Interpolater,
|
||||
scope *InterpolationScope,
|
||||
|
|
Loading…
Reference in New Issue