hcs-cli 0.1.337__tar.gz → 0.1.339__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.337 → hcs_cli-0.1.339}/PKG-INFO +2 -2
  2. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/__init__.py +1 -1
  3. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/api.py +14 -4
  4. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/debug/start.py +31 -3
  5. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/dev/fs/clear.py +4 -4
  6. hcs_cli-0.1.339/hcs_cli/cmds/dev/fs/helper/config.py +291 -0
  7. hcs_cli-0.1.337/hcs_cli/cmds/dev/fs/init.py → hcs_cli-0.1.339/hcs_cli/cmds/dev/fs/helper/init_steps.py +437 -511
  8. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/dev/fs/helper/k8s_util.py +14 -0
  9. hcs_cli-0.1.339/hcs_cli/cmds/dev/fs/helper/mqtt_certs.py +282 -0
  10. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/dev/fs/helper/step_util.py +9 -0
  11. hcs_cli-0.1.339/hcs_cli/cmds/dev/fs/init.py +134 -0
  12. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/dev/fs/provided_files/akka.plan.yml +68 -36
  13. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/dev/onboard.py +52 -11
  14. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/hoc/log.py +4 -4
  15. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/api.py +1 -1
  16. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/support/debug_util.py +14 -0
  17. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/pyproject.toml +1 -1
  18. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/.gitignore +0 -0
  19. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/README.md +0 -0
  20. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/__main__.py +0 -0
  21. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/__init__.py +0 -0
  22. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/ad/__init__.py +0 -0
  23. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/ad/create.py +0 -0
  24. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/ad/delete.py +0 -0
  25. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/ad/get.py +0 -0
  26. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/ad/list.py +0 -0
  27. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/admin/__init__.py +0 -0
  28. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/admin/azure_infra/__init__.py +0 -0
  29. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/admin/azure_infra/main.py +0 -0
  30. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/advisor/__init__.py +0 -0
  31. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/advisor/advisor_utils.py +0 -0
  32. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/advisor/config/__init__.py +0 -0
  33. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/advisor/config/advisor_config.py +0 -0
  34. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/advisor/html_utils.py +0 -0
  35. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/advisor/org.py +0 -0
  36. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/advisor/pdf_utils.py +0 -0
  37. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/advisor/pool.py +0 -0
  38. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/advisor/recommendation_engine.py +0 -0
  39. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/app/__init__.py +0 -0
  40. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/app/create.py +0 -0
  41. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/app/delete.py +0 -0
  42. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/app/get.py +0 -0
  43. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/app/list.py +0 -0
  44. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/app/update.py +0 -0
  45. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/app/use.py +0 -0
  46. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/auth/__init__.py +0 -0
  47. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/auth/admin/__init__.py +0 -0
  48. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/auth/admin/get_org_idp_map.py +0 -0
  49. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/auth/admin/network/__init__.py +0 -0
  50. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/auth/admin/network/add.py +0 -0
  51. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/auth/user/__init__.py +0 -0
  52. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/auth/user/list.py +0 -0
  53. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/clouddriver/__init__.py +0 -0
  54. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/clouddriver/provider.py +0 -0
  55. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/clouddriver/service.py +0 -0
  56. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/clouddriver/task.py +0 -0
  57. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/credential/__init__.py +0 -0
  58. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/credential/get.py +0 -0
  59. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/cs/__init__.py +0 -0
  60. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/cs/base.py +0 -0
  61. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/daas/__init__.py +0 -0
  62. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/daas/infra/__init__.py +0 -0
  63. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/daas/infra/basic.py +0 -0
  64. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/daas/infra/plan.py +0 -0
  65. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/daas/order/__init__.py +0 -0
  66. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/daas/order/create.py +0 -0
  67. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/daas/order/delete.py +0 -0
  68. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/daas/order/list.py +0 -0
  69. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/daas/order/update.py +0 -0
  70. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/daas/tenant/__init__.py +0 -0
  71. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/daas/tenant/consumption.py +0 -0
  72. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/daas/tenant/create.py +0 -0
  73. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/daas/tenant/plan.py +0 -0
  74. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/debug/__init__.py +0 -0
  75. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/debug/prepare.py +0 -0
  76. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/debug/reset.py +0 -0
  77. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/dev/__init__.py +0 -0
  78. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/dev/emqx.py +0 -0
  79. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/dev/fs/__init__.py +0 -0
  80. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/dev/fs/auth.py +0 -0
  81. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/dev/fs/helper/__init__.py +0 -0
  82. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/dev/fs/helper/credential_helper.py +0 -0
  83. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/dev/fs/helper/jenkins_util.py +0 -0
  84. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/dev/fs/helper/license_info.py +0 -0
  85. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/dev/fs/helper/required_fields.py +0 -0
  86. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/dev/fs/helper/subscription_util.py +0 -0
  87. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/dev/fs/helper/util.py +0 -0
  88. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/dev/fs/profiler.py +0 -0
  89. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/dev/fs/provided_files/__init__.py +0 -0
  90. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/dev/fs/provided_files/azsim.plan.yml +0 -0
  91. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/dev/fs/provided_files/azure.plan.yml +0 -0
  92. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/dev/fs/provided_files/mqtt-secret.yaml +0 -0
  93. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/dev/fs/provided_files/mqtt-server-external.yaml +0 -0
  94. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/dev/fs/provided_files/patch-mqtt-hostname.yml +0 -0
  95. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/dev/fs/provided_files/patch-vernemq-ssl-depth.json +0 -0
  96. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/dev/fs/tailor.py +0 -0
  97. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/dev/mqtt.py +0 -0
  98. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/dev/test.py +0 -0
  99. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/dev/util/__init__.py +0 -0
  100. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/dev/util/github_helper.py +0 -0
  101. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/dev/util/log.py +0 -0
  102. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/dev/util/mqtt_helper.py +0 -0
  103. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/diagnostics/__init__.py +0 -0
  104. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/diagnostics/diagnose.py +0 -0
  105. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/edge/__init__.py +0 -0
  106. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/edge/connection_string.py +0 -0
  107. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/edge/create.py +0 -0
  108. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/edge/delete.py +0 -0
  109. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/edge/get.py +0 -0
  110. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/edge/list.py +0 -0
  111. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/edge/use.py +0 -0
  112. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/edge/wait.py +0 -0
  113. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/entitlement/__init__.py +0 -0
  114. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/entitlement/delete.py +0 -0
  115. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/entitlement/get.py +0 -0
  116. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/entitlement/list.py +0 -0
  117. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/hoc/__init__.py +0 -0
  118. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/hoc/search.py +0 -0
  119. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/hoc/stats.py +0 -0
  120. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/hoc/util/__init__.py +0 -0
  121. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/hoc/util/inv_cache.py +0 -0
  122. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/hst/__init__.py +0 -0
  123. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/hst/clean.py +0 -0
  124. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/hst/cloud/__init__.py +0 -0
  125. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/hst/cloud/health.py +0 -0
  126. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/hst/cloud/perf.py +0 -0
  127. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/hst/cloud/scale.py +0 -0
  128. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/hst/installer.py +0 -0
  129. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/hst/key.py +0 -0
  130. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/hst/outpost.py +0 -0
  131. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/hst/probe.py +0 -0
  132. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/hst/report.py +0 -0
  133. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/hst/test.py +0 -0
  134. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/ims/__init__.py +0 -0
  135. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/ims/delete.py +0 -0
  136. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/ims/get.py +0 -0
  137. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/ims/gold_pattern/__init__.py +0 -0
  138. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/ims/gold_pattern/create.py +0 -0
  139. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/ims/gold_pattern/delete.py +0 -0
  140. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/ims/gold_pattern/get.py +0 -0
  141. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/ims/gold_pattern/list.py +0 -0
  142. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/ims/list.py +0 -0
  143. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/ims/list_copies.py +0 -0
  144. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/ims/version/__init__.py +0 -0
  145. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/ims/version/delete.py +0 -0
  146. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/ims/version/get.py +0 -0
  147. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/ims/version/list.py +0 -0
  148. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/inspect.py +0 -0
  149. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/inventory/__init__.py +0 -0
  150. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/inventory/assign.py +0 -0
  151. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/inventory/count.py +0 -0
  152. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/inventory/deassign.py +0 -0
  153. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/inventory/delete.py +0 -0
  154. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/inventory/get.py +0 -0
  155. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/inventory/list.py +0 -0
  156. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/inventory/logoff.py +0 -0
  157. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/inventory/session.py +0 -0
  158. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/inventory/update.py +0 -0
  159. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/iss/__init__.py +0 -0
  160. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/iss/mqtt.py +0 -0
  161. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/lcm/__init__.py +0 -0
  162. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/lcm/health.py +0 -0
  163. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/lcm/provider/__init__.py +0 -0
  164. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/lcm/provider/create.py +0 -0
  165. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/lcm/provider/delete.py +0 -0
  166. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/lcm/provider/get.py +0 -0
  167. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/lcm/provider/list.py +0 -0
  168. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/lcm/register.py +0 -0
  169. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/lcm/template/__init__.py +0 -0
  170. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/lcm/template/cancel.py +0 -0
  171. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/lcm/template/create.py +0 -0
  172. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/lcm/template/delete.py +0 -0
  173. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/lcm/template/expand.py +0 -0
  174. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/lcm/template/get.py +0 -0
  175. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/lcm/template/health.py +0 -0
  176. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/lcm/template/list.py +0 -0
  177. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/lcm/template/provision.py +0 -0
  178. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/lcm/template/retry.py +0 -0
  179. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/lcm/template/update.py +0 -0
  180. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/lcm/template/use.py +0 -0
  181. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/lcm/template/wait.py +0 -0
  182. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/lcm/test.py +0 -0
  183. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/lcm/vm/__init__.py +0 -0
  184. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/lcm/vm/delete.py +0 -0
  185. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/lcm/vm/get.py +0 -0
  186. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/lcm/vm/pair.py +0 -0
  187. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/lcm/vm/pairing_info.py +0 -0
  188. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/lcm/vm/power.py +0 -0
  189. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/lcm/vm/put.py +0 -0
  190. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/lcm/vm/wait.py +0 -0
  191. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/login.py +0 -0
  192. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/logout.py +0 -0
  193. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/org/__init__.py +0 -0
  194. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/org/datacenter/__init__.py +0 -0
  195. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/org/datacenter/get.py +0 -0
  196. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/org/datacenter/list.py +0 -0
  197. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/org/details/__init__.py +0 -0
  198. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/org/ff.py +0 -0
  199. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/org/get.py +0 -0
  200. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/org/list.py +0 -0
  201. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/org/location.py +0 -0
  202. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/org/use.py +0 -0
  203. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/pki/__init__.py +0 -0
  204. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/pki/ca.py +0 -0
  205. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/pki/cert/__init__.py +0 -0
  206. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/pki/cert/delete.py +0 -0
  207. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/pki/cert/get.py +0 -0
  208. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/pki/sign.py +0 -0
  209. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/pki/test.py +0 -0
  210. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/plan/__init__.py +0 -0
  211. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/plan/apply.py +0 -0
  212. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/plan/clear.py +0 -0
  213. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/plan/destroy.py +0 -0
  214. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/plan/graph.py +0 -0
  215. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/plan/input.py +0 -0
  216. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/plan/output.py +0 -0
  217. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/plan/resolve.py +0 -0
  218. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/plan/use.py +0 -0
  219. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/pool/__init__.py +0 -0
  220. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/pool/delete.py +0 -0
  221. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/pool/get.py +0 -0
  222. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/pool/list.py +0 -0
  223. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/pool/update.py +0 -0
  224. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/pool/use.py +0 -0
  225. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/profile/__init__.py +0 -0
  226. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/profile/init.py +0 -0
  227. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/provider/__init__.py +0 -0
  228. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/provider/create.py +0 -0
  229. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/provider/delete.py +0 -0
  230. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/provider/get.py +0 -0
  231. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/provider/golden_images.py +0 -0
  232. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/provider/list.py +0 -0
  233. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/provider/use.py +0 -0
  234. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/provider/vsphere_dcs.py +0 -0
  235. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/query.py +0 -0
  236. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/scm/__init__.py +0 -0
  237. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/scm/health.py +0 -0
  238. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/scm/operator.py +0 -0
  239. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/scm/plan.py +0 -0
  240. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/scm/recommend.py +0 -0
  241. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/scm/template.py +0 -0
  242. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/site/__init__.py +0 -0
  243. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/site/create.py +0 -0
  244. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/site/delete.py +0 -0
  245. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/site/get.py +0 -0
  246. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/site/list.py +0 -0
  247. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/site/set-edge.py +0 -0
  248. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/site/use.py +0 -0
  249. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/synt/__init__.py +0 -0
  250. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/synt/outpost/__init__.py +0 -0
  251. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/synt/outpost/create.py +0 -0
  252. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/synt/outpost/delete.py +0 -0
  253. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/synt/outpost/get.py +0 -0
  254. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/synt/outpost/list.py +0 -0
  255. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/synt/outpost/update.py +0 -0
  256. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/synt/probe/__init__.py +0 -0
  257. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/synt/probe/create.py +0 -0
  258. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/synt/probe/delete.py +0 -0
  259. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/synt/probe/get.py +0 -0
  260. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/synt/probe/list.py +0 -0
  261. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/synt/probe/run.py +0 -0
  262. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/synt/probe/update.py +0 -0
  263. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/synt/report/__init__.py +0 -0
  264. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/synt/report/delete.py +0 -0
  265. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/synt/report/get.py +0 -0
  266. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/synt/report/list.py +0 -0
  267. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/task.py +0 -0
  268. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/template/__init__.py +0 -0
  269. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/template/create.py +0 -0
  270. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/template/delete.py +0 -0
  271. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/template/expand.py +0 -0
  272. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/template/fix.py +0 -0
  273. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/template/get.py +0 -0
  274. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/template/list.py +0 -0
  275. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/template/list_usage.py +0 -0
  276. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/template/update.py +0 -0
  277. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/template/usage.py +0 -0
  278. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/template/use.py +0 -0
  279. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/template/wait.py +0 -0
  280. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/test.py +0 -0
  281. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/uag/__init__.py +0 -0
  282. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/uag/delete.py +0 -0
  283. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/uag/get.py +0 -0
  284. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/uag/list.py +0 -0
  285. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/upgrade.py +0 -0
  286. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/vm/__init__.py +0 -0
  287. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/vm/actions.py +0 -0
  288. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/vm/delete.py +0 -0
  289. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/vm/get.py +0 -0
  290. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/vm/list.py +0 -0
  291. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/vm/log.py +0 -0
  292. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/vm/pairing_info.py +0 -0
  293. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/vm/put.py +0 -0
  294. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/vm/use.py +0 -0
  295. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/vm/wait.py +0 -0
  296. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/vmhub/__init__.py +0 -0
  297. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/vmhub/info.py +0 -0
  298. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/vmhub/otp/__init__.py +0 -0
  299. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/vmhub/otp/redeem.py +0 -0
  300. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/vmhub/otp/request.py +0 -0
  301. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/vmm/__init__.py +0 -0
  302. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/vmm/restart_vms.py +0 -0
  303. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/vmm/rootca_edge_migration_stats.py +0 -0
  304. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/vmm/rootca_edge_rotate_certs.py +0 -0
  305. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/vmm/rootca_migrate.py +0 -0
  306. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/vmm/rootca_migrate_edge.py +0 -0
  307. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/vmm/rootca_template_migration_stats.py +0 -0
  308. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/workflows/__init__.py +0 -0
  309. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/cmds/workflows/mqtt-endpoints.py +0 -0
  310. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/config/__init__.py +0 -0
  311. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/config/hcs-deployments.yaml +0 -0
  312. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/main.py +0 -0
  313. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/__init__.py +0 -0
  314. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/akka.blueprint.yml +0 -0
  315. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/app/__init__.py +0 -0
  316. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/app/manual.json +0 -0
  317. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/edge/__init__.py +0 -0
  318. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/edge/akka.json +0 -0
  319. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/edge/vsphere.json +0 -0
  320. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/hoc/lcm-capcalc.json.template +0 -0
  321. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/hoc/no-spare.json.template +0 -0
  322. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/inventory/__init__.py +0 -0
  323. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/inventory/assign.json +0 -0
  324. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/inventory/deassign.json +0 -0
  325. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/iss/__init__.py +0 -0
  326. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/lcm/__init__.py +0 -0
  327. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/lcm/akka.json +0 -0
  328. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/lcm/azure-dummy.json +0 -0
  329. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/lcm/azure-real.json +0 -0
  330. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/lcm/edge-proxy.json +0 -0
  331. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/lcm/zero-dedicated.json +0 -0
  332. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/lcm/zero-delay-1m-per-vm.json +0 -0
  333. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/lcm/zero-fail-delete-template.json +0 -0
  334. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/lcm/zero-fail-destroy-onthread.json +0 -0
  335. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/lcm/zero-fail-destroy.json +0 -0
  336. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/lcm/zero-fail-prepare-onthread.json +0 -0
  337. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/lcm/zero-fail-prepare.json +0 -0
  338. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/lcm/zero-fail-vm-onthread.json +0 -0
  339. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/lcm/zero-fail-vm.json +0 -0
  340. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/lcm/zero-floating.json +0 -0
  341. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/lcm/zero-legacy.json +0 -0
  342. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/lcm/zero-manual.json +0 -0
  343. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/lcm/zero-multisession.json +0 -0
  344. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/lcm/zero-nanw.json +0 -0
  345. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/lcm/zero-new-5k-delay.json +0 -0
  346. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/lcm/zero-new-5k.json +0 -0
  347. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/lcm/zero-new-snapshot.json +0 -0
  348. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/lcm/zero-reuse-vm-id.json +0 -0
  349. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/lcm/zero-with-max-id-offset.json +0 -0
  350. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/lcm/zero.json +0 -0
  351. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/provider/__init__.py +0 -0
  352. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/provider/ad-stes-vsphere.json +0 -0
  353. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/provider/akka.json +0 -0
  354. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/provider/azure.json +0 -0
  355. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/provider/edgeproxy.json +0 -0
  356. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/provider/vsphere.json +0 -0
  357. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/scm/starter.json +0 -0
  358. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/synt/__init__.py +0 -0
  359. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/synt/core/__init__.py +0 -0
  360. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/synt/core/p01-dummy-success.json +0 -0
  361. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/synt/core/p02-dummy-fail.json +0 -0
  362. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/synt/core/p03-dummy-exception.json +0 -0
  363. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/synt/core/p04-dummy-success-repeat.json +0 -0
  364. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/synt/core/p05-dummy-fail-repeat.json +0 -0
  365. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/synt/core/p06-dummy-exception-repeat.json +0 -0
  366. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/synt/core/p07-dummy-delay.json +0 -0
  367. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/synt/core/p08-dummy-property.json +0 -0
  368. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/synt/ext/__init__.py +0 -0
  369. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/synt/ext/p20-connect-success.json +0 -0
  370. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/synt/ext/p21-connect-fail.json +0 -0
  371. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/synt/ext/p30-ssl-success.json +0 -0
  372. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/synt/ext/p31-ssl-fail.json +0 -0
  373. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/synt/ext/p40-http-success.json +0 -0
  374. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/synt/ext/p41-http-fail.json +0 -0
  375. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/synt/ext/p42-http-status-code.json +0 -0
  376. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/synt/ext1/__init__.py +0 -0
  377. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/synt/ext1/p10-ping-success.json +0 -0
  378. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/synt/ext1/p11-ping-fail.json +0 -0
  379. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/synt/ext1/p12-ping-success-repeat.json +0 -0
  380. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/payload/template/__init__.py +0 -0
  381. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/provider/__init__.py +0 -0
  382. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/provider/hcs/__init__.py +0 -0
  383. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/provider/hcs/_prepare.py +0 -0
  384. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/provider/hcs/ad.py +0 -0
  385. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/provider/hcs/av_entitlement.py +0 -0
  386. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/provider/hcs/av_fs.py +0 -0
  387. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/provider/hcs/cert.py +0 -0
  388. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/provider/hcs/edge.py +0 -0
  389. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/provider/hcs/entitlement.py +0 -0
  390. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/provider/hcs/gold_pattern.py +0 -0
  391. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/provider/hcs/identity_provider.py +0 -0
  392. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/provider/hcs/image.py +0 -0
  393. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/provider/hcs/import_av_app.py +0 -0
  394. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/provider/hcs/manual_app.py +0 -0
  395. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/provider/hcs/pool_group.py +0 -0
  396. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/provider/hcs/pool_template.py +0 -0
  397. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/provider/hcs/provider.py +0 -0
  398. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/provider/hcs/runtime/__init__.py +0 -0
  399. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/provider/hcs/runtime/password.py +0 -0
  400. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/provider/hcs/runtime/wait_for.py +0 -0
  401. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/provider/hcs/site.py +0 -0
  402. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/provider/hcs/uag.py +0 -0
  403. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/__init__.py +0 -0
  404. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/admin/__init__.py +0 -0
  405. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/admin/ad.py +0 -0
  406. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/admin/azure_infra.py +0 -0
  407. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/admin/edge.py +0 -0
  408. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/admin/helper.py +0 -0
  409. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/admin/provider.py +0 -0
  410. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/admin/template.py +0 -0
  411. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/admin/uag.py +0 -0
  412. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/admin/vm.py +0 -0
  413. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/app_management/__init__.py +0 -0
  414. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/app_management/manual_app.py +0 -0
  415. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/auth/__init__.py +0 -0
  416. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/auth/admin.py +0 -0
  417. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/av/__init__.py +0 -0
  418. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/av/app.py +0 -0
  419. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/av/avimport.py +0 -0
  420. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/av/entitlements.py +0 -0
  421. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/av/fileshare.py +0 -0
  422. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/clouddriver/__init__.py +0 -0
  423. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/clouddriver/provider.py +0 -0
  424. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/clouddriver/service.py +0 -0
  425. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/credential/__init__.py +0 -0
  426. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/credential/credential.py +0 -0
  427. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/credential/nls.py +0 -0
  428. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/cs/__init__.py +0 -0
  429. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/cs/base.py +0 -0
  430. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/csp.py +0 -0
  431. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/diagnostics/__init__.py +0 -0
  432. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/diagnostics/edge.py +0 -0
  433. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/edge.py +0 -0
  434. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/edgehub/__init__.py +0 -0
  435. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/edgehub/edgecontroller.py +0 -0
  436. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/edgehub/edgetwin.py +0 -0
  437. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/graphql.py +0 -0
  438. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/hoc/__init__.py +0 -0
  439. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/hoc/diagnostic.py +0 -0
  440. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/hoc/es.py +0 -0
  441. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/ims/__init__.py +0 -0
  442. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/ims/gold_pattern.py +0 -0
  443. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/ims/helper.py +0 -0
  444. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/ims/image_copies.py +0 -0
  445. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/ims/images.py +0 -0
  446. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/ims/version.py +0 -0
  447. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/inventory/__init__.py +0 -0
  448. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/inventory/session.py +0 -0
  449. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/inventory/vm.py +0 -0
  450. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/iss/__init__.py +0 -0
  451. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/iss/mqtt.py +0 -0
  452. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/lcm/__init__.py +0 -0
  453. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/lcm/health.py +0 -0
  454. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/lcm/provider.py +0 -0
  455. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/lcm/template.py +0 -0
  456. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/lcm/vm.py +0 -0
  457. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/org_service/__init__.py +0 -0
  458. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/org_service/datacenter.py +0 -0
  459. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/org_service/details.py +0 -0
  460. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/org_service/orglocationmapping.py +0 -0
  461. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/pki/__init__.py +0 -0
  462. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/pki/certificate.py +0 -0
  463. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/pool.py +0 -0
  464. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/portal/__init__.py +0 -0
  465. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/portal/entitlement.py +0 -0
  466. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/portal/pool.py +0 -0
  467. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/portal/site.py +0 -0
  468. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/scm/__init__.py +0 -0
  469. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/scm/base.py +0 -0
  470. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/scm/operator.py +0 -0
  471. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/scm/plan.py +0 -0
  472. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/site.py +0 -0
  473. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/synt/__init__.py +0 -0
  474. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/synt/outpost.py +0 -0
  475. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/synt/probe.py +0 -0
  476. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/synt/report.py +0 -0
  477. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/task.py +0 -0
  478. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/template.py +0 -0
  479. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/tsctl/__init__.py +0 -0
  480. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/tsctl/base.py +0 -0
  481. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/tsctl/task.py +0 -0
  482. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/uag.py +0 -0
  483. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/vm.py +0 -0
  484. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/vmhub/__init__.py +0 -0
  485. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/vmhub/credentials.py +0 -0
  486. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/vmhub/mqtt.py +0 -0
  487. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/vmm/__init__.py +0 -0
  488. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/vmm/dct.py +0 -0
  489. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/service/vmm/hoc_event.py +0 -0
  490. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/support/__init__.py +0 -0
  491. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/support/constant.py +0 -0
  492. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/support/exec_util.py +0 -0
  493. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/support/inspect_util.py +0 -0
  494. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/support/param_util.py +0 -0
  495. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/support/patch_util.py +0 -0
  496. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/support/plan_util.py +0 -0
  497. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/support/predefined_payload.py +0 -0
  498. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/support/profile.py +0 -0
  499. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/support/scm/html_util.py +0 -0
  500. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/support/scm/plan-editor.html.template +0 -0
  501. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/support/scm/plan_editor.py +0 -0
  502. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/support/template_util.py +0 -0
  503. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/support/test_utils.py +0 -0
  504. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/support/test_utils2.py +0 -0
  505. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/hcs_cli/support/use_util.py +0 -0
  506. {hcs_cli-0.1.337 → hcs_cli-0.1.339}/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.337
3
+ Version: 0.1.339
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.337
17
+ Requires-Dist: hcs-core>=0.1.339
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.337"
1
+ __version__ = "0.1.339"
2
2
 
3
3
  from . import service as service # noqa: F401
@@ -1,5 +1,6 @@
1
1
  import json
2
2
  import sys
3
+ from typing import Optional
3
4
 
4
5
  import click
5
6
  from hcs_core.ctxp import CtxpException, profile
@@ -70,6 +71,18 @@ def _handle_data_input(data_arg, json_arg):
70
71
  return raw_data, json_data
71
72
 
72
73
 
74
+ def _build_headers(header: list, content_type: Optional[str]) -> Optional[dict]:
75
+ headers: dict[str, str] = {}
76
+ for h in header:
77
+ name, sep, value = h.partition(":")
78
+ if not sep:
79
+ raise click.UsageError(f"Invalid header format (expected 'Header-Name: value'): {h!r}")
80
+ headers[name.strip()] = value.strip()
81
+ if content_type:
82
+ headers["Content-Type"] = content_type
83
+ return headers or None
84
+
85
+
73
86
  @click.command()
74
87
  @click.option("--put", is_flag=True, default=False, help="Perform HTTP PUT.")
75
88
  @click.option("--post", "-p", is_flag=True, default=False, help="Perform HTTP POST.")
@@ -149,10 +162,7 @@ def api(
149
162
  else:
150
163
  handler = hcs_api
151
164
 
152
- if header:
153
- headers = {h.split(":")[0].strip(): h.split(":")[1].strip() for h in header}
154
- else:
155
- headers = None
165
+ headers = _build_headers(header, content_type)
156
166
 
157
167
  # print( f"{method} {api_path} text={raw_data} json={json_data}" )
158
168
 
@@ -96,9 +96,37 @@ def _push_jar_to_pod(service: str, pod_id: str):
96
96
  jar_files = _get_jar_files_with_keyword("target/", service)
97
97
  print("Jar file fetched: ", jar_files)
98
98
  jar_file = jar_files[0]
99
- push_image_command = f"cat target/{jar_file} | kubectl exec -i {pod_id} -c app -- sh -c 'cat > /app.jar'"
100
- print(f"Start pushing {jar_file} to k8s pod {pod_id} ")
101
- subprocess.run(push_image_command, capture_output=True, check=True, text=True, shell=True)
99
+ jar_path = f"target/{jar_file}"
100
+
101
+ # Get file size for progress bar
102
+ file_size = os.path.getsize(jar_path)
103
+ file_size_mb = file_size / (1024 * 1024)
104
+
105
+ print(f"Start pushing {jar_file} ({file_size_mb:.1f} MB) to k8s pod {pod_id}")
106
+
107
+ # Start kubectl exec process
108
+ kubectl_cmd = f"kubectl exec -i {pod_id} -c app -- sh -c 'cat > /app.jar'"
109
+ process = subprocess.Popen(kubectl_cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
110
+
111
+ # Stream file with progress bar
112
+ chunk_size = 1024 * 1024 # 1MB chunks
113
+ with open(jar_path, "rb") as f:
114
+ with click.progressbar(length=file_size, label="Uploading", show_eta=True, show_percent=True) as bar:
115
+ while True:
116
+ chunk = f.read(chunk_size)
117
+ if not chunk:
118
+ break
119
+ process.stdin.write(chunk)
120
+ bar.update(len(chunk))
121
+
122
+ # Close stdin and wait for completion
123
+ process.stdin.close()
124
+ process.wait()
125
+
126
+ if process.returncode != 0:
127
+ stderr = process.stderr.read().decode("utf-8")
128
+ raise Exception(f"Failed to push jar: {stderr}")
129
+
102
130
  print("Push success, starting app.jar")
103
131
 
104
132
 
@@ -7,7 +7,7 @@ import click
7
7
 
8
8
  import hcs_cli.cmds.dev.util.log as log
9
9
  from hcs_cli.cmds.dev.fs.helper.util import validate_fs_kubeconfig, validate_fs_profile
10
- from hcs_cli.cmds.dev.fs.init import _resolve_bundled_file_path
10
+ from hcs_cli.cmds.dev.fs.helper.init_steps import resolve_bundled_file_path
11
11
  from hcs_cli.support.exec_util import run_cli
12
12
  from hcs_core.ctxp import profile
13
13
 
@@ -34,9 +34,9 @@ def clear(only_default: bool, **kwargs):
34
34
  _delete_all()
35
35
 
36
36
  os.environ["ORG_ID"] = profile.current().csp.orgId
37
- akka_plan_path = _resolve_bundled_file_path("provided_files/akka.plan.yml")
38
- azure_plan_path = _resolve_bundled_file_path("provided_files/azure.plan.yml")
39
- azsim_plan_path = _resolve_bundled_file_path("provided_files/azsim.plan.yml")
37
+ akka_plan_path = resolve_bundled_file_path("provided_files/akka.plan.yml")
38
+ azure_plan_path = resolve_bundled_file_path("provided_files/azure.plan.yml")
39
+ azsim_plan_path = resolve_bundled_file_path("provided_files/azsim.plan.yml")
40
40
  run_cli("hcs plan destroy -f " + akka_plan_path, raise_on_error=False)
41
41
  run_cli("hcs plan destroy -f " + azure_plan_path, raise_on_error=False)
42
42
  run_cli("hcs plan destroy -f " + azsim_plan_path, raise_on_error=False)
@@ -0,0 +1,291 @@
1
+ """
2
+ Feature stack .env config: resolve, generate, and load.
3
+
4
+ Handles three sources:
5
+ 1. Local .env in cwd
6
+ 2. Generate from nightly-tests repo (includes ORG_ID)
7
+ 3. User-specified file path
8
+
9
+ Public API:
10
+ - resolve(env_source, env_file, org_source_key, org_source_value) — CLI/programmatic
11
+ - resolve_interactive(org_source_key, org_source_value) — interactive prompt
12
+ - FS_CUSTOMER_ORG_ID — default org for nightly mode
13
+ """
14
+
15
+ import os
16
+ import re
17
+ from collections import OrderedDict, defaultdict
18
+ from pathlib import Path
19
+ from typing import Optional
20
+
21
+ from dotenv import load_dotenv
22
+ from InquirerPy import inquirer
23
+ from InquirerPy.base import Choice
24
+ from prompt_toolkit import prompt
25
+ from prompt_toolkit.completion import PathCompleter
26
+
27
+ import hcs_cli.cmds.dev.util.github_helper as github_helper
28
+ from hcs_cli.cmds.dev.util import log
29
+ from hcs_cli.cmds.dev.util.log import fail
30
+
31
+ FS_CUSTOMER_ORG_ID = "517419ab-9bf6-4dde-95ca-1916c6600a40"
32
+
33
+
34
+ def resolve(env_source: Optional[str], env_file: Optional[str], org_source_key: str, org_source_value: str):
35
+ """Resolve and load .env from CLI params. Falls back to interactive if neither specified."""
36
+ if env_file:
37
+ os.environ.pop(org_source_key, None)
38
+ env_path = _from_user_path(env_file)
39
+ elif env_source == "nightly":
40
+ os.environ[org_source_key] = org_source_value
41
+ customer_org = _resolve_customer_org()
42
+ env_path = _from_nightly_repo(customer_org)
43
+ elif env_source == "local":
44
+ os.environ.pop(org_source_key, None)
45
+ env_path = _from_local()
46
+ else:
47
+ env_path = resolve_interactive(org_source_key, org_source_value)
48
+
49
+ _load_env_file(env_path)
50
+
51
+
52
+ def resolve_interactive(org_source_key: str, org_source_value: str) -> str:
53
+ """Interactive prompt for env source. Returns resolved path (does NOT load)."""
54
+ has_local_env = os.path.isfile(".env")
55
+ choices = []
56
+ if has_local_env:
57
+ choices.append(Choice(value="local", enabled=True, name="Load local .env file"))
58
+
59
+ choices += [
60
+ Choice(value="nightly", enabled=True, name="Auto configure from nightly test"),
61
+ Choice(value="user_specified", enabled=True, name="User provided env file"),
62
+ ]
63
+
64
+ env_choice = inquirer.select(
65
+ message="Choose how to load your .env file:",
66
+ choices=choices,
67
+ instruction="(Use SPACE to toggle, ENTER to confirm)",
68
+ ).execute()
69
+
70
+ if env_choice == "nightly":
71
+ os.environ[org_source_key] = org_source_value
72
+ customer_org = _resolve_customer_org()
73
+ return _from_nightly_repo(customer_org)
74
+ elif env_choice == "user_specified":
75
+ os.environ.pop(org_source_key, None)
76
+ completer = PathCompleter(expanduser=True)
77
+ env_path_input = prompt("Enter the full path to your .env file: ", completer=completer, default="~/")
78
+ return _from_user_path(env_path_input)
79
+ else:
80
+ os.environ.pop(org_source_key, None)
81
+ return _from_local()
82
+
83
+
84
+ # --- helpers ---
85
+
86
+
87
+ def _resolve_customer_org() -> str:
88
+ """Return customer org ID: from env if set, otherwise prompt with default."""
89
+ org = os.getenv("ORG_ID")
90
+ if org:
91
+ log.info(f"Target customer ORG_ID={org}")
92
+ return org
93
+ org = prompt("Enter target ORG_ID: ", default=FS_CUSTOMER_ORG_ID).strip()
94
+ os.environ["ORG_ID"] = org
95
+ log.info(f"Target customer ORG_ID={org}")
96
+ return org
97
+
98
+
99
+ # --- source resolvers ---
100
+
101
+
102
+ def _from_nightly_repo(customer_org: str) -> str:
103
+ output_env_file = ".env"
104
+
105
+ github_helper.check_ssh_access()
106
+ with github_helper.repo("git@github.com:euc-eng/horizonv2-sg.nightly-tests.git") as repo:
107
+ config_data = repo.get("src/test/resources/com/vmware/integration/sg/payloads/onboard/configuration.txt", format="json")
108
+ config_props = repo.get("src/test/resources/config.properties")
109
+
110
+ _write_env_file(config_data, config_props, output_env_file)
111
+ with open(output_env_file, "a") as f:
112
+ f.write(f"\nORG_ID={customer_org}\n")
113
+ _organize_env_file(output_env_file)
114
+
115
+ log.good(f".env file created at: {Path(output_env_file).resolve()}")
116
+ return str(Path(output_env_file).resolve())
117
+
118
+
119
+ def _from_local() -> str:
120
+ return os.path.abspath(".env")
121
+
122
+
123
+ def _from_user_path(path: str) -> str:
124
+ return str(Path(path).expanduser().resolve())
125
+
126
+
127
+ # --- loader ---
128
+
129
+
130
+ def _load_env_file(env_path: str):
131
+ env_path = os.path.expanduser(str(env_path))
132
+ if not _is_valid_env_file(env_path):
133
+ fail(f"Could not find .env file at {env_path}. Please ensure it follows the template format.")
134
+ load_dotenv(env_path, override=True)
135
+ log.good(f"Loaded environment file from {os.path.abspath(env_path)}")
136
+
137
+
138
+ def _is_valid_env_file(path):
139
+ if not os.path.isfile(path):
140
+ return False
141
+ if not os.path.basename(path).startswith(".env"):
142
+ return False
143
+ try:
144
+ with open(path, "r") as f:
145
+ for line in f:
146
+ if line.strip() == "" or line.strip().startswith("#"):
147
+ continue
148
+ if "=" not in line:
149
+ return False
150
+ return True
151
+ except Exception:
152
+ return False
153
+
154
+
155
+ # --- env file generation helpers ---
156
+
157
+
158
+ def _write_env_file(data, props, env_file):
159
+ ignore_keys = {
160
+ "aksUserIdentity",
161
+ "adServerEndpoint",
162
+ "signingCaName",
163
+ "caHostName",
164
+ "siteName",
165
+ "domainUser",
166
+ "domainPassword",
167
+ "virtualNetwork",
168
+ }
169
+ ad_username = data.get("domainUser")
170
+ ad_password = data.get("domainPassword")
171
+
172
+ with open(env_file, "w") as f:
173
+ for key, value in data.items():
174
+ if key not in ignore_keys:
175
+ f.write(f"{_to_env_key(key)}={value}\n")
176
+ config_block = f"""HCS_CLIENT_ID={props["csp.service.app.client_id"]}
177
+ HCS_CLIENT_SECRET={props["csp.service.app.client_secret"]}
178
+ IDP_TENANT_DOMAIN=test-sanity-domain
179
+ UAG_FQDN=myuag.fqdn
180
+ DESKTOP_SUBNET_CIDR=10.76.0.0/16
181
+ DMZ_SUBNET_CIDR=10.77.0.0/24
182
+ MANAGEMENT_SUBNET_CIDR=10.77.3.0/24
183
+ TENANT_SUBNET=desktop-76
184
+ TENANT_SUBNET_CIDR=10.76.0.0/16
185
+ DESKTOP_RESOURCE_GROUP=horizonv2-sg-dev
186
+ INFRA_RESOURCE_GROUP=horizonv2-sg-dev
187
+ DESKTOP_VNET=horizonv2-sg-dev-vnet
188
+ INFRA_VNET=horizonv2-sg-dev-vnet
189
+ PRIMARY_BIND_USER_NAME={ad_username}
190
+ PRIMARY_BIND_PASSWORD={ad_password}
191
+ AUXILIARY_BIND_USER_NAME={ad_username}
192
+ AUXILIARY_BIND_PASSWORD={ad_password}
193
+ PRIMARY_JOIN_USER_NAME={ad_username}
194
+ PRIMARY_JOIN_PASSWORD={ad_password}
195
+ AUXILIARY_JOIN_USER_NAME={ad_username}
196
+ AUXILIARY_JOIN_PASSWORD={ad_password}
197
+ ENTITLEMENT_USER_1={ad_username}
198
+ ENTITLEMENT_USER_2={ad_username}-2
199
+ IMAGE_USER_NAME={ad_username}
200
+ IMAGE_PASSWORD={ad_password}
201
+ VM_USER_NAME={ad_username}
202
+ VM_PASSWORD={ad_password}
203
+ DEPLOYMENT_ID=az-1
204
+ """
205
+ f.write(config_block)
206
+
207
+
208
+ def _to_env_key(key):
209
+ ACRONYMS = {"BIOS", "CIDR"}
210
+ key_snake = re.sub(r"(?<!^)(?=[A-Z])", "_", key).upper()
211
+ for acronym in ACRONYMS:
212
+ key_snake = re.sub(r"_".join(acronym), acronym, key_snake)
213
+ return key_snake
214
+
215
+
216
+ def _organize_env_file(env_file):
217
+ group_rules = OrderedDict(
218
+ [
219
+ ("Credentials (Optional):", ["HCS_CLIENT_ID", "HCS_CLIENT_SECRET"]),
220
+ ("Identity Provider (IDP) Configuration", ["IDP_USER_NAME", "IDP_PASSWORD", "IDP_TENANT_DOMAIN"]),
221
+ (
222
+ "AD Configuration",
223
+ [
224
+ "DNS_DOMAIN_NAME",
225
+ "NET_BIOS_NAME",
226
+ "PRIMARY_JOIN_USER_NAME",
227
+ "PRIMARY_JOIN_PASSWORD",
228
+ "AUXILIARY_JOIN_USER_NAME",
229
+ "AUXILIARY_JOIN_PASSWORD",
230
+ "PRIMARY_BIND_USER_NAME",
231
+ "PRIMARY_BIND_PASSWORD",
232
+ "AUXILIARY_BIND_USER_NAME",
233
+ "AUXILIARY_BIND_PASSWORD",
234
+ ],
235
+ ),
236
+ (
237
+ "Primary Provider Configuration",
238
+ ["PROVIDER_LABEL", "SUBSCRIPTION_ID", "DIRECTORY_ID", "APPLICATION_ID", "APPLICATION_KEY", "REGION"],
239
+ ),
240
+ ("Resource and Network Configuration", ["DESKTOP_RESOURCE_GROUP", "INFRA_RESOURCE_GROUP", "DESKTOP_VNET", "INFRA_VNET"]),
241
+ (
242
+ "Subnet",
243
+ [
244
+ "DMZ_SUBNET",
245
+ "DMZ_SUBNET_CIDR",
246
+ "DESKTOP_SUBNET",
247
+ "DESKTOP_SUBNET_CIDR",
248
+ "MANAGEMENT_SUBNET",
249
+ "MANAGEMENT_SUBNET_CIDR",
250
+ "TENANT_SUBNET",
251
+ "TENANT_SUBNET_CIDR",
252
+ ],
253
+ ),
254
+ ("Resource Credentials", ["IMAGE_USER_NAME", "IMAGE_PASSWORD", "VM_USER_NAME", "VM_PASSWORD"]),
255
+ ("UAG", ["UAG_FQDN"]),
256
+ ("Entitlement", ["ENTITLEMENT_USER_1", "ENTITLEMENT_USER_2"]),
257
+ ("Deployment ID", ["DEPLOYMENT_ID"]),
258
+ ("Org", ["ORG_ID"]),
259
+ ]
260
+ )
261
+
262
+ with open(env_file, "r") as f:
263
+ lines = f.readlines()
264
+
265
+ env_dict = {line.split("=", 1)[0].strip(): line.split("=", 1)[1].strip() for line in lines if "=" in line and not line.startswith("#")}
266
+
267
+ grouped_env = defaultdict(list)
268
+ ungrouped = []
269
+
270
+ for key, value in env_dict.items():
271
+ found = False
272
+ for group, keys in group_rules.items():
273
+ if key in keys:
274
+ grouped_env[group].append(f"{key}={value}")
275
+ found = True
276
+ break
277
+ if not found:
278
+ ungrouped.append(f"{key}={value}")
279
+
280
+ organized_lines = []
281
+ for group, items in grouped_env.items():
282
+ organized_lines.append(f"# {group}")
283
+ organized_lines.extend(items)
284
+ organized_lines.append("")
285
+
286
+ if ungrouped:
287
+ organized_lines.append("# Other Variables")
288
+ organized_lines.extend(ungrouped)
289
+
290
+ with open(env_file, "w") as f:
291
+ f.write("\n".join(organized_lines))