diff --git a/globals/prefixes.go b/globals/prefixes.go index 4abaea5bbd..0316ba71c7 100644 --- a/globals/prefixes.go +++ b/globals/prefixes.go @@ -311,7 +311,11 @@ var resourceTypeToPrefixes map[resource.Type][]string = func() map[resource.Type func ResourceInfoFromPrefix(in string) ResourceInfo { // If full ID, trim to just prefix in, _, _ = strings.Cut(in, "_") - return prefixToResourceType[in] + res, ok := prefixToResourceType[in] + if !ok { + return ResourceInfo{Type: resource.Unknown} + } + return res } // ResourcePrefixesFromType returns the known prefixes for a given type; if a diff --git a/globals/prefixes_test.go b/globals/prefixes_test.go index 9c56287366..2b5e08db8a 100644 --- a/globals/prefixes_test.go +++ b/globals/prefixes_test.go @@ -20,9 +20,10 @@ func TestResourceInfoFromPrefix(t *testing.T) { JsonCredentialPrefix: resource.Credential, } + assert.Equal(t, resource.Unknown, ResourceInfoFromPrefix("foobar").Type) for prefix, typ := range vals { assert.Equal(t, typ, ResourceInfoFromPrefix(prefix).Type) assert.Equal(t, typ, ResourceInfoFromPrefix(fmt.Sprintf("%s_foobar", prefix)).Type) - assert.Equal(t, resource.Unknown, ResourceInfoFromPrefix(fmt.Sprintf("%sfoobar", prefix))) + assert.Equal(t, resource.Unknown, ResourceInfoFromPrefix(fmt.Sprintf("%sfoobar", prefix)).Type) } }