Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: cloud login now also updates context #4699

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
7 changes: 5 additions & 2 deletions src/bentoml/_internal/cloud/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ def get_email(self) -> str:
"Unable to get current user from yatai server"
)
self.email = user.email
add_context(self, ignore_warning=True)
_ = add_context(self, ignore_warning=True)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the purpose of using a underscore to keep the result?

return self.email


Expand Down Expand Up @@ -116,7 +116,9 @@ def get_config(
return bentoml_cattr.structure(yaml_content, cls)


def add_context(context: CloudClientContext, *, ignore_warning: bool = False) -> None:
def add_context(
context: CloudClientContext, *, ignore_warning: bool = False
) -> CloudClientConfig:
config = CloudClientConfig.get_config()
for idx, ctx in enumerate(config.contexts):
if ctx.name == context.name:
Expand All @@ -127,6 +129,7 @@ def add_context(context: CloudClientContext, *, ignore_warning: bool = False) ->
else:
config.contexts.append(context)
config.to_yaml_file()
return config


def get_context(context: str | None) -> CloudClientContext:
Expand Down
3 changes: 2 additions & 1 deletion src/bentoml_cli/cloud.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,8 @@ def login(shared_options: SharedOptions, endpoint: str, api_token: str) -> None:
email=user.email,
)

add_context(ctx)
new_config = add_context(ctx)
_ = new_config.set_current_context(ctx.name)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we update the current context? This would be a behavior change.

I often do bentoml cloud login ... --context dev and then bentoml push --context dev, because I want to use the dev environment for testing but don't want to update the current context.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see. Because if we have multiple context:

doing bentoml cloud login ... as copied from the UI doesn't actually log you in the context. As a user I would expect when i login my context will change to the one i just logged in.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

doing bentoml cloud login ... as copied from the UI doesn't actually log you in the context.

Okay, but the approach to fixing it is wrong. We should instead, login using the current active context when no --context is given.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with @frostming here, we shouldn't updating the context automatically like this, which is confusing.

Probably better to be explicit at this case.

click.echo(f"Successfully logged in to Cloud for {user.name} in {org.name}")


Expand Down