in src/cli/commands/create.py [0:0]
def _handle_credential_verification(creds_info: dict) -> dict:
"""Handle verification of credentials and project selection.
Args:
creds_info: Current credential information
Returns:
Updated credential information
"""
# Check if running in Cloud Shell
if os.environ.get("CLOUD_SHELL") == "true":
if creds_info["project"] == "":
console.print("> It looks like you are running in Cloud Shell.")
console.print(
"> You need to set up a project ID to continue, but you haven't setup a project yet."
)
new_project = Prompt.ask("\n> Enter a project ID")
creds_info["project"] = new_project
set_gcp_project(creds_info["project"], set_quota_project=False)
return creds_info
# Ask user if current credentials are correct or if they want to skip
console.print(f"\n> You are logged in with account: '{creds_info['account']}'")
console.print(f"> You are using project: '{creds_info['project']}'")
choices = ["Y", "skip", "edit"]
response = Prompt.ask(
"> Do you want to continue? (The CLI will check if Vertex AI is enabled in this project)",
choices=choices,
default="Y",
).lower()
if response == "skip":
console.print("> Skipping credential verification", style="yellow")
creds_info["skip_vertex_test"] = True
return creds_info
change_creds = response == "edit"
if change_creds:
# Handle credential change
console.print("\n> Initiating new login...")
subprocess.run(["gcloud", "auth", "login", "--update-adc"], check=True)
console.print("> Login successful. Verifying new credentials...")
# Re-verify credentials after login
creds_info = verify_credentials()
# Prompt for project change
console.print(
f"\n> You are now logged in with account: '{creds_info['account']}'."
)
console.print(f"> Current project is: '{creds_info['project']}'.")
choices = ["y", "skip", "edit"]
response = Prompt.ask(
"> Do you want to continue? (The CLI will verify Vertex AI access in this project)",
choices=choices,
default="y",
).lower()
if response == "skip":
console.print("> Skipping project verification", style="yellow")
creds_info["skip_vertex_test"] = True
return creds_info
if response == "edit":
# Prompt for new project ID
new_project = Prompt.ask("\n> Enter the new project ID")
creds_info["project"] = new_project
set_gcp_project(creds_info["project"], set_quota_project=True)
return creds_info