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  }