hcs-cli 0.1.330__tar.gz → 0.1.331__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.330 → hcs_cli-0.1.331}/PKG-INFO +2 -2
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/__init__.py +1 -1
- hcs_cli-0.1.331/hcs_cli/cmds/hoc/log.py +327 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/hoc/search.py +11 -97
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/vm/log.py +5 -4
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/hoc/es.py +7 -3
- hcs_cli-0.1.331/hcs_cli/support/exec_util.py +241 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/pyproject.toml +1 -1
- hcs_cli-0.1.330/hcs_cli/cmds/hoc/connect.py +0 -24
- hcs_cli-0.1.330/hcs_cli/cmds/hoc/oncall.py +0 -24
- hcs_cli-0.1.330/hcs_cli/cmds/hoc/org.py +0 -24
- hcs_cli-0.1.330/hcs_cli/cmds/hoc/template.py +0 -24
- hcs_cli-0.1.330/hcs_cli/cmds/hoc/vm.py +0 -27
- hcs_cli-0.1.330/hcs_cli/support/exec_util.py +0 -104
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/.gitignore +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/README.md +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/__main__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/ad/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/ad/create.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/ad/delete.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/ad/get.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/ad/list.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/admin/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/admin/azure_infra/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/admin/azure_infra/main.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/advisor/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/advisor/advisor_utils.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/advisor/config/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/advisor/config/advisor_config.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/advisor/html_utils.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/advisor/org.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/advisor/pdf_utils.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/advisor/pool.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/advisor/recommendation_engine.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/api.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/app/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/app/create.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/app/delete.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/app/get.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/app/list.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/app/update.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/app/use.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/auth/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/auth/admin/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/auth/admin/get_org_idp_map.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/auth/admin/network/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/auth/admin/network/add.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/auth/user/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/auth/user/list.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/clouddriver/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/clouddriver/provider.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/clouddriver/service.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/clouddriver/task.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/credential/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/credential/get.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/cs/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/cs/base.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/daas/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/daas/infra/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/daas/infra/basic.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/daas/infra/plan.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/daas/order/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/daas/order/create.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/daas/order/delete.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/daas/order/list.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/daas/order/update.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/daas/tenant/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/daas/tenant/consumption.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/daas/tenant/create.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/daas/tenant/plan.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/debug/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/debug/prepare.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/debug/reset.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/debug/start.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/dev/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/dev/emqx.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/dev/fs/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/dev/fs/auth.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/dev/fs/clear.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/dev/fs/helper/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/dev/fs/helper/credential_helper.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/dev/fs/helper/jenkins_util.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/dev/fs/helper/k8s_util.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/dev/fs/helper/license_info.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/dev/fs/helper/required_fields.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/dev/fs/helper/step_util.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/dev/fs/helper/subscription_util.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/dev/fs/helper/util.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/dev/fs/init.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/dev/fs/profiler.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/dev/fs/provided_files/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/dev/fs/provided_files/akka.plan.yml +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/dev/fs/provided_files/azsim.plan.yml +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/dev/fs/provided_files/azure.plan.yml +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/dev/fs/provided_files/mqtt-secret.yaml +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/dev/fs/provided_files/mqtt-server-external.yaml +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/dev/fs/provided_files/patch-mqtt-hostname.yml +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/dev/fs/provided_files/patch-vernemq-ssl-depth.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/dev/fs/tailor.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/dev/mqtt.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/dev/onboard.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/dev/test.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/dev/util/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/dev/util/github_helper.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/dev/util/log.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/dev/util/mqtt_helper.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/diagnostics/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/diagnostics/diagnose.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/edge/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/edge/connection_string.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/edge/create.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/edge/delete.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/edge/get.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/edge/list.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/edge/use.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/edge/wait.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/entitlement/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/entitlement/delete.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/entitlement/get.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/entitlement/list.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/hoc/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/hoc/stats.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/hoc/util/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/hoc/util/inv_cache.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/hst/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/hst/clean.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/hst/cloud/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/hst/cloud/health.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/hst/cloud/perf.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/hst/cloud/scale.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/hst/installer.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/hst/key.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/hst/outpost.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/hst/probe.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/hst/report.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/hst/test.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/ims/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/ims/delete.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/ims/get.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/ims/gold_pattern/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/ims/gold_pattern/create.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/ims/gold_pattern/delete.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/ims/gold_pattern/get.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/ims/gold_pattern/list.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/ims/list.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/ims/list_copies.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/ims/version/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/ims/version/delete.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/ims/version/get.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/ims/version/list.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/inspect.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/inventory/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/inventory/assign.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/inventory/count.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/inventory/deassign.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/inventory/delete.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/inventory/get.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/inventory/list.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/inventory/logoff.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/inventory/session.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/inventory/update.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/iss/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/iss/mqtt.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/lcm/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/lcm/health.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/lcm/provider/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/lcm/provider/create.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/lcm/provider/delete.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/lcm/provider/get.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/lcm/provider/list.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/lcm/register.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/lcm/template/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/lcm/template/cancel.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/lcm/template/create.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/lcm/template/delete.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/lcm/template/expand.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/lcm/template/get.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/lcm/template/health.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/lcm/template/list.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/lcm/template/provision.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/lcm/template/retry.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/lcm/template/update.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/lcm/template/use.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/lcm/template/wait.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/lcm/test.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/lcm/vm/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/lcm/vm/delete.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/lcm/vm/get.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/lcm/vm/pair.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/lcm/vm/pairing_info.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/lcm/vm/power.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/lcm/vm/put.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/lcm/vm/wait.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/login.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/logout.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/org/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/org/datacenter/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/org/datacenter/get.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/org/datacenter/list.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/org/details/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/org/ff.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/org/get.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/org/list.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/org/location.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/org/use.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/pki/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/pki/ca.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/pki/cert/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/pki/cert/delete.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/pki/cert/get.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/pki/sign.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/pki/test.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/plan/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/plan/apply.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/plan/clear.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/plan/destroy.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/plan/graph.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/plan/input.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/plan/output.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/plan/resolve.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/plan/use.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/pool/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/pool/delete.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/pool/get.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/pool/list.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/pool/update.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/pool/use.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/profile/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/profile/init.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/provider/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/provider/create.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/provider/delete.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/provider/get.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/provider/golden_images.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/provider/list.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/provider/use.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/provider/vsphere_dcs.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/query.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/scm/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/scm/health.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/scm/operator.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/scm/plan.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/scm/recommend.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/scm/template.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/site/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/site/create.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/site/delete.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/site/get.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/site/list.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/site/set-edge.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/site/use.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/synt/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/synt/outpost/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/synt/outpost/create.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/synt/outpost/delete.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/synt/outpost/get.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/synt/outpost/list.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/synt/outpost/update.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/synt/probe/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/synt/probe/create.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/synt/probe/delete.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/synt/probe/get.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/synt/probe/list.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/synt/probe/run.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/synt/probe/update.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/synt/report/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/synt/report/delete.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/synt/report/get.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/synt/report/list.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/task.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/template/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/template/create.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/template/delete.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/template/expand.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/template/fix.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/template/get.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/template/list.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/template/list_usage.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/template/update.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/template/usage.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/template/use.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/template/wait.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/test.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/uag/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/uag/delete.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/uag/get.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/uag/list.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/upgrade.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/vm/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/vm/actions.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/vm/delete.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/vm/get.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/vm/list.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/vm/pairing_info.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/vm/put.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/vm/use.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/vm/wait.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/vmhub/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/vmhub/info.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/vmhub/otp/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/vmhub/otp/redeem.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/vmhub/otp/request.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/vmm/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/vmm/restart_vms.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/vmm/rootca_edge_migration_stats.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/vmm/rootca_edge_rotate_certs.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/vmm/rootca_migrate.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/vmm/rootca_migrate_edge.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/vmm/rootca_template_migration_stats.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/workflows/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/cmds/workflows/mqtt-endpoints.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/config/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/config/hcs-deployments.yaml +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/main.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/akka.blueprint.yml +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/app/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/app/manual.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/edge/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/edge/akka.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/edge/vsphere.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/hoc/lcm-capcalc.json.template +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/hoc/no-spare.json.template +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/inventory/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/inventory/assign.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/inventory/deassign.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/iss/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/lcm/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/lcm/akka.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/lcm/azure-dummy.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/lcm/azure-real.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/lcm/edge-proxy.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/lcm/zero-dedicated.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/lcm/zero-delay-1m-per-vm.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/lcm/zero-fail-delete-template.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/lcm/zero-fail-destroy-onthread.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/lcm/zero-fail-destroy.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/lcm/zero-fail-prepare-onthread.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/lcm/zero-fail-prepare.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/lcm/zero-fail-vm-onthread.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/lcm/zero-fail-vm.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/lcm/zero-floating.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/lcm/zero-legacy.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/lcm/zero-manual.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/lcm/zero-multisession.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/lcm/zero-nanw.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/lcm/zero-new-5k-delay.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/lcm/zero-new-5k.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/lcm/zero-new-snapshot.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/lcm/zero-reuse-vm-id.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/lcm/zero-with-max-id-offset.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/lcm/zero.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/provider/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/provider/ad-stes-vsphere.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/provider/akka.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/provider/azure.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/provider/edgeproxy.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/provider/vsphere.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/scm/starter.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/synt/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/synt/core/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/synt/core/p01-dummy-success.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/synt/core/p02-dummy-fail.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/synt/core/p03-dummy-exception.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/synt/core/p04-dummy-success-repeat.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/synt/core/p05-dummy-fail-repeat.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/synt/core/p06-dummy-exception-repeat.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/synt/core/p07-dummy-delay.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/synt/core/p08-dummy-property.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/synt/ext/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/synt/ext/p20-connect-success.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/synt/ext/p21-connect-fail.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/synt/ext/p30-ssl-success.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/synt/ext/p31-ssl-fail.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/synt/ext/p40-http-success.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/synt/ext/p41-http-fail.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/synt/ext/p42-http-status-code.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/synt/ext1/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/synt/ext1/p10-ping-success.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/synt/ext1/p11-ping-fail.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/synt/ext1/p12-ping-success-repeat.json +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/payload/template/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/provider/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/provider/hcs/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/provider/hcs/_prepare.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/provider/hcs/ad.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/provider/hcs/av_entitlement.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/provider/hcs/av_fs.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/provider/hcs/cert.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/provider/hcs/edge.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/provider/hcs/entitlement.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/provider/hcs/gold_pattern.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/provider/hcs/identity_provider.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/provider/hcs/image.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/provider/hcs/import_av_app.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/provider/hcs/manual_app.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/provider/hcs/pool_group.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/provider/hcs/pool_template.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/provider/hcs/provider.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/provider/hcs/runtime/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/provider/hcs/runtime/password.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/provider/hcs/runtime/wait_for.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/provider/hcs/site.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/provider/hcs/uag.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/admin/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/admin/ad.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/admin/azure_infra.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/admin/edge.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/admin/helper.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/admin/provider.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/admin/template.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/admin/uag.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/admin/vm.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/api.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/app_management/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/app_management/manual_app.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/auth/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/auth/admin.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/av/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/av/app.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/av/avimport.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/av/entitlements.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/av/fileshare.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/clouddriver/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/clouddriver/provider.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/clouddriver/service.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/credential/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/credential/credential.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/credential/nls.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/cs/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/cs/base.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/csp.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/diagnostics/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/diagnostics/edge.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/edge.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/edgehub/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/edgehub/edgecontroller.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/edgehub/edgetwin.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/graphql.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/hoc/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/hoc/diagnostic.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/ims/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/ims/gold_pattern.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/ims/helper.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/ims/image_copies.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/ims/images.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/ims/version.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/inventory/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/inventory/session.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/inventory/vm.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/iss/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/iss/mqtt.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/lcm/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/lcm/health.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/lcm/provider.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/lcm/template.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/lcm/vm.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/org_service/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/org_service/datacenter.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/org_service/details.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/org_service/orglocationmapping.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/pki/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/pki/certificate.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/pool.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/portal/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/portal/entitlement.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/portal/pool.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/portal/site.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/scm/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/scm/base.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/scm/operator.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/scm/plan.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/site.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/synt/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/synt/outpost.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/synt/probe.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/synt/report.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/task.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/template.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/tsctl/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/tsctl/base.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/tsctl/task.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/uag.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/vm.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/vmhub/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/vmhub/credentials.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/vmhub/mqtt.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/vmm/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/vmm/dct.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/service/vmm/hoc_event.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/support/__init__.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/support/constant.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/support/debug_util.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/support/inspect_util.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/support/param_util.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/support/patch_util.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/support/plan_util.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/support/predefined_payload.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/support/profile.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/support/scm/html_util.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/support/scm/plan-editor.html.template +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/support/scm/plan_editor.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/support/template_util.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/support/test_utils.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/support/test_utils2.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/support/use_util.py +0 -0
- {hcs_cli-0.1.330 → hcs_cli-0.1.331}/hcs_cli/support/vm_table.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.331
|
|
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.331
|
|
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
|
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Copyright © 2025 Omnissa, LLC.
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
import json
|
|
6
|
+
import re
|
|
7
|
+
import sys
|
|
8
|
+
from datetime import timezone
|
|
9
|
+
from typing import Optional
|
|
10
|
+
|
|
11
|
+
import click
|
|
12
|
+
import yumako
|
|
13
|
+
from hcs_core.ctxp import util
|
|
14
|
+
from hcs_core.sglib import cli_options as cli
|
|
15
|
+
|
|
16
|
+
from hcs_cli.service import hoc
|
|
17
|
+
from hcs_cli.support import predefined_payload
|
|
18
|
+
|
|
19
|
+
_hdcs = ["US", "EU", "JP"]
|
|
20
|
+
|
|
21
|
+
_regions = [
|
|
22
|
+
"eastus2",
|
|
23
|
+
"westus2",
|
|
24
|
+
"northcentralus",
|
|
25
|
+
"northeurope",
|
|
26
|
+
"germanywestcentral",
|
|
27
|
+
"uksouth",
|
|
28
|
+
"japaneast",
|
|
29
|
+
"australiaeast",
|
|
30
|
+
"centralindia",
|
|
31
|
+
]
|
|
32
|
+
_stacks = ["prod", "staging", "stress"]
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
@click.command()
|
|
36
|
+
@cli.org_id
|
|
37
|
+
@click.option(
|
|
38
|
+
"--from",
|
|
39
|
+
"from_param",
|
|
40
|
+
type=str,
|
|
41
|
+
required=False,
|
|
42
|
+
default="-24h",
|
|
43
|
+
help="Sepcify the from date. E.g. '-1d', or '-1h35m', or '-1w', or '2023-12-04T00:19:22.854Z'.",
|
|
44
|
+
)
|
|
45
|
+
@click.option(
|
|
46
|
+
"--to",
|
|
47
|
+
type=str,
|
|
48
|
+
required=False,
|
|
49
|
+
default="now",
|
|
50
|
+
help="Sepcify the to date. E.g. 'now', or '-1d', or '-1h35m', or '-1w', or '2023-12-04T00:19:22.854Z'.",
|
|
51
|
+
)
|
|
52
|
+
@click.option("--hdc", required=False, type=click.Choice(_hdcs, case_sensitive=False), help="The HDC location")
|
|
53
|
+
@click.option("--region", required=False, type=click.Choice(_regions, case_sensitive=False), help="The region")
|
|
54
|
+
@click.option("--stack", required=False, type=click.Choice(_stacks, case_sensitive=False), help="The stack")
|
|
55
|
+
@click.option(
|
|
56
|
+
"--service",
|
|
57
|
+
required=False,
|
|
58
|
+
help="Filter by kubernetes.pod_labels.app. If multiple apps, use comma to separate, e.g. --service inventory,lcm",
|
|
59
|
+
)
|
|
60
|
+
@click.option("--raw", is_flag=True, default=False, help="If raw, output the raw result.")
|
|
61
|
+
@click.argument("query", type=str, required=False)
|
|
62
|
+
def log(org: str, from_param: str, to: str, hdc: str, region: str, stack: str, service: str, raw: bool, query: str):
|
|
63
|
+
"""Search Kibana Log."""
|
|
64
|
+
|
|
65
|
+
# org_id = cli.get_org_id(org)
|
|
66
|
+
|
|
67
|
+
if not hdc:
|
|
68
|
+
hdc = "US"
|
|
69
|
+
else:
|
|
70
|
+
hdc = hdc.upper()
|
|
71
|
+
index_map = {
|
|
72
|
+
"US": "prod110-hdc-westus2-cp102-*",
|
|
73
|
+
# "US": "prod110-hdc-centralus-cp102-*",
|
|
74
|
+
"EU": "hoc-logs-eu-prod-*",
|
|
75
|
+
"JP": "hoc-logs-jp-prod-*",
|
|
76
|
+
"AUS": "",
|
|
77
|
+
"IND": "",
|
|
78
|
+
"GER": "",
|
|
79
|
+
"UK": "",
|
|
80
|
+
"US_APM": "prod110-hdc-westus2-cp102-*",
|
|
81
|
+
"EU_APM": "",
|
|
82
|
+
"JP_APM": "",
|
|
83
|
+
}
|
|
84
|
+
es_logs_search_index = index_map[hdc]
|
|
85
|
+
|
|
86
|
+
text = predefined_payload.load("hoc/logs.jsont")
|
|
87
|
+
replacements = {
|
|
88
|
+
"from": int(yumako.time.of(from_param, tz=timezone.utc).timestamp() * 1000),
|
|
89
|
+
"to": int(yumako.time.of(to, tz=timezone.utc).timestamp() * 1000),
|
|
90
|
+
"query": query or "",
|
|
91
|
+
"es_logs_search_index": es_logs_search_index,
|
|
92
|
+
}
|
|
93
|
+
try:
|
|
94
|
+
text = yumako.template.replace(
|
|
95
|
+
text=text,
|
|
96
|
+
mapping=replacements,
|
|
97
|
+
raise_on_unresolved_vars=True,
|
|
98
|
+
raise_on_unused_vars=True,
|
|
99
|
+
)
|
|
100
|
+
except ValueError as e:
|
|
101
|
+
return util.error_details(e), 1
|
|
102
|
+
|
|
103
|
+
parts = text.split("///", 2)
|
|
104
|
+
try:
|
|
105
|
+
first_line = json.loads(parts[0])
|
|
106
|
+
except Exception as e:
|
|
107
|
+
print(text, file=sys.stderr)
|
|
108
|
+
print(e, file=sys.stderr)
|
|
109
|
+
return
|
|
110
|
+
try:
|
|
111
|
+
second_line = json.loads(parts[1])
|
|
112
|
+
except Exception as e:
|
|
113
|
+
print(text, file=sys.stderr)
|
|
114
|
+
print(e, file=sys.stderr)
|
|
115
|
+
return
|
|
116
|
+
|
|
117
|
+
_update_query(second_line, any_apps=service)
|
|
118
|
+
|
|
119
|
+
payload_jsonp = json.dumps(first_line) + "\n" + json.dumps(second_line) + "\n"
|
|
120
|
+
|
|
121
|
+
hdc_location_mapping = {
|
|
122
|
+
# "US", "EU", "JP", "AUS", "IND", "GER", "UK", "US_APM", "EU_APM", "JP_APM"
|
|
123
|
+
"US": "US_APM",
|
|
124
|
+
"EU": "EU_APM",
|
|
125
|
+
"JP": "JP_APM",
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
# print(payload_jsonp)
|
|
129
|
+
result = hoc.es.raw_query(payload_jsonp, hdc_location=hdc_location_mapping[hdc])
|
|
130
|
+
if raw:
|
|
131
|
+
return result
|
|
132
|
+
|
|
133
|
+
# format the result to pure message array
|
|
134
|
+
ret = []
|
|
135
|
+
for item in result:
|
|
136
|
+
message = item["message"]
|
|
137
|
+
parsed = _parse_message(message)
|
|
138
|
+
ret.append(parsed)
|
|
139
|
+
return ret
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
# Pattern 1: LCM / service-gateway style
|
|
143
|
+
# "...INFO [163053][mplateMonitor-119158] c.v.h.servicegateway.lcm.utils.KopLog..."
|
|
144
|
+
_PATTERN_LCM = re.compile(
|
|
145
|
+
r"(?P<timestamp>\S+)"
|
|
146
|
+
r"\s+\[trace_id=(?P<trace_id>[^\]]*)\]"
|
|
147
|
+
r"\s+\[transaction_id=(?P<transaction_id>[^\]]*)\]"
|
|
148
|
+
r"\s+(?P<level>\S+)"
|
|
149
|
+
r"\s+\[(?P<thread_id>[^\]]*)\]\[(?P<thread_name>[^\]]*)\]"
|
|
150
|
+
r"\s+(?P<logger>\S+)"
|
|
151
|
+
r"\s+-\s+"
|
|
152
|
+
r"(?P<body>.*)",
|
|
153
|
+
)
|
|
154
|
+
|
|
155
|
+
# Pattern 2: clouddriver style (single thread bracket after level)
|
|
156
|
+
# "...INFO [http-nio-8080-exec-6] c.v.horizon.sg.clouddriver..."
|
|
157
|
+
_PATTERN_CLOUDDRIVER = re.compile(
|
|
158
|
+
r"(?P<timestamp>\S+)"
|
|
159
|
+
r"\s+\[trace_id=(?P<trace_id>[^\]]*)\]"
|
|
160
|
+
r"\s+\[transaction_id=(?P<transaction_id>[^\]]*)\]"
|
|
161
|
+
r"\s+(?P<level>\S+)"
|
|
162
|
+
r"\s+\[(?P<thread_name>[^\]]*)\]"
|
|
163
|
+
r"\s+(?P<logger>\S+)"
|
|
164
|
+
r"\s+-\s+"
|
|
165
|
+
r"(?P<body>.*)",
|
|
166
|
+
)
|
|
167
|
+
|
|
168
|
+
# Pattern 3: task-service style (thread bracket before level)
|
|
169
|
+
# "...[transaction_id=...] [tsch:iss-32521] INFO c.v.h.s.t.service.TaskService..."
|
|
170
|
+
_PATTERN_TASK = re.compile(
|
|
171
|
+
r"(?P<timestamp>\S+)"
|
|
172
|
+
r"\s+\[trace_id=(?P<trace_id>[^\]]*)\]"
|
|
173
|
+
r"\s+\[transaction_id=(?P<transaction_id>[^\]]*)\]"
|
|
174
|
+
r"\s+\[(?P<thread_name>[^\]]*)\]"
|
|
175
|
+
r"\s+(?P<level>\S+)"
|
|
176
|
+
r"\s+(?P<logger>\S+)"
|
|
177
|
+
r"\s+-\s+"
|
|
178
|
+
r"(?P<body>.*)",
|
|
179
|
+
)
|
|
180
|
+
|
|
181
|
+
# Pattern 4
|
|
182
|
+
# "2026-04-10 00:24:26,559 [http-nio-8080-exec-10] WARN co.elastic.apm.agent.impl.transaction.TraceState - sample rate already set to 1.0, trying to set it to 1.0 through header will be ignored"
|
|
183
|
+
_PATTERN_ELASTIC = re.compile(
|
|
184
|
+
r"(?P<timestamp>\S+\s\S+)" r"\s+\[(?P<thread_name>[^\]]*)\]" r"\s+(?P<level>\S+)" r"\s+(?P<logger>\S+)" r"\s+-\s+" r"(?P<body>.*)",
|
|
185
|
+
)
|
|
186
|
+
|
|
187
|
+
# Pattern 5: JSON structured log (apm-server style)
|
|
188
|
+
# "{\"log.level\":\"info\",\"@timestamp\":\"2026-04-10T00:24:26.596Z\",\"log.logger\":\"request\",...}"
|
|
189
|
+
_PATTERN_JSON_LOG = re.compile(r"\s*\{.*\"@timestamp\".*\}")
|
|
190
|
+
|
|
191
|
+
# Pattern 6: Envoy/Istio access log
|
|
192
|
+
# "[2026-04-10T00:24:25.684Z] \"POST /ad-twin/v1/... HTTP/1.1\" 200 ..."
|
|
193
|
+
_PATTERN_ENVOY = re.compile(
|
|
194
|
+
r"\[(?P<timestamp>[^\]]+)\]"
|
|
195
|
+
r"\s+\"(?P<method>\S+)\s+(?P<path>\S+)\s+(?P<protocol>[^\"]+)\""
|
|
196
|
+
r"\s+(?P<status_code>\d+)"
|
|
197
|
+
r"\s+(?P<body>.*)",
|
|
198
|
+
)
|
|
199
|
+
|
|
200
|
+
# Pattern 7 & 8: portal/pool style (empty transaction_id bracket)
|
|
201
|
+
# "2026-04-10T00:27:57.372Z [trace_id=...] [] [kafka-consumer-listener-...] INFO c.v.h.p.handler..."
|
|
202
|
+
# "2026-04-10T00:27:57.376Z [trace_id=...] [] [http-nio-8080-exec-26] INFO c.v.h.portal.service..."
|
|
203
|
+
_PATTERN_PORTAL = re.compile(
|
|
204
|
+
r"(?P<timestamp>\S+)"
|
|
205
|
+
r"\s+\[trace_id=(?P<trace_id>[^\]]*)\]"
|
|
206
|
+
r"\s+\[(?P<transaction_id>[^\]]*)\]"
|
|
207
|
+
r"\s+\[(?P<thread_name>[^\]]*)\]"
|
|
208
|
+
r"\s+(?P<level>\S+)"
|
|
209
|
+
r"\s+(?P<logger>\S+)"
|
|
210
|
+
r"\s+-\s+"
|
|
211
|
+
r"(?P<body>.*)",
|
|
212
|
+
)
|
|
213
|
+
|
|
214
|
+
# Pattern 9: Spring Boot style (--- separator)
|
|
215
|
+
# "2026-04-10 00:29:34.037 INFO 8 --- [istenerId-0-C-1] c.v.h.a.f.kafka.KafkaConsumerService : Created ..."
|
|
216
|
+
_PATTERN_SPRING = re.compile(
|
|
217
|
+
r"(?P<timestamp>\S+\s\S+)"
|
|
218
|
+
r"\s+(?P<level>\S+)"
|
|
219
|
+
r"\s+\S+"
|
|
220
|
+
r"\s+---"
|
|
221
|
+
r"\s+\[(?P<thread_name>[^\]]*)\]"
|
|
222
|
+
r"\s+(?P<logger>\S+)"
|
|
223
|
+
r"\s+:\s+"
|
|
224
|
+
r"(?P<body>.*)",
|
|
225
|
+
)
|
|
226
|
+
|
|
227
|
+
_PATTERNS = [_PATTERN_LCM, _PATTERN_CLOUDDRIVER, _PATTERN_TASK, _PATTERN_ELASTIC, _PATTERN_ENVOY, _PATTERN_PORTAL, _PATTERN_SPRING]
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
def _parse_message(message: str) -> dict:
|
|
231
|
+
if _PATTERN_JSON_LOG.match(message):
|
|
232
|
+
try:
|
|
233
|
+
obj = json.loads(message)
|
|
234
|
+
return {
|
|
235
|
+
"timestamp": obj.get("@timestamp", ""),
|
|
236
|
+
"level": obj.get("log.level", ""),
|
|
237
|
+
"logger": obj.get("log.logger", ""),
|
|
238
|
+
"body": obj.get("message", ""),
|
|
239
|
+
}
|
|
240
|
+
except json.JSONDecodeError:
|
|
241
|
+
pass
|
|
242
|
+
for pattern in _PATTERNS:
|
|
243
|
+
m = pattern.match(message)
|
|
244
|
+
if m:
|
|
245
|
+
return m.groupdict()
|
|
246
|
+
return {"body": message}
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
def _update_query(query_object: dict, any_apps: Optional[str]) -> dict:
|
|
250
|
+
# Example query object: query string "KOP" and "V1-CUSFP0101I", time range, and kubernetes.pod_labels.app=lcm
|
|
251
|
+
# {
|
|
252
|
+
# "query": {
|
|
253
|
+
# "bool": {
|
|
254
|
+
# "must": [],
|
|
255
|
+
# "filter": [
|
|
256
|
+
# {
|
|
257
|
+
# "bool": {
|
|
258
|
+
# "filter": [
|
|
259
|
+
# {
|
|
260
|
+
# "multi_match": {
|
|
261
|
+
# "type": "phrase",
|
|
262
|
+
# "query": "KOP",
|
|
263
|
+
# "lenient": true
|
|
264
|
+
# }
|
|
265
|
+
# },
|
|
266
|
+
# {
|
|
267
|
+
# "multi_match": {
|
|
268
|
+
# "type": "phrase",
|
|
269
|
+
# "query": "V1-CUSFP0101I",
|
|
270
|
+
# "lenient": true
|
|
271
|
+
# }
|
|
272
|
+
# }
|
|
273
|
+
# ]
|
|
274
|
+
# }
|
|
275
|
+
# },
|
|
276
|
+
# {
|
|
277
|
+
# "range": {
|
|
278
|
+
# "timestamp": {
|
|
279
|
+
# "format": "strict_date_optional_time",
|
|
280
|
+
# "gte": "2026-04-09T22:42:54.486Z",
|
|
281
|
+
# "lte": "2026-04-09T22:47:54.486Z"
|
|
282
|
+
# }
|
|
283
|
+
# }
|
|
284
|
+
# },
|
|
285
|
+
# {
|
|
286
|
+
# "match_phrase": {
|
|
287
|
+
# "kubernetes.pod_labels.app": "lcm"
|
|
288
|
+
# }
|
|
289
|
+
# }
|
|
290
|
+
# ],
|
|
291
|
+
# "should": [],
|
|
292
|
+
# "must_not": []
|
|
293
|
+
# }
|
|
294
|
+
# }
|
|
295
|
+
# }
|
|
296
|
+
|
|
297
|
+
# example of the last match condition, if there are multiple app specified (is one of):
|
|
298
|
+
# {
|
|
299
|
+
# "bool": {
|
|
300
|
+
# "minimum_should_match": 1,
|
|
301
|
+
# "should": [
|
|
302
|
+
# {
|
|
303
|
+
# "match_phrase": {
|
|
304
|
+
# "kubernetes.pod_labels.app": "clouddriver"
|
|
305
|
+
# }
|
|
306
|
+
# },
|
|
307
|
+
# {
|
|
308
|
+
# "match_phrase": {
|
|
309
|
+
# "kubernetes.pod_labels.app": "lcm"
|
|
310
|
+
# }
|
|
311
|
+
# }
|
|
312
|
+
# ]
|
|
313
|
+
# }
|
|
314
|
+
# }
|
|
315
|
+
|
|
316
|
+
filter_array = query_object["query"]["bool"]["filter"]
|
|
317
|
+
|
|
318
|
+
if any_apps:
|
|
319
|
+
apps = [a.strip() for a in any_apps.split(",") if a.strip()]
|
|
320
|
+
if len(apps) == 1:
|
|
321
|
+
filter_array.append({"match_phrase": {"kubernetes.pod_labels.app": apps[0]}})
|
|
322
|
+
elif len(apps) > 1:
|
|
323
|
+
filter_array.append(
|
|
324
|
+
{"bool": {"minimum_should_match": 1, "should": [{"match_phrase": {"kubernetes.pod_labels.app": app}} for app in apps]}}
|
|
325
|
+
)
|
|
326
|
+
|
|
327
|
+
return query_object
|
|
@@ -36,6 +36,17 @@ def _formalize_query_string(input_str):
|
|
|
36
36
|
return " ".join(parts).strip()
|
|
37
37
|
|
|
38
38
|
|
|
39
|
+
def _parse_kv_args(arg_list: list[str]) -> dict[str, str]:
|
|
40
|
+
result = {}
|
|
41
|
+
for arg in arg_list:
|
|
42
|
+
if "=" not in arg:
|
|
43
|
+
raise ValueError(f"Invalid argument: {arg}. Expected format: key=value")
|
|
44
|
+
key, value = arg.split("=", 1)
|
|
45
|
+
key = key.strip()
|
|
46
|
+
result[key] = value.strip()
|
|
47
|
+
return result
|
|
48
|
+
|
|
49
|
+
|
|
39
50
|
@click.command()
|
|
40
51
|
@cli.org_id
|
|
41
52
|
@click.option(
|
|
@@ -167,100 +178,3 @@ def es(org: str, from_param: str, to: str, file, raw: bool, predefined: str, arg
|
|
|
167
178
|
|
|
168
179
|
print(payload_jsonp)
|
|
169
180
|
return hoc.es.raw_query(payload_jsonp)
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
_hdcs = ["US", "EU", "JP"]
|
|
173
|
-
_regions = [
|
|
174
|
-
"eastus2",
|
|
175
|
-
"westus2",
|
|
176
|
-
"northcentralus",
|
|
177
|
-
"northeurope",
|
|
178
|
-
"germanywestcentral",
|
|
179
|
-
"uksouth",
|
|
180
|
-
"japaneast",
|
|
181
|
-
"australiaeast",
|
|
182
|
-
"centralindia",
|
|
183
|
-
]
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
@click.command()
|
|
187
|
-
@cli.org_id
|
|
188
|
-
@click.option(
|
|
189
|
-
"--from",
|
|
190
|
-
"from_param",
|
|
191
|
-
type=str,
|
|
192
|
-
required=False,
|
|
193
|
-
default="-12h",
|
|
194
|
-
help="Sepcify the from date. E.g. '-1d', or '-1h35m', or '-1w', or '2023-12-04T00:19:22.854Z'.",
|
|
195
|
-
)
|
|
196
|
-
@click.option(
|
|
197
|
-
"--to",
|
|
198
|
-
type=str,
|
|
199
|
-
required=False,
|
|
200
|
-
default="now",
|
|
201
|
-
help="Sepcify the to date. E.g. 'now', or '-1d', or '-1h35m', or '-1w', or '2023-12-04T00:19:22.854Z'.",
|
|
202
|
-
)
|
|
203
|
-
@click.option("--hdc", required=False, type=click.Choice(_hdcs, case_sensitive=False), help="The HDC location")
|
|
204
|
-
@click.option("--region", required=False, type=click.Choice(_regions, case_sensitive=False), help="The HDC location")
|
|
205
|
-
@click.argument("query", type=str, required=False)
|
|
206
|
-
def logs(org: str, from_param: str, to: str, hdc: str, region: str, query: str):
|
|
207
|
-
"""Perform a raw ES query for HCS logs."""
|
|
208
|
-
|
|
209
|
-
# org_id = cli.get_org_id(org)
|
|
210
|
-
|
|
211
|
-
if not hdc:
|
|
212
|
-
hdc = "US"
|
|
213
|
-
else:
|
|
214
|
-
hdc = hdc.upper()
|
|
215
|
-
index_map = {
|
|
216
|
-
"US": "prod110-hdc-centralus-cp102-*",
|
|
217
|
-
"EU": "hoc-logs-eu-prod-*",
|
|
218
|
-
"JP": "hoc-logs-jp-prod-*",
|
|
219
|
-
}
|
|
220
|
-
es_logs_search_index = index_map[hdc]
|
|
221
|
-
|
|
222
|
-
text = predefined_payload.load("hoc/logs.jsont")
|
|
223
|
-
replacements = {
|
|
224
|
-
"from": int(yumako.time.of(from_param, tz=timezone.utc).timestamp() * 1000),
|
|
225
|
-
"to": int(yumako.time.of(to, tz=timezone.utc).timestamp() * 1000),
|
|
226
|
-
"query": query if query else "",
|
|
227
|
-
"es_logs_search_index": es_logs_search_index,
|
|
228
|
-
}
|
|
229
|
-
try:
|
|
230
|
-
text = yumako.template.replace(
|
|
231
|
-
text=text,
|
|
232
|
-
mapping=replacements,
|
|
233
|
-
raise_on_unresolved_vars=True,
|
|
234
|
-
raise_on_unused_vars=True,
|
|
235
|
-
)
|
|
236
|
-
except ValueError as e:
|
|
237
|
-
return util.error_details(e), 1
|
|
238
|
-
|
|
239
|
-
parts = text.split("///", 2)
|
|
240
|
-
try:
|
|
241
|
-
first_line = json.loads(parts[0])
|
|
242
|
-
except Exception as e:
|
|
243
|
-
print(text, file=sys.stderr)
|
|
244
|
-
print(e, file=sys.stderr)
|
|
245
|
-
return
|
|
246
|
-
try:
|
|
247
|
-
second_line = json.loads(parts[1])
|
|
248
|
-
except Exception as e:
|
|
249
|
-
print(text, file=sys.stderr)
|
|
250
|
-
print(e, file=sys.stderr)
|
|
251
|
-
return
|
|
252
|
-
payload_jsonp = json.dumps(first_line) + "\n" + json.dumps(second_line) + "\n"
|
|
253
|
-
|
|
254
|
-
print(payload_jsonp)
|
|
255
|
-
return hoc.es.raw_query(payload_jsonp)
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
def _parse_kv_args(arg_list: list[str]) -> dict[str, str]:
|
|
259
|
-
result = {}
|
|
260
|
-
for arg in arg_list:
|
|
261
|
-
if "=" not in arg:
|
|
262
|
-
raise ValueError(f"Invalid argument: {arg}. Expected format: key=value")
|
|
263
|
-
key, value = arg.split("=", 1)
|
|
264
|
-
key = key.strip()
|
|
265
|
-
result[key] = value.strip()
|
|
266
|
-
return result
|
|
@@ -28,7 +28,7 @@ _DCT_FAILED = frozenset({"ERROR", "EXPIRED"})
|
|
|
28
28
|
help="Whether to recreate the log if it already exists. By default, it will not recreate the log and just return the existing log.",
|
|
29
29
|
)
|
|
30
30
|
@click.option(
|
|
31
|
-
"--
|
|
31
|
+
"--verbose", is_flag=True, default=False, help="Whether to print progress messages. By default, it will print progress messages."
|
|
32
32
|
)
|
|
33
33
|
@click.option(
|
|
34
34
|
"--save-as",
|
|
@@ -39,15 +39,13 @@ _DCT_FAILED = frozenset({"ERROR", "EXPIRED"})
|
|
|
39
39
|
)
|
|
40
40
|
@click.argument("vm_path", type=str, required=False)
|
|
41
41
|
@cli.org_id
|
|
42
|
-
def log(recreate: bool,
|
|
42
|
+
def log(recreate: bool, verbose: bool, save_path, vm_path: str, org: str, **kwargs):
|
|
43
43
|
"""Download VM DCT log"""
|
|
44
44
|
org_id = cli.get_org_id(org)
|
|
45
45
|
template_id, vm_id = parse_vm_path(vm_path)
|
|
46
46
|
|
|
47
47
|
is_ops = has_any_permission(["sgadm:supportw", "sgadm:supportlog", "sgadm:service", "sgadm:support"])
|
|
48
48
|
|
|
49
|
-
verbose = not silent
|
|
50
|
-
|
|
51
49
|
dct_info = dct_service.latest(org_id, template_id, vm_id, is_ops)
|
|
52
50
|
if not dct_info:
|
|
53
51
|
if verbose:
|
|
@@ -102,6 +100,9 @@ def log(recreate: bool, silent: bool, save_path, vm_path: str, org: str, **kwarg
|
|
|
102
100
|
return f"Failed to download archive: {e}", 1
|
|
103
101
|
|
|
104
102
|
dct_info["file_path"] = file_path
|
|
103
|
+
|
|
104
|
+
if verbose:
|
|
105
|
+
click.secho("----- DCT log downloaded -----", fg="bright_black")
|
|
105
106
|
return dct_info
|
|
106
107
|
|
|
107
108
|
|
|
@@ -46,6 +46,7 @@ def query(
|
|
|
46
46
|
to_date: Union[str, datetime] = "now",
|
|
47
47
|
template_file: str = None,
|
|
48
48
|
template: str = None,
|
|
49
|
+
hdc_location: str = None,
|
|
49
50
|
**kwargs,
|
|
50
51
|
):
|
|
51
52
|
if template_file:
|
|
@@ -87,8 +88,11 @@ def query(
|
|
|
87
88
|
raise e
|
|
88
89
|
|
|
89
90
|
payload_jsonp = json.dumps(payload_type) + "\n" + json.dumps(payload_query) + "\n"
|
|
90
|
-
return raw_query(payload_jsonp)
|
|
91
|
+
return raw_query(payload_jsonp, hdc_location=hdc_location)
|
|
91
92
|
|
|
92
93
|
|
|
93
|
-
def raw_query(payload_jsonp: str):
|
|
94
|
-
|
|
94
|
+
def raw_query(payload_jsonp: str, hdc_location: str = None):
|
|
95
|
+
url = "/v1/data/query/search"
|
|
96
|
+
if hdc_location:
|
|
97
|
+
url = f"/v1/data/query/search?hdcLocation={hdc_location}"
|
|
98
|
+
return _client.post(url, text=payload_jsonp)
|