hcs-cli 0.1.319__tar.gz → 0.1.321__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/PKG-INFO +2 -2
- hcs_cli-0.1.321/hcs_cli/__init__.py +3 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/dev/fs/clear.py +8 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/dev/fs/provided_files/mqtt-secret.yaml +3 -3
- hcs_cli-0.1.321/hcs_cli/cmds/hoc/stats.py +72 -0
- hcs_cli-0.1.321/hcs_cli/cmds/inventory/delete.py +48 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/lcm/provider/create.py +11 -2
- hcs_cli-0.1.321/hcs_cli/cmds/lcm/template/expand.py +46 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/lcm/vm/delete.py +3 -2
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/task.py +1 -0
- hcs_cli-0.1.321/hcs_cli/cmds/template/expand.py +110 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/template/update.py +2 -2
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/vm/delete.py +3 -2
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/vm/list.py +51 -39
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/vmm/rootca_migrate.py +1 -1
- hcs_cli-0.1.319/hcs_cli/payload/lcm/azure-dummy-nt.json → hcs_cli-0.1.321/hcs_cli/payload/lcm/azure-dummy.json +5 -4
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/lcm/zero.json +3 -2
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/admin/template.py +10 -1
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/hoc/diagnostic.py +11 -0
- hcs_cli-0.1.321/hcs_cli/service/inventory/__init__.py +15 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/inventory/vm.py +12 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/lcm/template.py +9 -6
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/template.py +1 -1
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/support/vm_table.py +2 -2
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/pyproject.toml +1 -1
- hcs_cli-0.1.319/hcs_cli/__init__.py +0 -3
- hcs_cli-0.1.319/hcs_cli/cmds/template/expand.py +0 -65
- hcs_cli-0.1.319/hcs_cli/payload/lcm/azure-dummy.json +0 -67
- hcs_cli-0.1.319/hcs_cli/service/inventory/__init__.py +0 -2
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/.gitignore +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/README.md +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/__main__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/ad/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/ad/create.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/ad/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/ad/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/ad/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/admin/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/admin/azure_infra/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/admin/azure_infra/main.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/advisor/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/advisor/advisor_utils.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/advisor/config/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/advisor/config/advisor_config.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/advisor/html_utils.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/advisor/org.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/advisor/pdf_utils.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/advisor/pool.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/advisor/recommendation_engine.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/api.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/app/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/app/create.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/app/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/app/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/app/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/app/update.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/app/use.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/auth/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/auth/admin/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/auth/admin/get_org_idp_map.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/auth/admin/network/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/auth/admin/network/add.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/auth/user/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/auth/user/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/clouddriver/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/clouddriver/provider.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/clouddriver/summary.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/clouddriver/task.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/credential/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/credential/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/cs/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/cs/base.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/daas/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/daas/infra/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/daas/infra/basic.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/daas/infra/plan.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/daas/order/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/daas/order/create.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/daas/order/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/daas/order/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/daas/order/update.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/daas/tenant/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/daas/tenant/consumption.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/daas/tenant/create.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/daas/tenant/plan.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/debug/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/debug/prepare.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/debug/reset.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/debug/start.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/dev/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/dev/emqx.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/dev/fs/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/dev/fs/auth.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/dev/fs/helper/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/dev/fs/helper/credential_helper.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/dev/fs/helper/jenkins_util.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/dev/fs/helper/k8s_util.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/dev/fs/helper/license_info.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/dev/fs/helper/required_fields.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/dev/fs/helper/step_util.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/dev/fs/helper/util.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/dev/fs/init.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/dev/fs/profiler.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/dev/fs/provided_files/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/dev/fs/provided_files/akka.plan.yml +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/dev/fs/provided_files/azsim.plan.yml +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/dev/fs/provided_files/azure.plan.yml +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/dev/fs/provided_files/mqtt-server-external.yaml +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/dev/fs/provided_files/patch-mqtt-hostname.yml +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/dev/fs/provided_files/patch-vernemq-ssl-depth.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/dev/fs/tailor.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/dev/mqtt.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/dev/onboard.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/dev/test.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/dev/util/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/dev/util/github_helper.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/dev/util/log.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/dev/util/mqtt_helper.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/diagnostics/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/diagnostics/diagnose.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/edge/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/edge/connection_string.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/edge/create.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/edge/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/edge/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/edge/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/edge/use.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/edge/wait.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/entitlement/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/entitlement/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/entitlement/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/entitlement/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/hoc/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/hoc/connect.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/hoc/oncall.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/hoc/org.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/hoc/search.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/hoc/template.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/hoc/util/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/hoc/util/inv_cache.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/hoc/vm.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/hst/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/hst/clean.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/hst/cloud/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/hst/cloud/health.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/hst/cloud/perf.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/hst/cloud/scale.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/hst/installer.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/hst/key.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/hst/outpost.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/hst/probe.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/hst/report.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/hst/test.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/ims/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/ims/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/ims/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/ims/gold_pattern/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/ims/gold_pattern/create.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/ims/gold_pattern/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/ims/gold_pattern/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/ims/gold_pattern/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/ims/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/ims/list_copies.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/ims/version/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/ims/version/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/ims/version/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/ims/version/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/inspect.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/inventory/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/inventory/assign.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/inventory/count.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/inventory/deassign.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/inventory/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/inventory/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/inventory/logoff.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/inventory/session.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/inventory/update.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/iss/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/iss/mqtt.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/lcm/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/lcm/health.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/lcm/provider/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/lcm/provider/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/lcm/provider/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/lcm/provider/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/lcm/register.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/lcm/template/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/lcm/template/cancel.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/lcm/template/create.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/lcm/template/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/lcm/template/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/lcm/template/health.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/lcm/template/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/lcm/template/provision.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/lcm/template/retry.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/lcm/template/update.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/lcm/template/use.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/lcm/template/wait.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/lcm/test.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/lcm/vm/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/lcm/vm/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/lcm/vm/pair.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/lcm/vm/pairing_info.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/lcm/vm/power.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/lcm/vm/put.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/lcm/vm/wait.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/login.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/logout.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/org/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/org/datacenter/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/org/datacenter/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/org/datacenter/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/org/details/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/org/ff.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/org/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/org/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/org/location.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/org/use.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/pki/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/pki/ca.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/pki/cert/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/pki/cert/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/pki/cert/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/pki/sign.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/pki/test.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/plan/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/plan/apply.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/plan/clear.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/plan/destroy.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/plan/graph.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/plan/input.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/plan/output.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/plan/resolve.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/plan/use.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/pool/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/pool/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/pool/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/pool/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/pool/update.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/pool/use.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/profile/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/profile/init.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/provider/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/provider/create.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/provider/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/provider/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/provider/golden_images.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/provider/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/provider/use.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/provider/vsphere_dcs.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/query.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/scm/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/scm/health.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/scm/operator.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/scm/plan.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/scm/template.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/site/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/site/create.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/site/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/site/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/site/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/site/set-edge.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/site/use.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/synt/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/synt/outpost/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/synt/outpost/create.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/synt/outpost/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/synt/outpost/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/synt/outpost/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/synt/outpost/update.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/synt/probe/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/synt/probe/create.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/synt/probe/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/synt/probe/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/synt/probe/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/synt/probe/run.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/synt/probe/update.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/synt/report/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/synt/report/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/synt/report/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/synt/report/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/template/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/template/create.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/template/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/template/fix.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/template/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/template/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/template/list_usage.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/template/usage.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/template/use.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/template/wait.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/test.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/uag/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/uag/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/uag/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/uag/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/upgrade.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/vm/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/vm/actions.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/vm/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/vm/pairing_info.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/vm/put.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/vm/use.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/vm/wait.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/vmhub/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/vmhub/info.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/vmhub/otp/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/vmhub/otp/redeem.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/vmhub/otp/request.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/vmm/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/vmm/restart_vms.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/vmm/rootca_edge_migration_stats.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/vmm/rootca_edge_rotate_certs.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/vmm/rootca_migrate_edge.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/vmm/rootca_template_migration_stats.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/workflows/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/cmds/workflows/mqtt-endpoints.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/config/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/config/hcs-deployments.yaml +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/main.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/akka.blueprint.yml +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/app/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/app/manual.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/edge/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/edge/akka.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/edge/vsphere.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/hoc/lcm-capcalc.json.template +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/hoc/no-spare.json.template +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/inventory/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/inventory/assign.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/inventory/deassign.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/iss/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/lcm/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/lcm/akka.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/lcm/azure-real.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/lcm/edge-proxy.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/lcm/zero-dedicated.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/lcm/zero-delay-1m-per-vm.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/lcm/zero-fail-delete-template.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/lcm/zero-fail-destroy-onthread.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/lcm/zero-fail-destroy.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/lcm/zero-fail-prepare-onthread.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/lcm/zero-fail-prepare.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/lcm/zero-fail-vm-onthread.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/lcm/zero-fail-vm.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/lcm/zero-floating.json +0 -0
- /hcs_cli-0.1.319/hcs_cli/payload/lcm/zero-new-snapshot.json → /hcs_cli-0.1.321/hcs_cli/payload/lcm/zero-legacy.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/lcm/zero-manual.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/lcm/zero-multisession.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/lcm/zero-nanw.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/lcm/zero-new-5k-delay.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/lcm/zero-new-5k.json +0 -0
- /hcs_cli-0.1.319/hcs_cli/payload/lcm/zero-new.json → /hcs_cli-0.1.321/hcs_cli/payload/lcm/zero-new-snapshot.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/lcm/zero-reuse-vm-id.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/lcm/zero-with-max-id-offset.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/provider/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/provider/ad-stes-vsphere.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/provider/akka.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/provider/azure.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/provider/edgeproxy.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/provider/vsphere.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/scm/starter.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/synt/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/synt/core/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/synt/core/p01-dummy-success.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/synt/core/p02-dummy-fail.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/synt/core/p03-dummy-exception.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/synt/core/p04-dummy-success-repeat.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/synt/core/p05-dummy-fail-repeat.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/synt/core/p06-dummy-exception-repeat.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/synt/core/p07-dummy-delay.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/synt/core/p08-dummy-property.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/synt/ext/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/synt/ext/p20-connect-success.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/synt/ext/p21-connect-fail.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/synt/ext/p30-ssl-success.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/synt/ext/p31-ssl-fail.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/synt/ext/p40-http-success.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/synt/ext/p41-http-fail.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/synt/ext/p42-http-status-code.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/synt/ext1/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/synt/ext1/p10-ping-success.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/synt/ext1/p11-ping-fail.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/synt/ext1/p12-ping-success-repeat.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/payload/template/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/provider/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/provider/hcs/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/provider/hcs/_prepare.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/provider/hcs/ad.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/provider/hcs/av_entitlement.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/provider/hcs/av_fs.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/provider/hcs/cert.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/provider/hcs/edge.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/provider/hcs/entitlement.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/provider/hcs/gold_pattern.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/provider/hcs/identity_provider.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/provider/hcs/image.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/provider/hcs/import_av_app.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/provider/hcs/manual_app.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/provider/hcs/pool_group.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/provider/hcs/pool_template.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/provider/hcs/provider.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/provider/hcs/runtime/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/provider/hcs/runtime/password.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/provider/hcs/runtime/wait_for.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/provider/hcs/site.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/provider/hcs/uag.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/admin/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/admin/ad.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/admin/azure_infra.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/admin/edge.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/admin/helper.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/admin/provider.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/admin/uag.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/admin/vm.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/app_management/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/app_management/manual_app.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/auth/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/auth/admin.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/av/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/av/app.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/av/avimport.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/av/entitlements.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/av/fileshare.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/clouddriver/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/clouddriver/provider.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/credential/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/credential/credential.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/credential/nls.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/cs/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/cs/base.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/csp.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/diagnostics/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/diagnostics/edge.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/edge.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/edgehub/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/edgehub/edgecontroller.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/edgehub/edgetwin.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/graphql.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/hoc/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/hoc/es.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/ims/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/ims/gold_pattern.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/ims/helper.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/ims/image_copies.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/ims/images.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/ims/version.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/inventory/session.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/iss/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/iss/mqtt.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/lcm/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/lcm/health.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/lcm/provider.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/lcm/vm.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/org_service/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/org_service/datacenter.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/org_service/details.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/org_service/orglocationmapping.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/pki/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/pki/certificate.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/pool.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/portal/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/portal/entitlement.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/portal/pool.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/portal/site.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/scm/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/scm/base.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/scm/operator.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/scm/plan.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/site.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/synt/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/synt/outpost.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/synt/probe.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/synt/report.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/task.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/tsctl/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/tsctl/base.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/tsctl/task.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/uag.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/vm.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/vmhub/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/vmhub/credentials.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/vmhub/mqtt.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/vmm/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/service/vmm/hoc_event.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/support/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/support/constant.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/support/debug_util.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/support/exec_util.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/support/inspect_util.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/support/param_util.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/support/patch_util.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/support/plan_util.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/support/predefined_payload.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/support/profile.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/support/scm/html_util.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/support/scm/plan-editor.html.template +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/support/scm/plan_editor.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/support/template_util.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/support/test_utils.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/support/test_utils2.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.321}/hcs_cli/support/use_util.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hcs-cli
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.321
|
|
4
4
|
Summary: Horizon Cloud Service CLI.
|
|
5
5
|
Project-URL: Homepage, https://github.com/euc-eng/hcs-cli
|
|
6
6
|
Project-URL: Bug Tracker, https://github.com/euc-eng/hcs-cli/issues
|
|
@@ -14,7 +14,7 @@ Classifier: License :: OSI Approved :: MIT License
|
|
|
14
14
|
Classifier: Operating System :: OS Independent
|
|
15
15
|
Classifier: Programming Language :: Python :: 3
|
|
16
16
|
Requires-Python: >=3.9
|
|
17
|
-
Requires-Dist: hcs-core>=0.1.
|
|
17
|
+
Requires-Dist: hcs-core>=0.1.321
|
|
18
18
|
Requires-Dist: inquirerpy>=0.3.4
|
|
19
19
|
Requires-Dist: matplotlib>=3.8.0
|
|
20
20
|
Requires-Dist: paho-mqtt>=2.1.0
|
|
@@ -13,12 +13,14 @@ See the License for the specific language governing permissions and
|
|
|
13
13
|
limitations under the License.
|
|
14
14
|
"""
|
|
15
15
|
|
|
16
|
+
import os
|
|
16
17
|
import click
|
|
17
18
|
|
|
18
19
|
import hcs_cli.cmds.dev.util.log as log
|
|
19
20
|
from hcs_cli.cmds.dev.fs.helper.util import validate_fs_kubeconfig, validate_fs_profile
|
|
20
21
|
from hcs_cli.cmds.dev.fs.init import _resolve_bundled_file_path
|
|
21
22
|
from hcs_cli.support.exec_util import run_cli
|
|
23
|
+
from hcs_core.ctxp import profile
|
|
22
24
|
|
|
23
25
|
|
|
24
26
|
@click.command()
|
|
@@ -42,6 +44,7 @@ def clear(only_default: bool, **kwargs):
|
|
|
42
44
|
if not only_default:
|
|
43
45
|
_delete_all()
|
|
44
46
|
|
|
47
|
+
os.environ["ORG_ID"] = profile.current().csp.orgId
|
|
45
48
|
akka_plan_path = _resolve_bundled_file_path("provided_files/akka.plan.yml")
|
|
46
49
|
azure_plan_path = _resolve_bundled_file_path("provided_files/azure.plan.yml")
|
|
47
50
|
azsim_plan_path = _resolve_bundled_file_path("provided_files/azsim.plan.yml")
|
|
@@ -90,3 +93,8 @@ def _delete_all():
|
|
|
90
93
|
provider_ids = run_cli("hcs provider list --ids", output_json=True)
|
|
91
94
|
for pid in provider_ids:
|
|
92
95
|
run_cli("hcs provider delete -y " + pid, raise_on_error=False)
|
|
96
|
+
|
|
97
|
+
# all lcm internal providers
|
|
98
|
+
lcm_provider_ids = run_cli("hcs lcm provider list --ids", output_json=True)
|
|
99
|
+
for lpid in lcm_provider_ids:
|
|
100
|
+
run_cli("hcs lcm provider delete " + lpid, raise_on_error=False)
|
|
@@ -75,7 +75,7 @@ stringData:
|
|
|
75
75
|
JcSvTMU2HOuQ/q6vFZq3PRbvroMeXlw2WJrqO3vu04SZwYiP8dcrlHTXQJh+Mp9T
|
|
76
76
|
mQ==
|
|
77
77
|
-----END CERTIFICATE-----
|
|
78
|
-
|
|
78
|
+
mqtt.ca-key: |-
|
|
79
79
|
-----BEGIN PRIVATE KEY-----
|
|
80
80
|
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDUNJx2Cf0noNHc
|
|
81
81
|
DXB9AFPSFMkkpwxb0wtqaCLiB7v5zkF7CVBl5LnecVk7CM8bJY62H90Lv8Zv/2sl
|
|
@@ -104,7 +104,7 @@ stringData:
|
|
|
104
104
|
boPQ+RK1VKj5UFkUKz5LiohLmCBEQ7sh1HBS2Vje8MFtg0P138sRlbMCvdAEARTZ
|
|
105
105
|
uQfAKLns7QFf9W1C60AVAQ==
|
|
106
106
|
-----END PRIVATE KEY-----
|
|
107
|
-
|
|
107
|
+
mqtt.client-cert: |-
|
|
108
108
|
-----BEGIN CERTIFICATE-----
|
|
109
109
|
MIIFKDCCAxCgAwIBAgIFALjj4O4wDQYJKoZIhvcNAQELBQAwdTELMAkGA1UEBhMC
|
|
110
110
|
VVMxCzAJBgNVBAgMAkNBMR8wHQYDVQQKDBZIb3Jpem9uIENsb3VkIFNlcnZpY2Vz
|
|
@@ -204,7 +204,7 @@ stringData:
|
|
|
204
204
|
JcSvTMU2HOuQ/q6vFZq3PRbvroMeXlw2WJrqO3vu04SZwYiP8dcrlHTXQJh+Mp9T
|
|
205
205
|
mQ==
|
|
206
206
|
-----END CERTIFICATE-----
|
|
207
|
-
|
|
207
|
+
mqtt.client-key: |-
|
|
208
208
|
-----BEGIN PRIVATE KEY-----
|
|
209
209
|
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC40aC4pyy0+++D
|
|
210
210
|
kD1cPRsMWO4ANZ8L4LaaHcg/e/1NbiExd/QlZESNJnnIyD29qY1h9WGEVDHtInsl
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import click
|
|
2
|
+
import datetime
|
|
3
|
+
import json
|
|
4
|
+
import time
|
|
5
|
+
|
|
6
|
+
from hcs_cli.service.hoc import diagnostic
|
|
7
|
+
from hcs_cli.service import tsctl
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@click.command(name="stats-aggregate-connects")
|
|
11
|
+
@click.argument("from_", type=int)
|
|
12
|
+
@click.argument("to", type=int)
|
|
13
|
+
@click.option("--wait", type=bool, required=False, is_flag=True, default=False)
|
|
14
|
+
@click.option("--verbose", type=bool, required=False, is_flag=True, default=False)
|
|
15
|
+
def aggregate_connects(from_: int, to: int, wait: bool, verbose: bool):
|
|
16
|
+
"""
|
|
17
|
+
Aggregate connect events between FROM_ and TO unix timestamps.
|
|
18
|
+
"""
|
|
19
|
+
payload = {"from": from_, "to": to}
|
|
20
|
+
result = diagnostic.aggregateConnects(payload, verbose=verbose)
|
|
21
|
+
click.echo(result)
|
|
22
|
+
|
|
23
|
+
if not result:
|
|
24
|
+
return "", 1
|
|
25
|
+
|
|
26
|
+
if wait:
|
|
27
|
+
wait_for_task(result)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
@click.command(name="stats-aggregate-connects-day-before")
|
|
31
|
+
@click.option("--wait", type=bool, required=False, is_flag=True, default=False)
|
|
32
|
+
@click.option("--verbose", type=bool, required=False, is_flag=True, default=False)
|
|
33
|
+
def aggregate_connects_day_before(wait: bool, verbose: bool):
|
|
34
|
+
dt = datetime.datetime.utcnow().replace(hour=0, minute=0, second=0, microsecond=0)
|
|
35
|
+
dt_2_days_ago = dt - datetime.timedelta(days=2)
|
|
36
|
+
dt_1_day_ago = dt - datetime.timedelta(days=1)
|
|
37
|
+
|
|
38
|
+
print(f"Aggregating connect events from {dt_2_days_ago} to {dt_1_day_ago}")
|
|
39
|
+
from_ = int(dt_2_days_ago.timestamp())
|
|
40
|
+
to = int(dt_1_day_ago.timestamp())
|
|
41
|
+
payload = {"from": from_, "to": to}
|
|
42
|
+
result = diagnostic.aggregateConnects(payload, verbose=verbose)
|
|
43
|
+
click.echo(result)
|
|
44
|
+
if not result:
|
|
45
|
+
return "", 1
|
|
46
|
+
if wait:
|
|
47
|
+
wait_for_task(result)
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
def wait_for_task(result: dict):
|
|
51
|
+
print("Waiting for task to complete...")
|
|
52
|
+
totalWaitTime = 0
|
|
53
|
+
while True:
|
|
54
|
+
time.sleep(10)
|
|
55
|
+
taskStatus = tsctl.task.lastlog(result.namespace, result.group, result.taskKey)
|
|
56
|
+
if "state" in taskStatus and taskStatus.state == "Error":
|
|
57
|
+
print(f"Task is in {taskStatus.state} state - {taskStatus.error} ")
|
|
58
|
+
print(json.dumps(taskStatus, indent=2))
|
|
59
|
+
break
|
|
60
|
+
if "state" in taskStatus and taskStatus.state == "Success":
|
|
61
|
+
print("Task completed successfully.")
|
|
62
|
+
print(json.dumps(taskStatus, indent=2))
|
|
63
|
+
break
|
|
64
|
+
if ("state" in taskStatus and taskStatus.state == "") or "state" not in taskStatus:
|
|
65
|
+
print("Task is still in progress...")
|
|
66
|
+
totalWaitTime += 10
|
|
67
|
+
if totalWaitTime >= 600:
|
|
68
|
+
print("Waited for 10 minutes, exiting.")
|
|
69
|
+
break
|
|
70
|
+
continue
|
|
71
|
+
print(json.dumps(taskStatus, indent=2))
|
|
72
|
+
break
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Copyright 2023-2023 VMware Inc.
|
|
3
|
+
SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
|
|
5
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
you may not use this file except in compliance with the License.
|
|
7
|
+
You may obtain a copy of the License at
|
|
8
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
See the License for the specific language governing permissions and
|
|
13
|
+
limitations under the License.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
import click
|
|
17
|
+
from hcs_core.ctxp import recent
|
|
18
|
+
import hcs_core.sglib.cli_options as cli
|
|
19
|
+
|
|
20
|
+
from hcs_cli.service import inventory
|
|
21
|
+
from hcs_cli.support.param_util import parse_vm_path
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
@click.command()
|
|
25
|
+
@cli.org_id
|
|
26
|
+
@click.argument("vm_path", type=str, required=False)
|
|
27
|
+
def delete(org: str, vm_path: str):
|
|
28
|
+
"""Delete a VM by path, e.g., template1/vm1, or 'vm1,vm2,vm3'."""
|
|
29
|
+
|
|
30
|
+
org_id = cli.get_org_id(org)
|
|
31
|
+
|
|
32
|
+
if vm_path.find(",") > 0:
|
|
33
|
+
vm_ids = [v.strip() for v in vm_path.split(",")]
|
|
34
|
+
template_id = recent.require("template", None)
|
|
35
|
+
else:
|
|
36
|
+
template_id, vm_id = parse_vm_path(vm_path)
|
|
37
|
+
ret = inventory.get(template_id, vm_id, org_id)
|
|
38
|
+
if not ret:
|
|
39
|
+
return "", 1
|
|
40
|
+
vm_ids = [vm_id]
|
|
41
|
+
|
|
42
|
+
ret = {"_requested_ids": vm_ids, "_accepted_ids": [], "_deleted": 0}
|
|
43
|
+
vms = inventory.begin_deleting_vms_by_id(template_id, org_id, vm_ids)
|
|
44
|
+
for vm in vms:
|
|
45
|
+
ret["_accepted_ids"].append(vm["id"])
|
|
46
|
+
actual_deleted = inventory.finish_deleting_vms(template_id, org_id, vm_ids)
|
|
47
|
+
ret["_deleted"] = actual_deleted
|
|
48
|
+
return ret
|
|
@@ -63,6 +63,12 @@ from hcs_cli.support import constant
|
|
|
63
63
|
required=False,
|
|
64
64
|
help="",
|
|
65
65
|
)
|
|
66
|
+
@click.option(
|
|
67
|
+
"--subscription-id",
|
|
68
|
+
type=str,
|
|
69
|
+
required=False,
|
|
70
|
+
help="",
|
|
71
|
+
)
|
|
66
72
|
@click.option(
|
|
67
73
|
"--file",
|
|
68
74
|
"-f",
|
|
@@ -80,6 +86,7 @@ def create(
|
|
|
80
86
|
client_id: str,
|
|
81
87
|
client_secret: str,
|
|
82
88
|
tenant_id: str,
|
|
89
|
+
subscription_id: str,
|
|
83
90
|
file: str,
|
|
84
91
|
org: str,
|
|
85
92
|
**kwargs,
|
|
@@ -108,7 +115,7 @@ def create(
|
|
|
108
115
|
"description": description,
|
|
109
116
|
"credentialId": credential_id,
|
|
110
117
|
}
|
|
111
|
-
elif client_id or client_secret or tenant_id:
|
|
118
|
+
elif client_id or client_secret or tenant_id or subscription_id:
|
|
112
119
|
if type != "AZURE":
|
|
113
120
|
raise click.BadParameter("client-id is only supported for Azure provider.")
|
|
114
121
|
if not client_id:
|
|
@@ -117,7 +124,8 @@ def create(
|
|
|
117
124
|
raise click.BadParameter("client-secret is required for client-id.")
|
|
118
125
|
if not tenant_id:
|
|
119
126
|
raise click.BadParameter("tenant-id is required for Azure provider.")
|
|
120
|
-
|
|
127
|
+
if not subscription_id:
|
|
128
|
+
raise click.BadParameter("subscription-id is required for Azure provider.")
|
|
121
129
|
data = {
|
|
122
130
|
"id": id if id else _rand_id(8),
|
|
123
131
|
"type": type,
|
|
@@ -126,6 +134,7 @@ def create(
|
|
|
126
134
|
"description": description,
|
|
127
135
|
"credentialId": credential_id,
|
|
128
136
|
"tenantId": tenant_id,
|
|
137
|
+
"subscriptionId": subscription_id,
|
|
129
138
|
"credentials": [
|
|
130
139
|
{
|
|
131
140
|
"clientId": client_id,
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Copyright 2023-2023 VMware Inc.
|
|
3
|
+
SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
|
|
5
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
you may not use this file except in compliance with the License.
|
|
7
|
+
You may obtain a copy of the License at
|
|
8
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
See the License for the specific language governing permissions and
|
|
13
|
+
limitations under the License.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
import click
|
|
17
|
+
import hcs_core.sglib.cli_options as cli
|
|
18
|
+
|
|
19
|
+
import hcs_cli.service.lcm as lcm
|
|
20
|
+
from hcs_cli.cmds.template.expand import expand_impl
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
@click.command(hidden=True)
|
|
24
|
+
@click.option(
|
|
25
|
+
"--number",
|
|
26
|
+
"-n",
|
|
27
|
+
type=int,
|
|
28
|
+
required=False,
|
|
29
|
+
default=0,
|
|
30
|
+
help="Number of VMs to expand. Use negative number to shrink.",
|
|
31
|
+
)
|
|
32
|
+
@click.option(
|
|
33
|
+
"--to",
|
|
34
|
+
"-t",
|
|
35
|
+
type=int,
|
|
36
|
+
required=False,
|
|
37
|
+
default=0,
|
|
38
|
+
help="Expected size of template.",
|
|
39
|
+
)
|
|
40
|
+
@click.argument("template_id", type=str, required=False)
|
|
41
|
+
@cli.org_id
|
|
42
|
+
@cli.wait
|
|
43
|
+
def expand(number: int, to: int, template_id: str, org: str, wait: str):
|
|
44
|
+
"""Update an existing template"""
|
|
45
|
+
|
|
46
|
+
return expand_impl(number, to, template_id, org, wait, lcm)
|
|
@@ -24,8 +24,9 @@ from hcs_cli.support.param_util import parse_vm_path
|
|
|
24
24
|
@click.argument("vm_path", type=str, required=False)
|
|
25
25
|
@cli.org_id
|
|
26
26
|
@cli.confirm
|
|
27
|
+
@cli.force
|
|
27
28
|
@cli.wait
|
|
28
|
-
def delete(vm_path: str, org: str, confirm: bool, wait: str, **kwargs):
|
|
29
|
+
def delete(vm_path: str, org: str, confirm: bool, force: bool, wait: str, **kwargs):
|
|
29
30
|
"""Delete VM"""
|
|
30
31
|
template_id, vm_id = parse_vm_path(vm_path)
|
|
31
32
|
org_id = cli.get_org_id(org)
|
|
@@ -37,7 +38,7 @@ def delete(vm_path: str, org: str, confirm: bool, wait: str, **kwargs):
|
|
|
37
38
|
if not confirm:
|
|
38
39
|
click.confirm(f"Delete VM {template_id}/{vm_id}?", abort=True)
|
|
39
40
|
|
|
40
|
-
vm.delete(template_id, vm_id, org_id, **kwargs)
|
|
41
|
+
vm.delete(template_id, vm_id, org_id, force=force, **kwargs)
|
|
41
42
|
|
|
42
43
|
if wait == "0":
|
|
43
44
|
return
|
|
@@ -222,6 +222,7 @@ def use(namespace: str, group: str, smart_path: str, reset: bool, **kwargs):
|
|
|
222
222
|
required=False,
|
|
223
223
|
help="Filter tasks by state, for one-time tasks only. Comma separated values. E.g. Init,Running,Canceled,Error,Success",
|
|
224
224
|
)
|
|
225
|
+
@click.option("--v1", is_flag=True, default=False, required=False, help="Use v1 task API.")
|
|
225
226
|
@click.option("--v1log", is_flag=True, default=False, required=False, help="Fetch last log for v1 tasks.")
|
|
226
227
|
@cli.limit
|
|
227
228
|
@cli.search
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Copyright 2023-2023 VMware Inc.
|
|
3
|
+
SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
|
|
5
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
you may not use this file except in compliance with the License.
|
|
7
|
+
You may obtain a copy of the License at
|
|
8
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
See the License for the specific language governing permissions and
|
|
13
|
+
limitations under the License.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
import click
|
|
17
|
+
import hcs_core.sglib.cli_options as cli
|
|
18
|
+
import hcs_core.util.duration as duration
|
|
19
|
+
from hcs_core.ctxp import recent
|
|
20
|
+
|
|
21
|
+
import hcs_cli.service.admin as admin
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
@click.command(hidden=True)
|
|
25
|
+
@click.option(
|
|
26
|
+
"--number",
|
|
27
|
+
"-n",
|
|
28
|
+
type=int,
|
|
29
|
+
required=False,
|
|
30
|
+
default=0,
|
|
31
|
+
help="Number of VMs to expand. Use negative number to shrink.",
|
|
32
|
+
)
|
|
33
|
+
@click.option(
|
|
34
|
+
"--to",
|
|
35
|
+
"-t",
|
|
36
|
+
type=int,
|
|
37
|
+
required=False,
|
|
38
|
+
default=0,
|
|
39
|
+
help="Expected size of template.",
|
|
40
|
+
)
|
|
41
|
+
@click.argument("template_id", type=str, required=False)
|
|
42
|
+
@cli.org_id
|
|
43
|
+
@cli.wait
|
|
44
|
+
def expand(number: int, to: int, template_id: str, org: str, wait: str):
|
|
45
|
+
"""Update an existing template"""
|
|
46
|
+
return expand_impl(number, to, template_id, org, wait, admin)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def expand_impl(number: int, to: int, template_id: str, org: str, wait: str, service):
|
|
50
|
+
if to != 0 and number != 0:
|
|
51
|
+
return "Specify either --to or --number, not both.", 1
|
|
52
|
+
if to < 0:
|
|
53
|
+
return "--to must be non-negative.", 1
|
|
54
|
+
if to > 5000:
|
|
55
|
+
return "--to exceeds maximum limit of 5000.", 1
|
|
56
|
+
|
|
57
|
+
org_id = cli.get_org_id(org)
|
|
58
|
+
|
|
59
|
+
template_id = recent.require("template", template_id)
|
|
60
|
+
template = service.template.get(template_id, org_id)
|
|
61
|
+
|
|
62
|
+
if not template:
|
|
63
|
+
return "Template not found: " + template_id, 1
|
|
64
|
+
|
|
65
|
+
spare_policy = template.get("sparePolicy", {})
|
|
66
|
+
new_spare_policy = {
|
|
67
|
+
"min": spare_policy.get("min", 0),
|
|
68
|
+
"max": spare_policy.get("max", 0),
|
|
69
|
+
"limit": spare_policy.get("limit", 0),
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
if to != 0:
|
|
73
|
+
new_spare_policy["min"] = to
|
|
74
|
+
new_spare_policy["max"] = to
|
|
75
|
+
new_spare_policy["limit"] = to
|
|
76
|
+
else:
|
|
77
|
+
if number == 0:
|
|
78
|
+
number = 1 # default to expand by 1
|
|
79
|
+
new_spare_policy["min"] += number
|
|
80
|
+
new_spare_policy["max"] += number
|
|
81
|
+
new_spare_policy["limit"] += number
|
|
82
|
+
|
|
83
|
+
if new_spare_policy["limit"] < 0:
|
|
84
|
+
new_spare_policy["limit"] = 0
|
|
85
|
+
elif new_spare_policy["limit"] > 5000:
|
|
86
|
+
new_spare_policy["limit"] = 5000
|
|
87
|
+
|
|
88
|
+
if new_spare_policy["min"] < 0:
|
|
89
|
+
new_spare_policy["min"] = 0
|
|
90
|
+
elif new_spare_policy["min"] > new_spare_policy["limit"]:
|
|
91
|
+
new_spare_policy["min"] = new_spare_policy["limit"]
|
|
92
|
+
if new_spare_policy["max"] < 0:
|
|
93
|
+
new_spare_policy["max"] = 0
|
|
94
|
+
elif new_spare_policy["max"] > new_spare_policy["limit"]:
|
|
95
|
+
new_spare_policy["max"] = new_spare_policy["limit"]
|
|
96
|
+
|
|
97
|
+
if (
|
|
98
|
+
new_spare_policy["min"] == spare_policy.get("min", 0)
|
|
99
|
+
and new_spare_policy["max"] == spare_policy.get("max", 0)
|
|
100
|
+
and new_spare_policy["limit"] == spare_policy.get("limit", 0)
|
|
101
|
+
):
|
|
102
|
+
# no change
|
|
103
|
+
ret = template
|
|
104
|
+
else:
|
|
105
|
+
patch = {"sparePolicy": new_spare_policy}
|
|
106
|
+
ret = service.template.patch(template_id, org_id, patch)
|
|
107
|
+
|
|
108
|
+
if wait != "0":
|
|
109
|
+
ret = service.template.wait_for_ready(template_id, org_id, duration.to_seconds(wait))
|
|
110
|
+
return ret
|
|
@@ -43,7 +43,7 @@ def update(template_id: str, update, org: str, wait: str, **kwargs):
|
|
|
43
43
|
template = admin.template.get(template_id, org_id)
|
|
44
44
|
|
|
45
45
|
if not template:
|
|
46
|
-
return "Template not found: " + template_id
|
|
46
|
+
return "Template not found: " + template_id, 1
|
|
47
47
|
|
|
48
48
|
allowed_fields = ["name", "description", "powerPolicy", "sparePolicy", "applicationProperties", "flags"]
|
|
49
49
|
|
|
@@ -52,7 +52,7 @@ def update(template_id: str, update, org: str, wait: str, **kwargs):
|
|
|
52
52
|
if not patch:
|
|
53
53
|
return template
|
|
54
54
|
|
|
55
|
-
ret = admin.template.
|
|
55
|
+
ret = admin.template.patch(template_id, org_id, patch)
|
|
56
56
|
if wait != "0":
|
|
57
57
|
ret = admin.template.wait_for_ready(template_id, org_id, duration.to_seconds(wait))
|
|
58
58
|
return ret
|
|
@@ -23,10 +23,11 @@ from hcs_cli.support.param_util import parse_vm_path
|
|
|
23
23
|
|
|
24
24
|
@click.command()
|
|
25
25
|
@click.argument("vm_path", type=str, required=False)
|
|
26
|
+
@cli.force
|
|
26
27
|
@cli.org_id
|
|
27
28
|
@cli.confirm
|
|
28
29
|
@cli.wait
|
|
29
|
-
def delete(vm_path: str, org: str, confirm: bool, wait: str, **kwargs):
|
|
30
|
+
def delete(vm_path: str, org: str, confirm: bool, force: bool, wait: str, **kwargs):
|
|
30
31
|
"""Delete a VM by ID"""
|
|
31
32
|
org_id = cli.get_org_id(org)
|
|
32
33
|
template_id, vm_id = parse_vm_path(vm_path)
|
|
@@ -41,7 +42,7 @@ def delete(vm_path: str, org: str, confirm: bool, wait: str, **kwargs):
|
|
|
41
42
|
if not confirm:
|
|
42
43
|
click.confirm(f"Delete vm {existing['id']} from template {template['name']} ({template['id']})?", abort=True)
|
|
43
44
|
|
|
44
|
-
vm.delete()
|
|
45
|
+
vm.delete(force=force)
|
|
45
46
|
|
|
46
47
|
if wait == "0":
|
|
47
48
|
return
|
|
@@ -47,47 +47,25 @@ from hcs_cli.support.vm_table import format_vm_table
|
|
|
47
47
|
@click.option(
|
|
48
48
|
"--agent",
|
|
49
49
|
"-a",
|
|
50
|
-
type=click.Choice(
|
|
51
|
-
["UNAVAILABLE", "ERROR", "AVAILABLE", "INIT", "UNKNOWN", "DOMAIN_ERR", "CUSTOMIZATION_FAILURE"],
|
|
52
|
-
case_sensitive=False,
|
|
53
|
-
),
|
|
54
50
|
required=False,
|
|
55
|
-
|
|
56
|
-
help="Filter VMs by agent status.",
|
|
51
|
+
help="Filter VMs by agent status, in comma separated values: UNAVAILABLE,ERROR,AVAILABLE,INIT,UNKNOWN,DOMAIN_ERR,CUSTOMIZATION_FAILURE",
|
|
57
52
|
)
|
|
58
53
|
@click.option(
|
|
59
54
|
"--power",
|
|
60
55
|
"-p",
|
|
61
|
-
type=click.Choice(["PoweredOn", "PoweredOff", "PoweringOn", "PoweringOff", "Unknown"], case_sensitive=False),
|
|
62
56
|
required=False,
|
|
63
|
-
|
|
64
|
-
help="Filter VMs by power state.",
|
|
57
|
+
help="Filter VMs by power state, in comman separated values: PoweredOn,PoweredOff,PoweringOn,PoweringOff,Unknown",
|
|
65
58
|
)
|
|
66
59
|
@click.option(
|
|
67
60
|
"--lifecycle",
|
|
68
|
-
type=
|
|
69
|
-
[
|
|
70
|
-
"PROVISIONING",
|
|
71
|
-
"PROVISIONED",
|
|
72
|
-
"MAINTENANCE",
|
|
73
|
-
"DELETING",
|
|
74
|
-
"ERROR",
|
|
75
|
-
"CUSTOMIZING",
|
|
76
|
-
"AGENT_UPDATING",
|
|
77
|
-
"AGENT_REINSTALLING",
|
|
78
|
-
],
|
|
79
|
-
case_sensitive=False,
|
|
80
|
-
),
|
|
61
|
+
type=str,
|
|
81
62
|
required=False,
|
|
82
|
-
|
|
83
|
-
help="Filter VMs by lifecycle status.",
|
|
63
|
+
help="Filter VMs by lifecycle status, in comma separated values: PROVISIONING,PROVISIONED,MAINTENANCE,DELETING,ERROR,CUSTOMIZING,AGENT_UPDATING,AGENT_REINSTALLING",
|
|
84
64
|
)
|
|
85
65
|
@click.option(
|
|
86
66
|
"--session",
|
|
87
|
-
type=click.Choice(["AVAILABLE", "UNAVAILABLE", "DRAINING", "QUIESCING", "REPRISTINING"], case_sensitive=False),
|
|
88
67
|
required=False,
|
|
89
|
-
|
|
90
|
-
help="Filter VMs by power state.",
|
|
68
|
+
help="Filter VMs by session placement status, in comma separated values: AVAILABLE,UNAVAILABLE,DRAINING,QUIESCING,REPRISTINING",
|
|
91
69
|
)
|
|
92
70
|
@cli.formatter(format_vm_table)
|
|
93
71
|
def list_vms(
|
|
@@ -97,33 +75,34 @@ def list_vms(
|
|
|
97
75
|
type: list,
|
|
98
76
|
agent: list,
|
|
99
77
|
power: list,
|
|
100
|
-
lifecycle:
|
|
78
|
+
lifecycle: str,
|
|
101
79
|
session: str,
|
|
102
80
|
**kwargs,
|
|
103
81
|
):
|
|
104
82
|
"""List template VMs"""
|
|
105
83
|
org_id = cli.get_org_id(org)
|
|
106
84
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
85
|
+
filttered_agent_states = _parse_multi_state(agent, "agent")
|
|
86
|
+
filtered_power_states = _parse_multi_state(power, "power")
|
|
87
|
+
filtered_lifecycle_states = _parse_multi_state(lifecycle, "lifecycle")
|
|
88
|
+
filtered_session_states = _parse_multi_state(session, "session")
|
|
110
89
|
|
|
111
90
|
def filter_vm(vm):
|
|
112
|
-
if
|
|
91
|
+
if filttered_agent_states:
|
|
113
92
|
s = vm.get("agentStatus")
|
|
114
|
-
if not s or s.
|
|
93
|
+
if not s or s.upper() not in filttered_agent_states:
|
|
115
94
|
return False
|
|
116
|
-
if
|
|
95
|
+
if filtered_power_states:
|
|
117
96
|
s = vm.get("powerState")
|
|
118
|
-
if not s or s.
|
|
97
|
+
if not s or s.upper() not in filtered_power_states:
|
|
119
98
|
return False
|
|
120
|
-
if
|
|
99
|
+
if filtered_lifecycle_states:
|
|
121
100
|
s = vm.get("lifecycleStatus")
|
|
122
|
-
if not s or s.
|
|
101
|
+
if not s or s.upper() not in filtered_lifecycle_states:
|
|
123
102
|
return False
|
|
124
|
-
if
|
|
103
|
+
if filtered_session_states:
|
|
125
104
|
s = vm.get("sessionPlacementStatus")
|
|
126
|
-
if not s or s.
|
|
105
|
+
if not s or s.upper() not in filtered_session_states:
|
|
127
106
|
return False
|
|
128
107
|
return True
|
|
129
108
|
|
|
@@ -178,6 +157,39 @@ def list_vms(
|
|
|
178
157
|
return vms
|
|
179
158
|
|
|
180
159
|
|
|
160
|
+
def _parse_multi_state(param_list: str, name: str):
|
|
161
|
+
if not param_list:
|
|
162
|
+
return None
|
|
163
|
+
param_list = param_list.upper()
|
|
164
|
+
values = []
|
|
165
|
+
|
|
166
|
+
valid_map = {
|
|
167
|
+
"lifecycle": [
|
|
168
|
+
"PROVISIONING",
|
|
169
|
+
"PROVISIONED",
|
|
170
|
+
"MAINTENANCE",
|
|
171
|
+
"DELETING",
|
|
172
|
+
"ERROR",
|
|
173
|
+
"CUSTOMIZING",
|
|
174
|
+
"AGENT_UPDATING",
|
|
175
|
+
"AGENT_REINSTALLING",
|
|
176
|
+
],
|
|
177
|
+
"agent": ["UNAVAILABLE", "ERROR", "AVAILABLE", "INIT", "UNKNOWN", "DOMAIN_ERR", "CUSTOMIZATION_FAILURE"],
|
|
178
|
+
"power": ["POWEREDON", "POWEREDOFF", "POWERINGON", "POWERINGOFF", "UNKNOWN"],
|
|
179
|
+
"session": ["AVAILABLE", "UNAVAILABLE", "DRAINING", "QUIESCING", "REPRISTINING"],
|
|
180
|
+
}
|
|
181
|
+
if name not in valid_map:
|
|
182
|
+
raise Exception(f"Unknown multi-state filter name: {name}")
|
|
183
|
+
|
|
184
|
+
valid = valid_map[name]
|
|
185
|
+
for s in param_list.split(","):
|
|
186
|
+
s = s.strip()
|
|
187
|
+
if s not in valid:
|
|
188
|
+
raise Exception(f"Invalid {name} value: {s}. Valid values are: {', '.join(valid)}")
|
|
189
|
+
values.append(s)
|
|
190
|
+
return values
|
|
191
|
+
|
|
192
|
+
|
|
181
193
|
def _to_lower(values):
|
|
182
194
|
if values:
|
|
183
195
|
return [v.lower() for v in values]
|
|
@@ -556,7 +556,7 @@ def power_policy_on_template(template: dict, enable: bool, verbose: bool):
|
|
|
556
556
|
patch = calculate_patch(template, allowed_fields, [field])
|
|
557
557
|
for i in range(3):
|
|
558
558
|
try:
|
|
559
|
-
admin.template.
|
|
559
|
+
admin.template.patch(template_id, target_org_id, patch)
|
|
560
560
|
admin.template.wait_for_ready(template_id, target_org_id, 60)
|
|
561
561
|
break
|
|
562
562
|
except Exception as ex:
|
|
@@ -43,9 +43,9 @@
|
|
|
43
43
|
},
|
|
44
44
|
"image": {
|
|
45
45
|
"imageReference": {
|
|
46
|
-
"publisher": "
|
|
47
|
-
"offer": "
|
|
48
|
-
"sku": "
|
|
46
|
+
"publisher": "canonical",
|
|
47
|
+
"offer": "0001-com-ubuntu-server-jammy",
|
|
48
|
+
"sku": "22_04-lts-gen2",
|
|
49
49
|
"version": "latest"
|
|
50
50
|
},
|
|
51
51
|
"os": "linux",
|
|
@@ -62,6 +62,7 @@
|
|
|
62
62
|
"properties": {
|
|
63
63
|
"azureCreateResourceGroup": true,
|
|
64
64
|
"new-task-engine": true,
|
|
65
|
-
"simulateAgentStatus": "AVAILABLE"
|
|
65
|
+
"simulateAgentStatus": "AVAILABLE",
|
|
66
|
+
"countinuousErrorThreshold": 3
|
|
66
67
|
}
|
|
67
68
|
}
|