hcs-cli 0.1.319__tar.gz → 0.1.320__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.320}/PKG-INFO +2 -2
- hcs_cli-0.1.320/hcs_cli/__init__.py +3 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/clear.py +8 -0
- hcs_cli-0.1.320/hcs_cli/cmds/hoc/stats.py +46 -0
- hcs_cli-0.1.320/hcs_cli/cmds/inventory/delete.py +48 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/provider/create.py +11 -2
- hcs_cli-0.1.320/hcs_cli/cmds/lcm/template/expand.py +46 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/vm/delete.py +3 -2
- hcs_cli-0.1.320/hcs_cli/cmds/template/expand.py +110 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/template/update.py +2 -2
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vm/delete.py +3 -2
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vm/list.py +51 -39
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/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.320/hcs_cli/payload/lcm/azure-dummy.json +3 -3
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/admin/template.py +10 -1
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/hoc/diagnostic.py +11 -0
- hcs_cli-0.1.320/hcs_cli/service/inventory/__init__.py +15 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/inventory/vm.py +12 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/lcm/template.py +9 -6
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/template.py +1 -1
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/support/vm_table.py +2 -2
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/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.320}/.gitignore +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/README.md +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/__main__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ad/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ad/create.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ad/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ad/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ad/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/admin/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/admin/azure_infra/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/admin/azure_infra/main.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/advisor/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/advisor/advisor_utils.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/advisor/config/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/advisor/config/advisor_config.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/advisor/html_utils.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/advisor/org.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/advisor/pdf_utils.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/advisor/pool.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/advisor/recommendation_engine.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/api.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/app/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/app/create.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/app/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/app/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/app/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/app/update.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/app/use.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/auth/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/auth/admin/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/auth/admin/get_org_idp_map.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/auth/admin/network/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/auth/admin/network/add.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/auth/user/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/auth/user/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/clouddriver/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/clouddriver/provider.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/clouddriver/summary.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/clouddriver/task.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/credential/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/credential/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/cs/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/cs/base.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/daas/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/daas/infra/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/daas/infra/basic.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/daas/infra/plan.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/daas/order/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/daas/order/create.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/daas/order/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/daas/order/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/daas/order/update.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/daas/tenant/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/daas/tenant/consumption.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/daas/tenant/create.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/daas/tenant/plan.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/debug/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/debug/prepare.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/debug/reset.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/debug/start.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/emqx.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/auth.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/helper/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/helper/credential_helper.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/helper/jenkins_util.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/helper/k8s_util.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/helper/license_info.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/helper/required_fields.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/helper/step_util.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/helper/util.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/init.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/profiler.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/provided_files/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/provided_files/akka.plan.yml +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/provided_files/azsim.plan.yml +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/provided_files/azure.plan.yml +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/provided_files/mqtt-secret.yaml +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/provided_files/mqtt-server-external.yaml +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/provided_files/patch-mqtt-hostname.yml +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/provided_files/patch-vernemq-ssl-depth.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/tailor.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/mqtt.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/onboard.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/test.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/util/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/util/github_helper.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/util/log.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/util/mqtt_helper.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/diagnostics/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/diagnostics/diagnose.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/edge/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/edge/connection_string.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/edge/create.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/edge/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/edge/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/edge/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/edge/use.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/edge/wait.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/entitlement/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/entitlement/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/entitlement/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/entitlement/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hoc/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hoc/connect.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hoc/oncall.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hoc/org.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hoc/search.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hoc/template.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hoc/util/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hoc/util/inv_cache.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hoc/vm.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hst/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hst/clean.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hst/cloud/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hst/cloud/health.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hst/cloud/perf.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hst/cloud/scale.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hst/installer.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hst/key.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hst/outpost.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hst/probe.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hst/report.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hst/test.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ims/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ims/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ims/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ims/gold_pattern/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ims/gold_pattern/create.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ims/gold_pattern/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ims/gold_pattern/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ims/gold_pattern/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ims/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ims/list_copies.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ims/version/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ims/version/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ims/version/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ims/version/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/inspect.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/inventory/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/inventory/assign.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/inventory/count.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/inventory/deassign.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/inventory/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/inventory/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/inventory/logoff.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/inventory/session.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/inventory/update.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/iss/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/iss/mqtt.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/health.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/provider/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/provider/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/provider/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/provider/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/register.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/template/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/template/cancel.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/template/create.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/template/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/template/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/template/health.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/template/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/template/provision.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/template/retry.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/template/update.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/template/use.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/template/wait.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/test.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/vm/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/vm/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/vm/pair.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/vm/pairing_info.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/vm/power.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/vm/put.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/vm/wait.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/login.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/logout.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/org/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/org/datacenter/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/org/datacenter/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/org/datacenter/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/org/details/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/org/ff.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/org/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/org/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/org/location.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/org/use.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/pki/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/pki/ca.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/pki/cert/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/pki/cert/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/pki/cert/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/pki/sign.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/pki/test.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/plan/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/plan/apply.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/plan/clear.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/plan/destroy.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/plan/graph.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/plan/input.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/plan/output.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/plan/resolve.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/plan/use.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/pool/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/pool/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/pool/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/pool/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/pool/update.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/pool/use.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/profile/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/profile/init.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/provider/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/provider/create.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/provider/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/provider/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/provider/golden_images.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/provider/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/provider/use.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/provider/vsphere_dcs.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/query.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/scm/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/scm/health.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/scm/operator.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/scm/plan.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/scm/template.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/site/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/site/create.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/site/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/site/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/site/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/site/set-edge.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/site/use.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/outpost/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/outpost/create.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/outpost/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/outpost/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/outpost/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/outpost/update.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/probe/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/probe/create.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/probe/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/probe/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/probe/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/probe/run.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/probe/update.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/report/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/report/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/report/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/report/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/task.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/template/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/template/create.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/template/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/template/fix.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/template/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/template/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/template/list_usage.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/template/usage.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/template/use.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/template/wait.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/test.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/uag/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/uag/delete.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/uag/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/uag/list.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/upgrade.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vm/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vm/actions.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vm/get.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vm/pairing_info.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vm/put.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vm/use.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vm/wait.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vmhub/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vmhub/info.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vmhub/otp/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vmhub/otp/redeem.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vmhub/otp/request.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vmm/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vmm/restart_vms.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vmm/rootca_edge_migration_stats.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vmm/rootca_edge_rotate_certs.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vmm/rootca_migrate_edge.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vmm/rootca_template_migration_stats.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/workflows/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/workflows/mqtt-endpoints.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/config/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/config/hcs-deployments.yaml +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/main.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/akka.blueprint.yml +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/app/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/app/manual.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/edge/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/edge/akka.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/edge/vsphere.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/hoc/lcm-capcalc.json.template +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/hoc/no-spare.json.template +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/inventory/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/inventory/assign.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/inventory/deassign.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/iss/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/akka.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/azure-real.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/edge-proxy.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-dedicated.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-delay-1m-per-vm.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-fail-delete-template.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-fail-destroy-onthread.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-fail-destroy.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-fail-prepare-onthread.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-fail-prepare.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-fail-vm-onthread.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-fail-vm.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-floating.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-manual.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-multisession.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-nanw.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-new-5k-delay.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-new-5k.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-new-snapshot.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-new.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-reuse-vm-id.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-with-max-id-offset.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/provider/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/provider/ad-stes-vsphere.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/provider/akka.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/provider/azure.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/provider/edgeproxy.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/provider/vsphere.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/scm/starter.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/core/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/core/p01-dummy-success.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/core/p02-dummy-fail.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/core/p03-dummy-exception.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/core/p04-dummy-success-repeat.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/core/p05-dummy-fail-repeat.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/core/p06-dummy-exception-repeat.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/core/p07-dummy-delay.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/core/p08-dummy-property.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/ext/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/ext/p20-connect-success.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/ext/p21-connect-fail.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/ext/p30-ssl-success.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/ext/p31-ssl-fail.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/ext/p40-http-success.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/ext/p41-http-fail.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/ext/p42-http-status-code.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/ext1/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/ext1/p10-ping-success.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/ext1/p11-ping-fail.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/ext1/p12-ping-success-repeat.json +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/template/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/_prepare.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/ad.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/av_entitlement.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/av_fs.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/cert.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/edge.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/entitlement.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/gold_pattern.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/identity_provider.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/image.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/import_av_app.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/manual_app.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/pool_group.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/pool_template.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/provider.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/runtime/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/runtime/password.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/runtime/wait_for.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/site.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/uag.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/admin/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/admin/ad.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/admin/azure_infra.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/admin/edge.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/admin/helper.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/admin/provider.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/admin/uag.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/admin/vm.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/app_management/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/app_management/manual_app.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/auth/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/auth/admin.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/av/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/av/app.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/av/avimport.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/av/entitlements.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/av/fileshare.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/clouddriver/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/clouddriver/provider.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/credential/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/credential/credential.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/credential/nls.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/cs/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/cs/base.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/csp.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/diagnostics/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/diagnostics/edge.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/edge.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/edgehub/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/edgehub/edgecontroller.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/edgehub/edgetwin.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/graphql.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/hoc/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/hoc/es.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/ims/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/ims/gold_pattern.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/ims/helper.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/ims/image_copies.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/ims/images.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/ims/version.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/inventory/session.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/iss/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/iss/mqtt.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/lcm/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/lcm/health.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/lcm/provider.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/lcm/vm.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/org_service/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/org_service/datacenter.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/org_service/details.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/org_service/orglocationmapping.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/pki/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/pki/certificate.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/pool.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/portal/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/portal/entitlement.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/portal/pool.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/portal/site.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/scm/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/scm/base.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/scm/operator.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/scm/plan.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/site.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/synt/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/synt/outpost.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/synt/probe.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/synt/report.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/task.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/tsctl/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/tsctl/base.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/tsctl/task.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/uag.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/vm.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/vmhub/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/vmhub/credentials.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/vmhub/mqtt.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/vmm/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/vmm/hoc_event.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/support/__init__.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/support/constant.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/support/debug_util.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/support/exec_util.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/support/inspect_util.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/support/param_util.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/support/patch_util.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/support/plan_util.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/support/predefined_payload.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/support/profile.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/support/scm/html_util.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/support/scm/plan-editor.html.template +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/support/scm/plan_editor.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/support/template_util.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/support/test_utils.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/support/test_utils2.py +0 -0
- {hcs_cli-0.1.319 → hcs_cli-0.1.320}/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.320
|
|
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.320
|
|
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)
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import click
|
|
2
|
+
import time
|
|
3
|
+
import json
|
|
4
|
+
from hcs_cli.service.hoc import diagnostic
|
|
5
|
+
from hcs_cli.service import tsctl
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@click.command(name="stats-aggregate-connects")
|
|
9
|
+
@click.argument("from_", type=int)
|
|
10
|
+
@click.argument("to", type=int)
|
|
11
|
+
@click.option("--wait", type=bool, required=False, is_flag=True, default=False)
|
|
12
|
+
@click.option("--verbose", type=bool, required=False, is_flag=True, default=False)
|
|
13
|
+
def aggregate_connects(from_: int, to: int, wait: bool, verbose: bool):
|
|
14
|
+
"""
|
|
15
|
+
Aggregate connect events between FROM_ and TO unix timestamps.
|
|
16
|
+
"""
|
|
17
|
+
payload = {"from": from_, "to": to}
|
|
18
|
+
result = diagnostic.aggregateConnects(payload, verbose=verbose)
|
|
19
|
+
click.echo(result)
|
|
20
|
+
|
|
21
|
+
if not result:
|
|
22
|
+
return "", 1
|
|
23
|
+
|
|
24
|
+
if wait:
|
|
25
|
+
print("Waiting for task to complete...")
|
|
26
|
+
totalWaitTime = 0
|
|
27
|
+
while True:
|
|
28
|
+
time.sleep(10)
|
|
29
|
+
taskStatus = tsctl.task.lastlog(result.namespace, result.group, result.taskKey)
|
|
30
|
+
if "state" in taskStatus and taskStatus.state == "Error":
|
|
31
|
+
print(f"Task is in {taskStatus.state} state - {taskStatus.error} ")
|
|
32
|
+
print(json.dumps(taskStatus, indent=2))
|
|
33
|
+
break
|
|
34
|
+
if "state" in taskStatus and taskStatus.state == "Success":
|
|
35
|
+
print("Task completed successfully.")
|
|
36
|
+
print(json.dumps(taskStatus, indent=2))
|
|
37
|
+
break
|
|
38
|
+
if ("state" in taskStatus and taskStatus.state == "") or "state" not in taskStatus:
|
|
39
|
+
print("Task is still in progress...")
|
|
40
|
+
totalWaitTime += 10
|
|
41
|
+
if totalWaitTime >= 600:
|
|
42
|
+
print("Waited for 10 minutes, exiting.")
|
|
43
|
+
break
|
|
44
|
+
continue
|
|
45
|
+
print(json.dumps(taskStatus, indent=2))
|
|
46
|
+
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
|
|
@@ -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",
|
|
@@ -16,4 +16,13 @@ limitations under the License.
|
|
|
16
16
|
# Deprecated.
|
|
17
17
|
# To be removed in the future.
|
|
18
18
|
|
|
19
|
-
from ..template import action
|
|
19
|
+
from ..template import action as action
|
|
20
|
+
from ..template import create as create
|
|
21
|
+
from ..template import delete as delete
|
|
22
|
+
from ..template import get as get
|
|
23
|
+
from ..template import items as items
|
|
24
|
+
from ..template import list as list
|
|
25
|
+
from ..template import patch as patch
|
|
26
|
+
from ..template import wait_for as wait_for
|
|
27
|
+
from ..template import wait_for_deleted as wait_for_deleted
|
|
28
|
+
from ..template import wait_for_ready as wait_for_ready
|
|
@@ -42,3 +42,14 @@ def search(payload: dict, size: int = 100):
|
|
|
42
42
|
pointer_timestamp = max(data["d"]["utcTime"] + 1, pointer_timestamp + 1000)
|
|
43
43
|
|
|
44
44
|
# log.info(f"events={count - _old}")
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def aggregateConnects(payload: dict, verbose: bool = False):
|
|
48
|
+
url = "/v1/stats/connect/aggregateConnects"
|
|
49
|
+
if verbose:
|
|
50
|
+
print(f"POST: {url}")
|
|
51
|
+
print(payload)
|
|
52
|
+
response = _client.post(url, json=payload)
|
|
53
|
+
if isinstance(response, str):
|
|
54
|
+
response = json.loads(response)
|
|
55
|
+
return response
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from .session import assign as assign
|
|
2
|
+
from .session import assignV2 as assignV2
|
|
3
|
+
from .session import create_manual_session as create_manual_session
|
|
4
|
+
from .session import deassign as deassign
|
|
5
|
+
from .session import logoff as logoff
|
|
6
|
+
from .session import logoffV2 as logoffV2
|
|
7
|
+
from .session import sessions as sessions
|
|
8
|
+
from .session import update_session as update_session
|
|
9
|
+
from .vm import count as count
|
|
10
|
+
from .vm import get as get
|
|
11
|
+
from .vm import list as list
|
|
12
|
+
from .vm import raw_list as raw_list
|
|
13
|
+
from .vm import update as update
|
|
14
|
+
from .vm import begin_deleting_vms_by_id as begin_deleting_vms_by_id
|
|
15
|
+
from .vm import finish_deleting_vms as finish_deleting_vms
|
|
@@ -65,6 +65,18 @@ def finish_adding_vms(template_id: str, org_id: str, num_sessions: int, template
|
|
|
65
65
|
return _client.post(url, vms)
|
|
66
66
|
|
|
67
67
|
|
|
68
|
+
def begin_deleting_vms_by_id(template_id: str, org_id: str, vm_ids: list, **kwargs):
|
|
69
|
+
url = f"/v1/{template_id}/beginDeletingVMsById?org_id={org_id}"
|
|
70
|
+
url = with_query(url, **kwargs)
|
|
71
|
+
return _client.post(url, json=vm_ids)
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
def finish_deleting_vms(template_id: str, org_id: str, vm_ids: list, **kwargs):
|
|
75
|
+
url = f"/v1/{template_id}/finishDeletingVMs?org_id={org_id}"
|
|
76
|
+
url = with_query(url, **kwargs)
|
|
77
|
+
return _client.post(url, json=vm_ids)
|
|
78
|
+
|
|
79
|
+
|
|
68
80
|
def count(template_id: str, org_id: str = None, **kwargs):
|
|
69
81
|
url = f"/v1/{template_id}/count"
|
|
70
82
|
kwargs["countVM"] = True
|
|
@@ -53,13 +53,16 @@ def create(template: dict):
|
|
|
53
53
|
return _client.post(url=url, json=template)
|
|
54
54
|
|
|
55
55
|
|
|
56
|
+
def patch(id: str, org_id: str, patch_to: dict, **kwargs):
|
|
57
|
+
url = f"/v1/templates/{id}?org_id={org_id}"
|
|
58
|
+
# print(url)
|
|
59
|
+
# import json
|
|
60
|
+
# print(json.dumps(patch_to))
|
|
61
|
+
return _client.patch(url, json=patch_to)
|
|
62
|
+
|
|
63
|
+
|
|
56
64
|
def update(template: dict):
|
|
57
|
-
url = "/v1/templates"
|
|
58
|
-
# workaround for AKKA
|
|
59
|
-
if template["providerType"] == "AKKA":
|
|
60
|
-
pass
|
|
61
|
-
else:
|
|
62
|
-
url += "/" + template["providerType"].lower()
|
|
65
|
+
url = "/v1/templates/" + template["providerType"].lower()
|
|
63
66
|
return _client.post(url=url, json=template)
|
|
64
67
|
|
|
65
68
|
|