[HORIZONDB] az horizondb create | show | delete: Introduce commands for Azure HorizonDB#33281
[HORIZONDB] az horizondb create | show | delete: Introduce commands for Azure HorizonDB#33281
az horizondb create | show | delete: Introduce commands for Azure HorizonDB#33281Conversation
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <copilot@github.com>
|
Validation for Azure CLI Full Test Starting...
Thanks for your contribution! |
|
Validation for Breaking Change Starting...
Thanks for your contribution! |
|
Thank you for your contribution! We will review the pull request and get back to you soon. |
|
The git hooks are available for azure-cli and azure-cli-extensions repos. They could help you run required checks before creating the PR. Please sync the latest code with latest dev branch (for azure-cli) or main branch (for azure-cli-extensions). pip install azdev --upgrade
azdev setup -c <your azure-cli repo path> -r <your azure-cli-extensions repo path>
|
There was a problem hiding this comment.
Pull request overview
This PR onboards a new first-party Azure CLI command module for Azure HorizonDB (Microsoft.HorizonDb) as a public preview feature, including packaging, command registration, help, and live tests/recordings.
Changes:
- Add the
horizondbcommand module withaz horizondb create | show | deletecommand surface, argument definitions, client factory, and help. - Register the module in the CLI command index, docs source map, live test pipeline config, and CODEOWNERS.
- Add scenario tests and recordings for cluster create/show/delete, plus dependency pinning for
azure-mgmt-horizondb.
Reviewed changes
Copilot reviewed 29 out of 29 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/azure-cli/setup.py | Add azure-mgmt-horizondb dependency to CLI packaging. |
| src/azure-cli/requirements.py3.windows.txt | Pin azure-mgmt-horizondb for Windows builds. |
| src/azure-cli/requirements.py3.Linux.txt | Pin azure-mgmt-horizondb for Linux builds. |
| src/azure-cli/requirements.py3.Darwin.txt | Pin azure-mgmt-horizondb for macOS builds. |
| src/azure-cli/azure/cli/command_modules/horizondb/init.py | New commands loader wiring for HorizonDB module. |
| src/azure-cli/azure/cli/command_modules/horizondb/_client_factory.py | Management client factory for HorizonDB SDK. |
| src/azure-cli/azure/cli/command_modules/horizondb/_params.py | Argument definitions for horizondb commands. |
| src/azure-cli/azure/cli/command_modules/horizondb/_help.py | CLI help + examples for horizondb group/commands. |
| src/azure-cli/azure/cli/command_modules/horizondb/cluster_commands.py | Command table registration for create/show/delete. |
| src/azure-cli/azure/cli/command_modules/horizondb/commands/custom_commands.py | Custom implementations for create/delete/list. |
| src/azure-cli/azure/cli/command_modules/horizondb/utils/_transformers.py | Table output transformers for HorizonDB. |
| src/azure-cli/azure/cli/command_modules/horizondb/utils/_context.py | Custom argument context (AAZ-style expand) hook. |
| src/azure-cli/azure/cli/command_modules/horizondb/utils/validators.py | Validators (password prompting / tag validation). |
| src/azure-cli/azure/cli/command_modules/horizondb/randomname/* | Random username generator + word lists. |
| src/azure-cli/azure/cli/command_modules/horizondb/tests/latest/test_horizondb_commands.py | New scenario test for cluster mgmt. |
| src/azure-cli/azure/cli/command_modules/horizondb/tests/latest/recordings/test_horizondb_cluster_mgmt.yaml | Recording for the new scenario test. |
| src/azure-cli/azure/cli/command_modules/horizondb/tests/latest/constants.py | Test constants (location, naming). |
| src/azure-cli/azure/cli/command_modules/horizondb/tests/init.py | Test package init. |
| src/azure-cli/azure/cli/command_modules/horizondb/tests/latest/init.py | Latest test package init. |
| src/azure-cli/azure/cli/command_modules/horizondb/utils/init.py | Utils package init. |
| src/azure-cli/azure/cli/command_modules/horizondb/commands/init.py | Commands package init. |
| src/azure-cli/azure/cli/command_modules/horizondb/randomname/init.py | Randomname package init. |
| src/azure-cli-core/azure/cli/core/profiles/_shared.py | Add ResourceType.MGMT_HORIZONDB. |
| src/azure-cli-core/azure/cli/core/commandIndex.latest.json | Register horizondb module for command loading. |
| scripts/live_test/CLITest.yml | Include horizondb in live test matrix. |
| doc/sphinx/azhelpgen/doc_source_map.json | Register help source for horizondb. |
| .github/CODEOWNERS | Add code owners for the new command module path. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| custom_command_type=custom_commands, | ||
| client_factory=cf_horizondb_clusters) as g: | ||
| g.custom_command('create', 'horizondb_cluster_create', table_transformer=table_transform_output) | ||
| g.custom_command('delete', 'horizondb_cluster_delete') |
There was a problem hiding this comment.
table_transform_output expects keys like 'primary endpoint', 'username', and 'password' to exist in the command result. The HorizonDB create/show responses are standard ARM resources (e.g., name, location, properties.*) and don't include these keys, so az horizondb create -o table will raise a KeyError. Update the table transformer (or the create command output shaping) to match the actual response fields (e.g., FQDN/readonly endpoint/version/vCores/replicaCount) and guard against missing keys.
Co-authored-by: Copilot <copilot@github.com>
Related command
az horizondb createaz horizondb showaz horizondb getDescription
Onboarding Horizon DB commands for public preview.
#33267
Testing Guide
Manual
History Notes
[Component Name 1] BREAKING CHANGE:
az command a: Make some customer-facing breaking change[Component Name 2]
az command b: Add some customer-facing featureThis checklist is used to make sure that common guidelines for a pull request are followed.
The PR title and description has followed the guideline in Submitting Pull Requests.
I adhere to the Command Guidelines.
I adhere to the Error Handling Guidelines.