go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers/os/id/awsec2/metadata_cmd_test.go (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 package awsec2 5 6 import ( 7 "testing" 8 9 "github.com/stretchr/testify/assert" 10 "github.com/stretchr/testify/require" 11 "go.mondoo.com/cnquery/providers/os/connection/mock" 12 "go.mondoo.com/cnquery/providers/os/detector" 13 ) 14 15 func TestEC2RoleProviderInstanceIdentityUnix(t *testing.T) { 16 conn, err := mock.New("./testdata/instance-identity_document_linux.toml", nil) 17 require.NoError(t, err) 18 platform, ok := detector.DetectOS(conn) 19 require.True(t, ok) 20 21 metadata := NewCommandInstanceMetadata(conn, platform, nil) 22 ident, err := metadata.Identify() 23 24 assert.Nil(t, err) 25 assert.Equal(t, "ec2-name", ident.InstanceName) 26 assert.Equal(t, "//platformid.api.mondoo.app/runtime/aws/ec2/v1/accounts/123456789012/regions/us-west-2/instances/i-1234567890abcdef0", ident.InstanceID) 27 assert.Equal(t, "//platformid.api.mondoo.app/runtime/aws/accounts/123456789012", ident.AccountID) 28 } 29 30 func TestEC2RoleProviderInstanceIdentityUnixNoName(t *testing.T) { 31 conn, err := mock.New("./testdata/instance-identity_document_linux_no_tags.toml", nil) 32 require.NoError(t, err) 33 platform, ok := detector.DetectOS(conn) 34 require.True(t, ok) 35 36 metadata := NewCommandInstanceMetadata(conn, platform, nil) 37 ident, err := metadata.Identify() 38 39 assert.Nil(t, err) 40 assert.Equal(t, "", ident.InstanceName) 41 assert.Equal(t, "//platformid.api.mondoo.app/runtime/aws/ec2/v1/accounts/123456789012/regions/us-west-2/instances/i-1234567890abcdef0", ident.InstanceID) 42 assert.Equal(t, "//platformid.api.mondoo.app/runtime/aws/accounts/123456789012", ident.AccountID) 43 } 44 45 func TestEC2RoleProviderInstanceIdentityWindows(t *testing.T) { 46 conn, err := mock.New("./testdata/instance-identity_document_windows.toml", nil) 47 require.NoError(t, err) 48 platform, ok := detector.DetectOS(conn) 49 require.True(t, ok) 50 51 metadata := NewCommandInstanceMetadata(conn, platform, nil) 52 ident, err := metadata.Identify() 53 54 assert.Nil(t, err) 55 assert.Equal(t, "ec2-name-windows", ident.InstanceName) 56 assert.Equal(t, "//platformid.api.mondoo.app/runtime/aws/ec2/v1/accounts/123456789012/regions/us-east-1/instances/i-1234567890abcdef0", ident.InstanceID) 57 assert.Equal(t, "//platformid.api.mondoo.app/runtime/aws/accounts/123456789012", ident.AccountID) 58 } 59 60 func TestEC2RoleProviderInstanceIdentityWindowsNoName(t *testing.T) { 61 conn, err := mock.New("./testdata/instance-identity_document_windows_no_tags.toml", nil) 62 require.NoError(t, err) 63 platform, ok := detector.DetectOS(conn) 64 require.True(t, ok) 65 66 metadata := NewCommandInstanceMetadata(conn, platform, nil) 67 ident, err := metadata.Identify() 68 69 assert.Nil(t, err) 70 assert.Equal(t, "", ident.InstanceName) 71 assert.Equal(t, "//platformid.api.mondoo.app/runtime/aws/ec2/v1/accounts/123456789012/regions/us-east-1/instances/i-1234567890abcdef0", ident.InstanceID) 72 assert.Equal(t, "//platformid.api.mondoo.app/runtime/aws/accounts/123456789012", ident.AccountID) 73 }