Fix gcloud can't run on python2 during acloud setup.
- Check gcloud alpha component uninstall before intall it.
- Change gcloud running environment to support python2.
Bug: 148623409
Test: acloud-dev setup --gcp-init --force
Change-Id: Idab3c03a256a6605f4620edde915b327d082d174
diff --git a/setup/google_sdk.py b/setup/google_sdk.py
index 4867ca9..1343a3d 100644
--- a/setup/google_sdk.py
+++ b/setup/google_sdk.py
@@ -43,6 +43,7 @@
SDK_BIN_PATH = os.path.join("google-cloud-sdk", "bin")
GCLOUD_BIN = "gcloud"
+GCLOUD_COMPONENT_NOT_INSTALLED = "Not Installed"
GCP_SDK_VERSION = "209.0.0"
GCP_SDK_TOOLS_URL = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads"
LINUX_GCP_SDK_64_URL = "%s/google-cloud-sdk-%s-linux-x86_64.tar.gz" % (
@@ -126,7 +127,13 @@
gcloud_runner: A GcloudRunner class to run "gcloud" command.
component: String, name of gcloud component.
"""
- gcloud_runner.RunGcloud(["components", "install", "--quiet", component])
+ result = gcloud_runner.RunGcloud([
+ "components", "list", "--format", "get(state.name)", "--filter",
+ "ID=%s" % component
+ ])
+ if result.strip() == GCLOUD_COMPONENT_NOT_INSTALLED:
+ gcloud_runner.RunGcloud(
+ ["components", "install", "--quiet", component])
def GetSDKBinPath(self):
"""Get google SDK tools bin path.