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.
Files changed (505) hide show
  1. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/PKG-INFO +2 -2
  2. hcs_cli-0.1.320/hcs_cli/__init__.py +3 -0
  3. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/clear.py +8 -0
  4. hcs_cli-0.1.320/hcs_cli/cmds/hoc/stats.py +46 -0
  5. hcs_cli-0.1.320/hcs_cli/cmds/inventory/delete.py +48 -0
  6. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/provider/create.py +11 -2
  7. hcs_cli-0.1.320/hcs_cli/cmds/lcm/template/expand.py +46 -0
  8. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/vm/delete.py +3 -2
  9. hcs_cli-0.1.320/hcs_cli/cmds/template/expand.py +110 -0
  10. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/template/update.py +2 -2
  11. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vm/delete.py +3 -2
  12. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vm/list.py +51 -39
  13. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vmm/rootca_migrate.py +1 -1
  14. 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
  15. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/admin/template.py +10 -1
  16. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/hoc/diagnostic.py +11 -0
  17. hcs_cli-0.1.320/hcs_cli/service/inventory/__init__.py +15 -0
  18. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/inventory/vm.py +12 -0
  19. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/lcm/template.py +9 -6
  20. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/template.py +1 -1
  21. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/support/vm_table.py +2 -2
  22. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/pyproject.toml +1 -1
  23. hcs_cli-0.1.319/hcs_cli/__init__.py +0 -3
  24. hcs_cli-0.1.319/hcs_cli/cmds/template/expand.py +0 -65
  25. hcs_cli-0.1.319/hcs_cli/payload/lcm/azure-dummy.json +0 -67
  26. hcs_cli-0.1.319/hcs_cli/service/inventory/__init__.py +0 -2
  27. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/.gitignore +0 -0
  28. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/README.md +0 -0
  29. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/__main__.py +0 -0
  30. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/__init__.py +0 -0
  31. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ad/__init__.py +0 -0
  32. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ad/create.py +0 -0
  33. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ad/delete.py +0 -0
  34. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ad/get.py +0 -0
  35. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ad/list.py +0 -0
  36. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/admin/__init__.py +0 -0
  37. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/admin/azure_infra/__init__.py +0 -0
  38. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/admin/azure_infra/main.py +0 -0
  39. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/advisor/__init__.py +0 -0
  40. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/advisor/advisor_utils.py +0 -0
  41. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/advisor/config/__init__.py +0 -0
  42. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/advisor/config/advisor_config.py +0 -0
  43. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/advisor/html_utils.py +0 -0
  44. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/advisor/org.py +0 -0
  45. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/advisor/pdf_utils.py +0 -0
  46. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/advisor/pool.py +0 -0
  47. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/advisor/recommendation_engine.py +0 -0
  48. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/api.py +0 -0
  49. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/app/__init__.py +0 -0
  50. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/app/create.py +0 -0
  51. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/app/delete.py +0 -0
  52. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/app/get.py +0 -0
  53. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/app/list.py +0 -0
  54. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/app/update.py +0 -0
  55. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/app/use.py +0 -0
  56. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/auth/__init__.py +0 -0
  57. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/auth/admin/__init__.py +0 -0
  58. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/auth/admin/get_org_idp_map.py +0 -0
  59. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/auth/admin/network/__init__.py +0 -0
  60. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/auth/admin/network/add.py +0 -0
  61. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/auth/user/__init__.py +0 -0
  62. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/auth/user/list.py +0 -0
  63. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/clouddriver/__init__.py +0 -0
  64. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/clouddriver/provider.py +0 -0
  65. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/clouddriver/summary.py +0 -0
  66. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/clouddriver/task.py +0 -0
  67. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/credential/__init__.py +0 -0
  68. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/credential/get.py +0 -0
  69. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/cs/__init__.py +0 -0
  70. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/cs/base.py +0 -0
  71. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/daas/__init__.py +0 -0
  72. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/daas/infra/__init__.py +0 -0
  73. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/daas/infra/basic.py +0 -0
  74. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/daas/infra/plan.py +0 -0
  75. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/daas/order/__init__.py +0 -0
  76. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/daas/order/create.py +0 -0
  77. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/daas/order/delete.py +0 -0
  78. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/daas/order/list.py +0 -0
  79. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/daas/order/update.py +0 -0
  80. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/daas/tenant/__init__.py +0 -0
  81. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/daas/tenant/consumption.py +0 -0
  82. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/daas/tenant/create.py +0 -0
  83. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/daas/tenant/plan.py +0 -0
  84. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/debug/__init__.py +0 -0
  85. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/debug/prepare.py +0 -0
  86. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/debug/reset.py +0 -0
  87. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/debug/start.py +0 -0
  88. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/__init__.py +0 -0
  89. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/emqx.py +0 -0
  90. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/__init__.py +0 -0
  91. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/auth.py +0 -0
  92. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/helper/__init__.py +0 -0
  93. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/helper/credential_helper.py +0 -0
  94. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/helper/jenkins_util.py +0 -0
  95. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/helper/k8s_util.py +0 -0
  96. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/helper/license_info.py +0 -0
  97. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/helper/required_fields.py +0 -0
  98. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/helper/step_util.py +0 -0
  99. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/helper/util.py +0 -0
  100. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/init.py +0 -0
  101. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/profiler.py +0 -0
  102. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/provided_files/__init__.py +0 -0
  103. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/provided_files/akka.plan.yml +0 -0
  104. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/provided_files/azsim.plan.yml +0 -0
  105. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/provided_files/azure.plan.yml +0 -0
  106. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/provided_files/mqtt-secret.yaml +0 -0
  107. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/provided_files/mqtt-server-external.yaml +0 -0
  108. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/provided_files/patch-mqtt-hostname.yml +0 -0
  109. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/provided_files/patch-vernemq-ssl-depth.json +0 -0
  110. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/fs/tailor.py +0 -0
  111. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/mqtt.py +0 -0
  112. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/onboard.py +0 -0
  113. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/test.py +0 -0
  114. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/util/__init__.py +0 -0
  115. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/util/github_helper.py +0 -0
  116. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/util/log.py +0 -0
  117. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/dev/util/mqtt_helper.py +0 -0
  118. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/diagnostics/__init__.py +0 -0
  119. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/diagnostics/diagnose.py +0 -0
  120. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/edge/__init__.py +0 -0
  121. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/edge/connection_string.py +0 -0
  122. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/edge/create.py +0 -0
  123. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/edge/delete.py +0 -0
  124. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/edge/get.py +0 -0
  125. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/edge/list.py +0 -0
  126. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/edge/use.py +0 -0
  127. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/edge/wait.py +0 -0
  128. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/entitlement/__init__.py +0 -0
  129. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/entitlement/delete.py +0 -0
  130. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/entitlement/get.py +0 -0
  131. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/entitlement/list.py +0 -0
  132. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hoc/__init__.py +0 -0
  133. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hoc/connect.py +0 -0
  134. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hoc/oncall.py +0 -0
  135. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hoc/org.py +0 -0
  136. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hoc/search.py +0 -0
  137. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hoc/template.py +0 -0
  138. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hoc/util/__init__.py +0 -0
  139. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hoc/util/inv_cache.py +0 -0
  140. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hoc/vm.py +0 -0
  141. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hst/__init__.py +0 -0
  142. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hst/clean.py +0 -0
  143. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hst/cloud/__init__.py +0 -0
  144. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hst/cloud/health.py +0 -0
  145. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hst/cloud/perf.py +0 -0
  146. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hst/cloud/scale.py +0 -0
  147. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hst/installer.py +0 -0
  148. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hst/key.py +0 -0
  149. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hst/outpost.py +0 -0
  150. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hst/probe.py +0 -0
  151. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hst/report.py +0 -0
  152. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/hst/test.py +0 -0
  153. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ims/__init__.py +0 -0
  154. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ims/delete.py +0 -0
  155. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ims/get.py +0 -0
  156. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ims/gold_pattern/__init__.py +0 -0
  157. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ims/gold_pattern/create.py +0 -0
  158. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ims/gold_pattern/delete.py +0 -0
  159. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ims/gold_pattern/get.py +0 -0
  160. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ims/gold_pattern/list.py +0 -0
  161. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ims/list.py +0 -0
  162. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ims/list_copies.py +0 -0
  163. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ims/version/__init__.py +0 -0
  164. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ims/version/delete.py +0 -0
  165. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ims/version/get.py +0 -0
  166. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/ims/version/list.py +0 -0
  167. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/inspect.py +0 -0
  168. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/inventory/__init__.py +0 -0
  169. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/inventory/assign.py +0 -0
  170. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/inventory/count.py +0 -0
  171. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/inventory/deassign.py +0 -0
  172. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/inventory/get.py +0 -0
  173. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/inventory/list.py +0 -0
  174. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/inventory/logoff.py +0 -0
  175. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/inventory/session.py +0 -0
  176. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/inventory/update.py +0 -0
  177. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/iss/__init__.py +0 -0
  178. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/iss/mqtt.py +0 -0
  179. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/__init__.py +0 -0
  180. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/health.py +0 -0
  181. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/provider/__init__.py +0 -0
  182. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/provider/delete.py +0 -0
  183. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/provider/get.py +0 -0
  184. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/provider/list.py +0 -0
  185. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/register.py +0 -0
  186. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/template/__init__.py +0 -0
  187. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/template/cancel.py +0 -0
  188. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/template/create.py +0 -0
  189. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/template/delete.py +0 -0
  190. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/template/get.py +0 -0
  191. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/template/health.py +0 -0
  192. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/template/list.py +0 -0
  193. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/template/provision.py +0 -0
  194. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/template/retry.py +0 -0
  195. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/template/update.py +0 -0
  196. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/template/use.py +0 -0
  197. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/template/wait.py +0 -0
  198. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/test.py +0 -0
  199. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/vm/__init__.py +0 -0
  200. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/vm/get.py +0 -0
  201. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/vm/pair.py +0 -0
  202. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/vm/pairing_info.py +0 -0
  203. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/vm/power.py +0 -0
  204. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/vm/put.py +0 -0
  205. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/lcm/vm/wait.py +0 -0
  206. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/login.py +0 -0
  207. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/logout.py +0 -0
  208. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/org/__init__.py +0 -0
  209. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/org/datacenter/__init__.py +0 -0
  210. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/org/datacenter/get.py +0 -0
  211. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/org/datacenter/list.py +0 -0
  212. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/org/details/__init__.py +0 -0
  213. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/org/ff.py +0 -0
  214. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/org/get.py +0 -0
  215. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/org/list.py +0 -0
  216. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/org/location.py +0 -0
  217. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/org/use.py +0 -0
  218. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/pki/__init__.py +0 -0
  219. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/pki/ca.py +0 -0
  220. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/pki/cert/__init__.py +0 -0
  221. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/pki/cert/delete.py +0 -0
  222. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/pki/cert/get.py +0 -0
  223. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/pki/sign.py +0 -0
  224. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/pki/test.py +0 -0
  225. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/plan/__init__.py +0 -0
  226. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/plan/apply.py +0 -0
  227. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/plan/clear.py +0 -0
  228. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/plan/destroy.py +0 -0
  229. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/plan/graph.py +0 -0
  230. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/plan/input.py +0 -0
  231. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/plan/output.py +0 -0
  232. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/plan/resolve.py +0 -0
  233. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/plan/use.py +0 -0
  234. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/pool/__init__.py +0 -0
  235. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/pool/delete.py +0 -0
  236. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/pool/get.py +0 -0
  237. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/pool/list.py +0 -0
  238. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/pool/update.py +0 -0
  239. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/pool/use.py +0 -0
  240. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/profile/__init__.py +0 -0
  241. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/profile/init.py +0 -0
  242. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/provider/__init__.py +0 -0
  243. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/provider/create.py +0 -0
  244. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/provider/delete.py +0 -0
  245. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/provider/get.py +0 -0
  246. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/provider/golden_images.py +0 -0
  247. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/provider/list.py +0 -0
  248. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/provider/use.py +0 -0
  249. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/provider/vsphere_dcs.py +0 -0
  250. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/query.py +0 -0
  251. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/scm/__init__.py +0 -0
  252. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/scm/health.py +0 -0
  253. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/scm/operator.py +0 -0
  254. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/scm/plan.py +0 -0
  255. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/scm/template.py +0 -0
  256. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/site/__init__.py +0 -0
  257. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/site/create.py +0 -0
  258. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/site/delete.py +0 -0
  259. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/site/get.py +0 -0
  260. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/site/list.py +0 -0
  261. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/site/set-edge.py +0 -0
  262. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/site/use.py +0 -0
  263. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/__init__.py +0 -0
  264. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/outpost/__init__.py +0 -0
  265. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/outpost/create.py +0 -0
  266. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/outpost/delete.py +0 -0
  267. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/outpost/get.py +0 -0
  268. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/outpost/list.py +0 -0
  269. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/outpost/update.py +0 -0
  270. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/probe/__init__.py +0 -0
  271. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/probe/create.py +0 -0
  272. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/probe/delete.py +0 -0
  273. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/probe/get.py +0 -0
  274. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/probe/list.py +0 -0
  275. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/probe/run.py +0 -0
  276. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/probe/update.py +0 -0
  277. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/report/__init__.py +0 -0
  278. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/report/delete.py +0 -0
  279. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/report/get.py +0 -0
  280. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/synt/report/list.py +0 -0
  281. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/task.py +0 -0
  282. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/template/__init__.py +0 -0
  283. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/template/create.py +0 -0
  284. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/template/delete.py +0 -0
  285. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/template/fix.py +0 -0
  286. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/template/get.py +0 -0
  287. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/template/list.py +0 -0
  288. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/template/list_usage.py +0 -0
  289. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/template/usage.py +0 -0
  290. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/template/use.py +0 -0
  291. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/template/wait.py +0 -0
  292. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/test.py +0 -0
  293. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/uag/__init__.py +0 -0
  294. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/uag/delete.py +0 -0
  295. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/uag/get.py +0 -0
  296. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/uag/list.py +0 -0
  297. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/upgrade.py +0 -0
  298. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vm/__init__.py +0 -0
  299. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vm/actions.py +0 -0
  300. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vm/get.py +0 -0
  301. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vm/pairing_info.py +0 -0
  302. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vm/put.py +0 -0
  303. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vm/use.py +0 -0
  304. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vm/wait.py +0 -0
  305. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vmhub/__init__.py +0 -0
  306. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vmhub/info.py +0 -0
  307. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vmhub/otp/__init__.py +0 -0
  308. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vmhub/otp/redeem.py +0 -0
  309. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vmhub/otp/request.py +0 -0
  310. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vmm/__init__.py +0 -0
  311. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vmm/restart_vms.py +0 -0
  312. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vmm/rootca_edge_migration_stats.py +0 -0
  313. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vmm/rootca_edge_rotate_certs.py +0 -0
  314. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vmm/rootca_migrate_edge.py +0 -0
  315. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/vmm/rootca_template_migration_stats.py +0 -0
  316. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/workflows/__init__.py +0 -0
  317. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/cmds/workflows/mqtt-endpoints.py +0 -0
  318. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/config/__init__.py +0 -0
  319. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/config/hcs-deployments.yaml +0 -0
  320. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/main.py +0 -0
  321. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/__init__.py +0 -0
  322. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/akka.blueprint.yml +0 -0
  323. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/app/__init__.py +0 -0
  324. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/app/manual.json +0 -0
  325. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/edge/__init__.py +0 -0
  326. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/edge/akka.json +0 -0
  327. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/edge/vsphere.json +0 -0
  328. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/hoc/lcm-capcalc.json.template +0 -0
  329. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/hoc/no-spare.json.template +0 -0
  330. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/inventory/__init__.py +0 -0
  331. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/inventory/assign.json +0 -0
  332. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/inventory/deassign.json +0 -0
  333. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/iss/__init__.py +0 -0
  334. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/__init__.py +0 -0
  335. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/akka.json +0 -0
  336. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/azure-real.json +0 -0
  337. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/edge-proxy.json +0 -0
  338. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-dedicated.json +0 -0
  339. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-delay-1m-per-vm.json +0 -0
  340. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-fail-delete-template.json +0 -0
  341. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-fail-destroy-onthread.json +0 -0
  342. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-fail-destroy.json +0 -0
  343. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-fail-prepare-onthread.json +0 -0
  344. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-fail-prepare.json +0 -0
  345. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-fail-vm-onthread.json +0 -0
  346. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-fail-vm.json +0 -0
  347. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-floating.json +0 -0
  348. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-manual.json +0 -0
  349. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-multisession.json +0 -0
  350. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-nanw.json +0 -0
  351. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-new-5k-delay.json +0 -0
  352. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-new-5k.json +0 -0
  353. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-new-snapshot.json +0 -0
  354. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-new.json +0 -0
  355. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-reuse-vm-id.json +0 -0
  356. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero-with-max-id-offset.json +0 -0
  357. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/lcm/zero.json +0 -0
  358. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/provider/__init__.py +0 -0
  359. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/provider/ad-stes-vsphere.json +0 -0
  360. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/provider/akka.json +0 -0
  361. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/provider/azure.json +0 -0
  362. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/provider/edgeproxy.json +0 -0
  363. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/provider/vsphere.json +0 -0
  364. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/scm/starter.json +0 -0
  365. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/__init__.py +0 -0
  366. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/core/__init__.py +0 -0
  367. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/core/p01-dummy-success.json +0 -0
  368. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/core/p02-dummy-fail.json +0 -0
  369. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/core/p03-dummy-exception.json +0 -0
  370. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/core/p04-dummy-success-repeat.json +0 -0
  371. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/core/p05-dummy-fail-repeat.json +0 -0
  372. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/core/p06-dummy-exception-repeat.json +0 -0
  373. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/core/p07-dummy-delay.json +0 -0
  374. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/core/p08-dummy-property.json +0 -0
  375. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/ext/__init__.py +0 -0
  376. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/ext/p20-connect-success.json +0 -0
  377. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/ext/p21-connect-fail.json +0 -0
  378. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/ext/p30-ssl-success.json +0 -0
  379. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/ext/p31-ssl-fail.json +0 -0
  380. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/ext/p40-http-success.json +0 -0
  381. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/ext/p41-http-fail.json +0 -0
  382. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/ext/p42-http-status-code.json +0 -0
  383. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/ext1/__init__.py +0 -0
  384. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/ext1/p10-ping-success.json +0 -0
  385. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/ext1/p11-ping-fail.json +0 -0
  386. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/synt/ext1/p12-ping-success-repeat.json +0 -0
  387. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/payload/template/__init__.py +0 -0
  388. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/__init__.py +0 -0
  389. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/__init__.py +0 -0
  390. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/_prepare.py +0 -0
  391. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/ad.py +0 -0
  392. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/av_entitlement.py +0 -0
  393. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/av_fs.py +0 -0
  394. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/cert.py +0 -0
  395. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/edge.py +0 -0
  396. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/entitlement.py +0 -0
  397. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/gold_pattern.py +0 -0
  398. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/identity_provider.py +0 -0
  399. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/image.py +0 -0
  400. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/import_av_app.py +0 -0
  401. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/manual_app.py +0 -0
  402. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/pool_group.py +0 -0
  403. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/pool_template.py +0 -0
  404. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/provider.py +0 -0
  405. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/runtime/__init__.py +0 -0
  406. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/runtime/password.py +0 -0
  407. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/runtime/wait_for.py +0 -0
  408. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/site.py +0 -0
  409. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/provider/hcs/uag.py +0 -0
  410. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/__init__.py +0 -0
  411. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/admin/__init__.py +0 -0
  412. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/admin/ad.py +0 -0
  413. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/admin/azure_infra.py +0 -0
  414. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/admin/edge.py +0 -0
  415. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/admin/helper.py +0 -0
  416. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/admin/provider.py +0 -0
  417. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/admin/uag.py +0 -0
  418. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/admin/vm.py +0 -0
  419. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/app_management/__init__.py +0 -0
  420. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/app_management/manual_app.py +0 -0
  421. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/auth/__init__.py +0 -0
  422. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/auth/admin.py +0 -0
  423. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/av/__init__.py +0 -0
  424. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/av/app.py +0 -0
  425. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/av/avimport.py +0 -0
  426. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/av/entitlements.py +0 -0
  427. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/av/fileshare.py +0 -0
  428. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/clouddriver/__init__.py +0 -0
  429. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/clouddriver/provider.py +0 -0
  430. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/credential/__init__.py +0 -0
  431. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/credential/credential.py +0 -0
  432. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/credential/nls.py +0 -0
  433. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/cs/__init__.py +0 -0
  434. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/cs/base.py +0 -0
  435. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/csp.py +0 -0
  436. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/diagnostics/__init__.py +0 -0
  437. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/diagnostics/edge.py +0 -0
  438. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/edge.py +0 -0
  439. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/edgehub/__init__.py +0 -0
  440. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/edgehub/edgecontroller.py +0 -0
  441. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/edgehub/edgetwin.py +0 -0
  442. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/graphql.py +0 -0
  443. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/hoc/__init__.py +0 -0
  444. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/hoc/es.py +0 -0
  445. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/ims/__init__.py +0 -0
  446. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/ims/gold_pattern.py +0 -0
  447. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/ims/helper.py +0 -0
  448. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/ims/image_copies.py +0 -0
  449. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/ims/images.py +0 -0
  450. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/ims/version.py +0 -0
  451. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/inventory/session.py +0 -0
  452. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/iss/__init__.py +0 -0
  453. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/iss/mqtt.py +0 -0
  454. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/lcm/__init__.py +0 -0
  455. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/lcm/health.py +0 -0
  456. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/lcm/provider.py +0 -0
  457. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/lcm/vm.py +0 -0
  458. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/org_service/__init__.py +0 -0
  459. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/org_service/datacenter.py +0 -0
  460. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/org_service/details.py +0 -0
  461. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/org_service/orglocationmapping.py +0 -0
  462. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/pki/__init__.py +0 -0
  463. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/pki/certificate.py +0 -0
  464. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/pool.py +0 -0
  465. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/portal/__init__.py +0 -0
  466. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/portal/entitlement.py +0 -0
  467. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/portal/pool.py +0 -0
  468. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/portal/site.py +0 -0
  469. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/scm/__init__.py +0 -0
  470. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/scm/base.py +0 -0
  471. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/scm/operator.py +0 -0
  472. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/scm/plan.py +0 -0
  473. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/site.py +0 -0
  474. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/synt/__init__.py +0 -0
  475. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/synt/outpost.py +0 -0
  476. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/synt/probe.py +0 -0
  477. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/synt/report.py +0 -0
  478. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/task.py +0 -0
  479. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/tsctl/__init__.py +0 -0
  480. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/tsctl/base.py +0 -0
  481. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/tsctl/task.py +0 -0
  482. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/uag.py +0 -0
  483. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/vm.py +0 -0
  484. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/vmhub/__init__.py +0 -0
  485. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/vmhub/credentials.py +0 -0
  486. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/vmhub/mqtt.py +0 -0
  487. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/vmm/__init__.py +0 -0
  488. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/service/vmm/hoc_event.py +0 -0
  489. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/support/__init__.py +0 -0
  490. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/support/constant.py +0 -0
  491. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/support/debug_util.py +0 -0
  492. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/support/exec_util.py +0 -0
  493. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/support/inspect_util.py +0 -0
  494. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/support/param_util.py +0 -0
  495. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/support/patch_util.py +0 -0
  496. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/support/plan_util.py +0 -0
  497. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/support/predefined_payload.py +0 -0
  498. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/support/profile.py +0 -0
  499. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/support/scm/html_util.py +0 -0
  500. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/support/scm/plan-editor.html.template +0 -0
  501. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/support/scm/plan_editor.py +0 -0
  502. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/support/template_util.py +0 -0
  503. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/support/test_utils.py +0 -0
  504. {hcs_cli-0.1.319 → hcs_cli-0.1.320}/hcs_cli/support/test_utils2.py +0 -0
  505. {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.319
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.319
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
@@ -0,0 +1,3 @@
1
+ __version__ = "0.1.320"
2
+
3
+ from . import service as service # noqa: F401
@@ -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.update(template_id, org_id, patch)
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
- multiple=True,
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
- multiple=True,
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=click.Choice(
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
- multiple=True,
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
- multiple=False,
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: list,
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
- agent = _to_lower(agent)
108
- power = _to_lower(power)
109
- lifecycle = _to_lower(lifecycle)
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 agent:
91
+ if filttered_agent_states:
113
92
  s = vm.get("agentStatus")
114
- if not s or s.lower() not in agent:
93
+ if not s or s.upper() not in filttered_agent_states:
115
94
  return False
116
- if power:
95
+ if filtered_power_states:
117
96
  s = vm.get("powerState")
118
- if not s or s.lower() not in power:
97
+ if not s or s.upper() not in filtered_power_states:
119
98
  return False
120
- if lifecycle:
99
+ if filtered_lifecycle_states:
121
100
  s = vm.get("lifecycleStatus")
122
- if not s or s.lower() not in lifecycle:
101
+ if not s or s.upper() not in filtered_lifecycle_states:
123
102
  return False
124
- if session:
103
+ if filtered_session_states:
125
104
  s = vm.get("sessionPlacementStatus")
126
- if not s or s.lower() != session.lower():
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.update(template_id, target_org_id, patch)
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": "Canonical",
47
- "offer": "UbuntuServer",
48
- "sku": "18.04-LTS",
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, create, delete, get, items, list, update, wait_for, wait_for_deleted, wait_for_ready
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