From f33e99e3ea20401bcdf9449a7a1db488aa254c01 Mon Sep 17 00:00:00 2001 From: Alexey Basinov Date: Wed, 24 Apr 2024 16:15:06 -0700 Subject: [PATCH] Expand BMS abbreviation to Bare Metal Solution --- detectors/gcp/bms.go | 18 ++++++++++-------- detectors/gcp/bms_test.go | 24 ++++++++++++------------ detectors/gcp/detector.go | 6 +++--- detectors/gcp/detector_test.go | 4 ++-- 4 files changed, 27 insertions(+), 25 deletions(-) diff --git a/detectors/gcp/bms.go b/detectors/gcp/bms.go index 12272822..d3992a4f 100644 --- a/detectors/gcp/bms.go +++ b/detectors/gcp/bms.go @@ -20,32 +20,34 @@ const ( bmsInstanceIDEnv = "BMS_INSTANCE_ID" ) -// Use BMS_PROJECT_ID, BMS_REGION and BMS_INSTANCE_ID env vars as an indication that we are running on BMS. -func (d *Detector) onBMS() bool { +// onBareMetalSolution checks if the code is running on a Google Cloud Bare Metal Solution (BMS) by verifying +// the presence and non-empty values of BMS_PROJECT_ID, BMS_REGION, and BMS_INSTANCE_ID environment variables. +// For more information on Google Cloud Bare Metal Solution, see: https://cloud.google.com/bare-metal/docs +func (d *Detector) onBareMetalSolution() bool { projectID, projectIDExists := d.os.LookupEnv(bmsProjectIDEnv) region, regionExists := d.os.LookupEnv(bmsRegionEnv) instanceID, instanceIDExists := d.os.LookupEnv(bmsInstanceIDEnv) return projectIDExists && regionExists && instanceIDExists && projectID != "" && region != "" && instanceID != "" } -// BMSInstanceID returns the instance ID from the BMS_INSTANCE_ID environment variable. -func (d *Detector) BMSInstanceID() (string, error) { +// BareMetalSolutionInstanceID returns the instance ID from the BMS_INSTANCE_ID environment variable. +func (d *Detector) BareMetalSolutionInstanceID() (string, error) { if instanceID, found := d.os.LookupEnv(bmsInstanceIDEnv); found { return instanceID, nil } return "", errEnvVarNotFound } -// BMSCloudRegion returns the region from the BMS_REGION environment variable. -func (d *Detector) BMSCloudRegion() (string, error) { +// BareMetalSolutionCloudRegion returns the region from the BMS_REGION environment variable. +func (d *Detector) BareMetalSolutionCloudRegion() (string, error) { if region, found := d.os.LookupEnv(bmsRegionEnv); found { return region, nil } return "", errEnvVarNotFound } -// BMSProjectID returns the project ID from the BMS_PROJECT_ID environment variable. -func (d *Detector) BMSProjectID() (string, error) { +// BareMetalSolutionProjectID returns the project ID from the BMS_PROJECT_ID environment variable. +func (d *Detector) BareMetalSolutionProjectID() (string, error) { if project, found := d.os.LookupEnv(bmsProjectIDEnv); found { return project, nil } diff --git a/detectors/gcp/bms_test.go b/detectors/gcp/bms_test.go index c67729c1..1ea3485e 100644 --- a/detectors/gcp/bms_test.go +++ b/detectors/gcp/bms_test.go @@ -20,62 +20,62 @@ import ( "github.com/stretchr/testify/assert" ) -func TestBMSInstanceID(t *testing.T) { +func TestBareMetalSolutionInstanceID(t *testing.T) { d := NewTestDetector(&FakeMetadataProvider{}, &FakeOSProvider{ Vars: map[string]string{ bmsInstanceIDEnv: "my-host-123", }, }) - instanceID, err := d.BMSInstanceID() + instanceID, err := d.BareMetalSolutionInstanceID() assert.NoError(t, err) assert.Equal(t, instanceID, "my-host-123") } -func TestBMSInstanceIDErr(t *testing.T) { +func TestBareMetalSolutionInstanceIDErr(t *testing.T) { d := NewTestDetector(&FakeMetadataProvider{}, &FakeOSProvider{ Vars: map[string]string{}, }) - instanceID, err := d.BMSInstanceID() + instanceID, err := d.BareMetalSolutionInstanceID() assert.Error(t, err) assert.Equal(t, instanceID, "") } -func TestBMSBMSCloudRegion(t *testing.T) { +func TestBareMetalSolutionCloudRegion(t *testing.T) { d := NewTestDetector(&FakeMetadataProvider{}, &FakeOSProvider{ Vars: map[string]string{ bmsRegionEnv: "us-central1", }, }) - region, err := d.BMSCloudRegion() + region, err := d.BareMetalSolutionCloudRegion() assert.NoError(t, err) assert.Equal(t, region, "us-central1") } -func TestBMSCloudRegionErr(t *testing.T) { +func TestBareMetalSolutionCloudRegionErr(t *testing.T) { d := NewTestDetector(&FakeMetadataProvider{}, &FakeOSProvider{ Vars: map[string]string{}, }) - region, err := d.BMSCloudRegion() + region, err := d.BareMetalSolutionCloudRegion() assert.Error(t, err) assert.Equal(t, region, "") } -func TestBMSBMSProjectID(t *testing.T) { +func TestBareMetalSolutionProjectID(t *testing.T) { d := NewTestDetector(&FakeMetadataProvider{}, &FakeOSProvider{ Vars: map[string]string{ bmsProjectIDEnv: "my-test-project", }, }) - projectID, err := d.BMSProjectID() + projectID, err := d.BareMetalSolutionProjectID() assert.NoError(t, err) assert.Equal(t, projectID, "my-test-project") } -func TestBMSProjectIDErr(t *testing.T) { +func TestBareMetalSolutionProjectIDErr(t *testing.T) { d := NewTestDetector(&FakeMetadataProvider{}, &FakeOSProvider{ Vars: map[string]string{}, }) - projectID, err := d.BMSProjectID() + projectID, err := d.BareMetalSolutionProjectID() assert.Error(t, err) assert.Equal(t, projectID, "") } diff --git a/detectors/gcp/detector.go b/detectors/gcp/detector.go index 57eab9b4..2cc62de0 100644 --- a/detectors/gcp/detector.go +++ b/detectors/gcp/detector.go @@ -40,14 +40,14 @@ const ( CloudFunctions AppEngineStandard AppEngineFlex - BMS + BareMetalSolution ) // CloudPlatform returns the platform on which this program is running. func (d *Detector) CloudPlatform() Platform { switch { - case d.onBMS(): - return BMS + case d.onBareMetalSolution(): + return BareMetalSolution case d.onGKE(): return GKE case d.onCloudFunctions(): diff --git a/detectors/gcp/detector_test.go b/detectors/gcp/detector_test.go index cdaabf1c..4008e083 100644 --- a/detectors/gcp/detector_test.go +++ b/detectors/gcp/detector_test.go @@ -90,7 +90,7 @@ func TestCloudPlatformCloudFunctions(t *testing.T) { assert.Equal(t, platform, CloudFunctions) } -func TestCloudPlatformBMS(t *testing.T) { +func TestCloudPlatformBareMetalSolution(t *testing.T) { d := NewTestDetector(&FakeMetadataProvider{}, &FakeOSProvider{ Vars: map[string]string{ bmsInstanceIDEnv: "foo", @@ -99,7 +99,7 @@ func TestCloudPlatformBMS(t *testing.T) { }, }) platform := d.CloudPlatform() - assert.Equal(t, platform, BMS) + assert.Equal(t, platform, BareMetalSolution) } func TestProjectID(t *testing.T) {