diff --git a/plugin/service/host/plugin.go b/plugin/service/host/plugin.go index 17b1836..ec7fb79 100644 --- a/plugin/service/host/plugin.go +++ b/plugin/service/host/plugin.go @@ -594,6 +594,9 @@ func (p *HostPlugin) ListHosts(ctx context.Context, req *pb.ListHostsRequest) (* } func buildFilters(attrs *SetAttributes) ([]types.Filter, error) { + if attrs == nil { + attrs = &SetAttributes{} + } var filters []types.Filter var foundStateFilter bool for _, filterAttr := range attrs.Filters { diff --git a/plugin/service/host/plugin_test.go b/plugin/service/host/plugin_test.go index 5e4bbd1..a10093b 100644 --- a/plugin/service/host/plugin_test.go +++ b/plugin/service/host/plugin_test.go @@ -2383,6 +2383,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) {