go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers/os/id/awsecs/awsecs_test.go (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 package awsecs 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 TestParseECSContainerId(t *testing.T) { 16 path := "//platformid.api.mondoo.app/runtime/aws/ecs/v1/accounts/185972265011/regions/us-east-1/container/vjtest/f088b38d61ac45d6a946b5aebbe7197a/314e35e0-2d0a-4408-b37e-16063461d73a" 17 id, err := ParseMondooECSContainerId(path) 18 require.NoError(t, err) 19 assert.Equal(t, id.Account, "185972265011") 20 assert.Equal(t, id.Region, "us-east-1") 21 assert.Equal(t, id.Id, "vjtest/f088b38d61ac45d6a946b5aebbe7197a/314e35e0-2d0a-4408-b37e-16063461d73a") 22 } 23 24 func TestEC2RoleProviderInstanceIdentityUnix(t *testing.T) { 25 conn, err := mock.New("./testdata/container-identity.toml", nil) 26 require.NoError(t, err) 27 platform, ok := detector.DetectOS(conn) 28 require.True(t, ok) 29 30 metadata := containerMetadata{conn, platform} 31 ident, err := metadata.Identify() 32 33 require.Nil(t, err) 34 require.Equal(t, "fargate-app", ident.Name) 35 require.Equal(t, "arn:aws:ecs:us-east-1:172746783610:container/vjtest/f088b38d61ac45d6a946b5aebbe7197a/314e35e0-2d0a-4408-b37e-16063461d73a", ident.ContainerArn) 36 require.Equal(t, "f088b38d61ac45d6a946b5aebbe7197a-3681984407", ident.RuntimeID) 37 require.Contains(t, ident.PlatformIds, "//platformid.api.mondoo.app/runtime/docker/containers/f088b38d61ac45d6a946b5aebbe7197a-3681984407") 38 require.Contains(t, ident.PlatformIds, "//platformid.api.mondoo.app/runtime/aws/ecs/v1/accounts/172746783610/regions/us-east-1/container/vjtest/f088b38d61ac45d6a946b5aebbe7197a/314e35e0-2d0a-4408-b37e-16063461d73a") 39 require.Contains(t, ident.AccountPlatformID, "//platformid.api.mondoo.app/runtime/aws/accounts/172746783610") 40 }