Skip to content

Commit

Permalink
fix(cloud-cli): the cluster from display name to name and url (#4478)
Browse files Browse the repository at this point in the history
* fix: fix the cluster from display name to name and url

Signed-off-by: FogDong <fog@bentoml.com>

* fix test

Signed-off-by: FogDong <fog@bentoml.com>

* fix

---------

Signed-off-by: FogDong <fog@bentoml.com>
Co-authored-by: bojiang <bojiang_@outlook.com>
  • Loading branch information
FogDong and bojiang committed Feb 3, 2024
1 parent 2af9302 commit 5db2656
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 26 deletions.
16 changes: 6 additions & 10 deletions src/bentoml/_internal/cloud/deployment.py
Original file line number Diff line number Diff line change
Expand Up @@ -600,16 +600,12 @@ def _generate_deployment_info_(
context: str | None, res: DeploymentSchema, urls: list[str] | None = None
) -> DeploymentInfo:
client = get_rest_api_client(context)
cluster_display_name = res.cluster.host_cluster_display_name
if cluster_display_name is None:
cluster_display_name = res.cluster.name
return DeploymentInfo(
name=res.name,
# TODO: update this after the url in the frontend is fixed
admin_console=f"{client.v1.endpoint}/clusters/{res.cluster.name}/namespaces/{res.kube_namespace}/deployments/{res.name}",
admin_console=f"{client.v1.endpoint}/deployments/{res.name}/access?cluster={res.cluster.name}&namespace={res.kube_namespace}",
created_at=res.created_at.strftime("%Y-%m-%d %H:%M:%S"),
created_by=res.creator.name,
cluster=cluster_display_name,
cluster=res.cluster.name,
_schema=res,
_context=context,
_urls=urls,
Expand Down Expand Up @@ -690,7 +686,7 @@ def update(
cls._fix_and_validate_schema(config_struct)

res = cloud_rest_client.v2.update_deployment(
cluster=deployment_schema.cluster.host_cluster_display_name,
cluster=deployment_schema.cluster.name,
name=name,
update_schema=config_struct,
)
Expand Down Expand Up @@ -722,10 +718,10 @@ def apply(
)
if (
deployment_config_params.get_cluster(pop=False)
!= deployment_schema.cluster.host_cluster_display_name
!= deployment_schema.cluster.name
):
raise BentoMLException(
f"Deployment cluster cannot be changed, current cluster is {deployment_schema.cluster.host_cluster_display_name}"
f"Deployment cluster cannot be changed, current cluster is {deployment_schema.cluster.name}"
)
config_struct = bentoml_cattr.structure(
deployment_config_params.get_config_dict(), UpdateDeploymentSchemaV2
Expand All @@ -735,7 +731,7 @@ def apply(
res = cloud_rest_client.v2.update_deployment(
name=name,
update_schema=config_struct,
cluster=deployment_schema.cluster.host_cluster_display_name,
cluster=deployment_schema.cluster.name,
)
logger.debug("Deployment Schema: %s", config_struct)
return cls._generate_deployment_info_(context, res, res.urls)
Expand Down
1 change: 0 additions & 1 deletion src/bentoml/_internal/cloud/schemas/schemasv1.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,6 @@ class OrganizationListSchema(BaseListSchema):
@attr.define
class ClusterSchema(ResourceSchema):
description: str
host_cluster_display_name: t.Optional[str]
organization_name: str
creator: UserSchema

Expand Down
2 changes: 1 addition & 1 deletion src/bentoml_cli/deployment.py
Original file line number Diff line number Diff line change
Expand Up @@ -737,7 +737,7 @@ def create_deployment(
f"[bold green]Successfully created deployment '{deployment.name}' in cluster '{deployment.cluster}'[/bold green]"
)
spinner.log_progress.add_task(
f"[bold blue]To check the deployment details, go to: {deployment.admin_console}[/bold blue]"
f"[bold blue]To check the deployment details, go to:\n{deployment.admin_console}[/bold blue]"
)
if wait:
spinner.spinner_progress.update(
Expand Down
28 changes: 14 additions & 14 deletions tests/unit/_internal/cloud/test_deployment.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ def dummy_generate_deployment_schema(
update_schema: UpdateDeploymentSchemaV2,
):
user = UserSchema(name="", email="", first_name="", last_name="")
if cluster is None:
cluster = "default"
bento = update_schema.bento.split(":")
if len(bento) == 2:
bento_name = bento[0]
Expand Down Expand Up @@ -145,8 +147,7 @@ def dummy_generate_deployment_schema(
status=DeploymentStatus.Running,
cluster=ClusterSchema(
uid="",
name="default",
host_cluster_display_name=cluster,
name=cluster,
organization_name="default_organization",
resource_type=ResourceType.CLUSTER,
labels=[],
Expand All @@ -168,7 +169,7 @@ def dummy_create_deployment(
if create_schema.name is None:
create_schema.name = "empty_name"
if cluster is None:
cluster = "default_display_name"
cluster = "default"
return dummy_generate_deployment_schema(
create_schema.name, cluster, create_schema
)
Expand All @@ -179,15 +180,15 @@ def dummy_update_deployment(
cluster: str | None = None,
):
if cluster is None:
cluster = "default_display_name"
cluster = "default"
return dummy_generate_deployment_schema(name, cluster, update_schema)

def dummy_get_deployment(
name: str,
cluster: str | None = None,
):
if cluster is None:
cluster = "default_display_name"
cluster = "default"
if name == "test-distributed":
return dummy_generate_deployment_schema(
name,
Expand Down Expand Up @@ -245,7 +246,6 @@ def dummy_get_deployment(
ClusterSchema(
uid="",
name="default",
host_cluster_display_name="default_display_name",
organization_name="default_organization",
resource_type=ResourceType.CLUSTER,
labels=[],
Expand Down Expand Up @@ -273,7 +273,7 @@ def test_create_deployment(mock_get_client: MagicMock, rest_client: RestApiClien
)
)
# assert expected schema
assert deployment.cluster == "default_display_name"
assert deployment.cluster == "default"
assert deployment.name == "empty_name"
config = deployment.get_config(refetch=False)
assert config.access_authorization is False
Expand Down Expand Up @@ -338,7 +338,7 @@ def test_create_deployment_scailing_only_min(
)
)
# assert expected schema
assert deployment.cluster == "default_display_name"
assert deployment.cluster == "default"
assert deployment.name == "empty_name"
config = deployment.get_config(refetch=False)
assert config.access_authorization is False
Expand Down Expand Up @@ -367,7 +367,7 @@ def test_create_deployment_scailing_only_max(
)
)
# assert expected schema
assert deployment.cluster == "default_display_name"
assert deployment.cluster == "default"
assert deployment.name == "empty_name"
config = deployment.get_config(refetch=False)
assert config.access_authorization is False
Expand Down Expand Up @@ -401,7 +401,7 @@ def test_create_deployment_config_dict(
)
)
# assert expected schema
assert deployment.cluster == "default_display_name"
assert deployment.cluster == "default"
assert deployment.name == "empty_name"
config = deployment.get_config(refetch=False)
assert config.services == {
Expand Down Expand Up @@ -440,7 +440,7 @@ def test_update_deployment(mock_get_client: MagicMock, rest_client: RestApiClien
)
)
# assert expected schema
assert deployment.cluster == "default_display_name"
assert deployment.cluster == "default"
assert deployment.get_bento(refetch=False) == "abc:1234"
assert deployment.name == "test"
config = deployment.get_config(refetch=False)
Expand Down Expand Up @@ -472,7 +472,7 @@ def test_update_deployment_scaling_only_min(
)
)
# assert expected schema
assert deployment.cluster == "default_display_name"
assert deployment.cluster == "default"
assert deployment.name == "test"
config = deployment.get_config(refetch=False)
assert config.access_authorization is False
Expand Down Expand Up @@ -503,7 +503,7 @@ def test_update_deployment_scaling_only_max(
)
)
# assert expected schema
assert deployment.cluster == "default_display_name"
assert deployment.cluster == "default"
assert deployment.name == "test"
config = deployment.get_config(refetch=False)
assert config.access_authorization is False
Expand Down Expand Up @@ -557,7 +557,7 @@ def test_update_deployment_distributed(
)
)
# assert expected schema
assert deployment.cluster == "default_display_name"
assert deployment.cluster == "default"
assert deployment.name == "test-distributed"
config = deployment.get_config(refetch=False)
assert config.access_authorization is False
Expand Down

0 comments on commit 5db2656

Please sign in to comment.