hcs-cli 0.1.320__tar.gz → 0.1.322__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 (506) hide show
  1. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/PKG-INFO +2 -2
  2. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/__init__.py +1 -1
  3. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/api.py +10 -28
  4. hcs_cli-0.1.320/hcs_cli/cmds/clouddriver/summary.py → hcs_cli-0.1.322/hcs_cli/cmds/clouddriver/service.py +11 -4
  5. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/dev/fs/provided_files/mqtt-secret.yaml +3 -3
  6. hcs_cli-0.1.322/hcs_cli/cmds/hoc/stats.py +72 -0
  7. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/scm/template.py +7 -3
  8. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/task.py +48 -1
  9. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/lcm/azure-dummy.json +2 -1
  10. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/lcm/zero.json +3 -2
  11. hcs_cli-0.1.322/hcs_cli/service/api.py +104 -0
  12. hcs_cli-0.1.322/hcs_cli/service/clouddriver/__init__.py +2 -0
  13. hcs_cli-0.1.322/hcs_cli/service/clouddriver/service.py +29 -0
  14. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/task.py +6 -0
  15. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/support/scm/plan-editor.html.template +570 -48
  16. hcs_cli-0.1.322/hcs_cli/support/scm/plan_editor.py +153 -0
  17. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/pyproject.toml +1 -1
  18. hcs_cli-0.1.320/hcs_cli/cmds/hoc/stats.py +0 -46
  19. hcs_cli-0.1.320/hcs_cli/support/__init__.py +0 -0
  20. hcs_cli-0.1.320/hcs_cli/support/scm/plan_editor.py +0 -82
  21. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/.gitignore +0 -0
  22. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/README.md +0 -0
  23. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/__main__.py +0 -0
  24. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/__init__.py +0 -0
  25. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/ad/__init__.py +0 -0
  26. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/ad/create.py +0 -0
  27. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/ad/delete.py +0 -0
  28. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/ad/get.py +0 -0
  29. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/ad/list.py +0 -0
  30. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/admin/__init__.py +0 -0
  31. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/admin/azure_infra/__init__.py +0 -0
  32. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/admin/azure_infra/main.py +0 -0
  33. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/advisor/__init__.py +0 -0
  34. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/advisor/advisor_utils.py +0 -0
  35. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/advisor/config/__init__.py +0 -0
  36. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/advisor/config/advisor_config.py +0 -0
  37. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/advisor/html_utils.py +0 -0
  38. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/advisor/org.py +0 -0
  39. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/advisor/pdf_utils.py +0 -0
  40. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/advisor/pool.py +0 -0
  41. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/advisor/recommendation_engine.py +0 -0
  42. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/app/__init__.py +0 -0
  43. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/app/create.py +0 -0
  44. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/app/delete.py +0 -0
  45. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/app/get.py +0 -0
  46. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/app/list.py +0 -0
  47. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/app/update.py +0 -0
  48. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/app/use.py +0 -0
  49. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/auth/__init__.py +0 -0
  50. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/auth/admin/__init__.py +0 -0
  51. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/auth/admin/get_org_idp_map.py +0 -0
  52. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/auth/admin/network/__init__.py +0 -0
  53. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/auth/admin/network/add.py +0 -0
  54. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/auth/user/__init__.py +0 -0
  55. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/auth/user/list.py +0 -0
  56. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/clouddriver/__init__.py +0 -0
  57. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/clouddriver/provider.py +0 -0
  58. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/clouddriver/task.py +0 -0
  59. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/credential/__init__.py +0 -0
  60. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/credential/get.py +0 -0
  61. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/cs/__init__.py +0 -0
  62. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/cs/base.py +0 -0
  63. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/daas/__init__.py +0 -0
  64. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/daas/infra/__init__.py +0 -0
  65. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/daas/infra/basic.py +0 -0
  66. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/daas/infra/plan.py +0 -0
  67. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/daas/order/__init__.py +0 -0
  68. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/daas/order/create.py +0 -0
  69. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/daas/order/delete.py +0 -0
  70. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/daas/order/list.py +0 -0
  71. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/daas/order/update.py +0 -0
  72. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/daas/tenant/__init__.py +0 -0
  73. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/daas/tenant/consumption.py +0 -0
  74. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/daas/tenant/create.py +0 -0
  75. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/daas/tenant/plan.py +0 -0
  76. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/debug/__init__.py +0 -0
  77. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/debug/prepare.py +0 -0
  78. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/debug/reset.py +0 -0
  79. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/debug/start.py +0 -0
  80. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/dev/__init__.py +0 -0
  81. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/dev/emqx.py +0 -0
  82. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/dev/fs/__init__.py +0 -0
  83. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/dev/fs/auth.py +0 -0
  84. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/dev/fs/clear.py +0 -0
  85. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/dev/fs/helper/__init__.py +0 -0
  86. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/dev/fs/helper/credential_helper.py +0 -0
  87. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/dev/fs/helper/jenkins_util.py +0 -0
  88. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/dev/fs/helper/k8s_util.py +0 -0
  89. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/dev/fs/helper/license_info.py +0 -0
  90. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/dev/fs/helper/required_fields.py +0 -0
  91. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/dev/fs/helper/step_util.py +0 -0
  92. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/dev/fs/helper/util.py +0 -0
  93. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/dev/fs/init.py +0 -0
  94. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/dev/fs/profiler.py +0 -0
  95. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/dev/fs/provided_files/__init__.py +0 -0
  96. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/dev/fs/provided_files/akka.plan.yml +0 -0
  97. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/dev/fs/provided_files/azsim.plan.yml +0 -0
  98. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/dev/fs/provided_files/azure.plan.yml +0 -0
  99. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/dev/fs/provided_files/mqtt-server-external.yaml +0 -0
  100. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/dev/fs/provided_files/patch-mqtt-hostname.yml +0 -0
  101. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/dev/fs/provided_files/patch-vernemq-ssl-depth.json +0 -0
  102. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/dev/fs/tailor.py +0 -0
  103. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/dev/mqtt.py +0 -0
  104. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/dev/onboard.py +0 -0
  105. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/dev/test.py +0 -0
  106. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/dev/util/__init__.py +0 -0
  107. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/dev/util/github_helper.py +0 -0
  108. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/dev/util/log.py +0 -0
  109. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/dev/util/mqtt_helper.py +0 -0
  110. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/diagnostics/__init__.py +0 -0
  111. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/diagnostics/diagnose.py +0 -0
  112. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/edge/__init__.py +0 -0
  113. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/edge/connection_string.py +0 -0
  114. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/edge/create.py +0 -0
  115. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/edge/delete.py +0 -0
  116. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/edge/get.py +0 -0
  117. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/edge/list.py +0 -0
  118. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/edge/use.py +0 -0
  119. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/edge/wait.py +0 -0
  120. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/entitlement/__init__.py +0 -0
  121. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/entitlement/delete.py +0 -0
  122. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/entitlement/get.py +0 -0
  123. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/entitlement/list.py +0 -0
  124. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/hoc/__init__.py +0 -0
  125. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/hoc/connect.py +0 -0
  126. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/hoc/oncall.py +0 -0
  127. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/hoc/org.py +0 -0
  128. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/hoc/search.py +0 -0
  129. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/hoc/template.py +0 -0
  130. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/hoc/util/__init__.py +0 -0
  131. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/hoc/util/inv_cache.py +0 -0
  132. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/hoc/vm.py +0 -0
  133. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/hst/__init__.py +0 -0
  134. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/hst/clean.py +0 -0
  135. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/hst/cloud/__init__.py +0 -0
  136. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/hst/cloud/health.py +0 -0
  137. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/hst/cloud/perf.py +0 -0
  138. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/hst/cloud/scale.py +0 -0
  139. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/hst/installer.py +0 -0
  140. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/hst/key.py +0 -0
  141. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/hst/outpost.py +0 -0
  142. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/hst/probe.py +0 -0
  143. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/hst/report.py +0 -0
  144. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/hst/test.py +0 -0
  145. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/ims/__init__.py +0 -0
  146. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/ims/delete.py +0 -0
  147. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/ims/get.py +0 -0
  148. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/ims/gold_pattern/__init__.py +0 -0
  149. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/ims/gold_pattern/create.py +0 -0
  150. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/ims/gold_pattern/delete.py +0 -0
  151. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/ims/gold_pattern/get.py +0 -0
  152. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/ims/gold_pattern/list.py +0 -0
  153. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/ims/list.py +0 -0
  154. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/ims/list_copies.py +0 -0
  155. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/ims/version/__init__.py +0 -0
  156. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/ims/version/delete.py +0 -0
  157. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/ims/version/get.py +0 -0
  158. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/ims/version/list.py +0 -0
  159. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/inspect.py +0 -0
  160. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/inventory/__init__.py +0 -0
  161. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/inventory/assign.py +0 -0
  162. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/inventory/count.py +0 -0
  163. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/inventory/deassign.py +0 -0
  164. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/inventory/delete.py +0 -0
  165. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/inventory/get.py +0 -0
  166. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/inventory/list.py +0 -0
  167. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/inventory/logoff.py +0 -0
  168. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/inventory/session.py +0 -0
  169. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/inventory/update.py +0 -0
  170. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/iss/__init__.py +0 -0
  171. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/iss/mqtt.py +0 -0
  172. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/lcm/__init__.py +0 -0
  173. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/lcm/health.py +0 -0
  174. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/lcm/provider/__init__.py +0 -0
  175. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/lcm/provider/create.py +0 -0
  176. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/lcm/provider/delete.py +0 -0
  177. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/lcm/provider/get.py +0 -0
  178. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/lcm/provider/list.py +0 -0
  179. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/lcm/register.py +0 -0
  180. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/lcm/template/__init__.py +0 -0
  181. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/lcm/template/cancel.py +0 -0
  182. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/lcm/template/create.py +0 -0
  183. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/lcm/template/delete.py +0 -0
  184. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/lcm/template/expand.py +0 -0
  185. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/lcm/template/get.py +0 -0
  186. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/lcm/template/health.py +0 -0
  187. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/lcm/template/list.py +0 -0
  188. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/lcm/template/provision.py +0 -0
  189. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/lcm/template/retry.py +0 -0
  190. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/lcm/template/update.py +0 -0
  191. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/lcm/template/use.py +0 -0
  192. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/lcm/template/wait.py +0 -0
  193. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/lcm/test.py +0 -0
  194. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/lcm/vm/__init__.py +0 -0
  195. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/lcm/vm/delete.py +0 -0
  196. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/lcm/vm/get.py +0 -0
  197. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/lcm/vm/pair.py +0 -0
  198. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/lcm/vm/pairing_info.py +0 -0
  199. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/lcm/vm/power.py +0 -0
  200. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/lcm/vm/put.py +0 -0
  201. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/lcm/vm/wait.py +0 -0
  202. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/login.py +0 -0
  203. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/logout.py +0 -0
  204. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/org/__init__.py +0 -0
  205. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/org/datacenter/__init__.py +0 -0
  206. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/org/datacenter/get.py +0 -0
  207. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/org/datacenter/list.py +0 -0
  208. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/org/details/__init__.py +0 -0
  209. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/org/ff.py +0 -0
  210. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/org/get.py +0 -0
  211. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/org/list.py +0 -0
  212. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/org/location.py +0 -0
  213. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/org/use.py +0 -0
  214. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/pki/__init__.py +0 -0
  215. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/pki/ca.py +0 -0
  216. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/pki/cert/__init__.py +0 -0
  217. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/pki/cert/delete.py +0 -0
  218. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/pki/cert/get.py +0 -0
  219. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/pki/sign.py +0 -0
  220. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/pki/test.py +0 -0
  221. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/plan/__init__.py +0 -0
  222. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/plan/apply.py +0 -0
  223. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/plan/clear.py +0 -0
  224. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/plan/destroy.py +0 -0
  225. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/plan/graph.py +0 -0
  226. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/plan/input.py +0 -0
  227. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/plan/output.py +0 -0
  228. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/plan/resolve.py +0 -0
  229. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/plan/use.py +0 -0
  230. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/pool/__init__.py +0 -0
  231. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/pool/delete.py +0 -0
  232. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/pool/get.py +0 -0
  233. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/pool/list.py +0 -0
  234. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/pool/update.py +0 -0
  235. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/pool/use.py +0 -0
  236. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/profile/__init__.py +0 -0
  237. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/profile/init.py +0 -0
  238. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/provider/__init__.py +0 -0
  239. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/provider/create.py +0 -0
  240. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/provider/delete.py +0 -0
  241. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/provider/get.py +0 -0
  242. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/provider/golden_images.py +0 -0
  243. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/provider/list.py +0 -0
  244. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/provider/use.py +0 -0
  245. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/provider/vsphere_dcs.py +0 -0
  246. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/query.py +0 -0
  247. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/scm/__init__.py +0 -0
  248. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/scm/health.py +0 -0
  249. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/scm/operator.py +0 -0
  250. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/scm/plan.py +0 -0
  251. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/site/__init__.py +0 -0
  252. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/site/create.py +0 -0
  253. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/site/delete.py +0 -0
  254. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/site/get.py +0 -0
  255. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/site/list.py +0 -0
  256. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/site/set-edge.py +0 -0
  257. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/site/use.py +0 -0
  258. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/synt/__init__.py +0 -0
  259. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/synt/outpost/__init__.py +0 -0
  260. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/synt/outpost/create.py +0 -0
  261. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/synt/outpost/delete.py +0 -0
  262. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/synt/outpost/get.py +0 -0
  263. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/synt/outpost/list.py +0 -0
  264. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/synt/outpost/update.py +0 -0
  265. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/synt/probe/__init__.py +0 -0
  266. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/synt/probe/create.py +0 -0
  267. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/synt/probe/delete.py +0 -0
  268. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/synt/probe/get.py +0 -0
  269. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/synt/probe/list.py +0 -0
  270. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/synt/probe/run.py +0 -0
  271. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/synt/probe/update.py +0 -0
  272. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/synt/report/__init__.py +0 -0
  273. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/synt/report/delete.py +0 -0
  274. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/synt/report/get.py +0 -0
  275. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/synt/report/list.py +0 -0
  276. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/template/__init__.py +0 -0
  277. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/template/create.py +0 -0
  278. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/template/delete.py +0 -0
  279. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/template/expand.py +0 -0
  280. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/template/fix.py +0 -0
  281. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/template/get.py +0 -0
  282. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/template/list.py +0 -0
  283. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/template/list_usage.py +0 -0
  284. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/template/update.py +0 -0
  285. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/template/usage.py +0 -0
  286. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/template/use.py +0 -0
  287. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/template/wait.py +0 -0
  288. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/test.py +0 -0
  289. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/uag/__init__.py +0 -0
  290. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/uag/delete.py +0 -0
  291. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/uag/get.py +0 -0
  292. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/uag/list.py +0 -0
  293. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/upgrade.py +0 -0
  294. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/vm/__init__.py +0 -0
  295. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/vm/actions.py +0 -0
  296. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/vm/delete.py +0 -0
  297. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/vm/get.py +0 -0
  298. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/vm/list.py +0 -0
  299. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/vm/pairing_info.py +0 -0
  300. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/vm/put.py +0 -0
  301. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/vm/use.py +0 -0
  302. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/vm/wait.py +0 -0
  303. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/vmhub/__init__.py +0 -0
  304. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/vmhub/info.py +0 -0
  305. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/vmhub/otp/__init__.py +0 -0
  306. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/vmhub/otp/redeem.py +0 -0
  307. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/vmhub/otp/request.py +0 -0
  308. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/vmm/__init__.py +0 -0
  309. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/vmm/restart_vms.py +0 -0
  310. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/vmm/rootca_edge_migration_stats.py +0 -0
  311. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/vmm/rootca_edge_rotate_certs.py +0 -0
  312. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/vmm/rootca_migrate.py +0 -0
  313. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/vmm/rootca_migrate_edge.py +0 -0
  314. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/vmm/rootca_template_migration_stats.py +0 -0
  315. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/workflows/__init__.py +0 -0
  316. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/cmds/workflows/mqtt-endpoints.py +0 -0
  317. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/config/__init__.py +0 -0
  318. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/config/hcs-deployments.yaml +0 -0
  319. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/main.py +0 -0
  320. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/__init__.py +0 -0
  321. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/akka.blueprint.yml +0 -0
  322. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/app/__init__.py +0 -0
  323. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/app/manual.json +0 -0
  324. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/edge/__init__.py +0 -0
  325. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/edge/akka.json +0 -0
  326. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/edge/vsphere.json +0 -0
  327. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/hoc/lcm-capcalc.json.template +0 -0
  328. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/hoc/no-spare.json.template +0 -0
  329. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/inventory/__init__.py +0 -0
  330. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/inventory/assign.json +0 -0
  331. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/inventory/deassign.json +0 -0
  332. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/iss/__init__.py +0 -0
  333. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/lcm/__init__.py +0 -0
  334. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/lcm/akka.json +0 -0
  335. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/lcm/azure-real.json +0 -0
  336. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/lcm/edge-proxy.json +0 -0
  337. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/lcm/zero-dedicated.json +0 -0
  338. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/lcm/zero-delay-1m-per-vm.json +0 -0
  339. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/lcm/zero-fail-delete-template.json +0 -0
  340. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/lcm/zero-fail-destroy-onthread.json +0 -0
  341. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/lcm/zero-fail-destroy.json +0 -0
  342. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/lcm/zero-fail-prepare-onthread.json +0 -0
  343. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/lcm/zero-fail-prepare.json +0 -0
  344. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/lcm/zero-fail-vm-onthread.json +0 -0
  345. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/lcm/zero-fail-vm.json +0 -0
  346. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/lcm/zero-floating.json +0 -0
  347. /hcs_cli-0.1.320/hcs_cli/payload/lcm/zero-new-snapshot.json → /hcs_cli-0.1.322/hcs_cli/payload/lcm/zero-legacy.json +0 -0
  348. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/lcm/zero-manual.json +0 -0
  349. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/lcm/zero-multisession.json +0 -0
  350. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/lcm/zero-nanw.json +0 -0
  351. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/lcm/zero-new-5k-delay.json +0 -0
  352. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/lcm/zero-new-5k.json +0 -0
  353. /hcs_cli-0.1.320/hcs_cli/payload/lcm/zero-new.json → /hcs_cli-0.1.322/hcs_cli/payload/lcm/zero-new-snapshot.json +0 -0
  354. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/lcm/zero-reuse-vm-id.json +0 -0
  355. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/lcm/zero-with-max-id-offset.json +0 -0
  356. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/provider/__init__.py +0 -0
  357. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/provider/ad-stes-vsphere.json +0 -0
  358. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/provider/akka.json +0 -0
  359. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/provider/azure.json +0 -0
  360. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/provider/edgeproxy.json +0 -0
  361. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/provider/vsphere.json +0 -0
  362. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/scm/starter.json +0 -0
  363. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/synt/__init__.py +0 -0
  364. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/synt/core/__init__.py +0 -0
  365. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/synt/core/p01-dummy-success.json +0 -0
  366. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/synt/core/p02-dummy-fail.json +0 -0
  367. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/synt/core/p03-dummy-exception.json +0 -0
  368. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/synt/core/p04-dummy-success-repeat.json +0 -0
  369. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/synt/core/p05-dummy-fail-repeat.json +0 -0
  370. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/synt/core/p06-dummy-exception-repeat.json +0 -0
  371. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/synt/core/p07-dummy-delay.json +0 -0
  372. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/synt/core/p08-dummy-property.json +0 -0
  373. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/synt/ext/__init__.py +0 -0
  374. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/synt/ext/p20-connect-success.json +0 -0
  375. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/synt/ext/p21-connect-fail.json +0 -0
  376. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/synt/ext/p30-ssl-success.json +0 -0
  377. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/synt/ext/p31-ssl-fail.json +0 -0
  378. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/synt/ext/p40-http-success.json +0 -0
  379. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/synt/ext/p41-http-fail.json +0 -0
  380. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/synt/ext/p42-http-status-code.json +0 -0
  381. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/synt/ext1/__init__.py +0 -0
  382. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/synt/ext1/p10-ping-success.json +0 -0
  383. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/synt/ext1/p11-ping-fail.json +0 -0
  384. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/synt/ext1/p12-ping-success-repeat.json +0 -0
  385. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/payload/template/__init__.py +0 -0
  386. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/provider/__init__.py +0 -0
  387. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/provider/hcs/__init__.py +0 -0
  388. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/provider/hcs/_prepare.py +0 -0
  389. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/provider/hcs/ad.py +0 -0
  390. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/provider/hcs/av_entitlement.py +0 -0
  391. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/provider/hcs/av_fs.py +0 -0
  392. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/provider/hcs/cert.py +0 -0
  393. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/provider/hcs/edge.py +0 -0
  394. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/provider/hcs/entitlement.py +0 -0
  395. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/provider/hcs/gold_pattern.py +0 -0
  396. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/provider/hcs/identity_provider.py +0 -0
  397. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/provider/hcs/image.py +0 -0
  398. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/provider/hcs/import_av_app.py +0 -0
  399. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/provider/hcs/manual_app.py +0 -0
  400. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/provider/hcs/pool_group.py +0 -0
  401. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/provider/hcs/pool_template.py +0 -0
  402. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/provider/hcs/provider.py +0 -0
  403. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/provider/hcs/runtime/__init__.py +0 -0
  404. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/provider/hcs/runtime/password.py +0 -0
  405. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/provider/hcs/runtime/wait_for.py +0 -0
  406. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/provider/hcs/site.py +0 -0
  407. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/provider/hcs/uag.py +0 -0
  408. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/__init__.py +0 -0
  409. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/admin/__init__.py +0 -0
  410. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/admin/ad.py +0 -0
  411. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/admin/azure_infra.py +0 -0
  412. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/admin/edge.py +0 -0
  413. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/admin/helper.py +0 -0
  414. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/admin/provider.py +0 -0
  415. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/admin/template.py +0 -0
  416. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/admin/uag.py +0 -0
  417. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/admin/vm.py +0 -0
  418. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/app_management/__init__.py +0 -0
  419. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/app_management/manual_app.py +0 -0
  420. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/auth/__init__.py +0 -0
  421. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/auth/admin.py +0 -0
  422. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/av/__init__.py +0 -0
  423. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/av/app.py +0 -0
  424. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/av/avimport.py +0 -0
  425. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/av/entitlements.py +0 -0
  426. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/av/fileshare.py +0 -0
  427. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/clouddriver/provider.py +0 -0
  428. {hcs_cli-0.1.320/hcs_cli/service/clouddriver → hcs_cli-0.1.322/hcs_cli/service/credential}/__init__.py +0 -0
  429. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/credential/credential.py +0 -0
  430. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/credential/nls.py +0 -0
  431. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/cs/__init__.py +0 -0
  432. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/cs/base.py +0 -0
  433. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/csp.py +0 -0
  434. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/diagnostics/__init__.py +0 -0
  435. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/diagnostics/edge.py +0 -0
  436. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/edge.py +0 -0
  437. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/edgehub/__init__.py +0 -0
  438. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/edgehub/edgecontroller.py +0 -0
  439. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/edgehub/edgetwin.py +0 -0
  440. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/graphql.py +0 -0
  441. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/hoc/__init__.py +0 -0
  442. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/hoc/diagnostic.py +0 -0
  443. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/hoc/es.py +0 -0
  444. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/ims/__init__.py +0 -0
  445. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/ims/gold_pattern.py +0 -0
  446. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/ims/helper.py +0 -0
  447. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/ims/image_copies.py +0 -0
  448. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/ims/images.py +0 -0
  449. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/ims/version.py +0 -0
  450. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/inventory/__init__.py +0 -0
  451. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/inventory/session.py +0 -0
  452. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/inventory/vm.py +0 -0
  453. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/iss/__init__.py +0 -0
  454. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/iss/mqtt.py +0 -0
  455. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/lcm/__init__.py +0 -0
  456. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/lcm/health.py +0 -0
  457. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/lcm/provider.py +0 -0
  458. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/lcm/template.py +0 -0
  459. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/lcm/vm.py +0 -0
  460. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/org_service/__init__.py +0 -0
  461. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/org_service/datacenter.py +0 -0
  462. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/org_service/details.py +0 -0
  463. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/org_service/orglocationmapping.py +0 -0
  464. {hcs_cli-0.1.320/hcs_cli/service/credential → hcs_cli-0.1.322/hcs_cli/service/pki}/__init__.py +0 -0
  465. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/pki/certificate.py +0 -0
  466. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/pool.py +0 -0
  467. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/portal/__init__.py +0 -0
  468. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/portal/entitlement.py +0 -0
  469. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/portal/pool.py +0 -0
  470. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/portal/site.py +0 -0
  471. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/scm/__init__.py +0 -0
  472. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/scm/base.py +0 -0
  473. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/scm/operator.py +0 -0
  474. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/scm/plan.py +0 -0
  475. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/site.py +0 -0
  476. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/synt/__init__.py +0 -0
  477. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/synt/outpost.py +0 -0
  478. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/synt/probe.py +0 -0
  479. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/synt/report.py +0 -0
  480. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/template.py +0 -0
  481. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/tsctl/__init__.py +0 -0
  482. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/tsctl/base.py +0 -0
  483. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/tsctl/task.py +0 -0
  484. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/uag.py +0 -0
  485. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/vm.py +0 -0
  486. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/vmhub/__init__.py +0 -0
  487. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/vmhub/credentials.py +0 -0
  488. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/vmhub/mqtt.py +0 -0
  489. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/vmm/__init__.py +0 -0
  490. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/service/vmm/hoc_event.py +0 -0
  491. {hcs_cli-0.1.320/hcs_cli/service/pki → hcs_cli-0.1.322/hcs_cli/support}/__init__.py +0 -0
  492. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/support/constant.py +0 -0
  493. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/support/debug_util.py +0 -0
  494. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/support/exec_util.py +0 -0
  495. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/support/inspect_util.py +0 -0
  496. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/support/param_util.py +0 -0
  497. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/support/patch_util.py +0 -0
  498. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/support/plan_util.py +0 -0
  499. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/support/predefined_payload.py +0 -0
  500. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/support/profile.py +0 -0
  501. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/support/scm/html_util.py +0 -0
  502. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/support/template_util.py +0 -0
  503. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/support/test_utils.py +0 -0
  504. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/support/test_utils2.py +0 -0
  505. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/hcs_cli/support/use_util.py +0 -0
  506. {hcs_cli-0.1.320 → hcs_cli-0.1.322}/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.320
3
+ Version: 0.1.322
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.320
17
+ Requires-Dist: hcs-core>=0.1.322
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
@@ -1,3 +1,3 @@
1
- __version__ = "0.1.320"
1
+ __version__ = "0.1.322"
2
2
 
3
3
  from . import service as service # noqa: F401
@@ -3,8 +3,7 @@ import sys
3
3
 
4
4
  import click
5
5
  from hcs_core.ctxp import CtxpException, profile
6
- from hcs_core.sglib.client_util import hdc_service_client, is_regional_service, regional_service_client
7
- from hcs_core.util.query_util import PageRequest
6
+ from hcs_cli.service import api as hcs_api
8
7
 
9
8
 
10
9
  def _has_stdin_data():
@@ -143,12 +142,10 @@ def api(
143
142
  if not path.startswith("/"):
144
143
  raise click.UsageError("Path must start with a '/'. Please provide a valid context path. Provided path=" + path)
145
144
 
146
- service_path = path.split("/")[1]
147
- api_path = path[len(service_path) + 1 :]
148
- if is_regional_service(service_path):
149
- client = regional_service_client(service_path, region=region)
145
+ if region or hdc:
146
+ handler = hcs_api.with_context(hdc=hdc, region=region)
150
147
  else:
151
- client = hdc_service_client(service_path, hdc=hdc)
148
+ handler = hcs_api
152
149
 
153
150
  if header:
154
151
  headers = {h.split(":")[0].strip(): h.split(":")[1].strip() for h in header}
@@ -158,28 +155,13 @@ def api(
158
155
  # print( f"{method} {api_path} text={raw_data} json={json_data}" )
159
156
 
160
157
  if method == "GET":
161
- if all_pages:
162
-
163
- def _get_page(query_string):
164
- url = api_path
165
- if url.find("?") > 0:
166
- url += "&" + query_string
167
- else:
168
- url += "?" + query_string
169
- ret = client.get(url)
170
- return ret
171
-
172
- response = PageRequest(_get_page, size=100, limit=0).get()
173
- else:
174
- response = client.get(api_path, headers=headers, raise_on_404=raise_on_404)
158
+ return handler.get(path, headers=headers, all_pages=all_pages, raise_on_404=raise_on_404)
175
159
  elif method == "POST":
176
- response = client.post(api_path, text=raw_data, json=json_data, headers=headers)
160
+ return handler.post(path, headers=headers, text=raw_data, json=json_data)
177
161
  elif method == "PUT":
178
- response = client.put(api_path, text=raw_data, json=json_data, headers=headers)
162
+ return handler.put(path, headers=headers, text=raw_data, json=json_data)
179
163
  elif method == "DELETE":
180
- response = client.delete(api_path, headers=headers, raise_on_404=raise_on_404)
164
+ return handler.delete(path, headers=headers, raise_on_404=raise_on_404)
181
165
  elif method == "PATCH":
182
- response = client.patch(api_path, text=raw_data, json=json_data, headers=headers)
183
- else:
184
- raise click.UsageError(f"Unsupported HTTP method: {method}")
185
- return response
166
+ return handler.patch(path, headers=headers, text=raw_data, json=json_data)
167
+ raise click.UsageError(f"Unsupported HTTP method: {method}")
@@ -15,10 +15,17 @@ limitations under the License.
15
15
 
16
16
  import click
17
17
 
18
- from hcs_cli.service.clouddriver import provider
18
+ from hcs_cli.service import clouddriver as cd
19
19
 
20
20
 
21
21
  @click.command()
22
- def summary(**kwargs):
23
- """Get summary"""
24
- return provider.summary()
22
+ @click.argument("name", type=str, required=True)
23
+ def action(name: str, **kwargs):
24
+ """Get perform an action"""
25
+ return cd.action(name, kwargs)
26
+
27
+
28
+ @click.command()
29
+ def health(**kwargs):
30
+ """Get health"""
31
+ return cd.health()
@@ -75,7 +75,7 @@ stringData:
75
75
  JcSvTMU2HOuQ/q6vFZq3PRbvroMeXlw2WJrqO3vu04SZwYiP8dcrlHTXQJh+Mp9T
76
76
  mQ==
77
77
  -----END CERTIFICATE-----
78
- mqtt.ca-key: |-
78
+ mqtt.ca-key: |-
79
79
  -----BEGIN PRIVATE KEY-----
80
80
  MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDUNJx2Cf0noNHc
81
81
  DXB9AFPSFMkkpwxb0wtqaCLiB7v5zkF7CVBl5LnecVk7CM8bJY62H90Lv8Zv/2sl
@@ -104,7 +104,7 @@ stringData:
104
104
  boPQ+RK1VKj5UFkUKz5LiohLmCBEQ7sh1HBS2Vje8MFtg0P138sRlbMCvdAEARTZ
105
105
  uQfAKLns7QFf9W1C60AVAQ==
106
106
  -----END PRIVATE KEY-----
107
- mqtt.client-cert: |-
107
+ mqtt.client-cert: |-
108
108
  -----BEGIN CERTIFICATE-----
109
109
  MIIFKDCCAxCgAwIBAgIFALjj4O4wDQYJKoZIhvcNAQELBQAwdTELMAkGA1UEBhMC
110
110
  VVMxCzAJBgNVBAgMAkNBMR8wHQYDVQQKDBZIb3Jpem9uIENsb3VkIFNlcnZpY2Vz
@@ -204,7 +204,7 @@ stringData:
204
204
  JcSvTMU2HOuQ/q6vFZq3PRbvroMeXlw2WJrqO3vu04SZwYiP8dcrlHTXQJh+Mp9T
205
205
  mQ==
206
206
  -----END CERTIFICATE-----
207
- mqtt.client-key: |-
207
+ mqtt.client-key: |-
208
208
  -----BEGIN PRIVATE KEY-----
209
209
  MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC40aC4pyy0+++D
210
210
  kD1cPRsMWO4ANZ8L4LaaHcg/e/1NbiExd/QlZESNJnnIyD29qY1h9WGEVDHtInsl
@@ -0,0 +1,72 @@
1
+ import click
2
+ import datetime
3
+ import json
4
+ import time
5
+
6
+ from hcs_cli.service.hoc import diagnostic
7
+ from hcs_cli.service import tsctl
8
+
9
+
10
+ @click.command(name="stats-aggregate-connects")
11
+ @click.argument("from_", type=int)
12
+ @click.argument("to", type=int)
13
+ @click.option("--wait", type=bool, required=False, is_flag=True, default=False)
14
+ @click.option("--verbose", type=bool, required=False, is_flag=True, default=False)
15
+ def aggregate_connects(from_: int, to: int, wait: bool, verbose: bool):
16
+ """
17
+ Aggregate connect events between FROM_ and TO unix timestamps.
18
+ """
19
+ payload = {"from": from_, "to": to}
20
+ result = diagnostic.aggregateConnects(payload, verbose=verbose)
21
+ click.echo(result)
22
+
23
+ if not result:
24
+ return "", 1
25
+
26
+ if wait:
27
+ wait_for_task(result)
28
+
29
+
30
+ @click.command(name="stats-aggregate-connects-day-before")
31
+ @click.option("--wait", type=bool, required=False, is_flag=True, default=False)
32
+ @click.option("--verbose", type=bool, required=False, is_flag=True, default=False)
33
+ def aggregate_connects_day_before(wait: bool, verbose: bool):
34
+ dt = datetime.datetime.utcnow().replace(hour=0, minute=0, second=0, microsecond=0)
35
+ dt_2_days_ago = dt - datetime.timedelta(days=2)
36
+ dt_1_day_ago = dt - datetime.timedelta(days=1)
37
+
38
+ print(f"Aggregating connect events from {dt_2_days_ago} to {dt_1_day_ago}")
39
+ from_ = int(dt_2_days_ago.timestamp())
40
+ to = int(dt_1_day_ago.timestamp())
41
+ payload = {"from": from_, "to": to}
42
+ result = diagnostic.aggregateConnects(payload, verbose=verbose)
43
+ click.echo(result)
44
+ if not result:
45
+ return "", 1
46
+ if wait:
47
+ wait_for_task(result)
48
+
49
+
50
+ def wait_for_task(result: dict):
51
+ print("Waiting for task to complete...")
52
+ totalWaitTime = 0
53
+ while True:
54
+ time.sleep(10)
55
+ taskStatus = tsctl.task.lastlog(result.namespace, result.group, result.taskKey)
56
+ if "state" in taskStatus and taskStatus.state == "Error":
57
+ print(f"Task is in {taskStatus.state} state - {taskStatus.error} ")
58
+ print(json.dumps(taskStatus, indent=2))
59
+ break
60
+ if "state" in taskStatus and taskStatus.state == "Success":
61
+ print("Task completed successfully.")
62
+ print(json.dumps(taskStatus, indent=2))
63
+ break
64
+ if ("state" in taskStatus and taskStatus.state == "") or "state" not in taskStatus:
65
+ print("Task is still in progress...")
66
+ totalWaitTime += 10
67
+ if totalWaitTime >= 600:
68
+ print("Waited for 10 minutes, exiting.")
69
+ break
70
+ continue
71
+ print(json.dumps(taskStatus, indent=2))
72
+ break
@@ -37,11 +37,15 @@ def template(id: str, org: str, **kwargs):
37
37
  if not plan:
38
38
  return None, 1
39
39
 
40
- template = hcs.template.get(org_id=org_id, id=id)
40
+ template_data = hcs.template.get(org_id=org_id, id=id)
41
41
 
42
- plan["meta"]["maxCapacity"] = template["sparePolicy"]["limit"]
42
+ plan["meta"]["maxCapacity"] = template_data["sparePolicy"]["limit"]
43
43
  calendar = plan["calendar"]
44
44
  for key in calendar:
45
45
  calendar[key]["calculatedCapacity"] = calendar[key]["idealCapacity"]
46
46
  calendar[key]["idealCapacity"] = calendar[key]["forecastCapacity"]
47
- edit_plan(plan, template["name"])
47
+
48
+ # fetch usage data for the usage chart
49
+ usage = hcs.scm.template_usage(org_id, id)
50
+
51
+ edit_plan(plan, template_data["name"], usage)
@@ -17,6 +17,7 @@ import click
17
17
  import hcs_core.sglib.cli_options as cli
18
18
  import yumako
19
19
  from hcs_core.ctxp import CtxpException, recent, util
20
+ from datetime import datetime
20
21
 
21
22
  from hcs_cli.service import task
22
23
 
@@ -222,6 +223,7 @@ def use(namespace: str, group: str, smart_path: str, reset: bool, **kwargs):
222
223
  required=False,
223
224
  help="Filter tasks by state, for one-time tasks only. Comma separated values. E.g. Init,Running,Canceled,Error,Success",
224
225
  )
226
+ @click.option("--v1", is_flag=True, default=False, required=False, help="Use v1 task API.")
225
227
  @click.option("--v1log", is_flag=True, default=False, required=False, help="Fetch last log for v1 tasks.")
226
228
  @cli.limit
227
229
  @cli.search
@@ -476,7 +478,7 @@ def retrigger(org: str, namespace: str, group: str, smart_path: str, execution_i
476
478
  return task.retrigger(org_id, namespace, group, key, execution_id)
477
479
 
478
480
 
479
- @task_cmd_group.command()
481
+ @task_cmd_group.command(hidden=True)
480
482
  @cli.org_id
481
483
  @click.option("--namespace", "-n", type=str, required=False)
482
484
  @click.option("--group", "-g", type=str, required=False)
@@ -496,6 +498,51 @@ def resubmit(org: str, namespace: str, group: str, smart_path: str, confirm: boo
496
498
  return task.resubmit(org_id, namespace, group, key)
497
499
 
498
500
 
501
+ @task_cmd_group.command()
502
+ @cli.org_id
503
+ @click.option("--namespace", "-n", type=str, required=False)
504
+ @click.option("--group", "-g", type=str, required=False)
505
+ @click.option(
506
+ "--reference", "-r", type=str, required=True, help="Reference task to copy parameters from, format: [[<namespace>/]<group>/]<key>."
507
+ )
508
+ @click.option(
509
+ "--at", type=str, required=False, help="Schedule time, exact time 'YYYY-MM-DD HH:MM:SS', or delta time '1h30m', default is now."
510
+ )
511
+ @click.argument("smart_path", type=str, required=True)
512
+ def duplicate(org: str, namespace: str, group: str, smart_path: str, at: str, **kwargs):
513
+ """Duplicate an existing task to run once, immediately or at a specific time."""
514
+ namespace, group, key = _parse_task_param(namespace, group, smart_path)
515
+ org_id = cli.get_org_id(org)
516
+ ret = task.get(org_id, namespace, group, key, **kwargs)
517
+ if not ret:
518
+ return f"Task {namespace}/{group}/{key} not found.", 1
519
+
520
+ # Clone the task
521
+ new_task = ret.model_copy()
522
+ new_task.key = None # Clear the key to let the system generate a new one
523
+ new_task.log = None # Clear the log for the new task
524
+ new_task.meta["_duplicatedFrom"] = key # Track the source task
525
+
526
+ # Handle schedule based on 'at' parameter
527
+ if at and at.lower() != "now":
528
+ now_ms = int(datetime.now().timestamp() * 1000)
529
+ try:
530
+ # Try to parse as exact time (YYYY-MM-DD HH:MM:SS)
531
+ scheduled_dt = datetime.strptime(at, "%Y-%m-%d %H:%M:%S")
532
+ scheduled_ms = int(scheduled_dt.timestamp() * 1000)
533
+ except ValueError:
534
+ # Parse as delta time (e.g., 1h30m)
535
+ delta_seconds = yumako.time.duration(at)
536
+ scheduled_ms = now_ms + int(delta_seconds * 1000)
537
+
538
+ if scheduled_ms > now_ms:
539
+ new_task.schedule = task.Schedule(initialDelayMs=scheduled_ms)
540
+ else:
541
+ new_task.schedule = None # run immediately
542
+
543
+ return task.create(org_id, namespace, new_task)
544
+
545
+
499
546
  def _parse_task_param(namespace: str, group: str, smart_path: str):
500
547
  if smart_path:
501
548
  parts = smart_path.split("/")
@@ -62,6 +62,7 @@
62
62
  "properties": {
63
63
  "azureCreateResourceGroup": true,
64
64
  "new-task-engine": true,
65
- "simulateAgentStatus": "AVAILABLE"
65
+ "simulateAgentStatus": "AVAILABLE",
66
+ "countinuousErrorThreshold": 3
66
67
  }
67
68
  }
@@ -56,8 +56,9 @@
56
56
  }
57
57
  },
58
58
  "properties": {
59
- "new-task-engine": false,
59
+ "new-task-engine": true,
60
60
  "sg-lcm-enforced-provision": true,
61
- "autonomous": true
61
+ "autonomous": true,
62
+ "countinuousErrorThreshold": 2
62
63
  }
63
64
  }
@@ -0,0 +1,104 @@
1
+ from typing import Optional
2
+ from hcs_core.sglib.client_util import hdc_service_client, is_regional_service, regional_service_client
3
+ from hcs_core.util.query_util import PageRequest
4
+
5
+
6
+ def _parse_path(path: str, hdc: str = None, region: str = None):
7
+ service_path = path.split("/")[1]
8
+ api_path = path[len(service_path) + 1 :]
9
+ if is_regional_service(service_path):
10
+ client = regional_service_client(service_path, region=region)
11
+ else:
12
+ client = hdc_service_client(service_path, hdc=hdc)
13
+ return api_path, client
14
+
15
+
16
+ def _get(
17
+ path: str, headers: Optional[dict] = None, all_pages: bool = False, raise_on_404: bool = False, hdc: str = None, region: str = None
18
+ ):
19
+ api_path, client = _parse_path(path, hdc=hdc, region=region)
20
+ if all_pages:
21
+
22
+ def _get_page(query_string):
23
+ url = api_path
24
+ if url.find("?") > 0:
25
+ url += "&" + query_string
26
+ else:
27
+ url += "?" + query_string
28
+ ret = client.get(url)
29
+ return ret
30
+
31
+ return PageRequest(_get_page, size=100, limit=0).get()
32
+ else:
33
+ return client.get(api_path, headers=headers, raise_on_404=raise_on_404)
34
+
35
+
36
+ def _post(
37
+ path: str, headers: Optional[dict] = None, text: Optional[str] = None, json: Optional[dict] = None, hdc: str = None, region: str = None
38
+ ):
39
+ api_path, client = _parse_path(path, hdc=hdc, region=region)
40
+ return client.post(api_path, text=text, json=json, headers=headers)
41
+
42
+
43
+ def _put(
44
+ path: str, headers: Optional[dict] = None, text: Optional[str] = None, json: Optional[dict] = None, hdc: str = None, region: str = None
45
+ ):
46
+ api_path, client = _parse_path(path, hdc=hdc, region=region)
47
+ return client.put(api_path, text=text, json=json, headers=headers)
48
+
49
+
50
+ def _delete(path: str, headers: Optional[dict] = None, raise_on_404: bool = False, hdc: str = None, region: str = None):
51
+ api_path, client = _parse_path(path, hdc=hdc, region=region)
52
+ return client.delete(api_path, headers=headers, raise_on_404=raise_on_404)
53
+
54
+
55
+ def _patch(
56
+ path: str, headers: Optional[dict] = None, text: Optional[str] = None, json: Optional[dict] = None, hdc: str = None, region: str = None
57
+ ):
58
+ api_path, client = _parse_path(path, hdc=hdc, region=region)
59
+ return client.patch(api_path, text=text, json=json, headers=headers)
60
+
61
+
62
+ class APIContext:
63
+ """Context-aware API wrapper that maintains hdc and region for all requests."""
64
+
65
+ def __init__(self, hdc: str = None, region: str = None):
66
+ self.hdc = hdc
67
+ self.region = region
68
+
69
+ def get(self, path: str, headers: Optional[dict] = None, all_pages: bool = False, raise_on_404: bool = False):
70
+ return _get(path, headers=headers, all_pages=all_pages, raise_on_404=raise_on_404, hdc=self.hdc, region=self.region)
71
+
72
+ def post(self, path: str, headers: Optional[dict] = None, text: Optional[str] = None, json: Optional[dict] = None):
73
+ return _post(path, headers=headers, text=text, json=json, hdc=self.hdc, region=self.region)
74
+
75
+ def put(self, path: str, headers: Optional[dict] = None, text: Optional[str] = None, json: Optional[dict] = None):
76
+ return _put(path, headers=headers, text=text, json=json, hdc=self.hdc, region=self.region)
77
+
78
+ def delete(self, path: str, headers: Optional[dict] = None, raise_on_404: bool = False):
79
+ return _delete(path, headers=headers, raise_on_404=raise_on_404, hdc=self.hdc, region=self.region)
80
+
81
+ def patch(self, path: str, headers: Optional[dict] = None, text: Optional[str] = None, json: Optional[dict] = None):
82
+ return _patch(path, headers=headers, text=text, json=json, hdc=self.hdc, region=self.region)
83
+
84
+
85
+ def with_context(hdc: str = None, region: str = None):
86
+ """Create a context-aware API wrapper with the specified hdc and region.
87
+
88
+ Args:
89
+ hdc: HDC name for global services
90
+ region: Region name for regional services
91
+
92
+ Returns:
93
+ APIContext: An object with get(), post(), put(), delete(), patch() methods
94
+ """
95
+ return APIContext(hdc=hdc, region=region)
96
+
97
+
98
+ _no_context_api = APIContext()
99
+
100
+ get = _no_context_api.get
101
+ post = _no_context_api.post
102
+ put = _no_context_api.put
103
+ delete = _no_context_api.delete
104
+ patch = _no_context_api.patch
@@ -0,0 +1,2 @@
1
+ from .service import action as action
2
+ from .service import health as health
@@ -0,0 +1,29 @@
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 logging
17
+
18
+ from hcs_core.sglib.client_util import hdc_service_client
19
+
20
+ log = logging.getLogger(__name__)
21
+ _client = hdc_service_client("clouddriver")
22
+
23
+
24
+ def action(name: str, params: dict):
25
+ return _client.post(f"/v1/action/{name}", params)
26
+
27
+
28
+ def health():
29
+ return _client.get("/v1/health")
@@ -205,6 +205,12 @@ def resubmit(org_id: str, namespace: str, group: str, key: str, **kwargs):
205
205
  return _tsctl_client.post(url, body)
206
206
 
207
207
 
208
+ def create(org_id: str, namespace: str, task: TaskModel, **kwargs):
209
+ url = f"/v1/namespaces/{namespace}/tasks?org_id={org_id}"
210
+ body = TaskModel.model_dump_json(task)
211
+ return _tsctl_client.post(url, body)
212
+
213
+
208
214
  def logs(org_id: str, namespace: str, group: str, key: str, search: str, **kwargs):
209
215
  search_parts = []
210
216
  if org_id: