hcs-cli 0.1.337__tar.gz → 0.1.338__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 (504) hide show
  1. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/PKG-INFO +2 -2
  2. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/__init__.py +1 -1
  3. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/api.py +14 -4
  4. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/debug/start.py +31 -3
  5. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/dev/fs/helper/k8s_util.py +14 -0
  6. hcs_cli-0.1.338/hcs_cli/cmds/dev/fs/helper/mqtt_certs.py +282 -0
  7. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/dev/fs/init.py +192 -21
  8. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/hoc/log.py +4 -4
  9. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/api.py +1 -1
  10. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/support/debug_util.py +14 -0
  11. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/pyproject.toml +1 -1
  12. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/.gitignore +0 -0
  13. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/README.md +0 -0
  14. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/__main__.py +0 -0
  15. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/__init__.py +0 -0
  16. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/ad/__init__.py +0 -0
  17. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/ad/create.py +0 -0
  18. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/ad/delete.py +0 -0
  19. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/ad/get.py +0 -0
  20. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/ad/list.py +0 -0
  21. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/admin/__init__.py +0 -0
  22. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/admin/azure_infra/__init__.py +0 -0
  23. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/admin/azure_infra/main.py +0 -0
  24. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/advisor/__init__.py +0 -0
  25. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/advisor/advisor_utils.py +0 -0
  26. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/advisor/config/__init__.py +0 -0
  27. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/advisor/config/advisor_config.py +0 -0
  28. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/advisor/html_utils.py +0 -0
  29. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/advisor/org.py +0 -0
  30. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/advisor/pdf_utils.py +0 -0
  31. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/advisor/pool.py +0 -0
  32. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/advisor/recommendation_engine.py +0 -0
  33. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/app/__init__.py +0 -0
  34. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/app/create.py +0 -0
  35. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/app/delete.py +0 -0
  36. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/app/get.py +0 -0
  37. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/app/list.py +0 -0
  38. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/app/update.py +0 -0
  39. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/app/use.py +0 -0
  40. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/auth/__init__.py +0 -0
  41. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/auth/admin/__init__.py +0 -0
  42. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/auth/admin/get_org_idp_map.py +0 -0
  43. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/auth/admin/network/__init__.py +0 -0
  44. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/auth/admin/network/add.py +0 -0
  45. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/auth/user/__init__.py +0 -0
  46. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/auth/user/list.py +0 -0
  47. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/clouddriver/__init__.py +0 -0
  48. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/clouddriver/provider.py +0 -0
  49. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/clouddriver/service.py +0 -0
  50. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/clouddriver/task.py +0 -0
  51. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/credential/__init__.py +0 -0
  52. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/credential/get.py +0 -0
  53. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/cs/__init__.py +0 -0
  54. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/cs/base.py +0 -0
  55. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/daas/__init__.py +0 -0
  56. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/daas/infra/__init__.py +0 -0
  57. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/daas/infra/basic.py +0 -0
  58. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/daas/infra/plan.py +0 -0
  59. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/daas/order/__init__.py +0 -0
  60. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/daas/order/create.py +0 -0
  61. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/daas/order/delete.py +0 -0
  62. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/daas/order/list.py +0 -0
  63. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/daas/order/update.py +0 -0
  64. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/daas/tenant/__init__.py +0 -0
  65. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/daas/tenant/consumption.py +0 -0
  66. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/daas/tenant/create.py +0 -0
  67. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/daas/tenant/plan.py +0 -0
  68. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/debug/__init__.py +0 -0
  69. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/debug/prepare.py +0 -0
  70. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/debug/reset.py +0 -0
  71. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/dev/__init__.py +0 -0
  72. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/dev/emqx.py +0 -0
  73. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/dev/fs/__init__.py +0 -0
  74. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/dev/fs/auth.py +0 -0
  75. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/dev/fs/clear.py +0 -0
  76. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/dev/fs/helper/__init__.py +0 -0
  77. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/dev/fs/helper/credential_helper.py +0 -0
  78. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/dev/fs/helper/jenkins_util.py +0 -0
  79. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/dev/fs/helper/license_info.py +0 -0
  80. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/dev/fs/helper/required_fields.py +0 -0
  81. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/dev/fs/helper/step_util.py +0 -0
  82. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/dev/fs/helper/subscription_util.py +0 -0
  83. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/dev/fs/helper/util.py +0 -0
  84. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/dev/fs/profiler.py +0 -0
  85. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/dev/fs/provided_files/__init__.py +0 -0
  86. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/dev/fs/provided_files/akka.plan.yml +0 -0
  87. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/dev/fs/provided_files/azsim.plan.yml +0 -0
  88. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/dev/fs/provided_files/azure.plan.yml +0 -0
  89. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/dev/fs/provided_files/mqtt-secret.yaml +0 -0
  90. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/dev/fs/provided_files/mqtt-server-external.yaml +0 -0
  91. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/dev/fs/provided_files/patch-mqtt-hostname.yml +0 -0
  92. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/dev/fs/provided_files/patch-vernemq-ssl-depth.json +0 -0
  93. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/dev/fs/tailor.py +0 -0
  94. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/dev/mqtt.py +0 -0
  95. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/dev/onboard.py +0 -0
  96. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/dev/test.py +0 -0
  97. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/dev/util/__init__.py +0 -0
  98. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/dev/util/github_helper.py +0 -0
  99. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/dev/util/log.py +0 -0
  100. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/dev/util/mqtt_helper.py +0 -0
  101. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/diagnostics/__init__.py +0 -0
  102. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/diagnostics/diagnose.py +0 -0
  103. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/edge/__init__.py +0 -0
  104. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/edge/connection_string.py +0 -0
  105. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/edge/create.py +0 -0
  106. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/edge/delete.py +0 -0
  107. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/edge/get.py +0 -0
  108. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/edge/list.py +0 -0
  109. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/edge/use.py +0 -0
  110. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/edge/wait.py +0 -0
  111. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/entitlement/__init__.py +0 -0
  112. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/entitlement/delete.py +0 -0
  113. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/entitlement/get.py +0 -0
  114. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/entitlement/list.py +0 -0
  115. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/hoc/__init__.py +0 -0
  116. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/hoc/search.py +0 -0
  117. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/hoc/stats.py +0 -0
  118. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/hoc/util/__init__.py +0 -0
  119. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/hoc/util/inv_cache.py +0 -0
  120. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/hst/__init__.py +0 -0
  121. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/hst/clean.py +0 -0
  122. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/hst/cloud/__init__.py +0 -0
  123. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/hst/cloud/health.py +0 -0
  124. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/hst/cloud/perf.py +0 -0
  125. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/hst/cloud/scale.py +0 -0
  126. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/hst/installer.py +0 -0
  127. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/hst/key.py +0 -0
  128. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/hst/outpost.py +0 -0
  129. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/hst/probe.py +0 -0
  130. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/hst/report.py +0 -0
  131. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/hst/test.py +0 -0
  132. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/ims/__init__.py +0 -0
  133. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/ims/delete.py +0 -0
  134. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/ims/get.py +0 -0
  135. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/ims/gold_pattern/__init__.py +0 -0
  136. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/ims/gold_pattern/create.py +0 -0
  137. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/ims/gold_pattern/delete.py +0 -0
  138. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/ims/gold_pattern/get.py +0 -0
  139. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/ims/gold_pattern/list.py +0 -0
  140. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/ims/list.py +0 -0
  141. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/ims/list_copies.py +0 -0
  142. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/ims/version/__init__.py +0 -0
  143. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/ims/version/delete.py +0 -0
  144. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/ims/version/get.py +0 -0
  145. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/ims/version/list.py +0 -0
  146. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/inspect.py +0 -0
  147. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/inventory/__init__.py +0 -0
  148. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/inventory/assign.py +0 -0
  149. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/inventory/count.py +0 -0
  150. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/inventory/deassign.py +0 -0
  151. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/inventory/delete.py +0 -0
  152. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/inventory/get.py +0 -0
  153. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/inventory/list.py +0 -0
  154. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/inventory/logoff.py +0 -0
  155. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/inventory/session.py +0 -0
  156. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/inventory/update.py +0 -0
  157. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/iss/__init__.py +0 -0
  158. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/iss/mqtt.py +0 -0
  159. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/lcm/__init__.py +0 -0
  160. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/lcm/health.py +0 -0
  161. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/lcm/provider/__init__.py +0 -0
  162. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/lcm/provider/create.py +0 -0
  163. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/lcm/provider/delete.py +0 -0
  164. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/lcm/provider/get.py +0 -0
  165. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/lcm/provider/list.py +0 -0
  166. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/lcm/register.py +0 -0
  167. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/lcm/template/__init__.py +0 -0
  168. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/lcm/template/cancel.py +0 -0
  169. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/lcm/template/create.py +0 -0
  170. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/lcm/template/delete.py +0 -0
  171. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/lcm/template/expand.py +0 -0
  172. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/lcm/template/get.py +0 -0
  173. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/lcm/template/health.py +0 -0
  174. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/lcm/template/list.py +0 -0
  175. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/lcm/template/provision.py +0 -0
  176. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/lcm/template/retry.py +0 -0
  177. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/lcm/template/update.py +0 -0
  178. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/lcm/template/use.py +0 -0
  179. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/lcm/template/wait.py +0 -0
  180. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/lcm/test.py +0 -0
  181. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/lcm/vm/__init__.py +0 -0
  182. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/lcm/vm/delete.py +0 -0
  183. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/lcm/vm/get.py +0 -0
  184. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/lcm/vm/pair.py +0 -0
  185. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/lcm/vm/pairing_info.py +0 -0
  186. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/lcm/vm/power.py +0 -0
  187. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/lcm/vm/put.py +0 -0
  188. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/lcm/vm/wait.py +0 -0
  189. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/login.py +0 -0
  190. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/logout.py +0 -0
  191. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/org/__init__.py +0 -0
  192. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/org/datacenter/__init__.py +0 -0
  193. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/org/datacenter/get.py +0 -0
  194. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/org/datacenter/list.py +0 -0
  195. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/org/details/__init__.py +0 -0
  196. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/org/ff.py +0 -0
  197. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/org/get.py +0 -0
  198. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/org/list.py +0 -0
  199. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/org/location.py +0 -0
  200. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/org/use.py +0 -0
  201. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/pki/__init__.py +0 -0
  202. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/pki/ca.py +0 -0
  203. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/pki/cert/__init__.py +0 -0
  204. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/pki/cert/delete.py +0 -0
  205. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/pki/cert/get.py +0 -0
  206. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/pki/sign.py +0 -0
  207. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/pki/test.py +0 -0
  208. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/plan/__init__.py +0 -0
  209. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/plan/apply.py +0 -0
  210. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/plan/clear.py +0 -0
  211. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/plan/destroy.py +0 -0
  212. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/plan/graph.py +0 -0
  213. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/plan/input.py +0 -0
  214. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/plan/output.py +0 -0
  215. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/plan/resolve.py +0 -0
  216. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/plan/use.py +0 -0
  217. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/pool/__init__.py +0 -0
  218. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/pool/delete.py +0 -0
  219. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/pool/get.py +0 -0
  220. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/pool/list.py +0 -0
  221. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/pool/update.py +0 -0
  222. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/pool/use.py +0 -0
  223. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/profile/__init__.py +0 -0
  224. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/profile/init.py +0 -0
  225. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/provider/__init__.py +0 -0
  226. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/provider/create.py +0 -0
  227. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/provider/delete.py +0 -0
  228. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/provider/get.py +0 -0
  229. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/provider/golden_images.py +0 -0
  230. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/provider/list.py +0 -0
  231. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/provider/use.py +0 -0
  232. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/provider/vsphere_dcs.py +0 -0
  233. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/query.py +0 -0
  234. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/scm/__init__.py +0 -0
  235. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/scm/health.py +0 -0
  236. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/scm/operator.py +0 -0
  237. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/scm/plan.py +0 -0
  238. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/scm/recommend.py +0 -0
  239. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/scm/template.py +0 -0
  240. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/site/__init__.py +0 -0
  241. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/site/create.py +0 -0
  242. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/site/delete.py +0 -0
  243. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/site/get.py +0 -0
  244. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/site/list.py +0 -0
  245. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/site/set-edge.py +0 -0
  246. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/site/use.py +0 -0
  247. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/synt/__init__.py +0 -0
  248. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/synt/outpost/__init__.py +0 -0
  249. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/synt/outpost/create.py +0 -0
  250. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/synt/outpost/delete.py +0 -0
  251. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/synt/outpost/get.py +0 -0
  252. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/synt/outpost/list.py +0 -0
  253. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/synt/outpost/update.py +0 -0
  254. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/synt/probe/__init__.py +0 -0
  255. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/synt/probe/create.py +0 -0
  256. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/synt/probe/delete.py +0 -0
  257. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/synt/probe/get.py +0 -0
  258. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/synt/probe/list.py +0 -0
  259. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/synt/probe/run.py +0 -0
  260. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/synt/probe/update.py +0 -0
  261. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/synt/report/__init__.py +0 -0
  262. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/synt/report/delete.py +0 -0
  263. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/synt/report/get.py +0 -0
  264. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/synt/report/list.py +0 -0
  265. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/task.py +0 -0
  266. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/template/__init__.py +0 -0
  267. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/template/create.py +0 -0
  268. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/template/delete.py +0 -0
  269. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/template/expand.py +0 -0
  270. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/template/fix.py +0 -0
  271. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/template/get.py +0 -0
  272. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/template/list.py +0 -0
  273. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/template/list_usage.py +0 -0
  274. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/template/update.py +0 -0
  275. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/template/usage.py +0 -0
  276. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/template/use.py +0 -0
  277. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/template/wait.py +0 -0
  278. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/test.py +0 -0
  279. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/uag/__init__.py +0 -0
  280. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/uag/delete.py +0 -0
  281. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/uag/get.py +0 -0
  282. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/uag/list.py +0 -0
  283. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/upgrade.py +0 -0
  284. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/vm/__init__.py +0 -0
  285. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/vm/actions.py +0 -0
  286. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/vm/delete.py +0 -0
  287. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/vm/get.py +0 -0
  288. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/vm/list.py +0 -0
  289. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/vm/log.py +0 -0
  290. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/vm/pairing_info.py +0 -0
  291. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/vm/put.py +0 -0
  292. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/vm/use.py +0 -0
  293. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/vm/wait.py +0 -0
  294. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/vmhub/__init__.py +0 -0
  295. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/vmhub/info.py +0 -0
  296. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/vmhub/otp/__init__.py +0 -0
  297. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/vmhub/otp/redeem.py +0 -0
  298. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/vmhub/otp/request.py +0 -0
  299. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/vmm/__init__.py +0 -0
  300. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/vmm/restart_vms.py +0 -0
  301. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/vmm/rootca_edge_migration_stats.py +0 -0
  302. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/vmm/rootca_edge_rotate_certs.py +0 -0
  303. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/vmm/rootca_migrate.py +0 -0
  304. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/vmm/rootca_migrate_edge.py +0 -0
  305. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/vmm/rootca_template_migration_stats.py +0 -0
  306. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/workflows/__init__.py +0 -0
  307. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/cmds/workflows/mqtt-endpoints.py +0 -0
  308. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/config/__init__.py +0 -0
  309. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/config/hcs-deployments.yaml +0 -0
  310. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/main.py +0 -0
  311. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/__init__.py +0 -0
  312. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/akka.blueprint.yml +0 -0
  313. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/app/__init__.py +0 -0
  314. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/app/manual.json +0 -0
  315. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/edge/__init__.py +0 -0
  316. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/edge/akka.json +0 -0
  317. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/edge/vsphere.json +0 -0
  318. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/hoc/lcm-capcalc.json.template +0 -0
  319. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/hoc/no-spare.json.template +0 -0
  320. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/inventory/__init__.py +0 -0
  321. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/inventory/assign.json +0 -0
  322. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/inventory/deassign.json +0 -0
  323. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/iss/__init__.py +0 -0
  324. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/lcm/__init__.py +0 -0
  325. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/lcm/akka.json +0 -0
  326. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/lcm/azure-dummy.json +0 -0
  327. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/lcm/azure-real.json +0 -0
  328. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/lcm/edge-proxy.json +0 -0
  329. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/lcm/zero-dedicated.json +0 -0
  330. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/lcm/zero-delay-1m-per-vm.json +0 -0
  331. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/lcm/zero-fail-delete-template.json +0 -0
  332. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/lcm/zero-fail-destroy-onthread.json +0 -0
  333. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/lcm/zero-fail-destroy.json +0 -0
  334. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/lcm/zero-fail-prepare-onthread.json +0 -0
  335. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/lcm/zero-fail-prepare.json +0 -0
  336. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/lcm/zero-fail-vm-onthread.json +0 -0
  337. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/lcm/zero-fail-vm.json +0 -0
  338. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/lcm/zero-floating.json +0 -0
  339. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/lcm/zero-legacy.json +0 -0
  340. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/lcm/zero-manual.json +0 -0
  341. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/lcm/zero-multisession.json +0 -0
  342. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/lcm/zero-nanw.json +0 -0
  343. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/lcm/zero-new-5k-delay.json +0 -0
  344. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/lcm/zero-new-5k.json +0 -0
  345. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/lcm/zero-new-snapshot.json +0 -0
  346. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/lcm/zero-reuse-vm-id.json +0 -0
  347. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/lcm/zero-with-max-id-offset.json +0 -0
  348. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/lcm/zero.json +0 -0
  349. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/provider/__init__.py +0 -0
  350. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/provider/ad-stes-vsphere.json +0 -0
  351. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/provider/akka.json +0 -0
  352. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/provider/azure.json +0 -0
  353. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/provider/edgeproxy.json +0 -0
  354. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/provider/vsphere.json +0 -0
  355. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/scm/starter.json +0 -0
  356. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/synt/__init__.py +0 -0
  357. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/synt/core/__init__.py +0 -0
  358. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/synt/core/p01-dummy-success.json +0 -0
  359. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/synt/core/p02-dummy-fail.json +0 -0
  360. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/synt/core/p03-dummy-exception.json +0 -0
  361. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/synt/core/p04-dummy-success-repeat.json +0 -0
  362. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/synt/core/p05-dummy-fail-repeat.json +0 -0
  363. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/synt/core/p06-dummy-exception-repeat.json +0 -0
  364. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/synt/core/p07-dummy-delay.json +0 -0
  365. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/synt/core/p08-dummy-property.json +0 -0
  366. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/synt/ext/__init__.py +0 -0
  367. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/synt/ext/p20-connect-success.json +0 -0
  368. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/synt/ext/p21-connect-fail.json +0 -0
  369. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/synt/ext/p30-ssl-success.json +0 -0
  370. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/synt/ext/p31-ssl-fail.json +0 -0
  371. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/synt/ext/p40-http-success.json +0 -0
  372. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/synt/ext/p41-http-fail.json +0 -0
  373. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/synt/ext/p42-http-status-code.json +0 -0
  374. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/synt/ext1/__init__.py +0 -0
  375. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/synt/ext1/p10-ping-success.json +0 -0
  376. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/synt/ext1/p11-ping-fail.json +0 -0
  377. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/synt/ext1/p12-ping-success-repeat.json +0 -0
  378. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/payload/template/__init__.py +0 -0
  379. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/provider/__init__.py +0 -0
  380. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/provider/hcs/__init__.py +0 -0
  381. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/provider/hcs/_prepare.py +0 -0
  382. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/provider/hcs/ad.py +0 -0
  383. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/provider/hcs/av_entitlement.py +0 -0
  384. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/provider/hcs/av_fs.py +0 -0
  385. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/provider/hcs/cert.py +0 -0
  386. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/provider/hcs/edge.py +0 -0
  387. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/provider/hcs/entitlement.py +0 -0
  388. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/provider/hcs/gold_pattern.py +0 -0
  389. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/provider/hcs/identity_provider.py +0 -0
  390. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/provider/hcs/image.py +0 -0
  391. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/provider/hcs/import_av_app.py +0 -0
  392. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/provider/hcs/manual_app.py +0 -0
  393. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/provider/hcs/pool_group.py +0 -0
  394. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/provider/hcs/pool_template.py +0 -0
  395. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/provider/hcs/provider.py +0 -0
  396. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/provider/hcs/runtime/__init__.py +0 -0
  397. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/provider/hcs/runtime/password.py +0 -0
  398. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/provider/hcs/runtime/wait_for.py +0 -0
  399. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/provider/hcs/site.py +0 -0
  400. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/provider/hcs/uag.py +0 -0
  401. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/__init__.py +0 -0
  402. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/admin/__init__.py +0 -0
  403. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/admin/ad.py +0 -0
  404. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/admin/azure_infra.py +0 -0
  405. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/admin/edge.py +0 -0
  406. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/admin/helper.py +0 -0
  407. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/admin/provider.py +0 -0
  408. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/admin/template.py +0 -0
  409. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/admin/uag.py +0 -0
  410. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/admin/vm.py +0 -0
  411. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/app_management/__init__.py +0 -0
  412. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/app_management/manual_app.py +0 -0
  413. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/auth/__init__.py +0 -0
  414. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/auth/admin.py +0 -0
  415. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/av/__init__.py +0 -0
  416. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/av/app.py +0 -0
  417. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/av/avimport.py +0 -0
  418. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/av/entitlements.py +0 -0
  419. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/av/fileshare.py +0 -0
  420. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/clouddriver/__init__.py +0 -0
  421. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/clouddriver/provider.py +0 -0
  422. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/clouddriver/service.py +0 -0
  423. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/credential/__init__.py +0 -0
  424. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/credential/credential.py +0 -0
  425. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/credential/nls.py +0 -0
  426. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/cs/__init__.py +0 -0
  427. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/cs/base.py +0 -0
  428. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/csp.py +0 -0
  429. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/diagnostics/__init__.py +0 -0
  430. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/diagnostics/edge.py +0 -0
  431. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/edge.py +0 -0
  432. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/edgehub/__init__.py +0 -0
  433. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/edgehub/edgecontroller.py +0 -0
  434. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/edgehub/edgetwin.py +0 -0
  435. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/graphql.py +0 -0
  436. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/hoc/__init__.py +0 -0
  437. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/hoc/diagnostic.py +0 -0
  438. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/hoc/es.py +0 -0
  439. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/ims/__init__.py +0 -0
  440. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/ims/gold_pattern.py +0 -0
  441. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/ims/helper.py +0 -0
  442. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/ims/image_copies.py +0 -0
  443. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/ims/images.py +0 -0
  444. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/ims/version.py +0 -0
  445. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/inventory/__init__.py +0 -0
  446. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/inventory/session.py +0 -0
  447. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/inventory/vm.py +0 -0
  448. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/iss/__init__.py +0 -0
  449. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/iss/mqtt.py +0 -0
  450. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/lcm/__init__.py +0 -0
  451. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/lcm/health.py +0 -0
  452. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/lcm/provider.py +0 -0
  453. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/lcm/template.py +0 -0
  454. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/lcm/vm.py +0 -0
  455. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/org_service/__init__.py +0 -0
  456. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/org_service/datacenter.py +0 -0
  457. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/org_service/details.py +0 -0
  458. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/org_service/orglocationmapping.py +0 -0
  459. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/pki/__init__.py +0 -0
  460. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/pki/certificate.py +0 -0
  461. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/pool.py +0 -0
  462. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/portal/__init__.py +0 -0
  463. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/portal/entitlement.py +0 -0
  464. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/portal/pool.py +0 -0
  465. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/portal/site.py +0 -0
  466. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/scm/__init__.py +0 -0
  467. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/scm/base.py +0 -0
  468. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/scm/operator.py +0 -0
  469. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/scm/plan.py +0 -0
  470. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/site.py +0 -0
  471. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/synt/__init__.py +0 -0
  472. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/synt/outpost.py +0 -0
  473. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/synt/probe.py +0 -0
  474. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/synt/report.py +0 -0
  475. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/task.py +0 -0
  476. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/template.py +0 -0
  477. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/tsctl/__init__.py +0 -0
  478. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/tsctl/base.py +0 -0
  479. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/tsctl/task.py +0 -0
  480. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/uag.py +0 -0
  481. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/vm.py +0 -0
  482. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/vmhub/__init__.py +0 -0
  483. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/vmhub/credentials.py +0 -0
  484. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/vmhub/mqtt.py +0 -0
  485. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/vmm/__init__.py +0 -0
  486. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/vmm/dct.py +0 -0
  487. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/service/vmm/hoc_event.py +0 -0
  488. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/support/__init__.py +0 -0
  489. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/support/constant.py +0 -0
  490. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/support/exec_util.py +0 -0
  491. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/support/inspect_util.py +0 -0
  492. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/support/param_util.py +0 -0
  493. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/support/patch_util.py +0 -0
  494. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/support/plan_util.py +0 -0
  495. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/support/predefined_payload.py +0 -0
  496. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/support/profile.py +0 -0
  497. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/support/scm/html_util.py +0 -0
  498. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/support/scm/plan-editor.html.template +0 -0
  499. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/support/scm/plan_editor.py +0 -0
  500. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/support/template_util.py +0 -0
  501. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/support/test_utils.py +0 -0
  502. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/support/test_utils2.py +0 -0
  503. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/hcs_cli/support/use_util.py +0 -0
  504. {hcs_cli-0.1.337 → hcs_cli-0.1.338}/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.338
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.338
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.338"
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
 
@@ -1,5 +1,6 @@
1
1
  import json
2
2
  import os
3
+ from typing import Optional
3
4
 
4
5
  from hcs_cli.cmds.dev.util import log
5
6
  from hcs_cli.support.exec_util import exec
@@ -34,6 +35,19 @@ def kubectl(command: str, ignore_error: bool = False, get_json: bool = False, in
34
35
  return ret
35
36
 
36
37
 
38
+ def get_namespace() -> Optional[str]:
39
+ """Return the namespace from the fs kubeconfig, or None if unavailable."""
40
+ import subprocess
41
+
42
+ try:
43
+ cmd = _kubectl_command_with_config_file + " config view --minify --output jsonpath={..namespace}"
44
+ result = subprocess.run(cmd.split(), capture_output=True, text=True)
45
+ ns = result.stdout.strip()
46
+ return ns if ns else None
47
+ except Exception:
48
+ return None
49
+
50
+
37
51
  def validate_kubeconfig(fs_name: str, try_default_config: bool = True, raise_on_error: bool = True):
38
52
  if os.path.exists(_fs_kubeconfig):
39
53
  log.info("Using feature stack kubeconfig: " + _fs_kubeconfig)
@@ -0,0 +1,282 @@
1
+ """
2
+ Copyright © 2025-2026 Omnissa, LLC.
3
+
4
+ MQTT broker certificate bundles for EMQX and VerneMQ flavours.
5
+ EMQX uses verify_peer + peer_cert_as_username=cn; must chain to EMQX server CA.
6
+ VerneMQ uses a different chain entirely.
7
+ """
8
+
9
+ EMQX_CA_KEY = """\
10
+ -----BEGIN RSA PRIVATE KEY-----
11
+ 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
60
+ -----END RSA PRIVATE KEY-----"""
61
+
62
+ EMQX_CLIENT_CERT = """\
63
+ -----BEGIN CERTIFICATE-----
64
+ MIIE6DCCAtCgAwIBAgIUXtSk9nnSSimnxlN1jK6K83x6pqkwDQYJKoZIhvcNAQEL
65
+ BQAwdTELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMR8wHQYDVQQKDBZIb3Jpem9u
66
+ IENsb3VkIFNlcnZpY2VzMTgwNgYDVQQDDC9Ib3Jpem9uIENsb3VkIFNlcnZpY2Vz
67
+ IE5vbiBQcm9kIEludGVybWVkaWF0ZSBDQTAeFw0yNjA1MjcxMDUyMDVaFw0zNjA1
68
+ MjQxMDUyMDVaMHMxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTEWMBQGA1UEBwwN
69
+ TW91bnRhaW4gVmlldzEUMBIGA1UECgwLT21uaXNzYSBMTEMxDDAKBgNVBAsMA0VV
70
+ QzEbMBkGA1UEAwwSY29ubmVjdGlvbi1zZXJ2aWNlMIIBIjANBgkqhkiG9w0BAQEF
71
+ AAOCAQ8AMIIBCgKCAQEAj5+f1NncWi9VLil4Su9g5zIykrjJudehk8ioo7rTf95K
72
+ kYSmnUN8Jpg5W+JG2GESVtyfpdLwKTCEASPmRchHMmMmjIwgA2Ts40wsTTklDL1F
73
+ zbrKes76i2OP6yc3QTbqZgl12DNCqkTQwPUc43wAsesu1zpQyj1UcNAjavTAgBBJ
74
+ Pq/oausuyqTqdwPUp32OOFIx2YSXOZw9FKss8ALEj3AtkWdzf5oAUiLQvJ2cS1lX
75
+ zYWe1vHpFzLYMVr8z9GjqgSJ2muNBzZpkjML3xyWcz8vfvJ56JsW/UAHCF0c0wZW
76
+ SQTriXHKV3SZa/2e7PuNfUy2tcEAZAcMeaYY78i32QIDAQABo3IwcDAJBgNVHRME
77
+ AjAAMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDAjAdBgNVHQ4E
78
+ FgQUN3kkLQc2LPPbsiJlbjYjWYfPRvkwHwYDVR0jBBgwFoAUmfHFeWNUQmGFbqex
79
+ pFGypGzWXggwDQYJKoZIhvcNAQELBQADggIBALwlzR4tvT0ggHClnuUZPVFsNAAz
80
+ PIS+T47le1DEzANaUSpLA6pe8PbntejJMSexuWI7dXLhSo699JM1e6vMUoTIJcef
81
+ zTFfSOD5Efrg2OcJd0ZhaVQHW8qbsvTUaD3aiOgdZa3VCPs/40qgAXR/0GGxRjSG
82
+ EuI6QdfkmO3LVg6YEnR7Sct0unL0XDcK16weOoapfCbI78LdqZGZDoFw/JnDmieC
83
+ sNhX4O5pqd+V/8sk4W8j8XPoSJQGjM+yoSrQa6P8VxchMcwu18FSID+/FFela9AR
84
+ hTBnJpkzEHX9QmvPj5ankvssNzXVlC++GjCPazvz/eq9UlphENeGGmZMVkwePFct
85
+ VNuFuICBR8z0xGLPvvr5BIKL9bzxhFbI2ps2KH01+FSH8st/98UtyTTmxDO6xvRj
86
+ 5tU3avof2u6ZKTneFN1L4iS2oJAYPWY+BVui7IoNDssOZlsMWDS8VPYBrZjL/NxC
87
+ uTmBLPdfqVCAhfUbSckcKlKer4x0R/5BOtEFqw0quEP9jHCJAdhPo4Bq4F7cHRtU
88
+ cpJyOnmWHEgUnJM4QO7fGgR2qiyKLlXs15Nf2P5SWRFjgYNInWXVt6ruJBM84thg
89
+ qaYnxQ5MMrXY/WEW/QAcafgTB+wsrvfbZhYxw1Yd84Q2DyXwKhIG9UCazbAJFs+w
90
+ 5pAMpv3a677jMKwQ
91
+ -----END CERTIFICATE-----"""
92
+
93
+ EMQX_CLIENT_KEY = """\
94
+ -----BEGIN PRIVATE KEY-----
95
+ MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCPn5/U2dxaL1Uu
96
+ KXhK72DnMjKSuMm516GTyKijutN/3kqRhKadQ3wmmDlb4kbYYRJW3J+l0vApMIQB
97
+ I+ZFyEcyYyaMjCADZOzjTCxNOSUMvUXNusp6zvqLY4/rJzdBNupmCXXYM0KqRNDA
98
+ 9RzjfACx6y7XOlDKPVRw0CNq9MCAEEk+r+hq6y7KpOp3A9SnfY44UjHZhJc5nD0U
99
+ qyzwAsSPcC2RZ3N/mgBSItC8nZxLWVfNhZ7W8ekXMtgxWvzP0aOqBInaa40HNmmS
100
+ MwvfHJZzPy9+8nnomxb9QAcIXRzTBlZJBOuJccpXdJlr/Z7s+419TLa1wQBkBwx5
101
+ phjvyLfZAgMBAAECggEACmhJv7XNxuc5J/AvXFa+UeKMUZ98VrAucDQRLFQkcVad
102
+ VrAjFrBGNdHADk12TsWx+4NfOjfv2Tw/xIlibVoW9qrCp1qcE0Lj+5CQgUQL0EGC
103
+ 5maLt5x6AVHEowijc2FUWPKEjJciVI5KBkF8x2s77aiaK1R5eD47eTVL67sym9T2
104
+ fO15y/NDgI44HDMmp/MWICK+AYqrB08i3vYytdbuMASqLXvXm8OYx+RlQq3b+Loy
105
+ MN/e8Pg+9Zu6gbb7mfBS6ugXcMm8hPaNFwPswgiWOTPBWkNTvnBwkU7Vc/NuIkuG
106
+ dAoF8K6jfZaeCAPFKqPSd7YZn3dWGA0143rLKHNHkQKBgQDFFOj+V+9cRaAEbYml
107
+ eb0sFlv/9Ko2z4uPdK6R+yU/Gi6V3jxhXB017ynRZiF2G0rq1FN2kWj+gyJB3y3x
108
+ COBrDdCbsnmnlfXKcb6isQ2MPAacR2hhZ1JsHYgPYdLzxCRD8G7zVeYaPDsEwNef
109
+ lHXvrm4Up2LKjYsjdDmCT0znrQKBgQC6j3Iii3XlLkycmCcRofylcwsoHySg4yEc
110
+ IIyNXsGYtIzH8BS/rvw/xIh8uCgFRfyx6l5Q+rP9uQ+qInFT9isEJamyRdpuN+R+
111
+ RHaUTpl09gy4Mg7rgYsiILUtWkTVJCP1Xjhjwob9IDt86nHjL0jN+KuQ4irOv5yG
112
+ 0i024GSGXQKBgQCdWQh8qPBuFxie8GWJPB0Q6fkh7dFIWYPvURVfb8hZDSpMdVZ3
113
+ 1PdtbDlS+duVVE0IF+VbMNVG/qOHPAyN+KxUTH9VD7WZW10V+KJfekR6xiHw/AIW
114
+ YkuoDhvnTA8EmIDrzTaICPjh0Vy9esmsmvdeGUHCM7HoTgHcmJqhs3aPMQKBgQCe
115
+ EXw7GL7Dd/8hjylLH1zZMih5zilSyB79nfZ4sZiGsjO2FA0AfFruDK84PTBrh2kb
116
+ teBD7KckivBiztwGr8SyttaZXeY9DM5kzc1Ky23qU69jQcaydAhW2i+oRZucnAp7
117
+ k2Fj5SZKwkylAl+MhjvBiLiVAYwTsPYGpX35yRZjYQKBgQC5QkvCOkdIH73ZJ71d
118
+ R2e6m6Xj74Xbq6X8rVEPrBJw5nKdMrk4c1fUgNNup0NAlk/opcJbbdlxqEM0HeAq
119
+ oNZWhRL0T4rs0yOHItYwU/B/bXJdIe3wtciYc6M/NfNbfWmMJRFR5zqyIniOkItp
120
+ 5zzmwgcwlCaAPWdIF0AI/O5tbg==
121
+ -----END PRIVATE KEY-----"""
122
+
123
+ VERNEMQ_CA_KEY = """\
124
+ -----BEGIN PRIVATE KEY-----
125
+ MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDUNJx2Cf0noNHc
126
+ DXB9AFPSFMkkpwxb0wtqaCLiB7v5zkF7CVBl5LnecVk7CM8bJY62H90Lv8Zv/2sl
127
+ MXofPfwezhJzHaIKFD+OM3czUE0KXODdPtEDjxuWb1xZfwGP43w+DpECbtvr1G2u
128
+ ArA5ihFCWtesdTi+O0Nwjhn0jEl5hVewNm3R3RVTzZJdePz/Tqrk3l6bMnQcqKmh
129
+ L2+HExvgpTqstqT4xsgMv77w0yGQP94Oagh4qc3kBYzbpZTSrtsMkf/XVogux9F7
130
+ JyspsZlmYf96Wl9IpoGHw65YMpZ3uH9yqbmjg+/M3wnZj3WGqp7hLJZCQUWwDSqu
131
+ a0Bg3563AgMBAAECgf9scyGDMe0EflbCShwIcPe65eSRAXkkyeGLqqzT13VktYRs
132
+ Miu551XBLoHr1GoD9a3PEM8SB3CNdyZ1sP44o/ULHptPOasWe5f/lKMsFl3zwy59
133
+ 48dDil+5rNqwN7hp+64DXm5oT+pqcVDxyBidT3KCoZVCY1DHPS0Pg5AVlZyh/WpV
134
+ /xa25zV39rUDQbDu646+3BIq3h0P2fxtWkDYgtXRCBjnExl67h5BpFYsqkLZEg2A
135
+ mT76wKFFkkTJOHiI0ekDx1auhV1Wm53O7ExTJIeSV9pxRiEZaH7wnkpBkDluY58c
136
+ lSYoD/I9607XUzEXvJdxMwGiw1g3snPI2SRndfkCgYEA91S7DoSZyfdQAHMz0u8/
137
+ NxtgRdjBzokjksHSY/CSuhYREEl69DzSMdB+zRJRpB+lLe3AiZdU4BjcrZdBEOfp
138
+ 20JThNDrhC+/C35VkoAozm+9YLg9Xlv4aKgZbR6b9nbr1QwPe4dpH797mu6iwCPK
139
+ I0qpVrd29uqJrgZ4uBmCpVkCgYEA26S0Q37ZIYsdBbthdqd8ZHYrS+gQOCO7IWpH
140
+ Kyi8W+62QAoxk5pOumUpSFKZbCFcmC28k5lDbjxA7Oq7aVQwErOy3UNZpBFZvQU4
141
+ cLesTFZxkSecszszSr2GlZu1pOfK7o6kKw2rFJfsoUhCaZAFTJqCXtiH0ZTXSsvi
142
+ XrHNEo8CgYAy31K6YbvgNuZVsVxvfpZaF19t/m+es8aFYSiNNeZ4MCHCX9rScdAq
143
+ PuBV/fac84VeNRDtPBtRHMwHSJ0xhQIs/y9+mhpXThrVml6vi3zZOVKSmlLFHdWy
144
+ cSEJuMoLn9pSL/DfT7LnvNMHwx3mt3XUXH8IPyRRFVzMVrht5ZFhwQKBgQCWTHiG
145
+ D1EpoPY1K+oftbBrVml+QciHgfvVe9JDeFacWhcgb1lJdbgV2I+NS+hsk8+22uVF
146
+ 4wS/dD/BX0brZo6W3ZyxyBqZKL5NmDrs9uLSQfzopUCXbRVGObbUvX5o36x/3d/9
147
+ DhdZujRUkQvRDJpztu8rU+Rsx/si1a2LuwNnhQKBgQCmwoO7MADZl286n6imqotM
148
+ IK/djt0N7j52GYEhtnAOSKVKo/8EnbvKkcMqJzXMQOUySRgKkA96fkaKt7yDCvoo
149
+ boPQ+RK1VKj5UFkUKz5LiohLmCBEQ7sh1HBS2Vje8MFtg0P138sRlbMCvdAEARTZ
150
+ uQfAKLns7QFf9W1C60AVAQ==
151
+ -----END PRIVATE KEY-----"""
152
+
153
+ VERNEMQ_CLIENT_CERT = """\
154
+ -----BEGIN CERTIFICATE-----
155
+ MIIFKDCCAxCgAwIBAgIFALjj4O4wDQYJKoZIhvcNAQELBQAwdTELMAkGA1UEBhMC
156
+ VVMxCzAJBgNVBAgMAkNBMR8wHQYDVQQKDBZIb3Jpem9uIENsb3VkIFNlcnZpY2Vz
157
+ MTgwNgYDVQQDDC9Ib3Jpem9uIENsb3VkIFNlcnZpY2VzIE5vbiBQcm9kIEludGVy
158
+ bWVkaWF0ZSBDQTAeFw0yNTExMTQwNjA0MThaFw0yOTExMTQwNjA5MThaMG0xCzAJ
159
+ BgNVBAYTAlVTMQswCQYDVQQIDAJDQTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEU
160
+ MBIGA1UECgwLT21uaXNzYSBMTEMxDTALBgNVBAsMBEVVQyAxFDASBgNVBAMMC21x
161
+ dHQtY2xpZW50MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuNGguKcs
162
+ tPvvg5A9XD0bDFjuADWfC+C2mh3IP3v9TW4hMXf0JWREjSZ5yMg9vamNYfVhhFQx
163
+ 7SJ7JTnAJuMlNAVNKHsNef08/6ovbe7fHu6cKvopcPxFwMnZgKoZcLV1n6gYjewY
164
+ wugKiFzOXEXeIYeIsjax2afTWdSQJ9xYak+v/glual4ZXYI7BIOCkv7mkaG+sP7H
165
+ /M//mZcjfxFEBpSFpphsDAdj68yy9qu0kj9IReJJh3ou9J0qX0OVZ2yaNt2+pog/
166
+ fXE4WrpVIqRFs1JGCT4vZBSX+fFo/G9JUR0v4HNiPr5D8FObzZh0jdAj+aqja4Tb
167
+ Cqu7U2c4/1F4+QIDAQABo4HGMIHDMB0GA1UdDgQWBBTWq8aIUXO6TYHAIjwu/E4v
168
+ 2vYlbTAfBgNVHSMEGDAWgBSZ8cV5Y1RCYYVup7GkUbKkbNZeCDAOBgNVHQ8BAf8E
169
+ BAMCB4AwDAYDVR0TAQH/BAIwADBjBggrBgEFBQcBAQRXMFUwUwYIKwYBBQUHMAGG
170
+ R2h0dHBzOi8vZGV2MWItd2VzdHVzMi1jcDEwMy5hemNwLmhvcml6b24ub21uaXNz
171
+ YS5jb20vcGtpL29jc3AvcmVzcG9uZGVyMA0GCSqGSIb3DQEBCwUAA4ICAQATLHHI
172
+ XHWEN2VyF/Aew8fEfzwa2Nl6sgRKPCKzgyqCgyn0ksN7SpmKXTIikNnFb2FWG0Pj
173
+ 15VPqn6CkxfrTyt8uVrUMLeanvCOuX4r2zmE91KBzL2to6oXhzD64vyTo3+pHVJc
174
+ +BqIpIym3iEBdwKOOtfSYE4Uxc+uHVN/+Vw2tdQUGx3/GKPegOdvIHrY6LouklhR
175
+ K7MP99vc/orWz5nshEDMSQjXkpNa98NCRp88w14/kwcsT5wMTRNV63rW/CVfR2Xl
176
+ FLFsbFhe4WVYoTfvtyoL1Xfg7JJk5LgjneC/5aRsHK6qk2qLmzHBH82F3Fb4yneh
177
+ G9x/5CNJ+0WvnQeIwWqFB/gzDNS+4p3dGcbSnxPhokFjoJ1x+hzDxm9QY4H3t0O8
178
+ 13ZfLmzeUd0io9S/pVaHGbAE5zW1tfh75RFDpx/HZXAmi5UZ4fzabfTBODoFjE77
179
+ tmlex5+OfVDH9Kr6ZiH6OtF2CQZhg48VvyjpudEh0T1MKv9FHug8obaRyl+i6+u7
180
+ R9ErneIqd1TNA6P3CYDZrs4fJR7nDZn6Elm+SEwdl9lon8PgkaHKT3f+W44aUWOj
181
+ 8YRwdEMtuGpJjaPVzycvQgheYdWh2uVX1vZvgfOhF6htAIcsjtAzgPv4pgkbkrWK
182
+ fXUZKkCetrhvIGex8EfpH+VXIN0q0HkpPMBVHA==
183
+ -----END CERTIFICATE-----
184
+ -----BEGIN CERTIFICATE-----
185
+ MIIF3TCCA8WgAwIBAgICEAAwDQYJKoZIhvcNAQENBQAwgYUxMDAuBgNVBAMMJ0hv
186
+ cml6b24gQ2xvdWQgU2VydmljZXMgTm9uIFByb2QgUm9vdCBDQTELMAkGA1UEBhMC
187
+ VVMxCzAJBgNVBAgMAkNBMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MR8wHQYDVQQK
188
+ DBZIb3Jpem9uIENsb3VkIFNlcnZpY2VzMB4XDTI1MDIyMTE3MzA0NVoXDTMwMDIy
189
+ MDE3MzA0NVowdTELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMR8wHQYDVQQKDBZI
190
+ b3Jpem9uIENsb3VkIFNlcnZpY2VzMTgwNgYDVQQDDC9Ib3Jpem9uIENsb3VkIFNl
191
+ cnZpY2VzIE5vbiBQcm9kIEludGVybWVkaWF0ZSBDQTCCAiIwDQYJKoZIhvcNAQEB
192
+ BQADggIPADCCAgoCggIBANWNBcAUjV+MiAH+x/2WBTvnLRnoXPcMF+8tH4SIM8BS
193
+ 4aZVnQtJCxhISfqKXhs1aQKv27diSL6vMi221bgXfS7jrqiJIkgT4ec45IA8vYW4
194
+ dlrYlA4OMDwrdEZlI/7FjirSc9TXeslPq8Dx5C0rpMP4dZ97ADhm6c44AwYsOzD/
195
+ GttwWb6JL+1jBzSCEnOou8XP6fUcxGUw4ZHpqMfWqU/eUYM7auexorTFm2JrNYxT
196
+ RGbT3w7DKKDLBAg0pRuwKuf5y4vfL9GcYkJlEXxDql9LOWsvkiN2sP5upea8ckDT
197
+ dns0co1h6hZslBqFJgMrOdyrMD6+jfNtrHbYHQdnHJ6pCPiJg2HN4WyJB9UtTFKI
198
+ AGadHJ/piAcFE8NTPIemhWzrdGGysbL2xXl/9CZkRXmze0eDM2S/7X4ixMb4nHZw
199
+ bFbPYl9Ydq+FWsdIywRYNC/qmFw+jf3Ne28eQZWLm/D3uwwv/+mSVTwHcsb1PsUz
200
+ zFLxwa0IyHlRYC7VTyGBR/N9NjodlnioFEoEfRez7Zj0G2qkT4YtaChJb+KwD8GH
201
+ M0BCESucelYgbVjxwQWGu7wUMd7NaJuTP3qQpaHGC8SloY9TUu1tGHCV7ThXPcMI
202
+ loJF53tny8yCFfMpilYQf/VfyhXAFyANHW6Y097ekpJ3IAtAvzgtTqc+C/atjok1
203
+ AgMBAAGjZjBkMB0GA1UdDgQWBBSZ8cV5Y1RCYYVup7GkUbKkbNZeCDAfBgNVHSME
204
+ GDAWgBTeYgdNiwgQmn4UfIPsKs6iAgec2TASBgNVHRMBAf8ECDAGAQH/AgECMA4G
205
+ A1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQ0FAAOCAgEAXHZHiWY7CCSVV3KAvarj
206
+ xMucEGR+RKEYtjM9EYoBeLUAha7hIdVtQsA3iJIoMISZYVgbSh/rL0tVo/oq3VxY
207
+ tAKFLLiglYbLegBxfHUrigJsUhrAV8WhWdhfJZriU5zTKw/JThvzgMIq4GvnkeJb
208
+ ezAIQcBqY1EDaIZz9U7GNzVIF8MWfGI6sXxr3vWuHajj/mECPkO4W3fHlPiHTWQY
209
+ qd+NwGM/xt7rSXGN+NULl37TkJ9XSjE4gLbNTAQzq9C1Lz86jZUGtndTx0/4Ekoe
210
+ YUCACnIKR4GlTjXhmqy1Ro/zr/v1e1rZgQYjHBZjASTxa8m1dAfvv9YjH+GZpMmu
211
+ OrlglgAz88segTQCe0gU5SKR5rVWwetJvhIyoGAcWcuJ/ajGrRLjCjUT+W/iVu1v
212
+ DzOBljaV5keM8HvfWLH9mwSbaS8jee+YwJBFdYVIPieoKdsguRWnr2KMCY4WlavG
213
+ s8ZOqSGN+55S4u9fZfP4XAWKG41AGDbQNYCzP4dgtw7uC7ZgXTyJhrlM+yGqRpbn
214
+ VEiV+hWjZFV0z/1bC63irCNVbGpO+zfukaVREdeEj5Eh5qcJz2AgAHuBSoW1H0/J
215
+ IcQEFMZ/URm3n2httI6o3hM41e/EtKWPwxqH4YLpxB6St3fuMMwQaSirVmWolShR
216
+ K57pspC1vC6L+K51FSgXIOk=
217
+ -----END CERTIFICATE-----
218
+ -----BEGIN CERTIFICATE-----
219
+ MIIF/TCCA+WgAwIBAgIUU3p7FnhuTu9Ku9DxeShHEHZ9xEswDQYJKoZIhvcNAQEN
220
+ BQAwgYUxMDAuBgNVBAMMJ0hvcml6b24gQ2xvdWQgU2VydmljZXMgTm9uIFByb2Qg
221
+ Um9vdCBDQTELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMRYwFAYDVQQHDA1Nb3Vu
222
+ dGFpbiBWaWV3MR8wHQYDVQQKDBZIb3Jpem9uIENsb3VkIFNlcnZpY2VzMB4XDTI1
223
+ MDIyMTE3MjczM1oXDTM1MDIxOTE3MjczM1owgYUxMDAuBgNVBAMMJ0hvcml6b24g
224
+ Q2xvdWQgU2VydmljZXMgTm9uIFByb2QgUm9vdCBDQTELMAkGA1UEBhMCVVMxCzAJ
225
+ BgNVBAgMAkNBMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MR8wHQYDVQQKDBZIb3Jp
226
+ em9uIENsb3VkIFNlcnZpY2VzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
227
+ AgEAsN/U9IYxPDHWQQ4qB/EpNKJ3qFKBTjs0eRSz7CkcX60q45Tep9Azq67N+MvA
228
+ 8GvbhA52m5TIIvdQTLbgcGfHCGwGPWwhJ8Ve+aLc8kMXQ2s4dwgdbA+jEcyiVFgc
229
+ Hdh1uRSMPeHxVf43BhnEGZm1j09fbvnkPchh/Hx+tpeua99AUEPGd1ZBQHQZv4AN
230
+ iBw4SS7FjBeS3u3FRSUqO9dO4dGScjEEwzWMrbj3RI49jtY5H9Dh6gnrTPi6m4t+
231
+ JMsz1o8bJ/u5oyJFyRwXrwJ0ECLUH8tTQAH4kRF+14iep/8HmtSXoVV4PNhvCpC9
232
+ XZUB06zbcW5IVmVLBK+rUXER0jJd3Zysy5n7tBrFdKpU+n+9WUbCSXzszbHRuBcI
233
+ tH2qZmCa+mSBkH1PcwthhS8/wRimr6nh6m5m1gzZbJz5FY7YTuOYBJu47G/4QEQv
234
+ 2DqXNGQeLEcXhlBaH9id7QRhixdfMWzccELlfkWJD+sgETyXkfPMZ1QWPJiJvOTR
235
+ 58IKVAQ4hgahG/tqE7wikWQAdV16g1ynjVpYLSFig4GspPPYsQIfAfEr37dnxwNI
236
+ x6aIqIncrDRwrK3sRrUJQNnQzUUrBA6nmJx6TmlkzByhz/Qe2UiwHvXzV4EKXFZU
237
+ hDYcJ3UdkwIfjFFhcHquvse8Omz5QFHGmlxwiOCGaPp5jP8CAwEAAaNjMGEwHQYD
238
+ VR0OBBYEFN5iB02LCBCafhR8g+wqzqICB5zZMB8GA1UdIwQYMBaAFN5iB02LCBCa
239
+ fhR8g+wqzqICB5zZMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0G
240
+ CSqGSIb3DQEBDQUAA4ICAQCo0FDz5wq6/6eXKyW/b5x99xPnYWc8tmZXfmmZEmyY
241
+ SW4qySsg7ZhUP+3lJiWxLM9p+ZWtekG3OifWFIwdxycLxscoId4M/1UZ6Ku4Crip
242
+ o4SV2BzpB3+Harr4yJvfy95p5uNyivvFHM3iXf//ldjivnyEBozX89T9dvstH/rg
243
+ 7M1At7T8htXGDZGQt1tmt+rY8pYycAQZPgblFiWrhL+oCyNtOMwy3BTj/ipErAX9
244
+ zTnQ2Ktgl2A63xZ0eiTiXXspwUELNxbEIwfFw3Onw4jLhuAwjBLb5Qw9Ae+Qm2Iu
245
+ L7XR7RBTw3KphuxLcLpY0Qfh2n4NIUogl+zkANFWHTMT9PflhPeHxI5hRChKr8hE
246
+ YSmj7iUrNzpa2XVT0WUgHBR5uSb3gUzp6Jtg2ivXP2c/ll8RKghAYeEDOG6F7ls7
247
+ 6bLEATOGrYgbawGhnxnWqp7lkXCo0BvgASA/dDGjPf8lEg6f5j99z+PN5DJsH17T
248
+ eloh+wa9XucNolC4x+Yv9Nj3ElOrkGHaVV7mNl1PpY20hC8WCvRmbrchMGRcrGU/
249
+ lgDR3KqjPQEexXDqqhxQxZC5/Gsw0NgJuVxYFB6QjItuB4bmWvC5ptPqJBmjm8LK
250
+ JcSvTMU2HOuQ/q6vFZq3PRbvroMeXlw2WJrqO3vu04SZwYiP8dcrlHTXQJh+Mp9T
251
+ mQ==
252
+ -----END CERTIFICATE-----"""
253
+
254
+ VERNEMQ_CLIENT_KEY = """\
255
+ -----BEGIN PRIVATE KEY-----
256
+ MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC40aC4pyy0+++D
257
+ kD1cPRsMWO4ANZ8L4LaaHcg/e/1NbiExd/QlZESNJnnIyD29qY1h9WGEVDHtInsl
258
+ OcAm4yU0BU0oew15/Tz/qi9t7t8e7pwq+ilw/EXAydmAqhlwtXWfqBiN7BjC6AqI
259
+ XM5cRd4hh4iyNrHZp9NZ1JAn3FhqT6/+CW5qXhldgjsEg4KS/uaRob6w/sf8z/+Z
260
+ lyN/EUQGlIWmmGwMB2PrzLL2q7SSP0hF4kmHei70nSpfQ5VnbJo23b6miD99cTha
261
+ ulUipEWzUkYJPi9kFJf58Wj8b0lRHS/gc2I+vkPwU5vNmHSN0CP5qqNrhNsKq7tT
262
+ Zzj/UXj5AgMBAAECggEAECRfAUG4qeYHOVpzwYakwiNSRjpotcTerf9D6ieOLCEe
263
+ TQ/JBysGwb1Gjb7Pha01aATii4g/BBMq5klw+vSD31NHNe3pc2om1b2rftKKMk1s
264
+ 3mQTEoc2IGyAzrgMmMeAin1IB71DPGK/6MESVQTVLeCEk+wrBHOgBgyGurSIFGDT
265
+ FYnrSmfYJvkQHHjyRrhWfozVmlWR8GukakVQqCuMz87DpeYyu94DIZjyjhgKlbtE
266
+ QpiWYxeNRM+MrNuMTY6PL93M33hEtuZOYP2RwhLrw/T4bGmexHvoDV+ln94i+W1U
267
+ FoIb5yGlSxigdC9Cnln41PHKmfRTtFtKePjSDh+hsQKBgQD2ydKnUc8fwlmODmsZ
268
+ hoqUd6oGW7hElGxix/JmBXoJI87Je1xfuClw18bDPKWGn+a2gkILsjB7QRiNV76t
269
+ jnd6/XR7XZ0+VzqZ7YMKiX//WPMKDWYTVE1xPugHM5LVXBVeEQ9a1o1Kvtq6fcu6
270
+ LFAa3bx5raP7qjzG8zObJxaYNwKBgQC/t6hW6efFmaxiSwYKP646iXMmv8FnDZ5A
271
+ x+ffwa0wt61t9jLlajITTAOanXastF19SWbzbUM+3bNq65n2pXyDTCauNTA6nK+s
272
+ l0JCkFhuHjrmxHlU2z3qBxSyfQUdNlBiL7ek9XMlWOwb9An2xozGElTenedq4okg
273
+ MYqafiuATwKBgQC94sh9CYtvCmFR1nI9r7HNTs26GrSLwBAtaV9vdGNTyQOBL7QB
274
+ ynfIZZ5/9pf+H+arI0qiKTb4fzve9Va3v9ja/02y5nLo1sE2UvPzFZ0w4kYOxAR4
275
+ dvMnYZmygNJH7JRcTpAb+t24V2WA/O3Wj+YK5fXxQdPc/j3JbrOUe9z8vQKBgHnz
276
+ gYmH0H7JefYscvMh/toNhMopQAUljHz4rG6Q7HII5LEF4uo72w6bU8+OSmchdDa1
277
+ 8l72Kchbjj19ELrsGYALeK9n9f3SnYzTyro8x4OEh0Mzx1pK+99aEbhX/mDOo+NR
278
+ JygvWcdwAQDnA0+OjQ2Rq5rQJty+rStlWB1eFJ3RAoGAFEW6PQcd7O2WBLnh+il9
279
+ QJGYtfRdtqtNqVZb0jiSmfHbmXxQ2a7per/lPgujoZ0jP02UK2pjeutLNOL1aPcq
280
+ 38qt9q2rOGrgEiHOhAsGU+Yp4Rgp5rNRD0OwbP1QPMdUyP5WeW3/V3fqzd3Nu2+B
281
+ IwZjXoo/VY1ZyQ3dAQTV0TU=
282
+ -----END PRIVATE KEY-----"""