cos/tools: Fix http client credentials check for changelog
JSON file in google.Credentials maybe empty if authentication is provided by the environment instead of a credential file. This is the case in GCP environments. Remove empty length check to proceed even if JSON is empty.
Also, fix typos and resolve errors in unit tests.
BUG=b/297072390
RELEASE_NOTE=None
Change-Id: I630a8d74693298579da6662a0d1ce12d13abea70
Reviewed-on: https://cos-review.googlesource.com/c/cos/tools/+/56347
Reviewed-by: Robert Kolchmeyer <rkolchmeyer@google.com>
Cloud-Build: GCB Service account <228075978874@cloudbuild.gserviceaccount.com>
Tested-by: Nandhini Rengaraj <nrengaraj@google.com>
diff --git a/src/cmd/changelogctl/main.go b/src/cmd/changelogctl/main.go
index 0838acb..3cf6f4d 100755
--- a/src/cmd/changelogctl/main.go
+++ b/src/cmd/changelogctl/main.go
@@ -54,7 +54,7 @@
func getHTTPClient() (*http.Client, error) {
log.Debug("Creating HTTP client")
creds, err := google.FindDefaultCredentials(context.Background(), gerrit.OAuthScope)
- if err != nil || len(creds.JSON) == 0 {
+ if err != nil {
return nil, fmt.Errorf("no application default credentials found - run `gcloud auth application-default login` and try again")
}
return oauth2.NewClient(oauth2.NoContext, creds.TokenSource), nil
diff --git a/src/pkg/changelog/changelog_test.go b/src/pkg/changelog/changelog_test.go
index a555e7a..3d90b0a 100644
--- a/src/pkg/changelog/changelog_test.go
+++ b/src/pkg/changelog/changelog_test.go
@@ -30,7 +30,7 @@
func getHTTPClient() (*http.Client, error) {
creds, err := google.FindDefaultCredentials(context.Background(), gerrit.OAuthScope)
- if err != nil || len(creds.JSON) == 0 {
+ if err != nil {
return nil, fmt.Errorf("no application default credentials found - run `gcloud auth application-default login` and try again")
}
return oauth2.NewClient(oauth2.NoContext, creds.TokenSource), nil
diff --git a/src/pkg/cos/cos_test.go b/src/pkg/cos/cos_test.go
index 213c1d2..c5b40ac 100644
--- a/src/pkg/cos/cos_test.go
+++ b/src/pkg/cos/cos_test.go
@@ -105,8 +105,8 @@
}
defer os.RemoveAll(tmpDir)
- downloder := fakeDownloader{}
- if err := downloadKernelSrc(&downloder, tmpDir); err != nil {
+ downloader := fakeDownloader{}
+ if err := downloadKernelSrc(&downloader, tmpDir); err != nil {
t.Fatalf("Failed to run downloadKernelSrc: %v", err)
}
@@ -132,8 +132,8 @@
defer os.RemoveAll(tmpDir)
os.Setenv("TMPDIR", tmpDir)
- downloder := fakeDownloader{}
- if err := SetCompilationEnv(&downloder); err != nil {
+ downloader := fakeDownloader{}
+ if err := SetCompilationEnv(&downloader); err != nil {
t.Fatalf("Failed to run SetCompilationEnv: %v", err)
}
@@ -167,8 +167,8 @@
defer os.RemoveAll(tmpDir)
origPath := os.Getenv("PATH")
- downloder := fakeDownloader{}
- if err := InstallCrossToolchain(&downloder, tmpDir); err != nil {
+ downloader := fakeDownloader{}
+ if err := InstallCrossToolchain(&downloader, tmpDir); err != nil {
t.Fatalf("Failed to run InstallCrossToolchain: %v", err)
}
@@ -298,3 +298,5 @@
func (*fakeDownloader) DownloadArtifact(string, string) error { return nil }
func (*fakeDownloader) GetArtifact(string) ([]byte, error) { return nil, nil }
+
+func (*fakeDownloader) ArtifactExists(string) (bool, error) { return false, nil }
diff --git a/src/pkg/cos/env_reader_test.go b/src/pkg/cos/env_reader_test.go
index a6ceaf3..c538d40 100644
--- a/src/pkg/cos/env_reader_test.go
+++ b/src/pkg/cos/env_reader_test.go
@@ -27,6 +27,23 @@
GOOGLE_METRICS_PRODUCT_ID=26
HOME_URL="https://cloud.google.com/container-optimized-os/docs"
ID=cos`
+ lsbReleaseString := `CHROMEOS_RELEASE_APPID={76E245CF-C0D0-444D-BA50-36739C18EB00}
+CHROMEOS_BOARD_APPID={76E245CF-C0D0-444D-BA50-36739C18EB00}
+CHROMEOS_CANARY_APPID={90F229CE-83E2-4FAF-8479-E368A34938B1}
+DEVICETYPE=OTHER
+HWID_OVERRIDE=LAKITU DEFAULT
+CHROMEOS_RELEASE_NAME=Chromium OS
+CHROMEOS_AUSERVER=https://localhost:8080/noupdate
+CHROMEOS_RELEASE_KEYSET=devkeys
+CHROMEOS_RELEASE_TRACK=testimage-channel
+CHROMEOS_RELEASE_BOARD=lakitu
+CHROMEOS_RELEASE_BRANCH_NUMBER=0
+CHROMEOS_RELEASE_BUILD_NUMBER=15047
+CHROMEOS_RELEASE_CHROME_MILESTONE=109
+CHROMEOS_RELEASE_PATCH_NUMBER=0
+CHROMEOS_RELEASE_VERSION=15047.0.0
+GOOGLE_RELEASE=15047.0.0
+`
if err := createConfigFile(osReleaseString, osReleasePath, testDir); err != nil {
t.Fatalf("Failed to create osRelease file: %v", err)
}
@@ -35,6 +52,10 @@
t.Fatalf("Failed to create toolchain path file: %v", err)
}
+ if err := createConfigFile(lsbReleaseString, lsbReleasePath, testDir); err != nil {
+ t.Fatalf("Failed to create lsbRelease file: %v", err)
+ }
+
envReader, err := NewEnvReader(testDir)
if err != nil {
t.Fatalf("Failed to create EnvReader: %v", err)
diff --git a/src/pkg/findbuild/findbuild.go b/src/pkg/findbuild/findbuild.go
index d0f0b48..e2e9f57 100644
--- a/src/pkg/findbuild/findbuild.go
+++ b/src/pkg/findbuild/findbuild.go
@@ -628,7 +628,7 @@
// access secretmanager
client, err := secretmanager.NewClient(context.Background())
if err != nil {
- log.Error("failed to create secretmanager client: %v", err)
+ log.Errorf("failed to create secretmanager client: %v", err)
return nil, utils.InternalServerError
}
var (
@@ -649,7 +649,7 @@
{instanceSecretName, &instanceName},
{dbProjectSecretName, &dbProjectID},
}); err != nil {
- log.Error("failed to retrieve secrets from secretmanager: %v", err)
+ log.Errorf("failed to retrieve secrets from secretmanager: %v", err)
return nil, utils.InternalServerError
}
connectionName := dbProjectID + ":" + zone + ":" + instanceName
diff --git a/src/pkg/gpuconfig/read_configs_test.go b/src/pkg/gpuconfig/read_configs_test.go
index 1fe4d86..33965a4 100644
--- a/src/pkg/gpuconfig/read_configs_test.go
+++ b/src/pkg/gpuconfig/read_configs_test.go
@@ -46,7 +46,7 @@
timeNow = func() time.Time { return time.Date(2022, time.October, 10, 0, 0, 0, 0, time.UTC) }
// read configs from [2022-10-10 to 2022-10-10 minus 3 days]
- got, err := ReadConfigs(ctx, gcs.Client, "cos-gpu-configs-test", 3)
+ got, err := ReadConfigs(ctx, gcs.Client, "cos-gpu-configs-test", 3, "kernel")
if err != nil {
log.Fatalf("ReadConfigs() failed:%v\n", err)
}
diff --git a/src/pkg/tools/sbomutil/sbomutil_test.go b/src/pkg/tools/sbomutil/sbomutil_test.go
index 3700557..4e34665 100644
--- a/src/pkg/tools/sbomutil/sbomutil_test.go
+++ b/src/pkg/tools/sbomutil/sbomutil_test.go
@@ -174,7 +174,7 @@
},
{
RefA: spdx_common.DocElementID{ElementRefID: spdx_common.ElementID("SPDXRef-image1")},
- RefB: spdx_common.DocElementID{ElementRefID: spdx_common.ElementID("DocumentRef-pkg2")},
+ RefB: spdx_common.DocElementID{DocumentRefID: "pkg2", ElementRefID: spdx_common.ElementID("SPDXRef-DOCUMENT")},
Relationship: "CONTAINS",
},
},
diff --git a/src/pkg/utils/gobutils_test.go b/src/pkg/utils/gobutils_test.go
index 5a12948..6b88531 100644
--- a/src/pkg/utils/gobutils_test.go
+++ b/src/pkg/utils/gobutils_test.go
@@ -53,7 +53,7 @@
func getHTTPClient() (*http.Client, error) {
creds, err := google.FindDefaultCredentials(context.Background(), gerrit.OAuthScope)
- if err != nil || len(creds.JSON) == 0 {
+ if err != nil {
return nil, fmt.Errorf("no application default credentials found - run `gcloud auth application-default login` and try again")
}
return oauth2.NewClient(oauth2.NoContext, creds.TokenSource), nil