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

Dataplane 2024-10-01-preview #26

Open
wants to merge 5 commits 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.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 80 additions & 0 deletions src/devcenter/azext_devcenter/_help.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,22 @@
--pool-name "DevPool" --project-name "DevProject"
"""

helps[
"devcenter dev image-build-logs show"
] = """
type: command
short-summary: "Gets the log for an imaging build task."
examples:
- name: Get using dev center
text: |-
az devcenter dev image-build-logs show--dev-center-name "ContosoDevCenter" \
--project-name "DevProject" --image-build-log-id "91835dc0-ef5a-4f58-9e3a-099aea8481f4"
- name: Get using endpoint
text: |-
az devcenter dev image-build-logs show --endpoint "https://8a40af38-3b4c-4672-a6a4-5e964b1870ed-contosodevcenter.centralus.devcenter.azure.com/" \
--project-name "DevProject"--image-build-log-id "91835dc0-ef5a-4f58-9e3a-099aea8481f4"
"""

helps[
"devcenter dev dev-box"
] = """
Expand Down Expand Up @@ -423,6 +439,70 @@
"schedule-default" --user-id "00000000-0000-0000-0000-000000000000"
"""

helps[
"devcenter dev dev-box show-snapshot"
] = """
type: command
short-summary: "Gets a snapshot by snapshot id."
examples:
- name: Get snapshot using dev center
text: |-
az devcenter dev dev-box show-snapshot --name "myDevBox" --dev-center-name "ContosoDevCenter" \
--project-name "DevProject" --user-id "00000000-0000-0000-0000-000000000000" --snapshot-id "CPC_974f0852-a0f4-4a9f-8ce7-d0d0d7a604cf_9b656834-3563-4bca-93c6-f90cfa3c6797"
- name: Get snapshot using endpoint
text: |-
az devcenter dev dev-box show-snapshot --name "MyDevBox" --endpoint "https://8a40af38-3b4c-4672-a6a4-5e964b1870ed-contosodevcenter.centralus.devcenter.azure.com/" \
--project-name "DevProject" --user-id "00000000-0000-0000-0000-000000000000" --snapshot-id "CPC_974f0852-a0f4-4a9f-8ce7-d0d0d7a604cf_9b656834-3563-4bca-93c6-f90cfa3c6797"
"""

helps[
"devcenter dev dev-box list-snapshot"
] = """
type: command
short-summary: "Lists snapshots for this Dev Box."
examples:
- name: List snapshots using dev center
text: |-
az devcenter dev dev-box list-snapshot --dev-center-name "ContosoDevCenter" \
--project-name "DevProject" --name "myDevBox" --user-id "00000000-0000-0000-0000-000000000000"
- name: List snapshots using endpoint
text: |-
az devcenter dev dev-box list-snapshot --name "MyDevBox" --endpoint "https://8a40af38-3b4c-4672-a6a4-5e964b1870ed-contosodevcenter.centralus.devcenter.azure.com/" \
--project-name "DevProject" --user-id "00000000-0000-0000-0000-000000000000"
"""

helps[
"devcenter dev dev-box capture-snapshot"
] = """
type: command
short-summary: "Captures a manual snapshot of the Dev Box."
examples:
- name: Capture snapshot using dev center
text: |-
az devcenter dev dev-box capture-snapshot --dev-center-name "ContosoDevCenter" \
--project-name "DevProject" --name "myDevBox" --user-id "00000000-0000-0000-0000-000000000000"
- name: Capture snapshot using endpoint
text: |-
az devcenter dev dev-box capture-snapshot --name "MyDevBox" --endpoint "https://8a40af38-3b4c-4672-a6a4-5e964b1870ed-contosodevcenter.centralus.devcenter.azure.com/" \
--project-name "DevProject" --user-id "00000000-0000-0000-0000-000000000000"
"""

helps[
"devcenter dev dev-box restore-snapshot"
] = """
type: command
short-summary: "Restores a Dev Box to a specified snapshot."
examples:
- name: Restore using dev center
text: |-
az devcenter dev dev-box restore-snapshot --dev-center-name "ContosoDevCenter" \
--project-name "DevProject" --name "myDevBox" --user-id "00000000-0000-0000-0000-000000000000" --snapshot-id "CPC_974f0852-a0f4-4a9f-8ce7-d0d0d7a604cf_9b656834-3563-4bca-93c6-f90cfa3c6797"
- name: Restore using endpoint
text: |-
az devcenter dev dev-box repair --name "MyDevBox" --endpoint "https://8a40af38-3b4c-4672-a6a4-5e964b1870ed-contosodevcenter.centralus.devcenter.azure.com/" \
--project-name "DevProject" --user-id "00000000-0000-0000-0000-000000000000" --snapshot-id "CPC_974f0852-a0f4-4a9f-8ce7-d0d0d7a604cf_9b656834-3563-4bca-93c6-f90cfa3c6797"
"""

helps[
"devcenter dev environment"
] = """
Expand Down
141 changes: 141 additions & 0 deletions src/devcenter/azext_devcenter/_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,26 @@ def load_arguments(self, _):
help="The name of a pool of dev boxes.",
)

with self.argument_context("devcenter dev image-build-logs show") as c:
c.argument(
"dev_center",
arg_type=dev_center_type,
)
c.argument(
"project_name",
arg_type=project_type,
)
c.argument(
"endpoint",
arg_type=endpoint,
)
c.argument(
"image_build_log_id",
options_list=["--image-build-log-id"],
type=str,
help="An imaging build log id.",
)

with self.argument_context(
"devcenter dev dev-box list", validator=validate_dev_box_list
) as c:
Expand Down Expand Up @@ -469,6 +489,120 @@ def load_arguments(self, _):
help="The name of an action that will take place on a dev box.",
)

with self.argument_context("devcenter dev dev-box show-snapshot") as c:
c.argument(
"dev_center",
arg_type=dev_center_type,
)
c.argument(
"project_name",
arg_type=project_type,
)
c.argument(
"endpoint",
arg_type=endpoint,
)
c.argument(
"user_id",
type=str,
help="The AAD object id of the user. If value is 'me', the identity is taken "
"from the authentication context.",
)
c.argument(
"dev_box_name",
options_list=["--name", "-n", "--dev-box-name"],
type=str,
help="The name of a dev " "box.",
)
c.argument(
"snapshot_id",
type=str,
help="The id of the snapshot. Should be treated as opaque string.",
)

with self.argument_context("devcenter dev dev-box list-snapshot") as c:
c.argument(
"dev_center",
arg_type=dev_center_type,
)
c.argument(
"project_name",
arg_type=project_type,
)
c.argument(
"endpoint",
arg_type=endpoint,
)
c.argument(
"user_id",
type=str,
help="The AAD object id of the user. If value is 'me', the identity is taken "
"from the authentication context.",
)
c.argument(
"dev_box_name",
options_list=["--name", "-n", "--dev-box-name"],
type=str,
help="The name of a dev " "box.",
)

with self.argument_context("devcenter dev dev-box capture-snapshot") as c:
c.argument(
"dev_center",
arg_type=dev_center_type,
)
c.argument(
"project_name",
arg_type=project_type,
)
c.argument(
"endpoint",
arg_type=endpoint,
)
c.argument(
"user_id",
type=str,
help="The AAD object id of the user. If value is 'me', the identity is taken "
"from the authentication context.",
)
c.argument(
"dev_box_name",
options_list=["--name", "-n", "--dev-box-name"],
type=str,
help="The name of a dev " "box.",
)

with self.argument_context("devcenter dev dev-box restore-snapshot") as c:
c.argument(
"dev_center",
arg_type=dev_center_type,
)
c.argument(
"project_name",
arg_type=project_type,
)
c.argument(
"endpoint",
arg_type=endpoint,
)
c.argument(
"user_id",
type=str,
help="The AAD object id of the user. If value is 'me', the identity is taken "
"from the authentication context.",
)
c.argument(
"dev_box_name",
options_list=["--name", "-n", "--dev-box-name"],
type=str,
help="The name of a dev " "box.",
)
c.argument(
"snapshot_id",
type=str,
help="The snapshot id to use for the restore operation.",
)

with self.argument_context(
"devcenter dev dev-box delay-action", validator=validate_time
) as c:
Expand Down Expand Up @@ -795,6 +929,13 @@ def load_arguments(self, _):
type=str,
help="The name " "of the environment.",
)
c.argument(
"force",
arg_type=get_three_state_flag(),
help="Optional to force environment deletion even if the environment definition does not exist. "
"This is a best-effort delete, and anything custom that forces resource creation beyond the associated resource group may not be deleted.",
is_preview=True,
)

with self.argument_context("devcenter dev catalog list") as c:
c.argument(
Expand Down
7 changes: 7 additions & 0 deletions src/devcenter/azext_devcenter/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -321,6 +321,9 @@ def load_command_table(self, _):
g.custom_command("list", "devcenter_schedule_list_dp")
g.custom_show_command("show", "devcenter_schedule_show_dp")

with self.command_group("devcenter dev image-build-logs", dev_boxes_dp) as g:
g.custom_show_command("show", "devcenter_image_build_logs_show") \

with self.command_group("devcenter dev dev-box") as g:
g.custom_command("list", "devcenter_dev_box_list")
g.custom_show_command("show", "devcenter_dev_box_show")
Expand All @@ -345,6 +348,10 @@ def load_command_table(self, _):
g.custom_command("delay-all-actions", "devcenter_dev_box_delay_all_actions")
g.custom_command("list-operation", "devcenter_dev_box_list_operation")
g.custom_command("show-operation", "devcenter_dev_box_show_operation")
g.custom_command("list-snapshot", "devcenter_dev_box_list_snapshot")
g.custom_command("show-snapshot", "devcenter_dev_box_show_snapshot")
g.custom_command("capture-snapshot", "devcenter_dev_box_capture_snapshot")
g.custom_command("restore-snapshot", "devcenter_dev_box_restore_snapshot")

with self.command_group("devcenter dev environment") as g:
g.custom_command("list", "devcenter_environment_list")
Expand Down
74 changes: 74 additions & 0 deletions src/devcenter/azext_devcenter/custom.py
Original file line number Diff line number Diff line change
Expand Up @@ -803,6 +803,17 @@ def devcenter_pool_show_dp(
project_name=project_name, pool_name=pool_name
)

def devcenter_image_build_logs_show_dp(
cmd, project_name, image_build_log_id, dev_center=None, endpoint=None
):
cf_dataplane = cf_devcenter_dataplane(
cmd.cli_ctx, endpoint, dev_center, project_name
)

return cf_dataplane.dev_boxes.get_image_build_logs(
project_name=project_name, image_build_log_id=image_build_log_id
)


def devcenter_schedule_list_dp(
cmd, project_name, pool_name=None, dev_center=None, endpoint=None
Expand Down Expand Up @@ -1114,6 +1125,67 @@ def devcenter_dev_box_delay_all_actions(
until=delayed_time,
)

def devcenter_dev_box_list_snapshot(
cmd, project_name, dev_box_name, user_id="me", dev_center=None, endpoint=None
):
cf_dataplane = cf_devcenter_dataplane(
cmd.cli_ctx, endpoint, dev_center, project_name
)
return cf_dataplane.dev_boxes.list_snapshots(
project_name=project_name, user_id=user_id, dev_box_name=dev_box_name
)


def devcenter_dev_box_show_snapshot(
cmd,
project_name,
dev_box_name,
snapshot_id,
user_id="me",
dev_center=None,
endpoint=None,
):
cf_dataplane = cf_devcenter_dataplane(
cmd.cli_ctx, endpoint, dev_center, project_name
)

return cf_dataplane.dev_boxes.get_snapshot(
project_name=project_name,
user_id=user_id,
dev_box_name=dev_box_name,
snapshot_id=snapshot_id,
)

def devcenter_dev_box_capture_snapshot(
cmd, project_name, dev_box_name, user_id="me", dev_center=None, endpoint=None
):
cf_dataplane = cf_devcenter_dataplane(
cmd.cli_ctx, endpoint, dev_center, project_name
)
return cf_dataplane.dev_boxes.capture_snapshot(
project_name=project_name, user_id=user_id, dev_box_name=dev_box_name
)


def devcenter_dev_box_restore_snapshot(
cmd,
project_name,
dev_box_name,
snapshot_id,
user_id="me",
dev_center=None,
endpoint=None,
):
cf_dataplane = cf_devcenter_dataplane(
cmd.cli_ctx, endpoint, dev_center, project_name
)

return cf_dataplane.dev_boxes.restore_snapshot(
project_name=project_name,
user_id=user_id,
dev_box_name=dev_box_name,
snapshot_id=snapshot_id,
)

def devcenter_dev_box_list_operation(
cmd, project_name, dev_box_name, user_id="me", dev_center=None, endpoint=None
Expand Down Expand Up @@ -1256,6 +1328,7 @@ def devcenter_environment_delete(
project_name,
no_wait=False,
user_id="me",
force=None,
dev_center=None,
endpoint=None,
):
Expand All @@ -1268,6 +1341,7 @@ def devcenter_environment_delete(
project_name=project_name,
user_id=user_id,
environment_name=environment_name,
force=force,
)


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,14 @@ class DevCenterClientConfiguration(Configuration): # pylint: disable=too-many-i
:type endpoint: str
:param credential: Credential needed for the client to connect to Azure. Required.
:type credential: ~azure.core.credentials.TokenCredential
:keyword api_version: Api Version. Default value is "2024-05-01-preview". Note that overriding
:keyword api_version: Api Version. Default value is "2024-10-01-preview". Note that overriding
this default value may result in unsupported behavior.
:paramtype api_version: str
"""

def __init__(self, endpoint: str, credential: "TokenCredential", **kwargs: Any) -> None:
super(DevCenterClientConfiguration, self).__init__(**kwargs)
api_version: str = kwargs.pop("api_version", "2024-05-01-preview")
api_version: str = kwargs.pop("api_version", "2024-10-01-preview")

if endpoint is None:
raise ValueError("Parameter 'endpoint' must not be None.")
Expand Down
Loading
Loading