diff --git a/plugin/service/host/plugin.go b/plugin/service/host/plugin.go index 23d1653..51b3f2e 100644 --- a/plugin/service/host/plugin.go +++ b/plugin/service/host/plugin.go @@ -644,6 +644,10 @@ func buildFilters(attrs *SetAttributes) ([]types.Filter, error) { } func buildDescribeInstancesInput(attrs *SetAttributes, dryRun bool) (*ec2.DescribeInstancesInput, error) { + if attrs == nil { + attrs = &SetAttributes{} + } + filters, err := buildFilters(attrs) if err != nil { return nil, fmt.Errorf("error building filters: %w", err) diff --git a/plugin/service/host/plugin_test.go b/plugin/service/host/plugin_test.go index d5be626..80d342f 100644 --- a/plugin/service/host/plugin_test.go +++ b/plugin/service/host/plugin_test.go @@ -2633,6 +2633,21 @@ func TestBuildDescribeInstancesInput(t *testing.T) { require.Equal(tc.expected, actual) }) } + + t.Run("nil attrs, dry run", func(t *testing.T) { + require := require.New(t) + actual, err := buildDescribeInstancesInput(nil, true) + require.NoError(err) + require.Equal(&ec2.DescribeInstancesInput{ + DryRun: aws.Bool(true), + Filters: []types.Filter{ + { + Name: aws.String("instance-state-name"), + Values: []string{string(types.InstanceStateNameRunning)}, + }, + }, + }, actual) + }) } func TestAwsInstanceToHost(t *testing.T) {