kaqing 2.0.101__tar.gz → 2.0.102__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.

Potentially problematic release.


This version of kaqing might be problematic. Click here for more details.

Files changed (197) hide show
  1. {kaqing-2.0.101 → kaqing-2.0.102}/PKG-INFO +1 -1
  2. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/cql/cql_utils.py +5 -8
  3. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/cql/cqlsh.py +5 -2
  4. {kaqing-2.0.101 → kaqing-2.0.102}/adam/repl.py +2 -2
  5. {kaqing-2.0.101 → kaqing-2.0.102}/adam/repl_commands.py +4 -2
  6. {kaqing-2.0.101 → kaqing-2.0.102}/adam/utils_k8s/cassandra_clusters.py +4 -4
  7. {kaqing-2.0.101 → kaqing-2.0.102}/adam/utils_k8s/cassandra_nodes.py +2 -2
  8. {kaqing-2.0.101 → kaqing-2.0.102}/adam/utils_k8s/pods.py +10 -4
  9. {kaqing-2.0.101 → kaqing-2.0.102}/adam/utils_k8s/statefulsets.py +2 -2
  10. kaqing-2.0.102/adam/version.py +5 -0
  11. {kaqing-2.0.101 → kaqing-2.0.102}/kaqing.egg-info/PKG-INFO +1 -1
  12. {kaqing-2.0.101 → kaqing-2.0.102}/setup.py +1 -1
  13. kaqing-2.0.101/adam/version.py +0 -5
  14. {kaqing-2.0.101 → kaqing-2.0.102}/README +0 -0
  15. {kaqing-2.0.101 → kaqing-2.0.102}/adam/__init__.py +0 -0
  16. {kaqing-2.0.101 → kaqing-2.0.102}/adam/app_session.py +0 -0
  17. {kaqing-2.0.101 → kaqing-2.0.102}/adam/apps.py +0 -0
  18. {kaqing-2.0.101 → kaqing-2.0.102}/adam/batch.py +0 -0
  19. {kaqing-2.0.101 → kaqing-2.0.102}/adam/checks/__init__.py +0 -0
  20. {kaqing-2.0.101 → kaqing-2.0.102}/adam/checks/check.py +0 -0
  21. {kaqing-2.0.101 → kaqing-2.0.102}/adam/checks/check_context.py +0 -0
  22. {kaqing-2.0.101 → kaqing-2.0.102}/adam/checks/check_result.py +0 -0
  23. {kaqing-2.0.101 → kaqing-2.0.102}/adam/checks/check_utils.py +0 -0
  24. {kaqing-2.0.101 → kaqing-2.0.102}/adam/checks/compactionstats.py +0 -0
  25. {kaqing-2.0.101 → kaqing-2.0.102}/adam/checks/cpu.py +0 -0
  26. {kaqing-2.0.101 → kaqing-2.0.102}/adam/checks/disk.py +0 -0
  27. {kaqing-2.0.101 → kaqing-2.0.102}/adam/checks/gossip.py +0 -0
  28. {kaqing-2.0.101 → kaqing-2.0.102}/adam/checks/issue.py +0 -0
  29. {kaqing-2.0.101 → kaqing-2.0.102}/adam/checks/memory.py +0 -0
  30. {kaqing-2.0.101 → kaqing-2.0.102}/adam/checks/status.py +0 -0
  31. {kaqing-2.0.101 → kaqing-2.0.102}/adam/cli.py +0 -0
  32. {kaqing-2.0.101 → kaqing-2.0.102}/adam/cli_group.py +0 -0
  33. {kaqing-2.0.101 → kaqing-2.0.102}/adam/columns/__init__.py +0 -0
  34. {kaqing-2.0.101 → kaqing-2.0.102}/adam/columns/column.py +0 -0
  35. {kaqing-2.0.101 → kaqing-2.0.102}/adam/columns/columns.py +0 -0
  36. {kaqing-2.0.101 → kaqing-2.0.102}/adam/columns/compactions.py +0 -0
  37. {kaqing-2.0.101 → kaqing-2.0.102}/adam/columns/cpu.py +0 -0
  38. {kaqing-2.0.101 → kaqing-2.0.102}/adam/columns/dir_data.py +0 -0
  39. {kaqing-2.0.101 → kaqing-2.0.102}/adam/columns/dir_snapshots.py +0 -0
  40. {kaqing-2.0.101 → kaqing-2.0.102}/adam/columns/gossip.py +0 -0
  41. {kaqing-2.0.101 → kaqing-2.0.102}/adam/columns/host_id.py +0 -0
  42. {kaqing-2.0.101 → kaqing-2.0.102}/adam/columns/memory.py +0 -0
  43. {kaqing-2.0.101 → kaqing-2.0.102}/adam/columns/node_address.py +0 -0
  44. {kaqing-2.0.101 → kaqing-2.0.102}/adam/columns/node_load.py +0 -0
  45. {kaqing-2.0.101 → kaqing-2.0.102}/adam/columns/node_owns.py +0 -0
  46. {kaqing-2.0.101 → kaqing-2.0.102}/adam/columns/node_status.py +0 -0
  47. {kaqing-2.0.101 → kaqing-2.0.102}/adam/columns/node_tokens.py +0 -0
  48. {kaqing-2.0.101 → kaqing-2.0.102}/adam/columns/node_utils.py +0 -0
  49. {kaqing-2.0.101 → kaqing-2.0.102}/adam/columns/pod_name.py +0 -0
  50. {kaqing-2.0.101 → kaqing-2.0.102}/adam/columns/volume_cassandra.py +0 -0
  51. {kaqing-2.0.101 → kaqing-2.0.102}/adam/columns/volume_root.py +0 -0
  52. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/__init__.py +0 -0
  53. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/alter_tables.py +0 -0
  54. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/app.py +0 -0
  55. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/app_ping.py +0 -0
  56. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/audit/__init__.py +0 -0
  57. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/audit/audit.py +0 -0
  58. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/audit/audit_repair_tables.py +0 -0
  59. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/audit/audit_table_completer.py +0 -0
  60. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/bash.py +0 -0
  61. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/cd.py +0 -0
  62. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/check.py +0 -0
  63. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/cli_commands.py +0 -0
  64. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/command.py +0 -0
  65. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/command_helpers.py +0 -0
  66. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/commands_utils.py +0 -0
  67. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/cp.py +0 -0
  68. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/cql/__init__.py +0 -0
  69. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/cql/cql_completions.py +0 -0
  70. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/cql/cql_table_completer.py +0 -0
  71. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/deploy/__init__.py +0 -0
  72. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/deploy/code_start.py +0 -0
  73. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/deploy/code_stop.py +0 -0
  74. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/deploy/code_utils.py +0 -0
  75. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/deploy/deploy.py +0 -0
  76. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/deploy/deploy_frontend.py +0 -0
  77. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/deploy/deploy_pg_agent.py +0 -0
  78. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/deploy/deploy_pod.py +0 -0
  79. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/deploy/deploy_utils.py +0 -0
  80. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/deploy/undeploy.py +0 -0
  81. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/deploy/undeploy_frontend.py +0 -0
  82. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/deploy/undeploy_pg_agent.py +0 -0
  83. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/deploy/undeploy_pod.py +0 -0
  84. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/describe/__init__.py +0 -0
  85. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/describe/describe.py +0 -0
  86. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/describe/describe_keyspace.py +0 -0
  87. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/describe/describe_keyspaces.py +0 -0
  88. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/describe/describe_schema.py +0 -0
  89. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/describe/describe_table.py +0 -0
  90. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/describe/describe_tables.py +0 -0
  91. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/devices.py +0 -0
  92. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/exit.py +0 -0
  93. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/help.py +0 -0
  94. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/issues.py +0 -0
  95. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/login.py +0 -0
  96. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/logs.py +0 -0
  97. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/ls.py +0 -0
  98. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/medusa/__init__.py +0 -0
  99. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/medusa/medusa.py +0 -0
  100. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/medusa/medusa_backup.py +0 -0
  101. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/medusa/medusa_restore.py +0 -0
  102. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/medusa/medusa_show_backupjobs.py +0 -0
  103. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/medusa/medusa_show_restorejobs.py +0 -0
  104. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/nodetool.py +0 -0
  105. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/nodetool_commands.py +0 -0
  106. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/param_get.py +0 -0
  107. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/param_set.py +0 -0
  108. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/postgres/__init__.py +0 -0
  109. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/postgres/postgres.py +0 -0
  110. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/postgres/postgres_ls.py +0 -0
  111. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/postgres/postgres_preview.py +0 -0
  112. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/postgres/postgres_session.py +0 -0
  113. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/postgres/postgres_utils.py +0 -0
  114. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/postgres/psql_completions.py +0 -0
  115. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/postgres/psql_table_completer.py +0 -0
  116. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/preview_table.py +0 -0
  117. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/pwd.py +0 -0
  118. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/reaper/__init__.py +0 -0
  119. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/reaper/reaper.py +0 -0
  120. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/reaper/reaper_forward.py +0 -0
  121. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/reaper/reaper_forward_stop.py +0 -0
  122. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/reaper/reaper_restart.py +0 -0
  123. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/reaper/reaper_run_abort.py +0 -0
  124. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/reaper/reaper_runs.py +0 -0
  125. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/reaper/reaper_runs_abort.py +0 -0
  126. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/reaper/reaper_schedule_activate.py +0 -0
  127. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/reaper/reaper_schedule_start.py +0 -0
  128. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/reaper/reaper_schedule_stop.py +0 -0
  129. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/reaper/reaper_schedules.py +0 -0
  130. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/reaper/reaper_session.py +0 -0
  131. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/reaper/reaper_status.py +0 -0
  132. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/repair/__init__.py +0 -0
  133. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/repair/repair.py +0 -0
  134. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/repair/repair_log.py +0 -0
  135. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/repair/repair_run.py +0 -0
  136. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/repair/repair_scan.py +0 -0
  137. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/repair/repair_stop.py +0 -0
  138. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/report.py +0 -0
  139. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/restart.py +0 -0
  140. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/rollout.py +0 -0
  141. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/shell.py +0 -0
  142. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/show/__init__.py +0 -0
  143. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/show/show.py +0 -0
  144. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/show/show_adam.py +0 -0
  145. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/show/show_app_actions.py +0 -0
  146. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/show/show_app_id.py +0 -0
  147. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/show/show_app_queues.py +0 -0
  148. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/show/show_cassandra_status.py +0 -0
  149. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/show/show_cassandra_version.py +0 -0
  150. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/show/show_commands.py +0 -0
  151. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/show/show_host.py +0 -0
  152. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/show/show_login.py +0 -0
  153. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/show/show_params.py +0 -0
  154. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/show/show_processes.py +0 -0
  155. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/show/show_repairs.py +0 -0
  156. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/show/show_storage.py +0 -0
  157. {kaqing-2.0.101 → kaqing-2.0.102}/adam/commands/watch.py +0 -0
  158. {kaqing-2.0.101 → kaqing-2.0.102}/adam/config.py +0 -0
  159. {kaqing-2.0.101 → kaqing-2.0.102}/adam/embedded_apps.py +0 -0
  160. {kaqing-2.0.101 → kaqing-2.0.102}/adam/embedded_params.py +0 -0
  161. {kaqing-2.0.101 → kaqing-2.0.102}/adam/log.py +0 -0
  162. {kaqing-2.0.101 → kaqing-2.0.102}/adam/pod_exec_result.py +0 -0
  163. {kaqing-2.0.101 → kaqing-2.0.102}/adam/repl_session.py +0 -0
  164. {kaqing-2.0.101 → kaqing-2.0.102}/adam/repl_state.py +0 -0
  165. {kaqing-2.0.101 → kaqing-2.0.102}/adam/sql/__init__.py +0 -0
  166. {kaqing-2.0.101 → kaqing-2.0.102}/adam/sql/sql_completer.py +0 -0
  167. {kaqing-2.0.101 → kaqing-2.0.102}/adam/sql/state_machine.py +0 -0
  168. {kaqing-2.0.101 → kaqing-2.0.102}/adam/sql/term_completer.py +0 -0
  169. {kaqing-2.0.101 → kaqing-2.0.102}/adam/sso/__init__.py +0 -0
  170. {kaqing-2.0.101 → kaqing-2.0.102}/adam/sso/authenticator.py +0 -0
  171. {kaqing-2.0.101 → kaqing-2.0.102}/adam/sso/authn_ad.py +0 -0
  172. {kaqing-2.0.101 → kaqing-2.0.102}/adam/sso/authn_okta.py +0 -0
  173. {kaqing-2.0.101 → kaqing-2.0.102}/adam/sso/cred_cache.py +0 -0
  174. {kaqing-2.0.101 → kaqing-2.0.102}/adam/sso/id_token.py +0 -0
  175. {kaqing-2.0.101 → kaqing-2.0.102}/adam/sso/idp.py +0 -0
  176. {kaqing-2.0.101 → kaqing-2.0.102}/adam/sso/idp_login.py +0 -0
  177. {kaqing-2.0.101 → kaqing-2.0.102}/adam/sso/idp_session.py +0 -0
  178. {kaqing-2.0.101 → kaqing-2.0.102}/adam/sso/sso_config.py +0 -0
  179. {kaqing-2.0.101 → kaqing-2.0.102}/adam/utils.py +0 -0
  180. {kaqing-2.0.101 → kaqing-2.0.102}/adam/utils_athena.py +0 -0
  181. {kaqing-2.0.101 → kaqing-2.0.102}/adam/utils_k8s/__init__.py +0 -0
  182. {kaqing-2.0.101 → kaqing-2.0.102}/adam/utils_k8s/config_maps.py +0 -0
  183. {kaqing-2.0.101 → kaqing-2.0.102}/adam/utils_k8s/custom_resources.py +0 -0
  184. {kaqing-2.0.101 → kaqing-2.0.102}/adam/utils_k8s/deployment.py +0 -0
  185. {kaqing-2.0.101 → kaqing-2.0.102}/adam/utils_k8s/ingresses.py +0 -0
  186. {kaqing-2.0.101 → kaqing-2.0.102}/adam/utils_k8s/jobs.py +0 -0
  187. {kaqing-2.0.101 → kaqing-2.0.102}/adam/utils_k8s/kube_context.py +0 -0
  188. {kaqing-2.0.101 → kaqing-2.0.102}/adam/utils_k8s/secrets.py +0 -0
  189. {kaqing-2.0.101 → kaqing-2.0.102}/adam/utils_k8s/service_accounts.py +0 -0
  190. {kaqing-2.0.101 → kaqing-2.0.102}/adam/utils_k8s/services.py +0 -0
  191. {kaqing-2.0.101 → kaqing-2.0.102}/adam/utils_k8s/volumes.py +0 -0
  192. {kaqing-2.0.101 → kaqing-2.0.102}/adam/utils_net.py +0 -0
  193. {kaqing-2.0.101 → kaqing-2.0.102}/kaqing.egg-info/SOURCES.txt +0 -0
  194. {kaqing-2.0.101 → kaqing-2.0.102}/kaqing.egg-info/dependency_links.txt +0 -0
  195. {kaqing-2.0.101 → kaqing-2.0.102}/kaqing.egg-info/entry_points.txt +0 -0
  196. {kaqing-2.0.101 → kaqing-2.0.102}/kaqing.egg-info/top_level.txt +0 -0
  197. {kaqing-2.0.101 → kaqing-2.0.102}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: kaqing
3
- Version: 2.0.101
3
+ Version: 2.0.102
4
4
  Summary: UNKNOWN
5
5
  Home-page: UNKNOWN
6
6
  License: UNKNOWN
@@ -27,28 +27,25 @@ def table_names(state: ReplState):
27
27
  return [f'{k}.{t}' for k, ts in tables(state, on_any=True).items() for t in ts]
28
28
 
29
29
  @functools.lru_cache()
30
- def tables(state: ReplState, on_any=False):
30
+ def tables(state: ReplState, on_any=False) -> dict[str, list[str]]:
31
31
  r: list[PodExecResult] = run_cql(state, 'describe tables', show_out=False, on_any=on_any)
32
32
  if not r:
33
33
  log2('No pod is available')
34
- return []
34
+ return {}
35
35
 
36
36
  return parse_cql_desc_tables(r.stdout if state.pod else r[0].stdout)
37
37
 
38
- def run_cql(state: ReplState, cql: str, opts: list = [], show_out = False, use_single_quotes = False, on_any = False):
38
+ def run_cql(state: ReplState, cql: str, opts: list = [], show_out = False, use_single_quotes = False, on_any = False, background=False):
39
39
  user, pw = Secrets.get_user_pass(state.sts if state.sts else state.pod, state.namespace, secret_path='cql.secret')
40
40
  if use_single_quotes:
41
41
  command = f"cqlsh -u {user} -p {pw} {' '.join(opts)} -e '{cql}'"
42
42
  else:
43
43
  command = f'cqlsh -u {user} -p {pw} {" ".join(opts)} -e "{cql}"'
44
44
 
45
- if not on_any:
46
- command = f'{command} &'
47
-
48
45
  if state.pod:
49
- return CassandraNodes.exec(state.pod, state.namespace, command, show_out=show_out)
46
+ return CassandraNodes.exec(state.pod, state.namespace, command, show_out=show_out, background=background)
50
47
  else:
51
- return CassandraClusters.exec(state.sts, state.namespace, command, show_out=show_out, action='cql', on_any=on_any)
48
+ return CassandraClusters.exec(state.sts, state.namespace, command, show_out=show_out, action='cql', on_any=on_any, background=background)
52
49
 
53
50
  def parse_cql_desc_tables(out: str):
54
51
  # Keyspace data_endpoint_auth
@@ -33,11 +33,14 @@ class Cqlsh(Command):
33
33
  if not self.validate_state(state):
34
34
  return state
35
35
 
36
+ background = False
36
37
  opts = []
37
38
  cqls = []
38
- for arg in args:
39
+ for index, arg in enumerate(args):
39
40
  if arg.startswith('--'):
40
41
  opts.append(arg)
42
+ elif index == len(args) -1 and arg == '&':
43
+ background = True
41
44
  elif arg != '-e':
42
45
  cqls.append(arg)
43
46
  if not cqls:
@@ -51,7 +54,7 @@ class Cqlsh(Command):
51
54
  return 'no-cql'
52
55
 
53
56
  cql = ' '.join(cqls)
54
- return run_cql(state, cql, opts, show_out=True)
57
+ return run_cql(state, cql, opts, show_out=True, background=background)
55
58
 
56
59
  def completion(self, state: ReplState) -> dict[str, any]:
57
60
  if state.device != state.C:
@@ -141,7 +141,7 @@ def enter_repl(state: ReplState):
141
141
  cmd = f'bash {cmd}'
142
142
 
143
143
  if cmd and cmd.strip(' ') and not cmds.run(cmd, state):
144
- try_device_default_action(state, cmds, cmd_list)
144
+ try_device_default_action(state, cmds, cmd_list, cmd)
145
145
  # not served by any command in the chain; try SQL query or C3 action
146
146
  # c_sql_tried = False
147
147
  # if state.device == ReplState.P:
@@ -186,7 +186,7 @@ def enter_repl(state: ReplState):
186
186
  if cmd and (state.device != ReplState.L or Config().get('audit.log-audit-queries', False)):
187
187
  executor.submit(audit_log, cmd, state)
188
188
 
189
- def try_device_default_action(state: ReplState, cmds: Command, cmd_list: list[Command]):
189
+ def try_device_default_action(state: ReplState, cmds: Command, cmd_list: list[Command], cmd: str):
190
190
  c_sql_tried = False
191
191
  if state.device == ReplState.P:
192
192
  pg = PostgresSession(state.namespace, state.pg_path)
@@ -58,7 +58,8 @@ class ReplCommands:
58
58
  cmds: list[Command] = ReplCommands.navigation() + ReplCommands.cassandra_check() + ReplCommands.cassandra_ops() + \
59
59
  ReplCommands.tools() + ReplCommands.app() + ReplCommands.exit()
60
60
 
61
- intermediate_cmds: list[Command] = [App(), Reaper(), Repair(), Deploy(), Describe(), Show(), Undeploy()]
61
+ intermediate_cmds: list[Command] = [App(), Reaper(), Repair(), Deploy(), Show(), Undeploy()]
62
+ # intermediate_cmds: list[Command] = [App(), Reaper(), Repair(), Deploy(), Describe(), Show(), Undeploy()]
62
63
  ic = [c.command() for c in intermediate_cmds]
63
64
  # 1. dedup commands
64
65
  deduped = []
@@ -79,7 +80,8 @@ class ReplCommands:
79
80
  GetParam(), SetParam(), ShowParams(), ShowKubectlCommands(), ShowLogin(), ShowAdam(), ShowHost()]
80
81
 
81
82
  def cassandra_check() -> list[Command]:
82
- return Describe.cmd_list() + [ShowCassandraStatus(),
83
+ # return Describe.cmd_list() + [ShowCassandraStatus(),
84
+ return [ShowCassandraStatus(),
83
85
  ShowCassandraVersion(), ShowRepairs(), ShowStorage(), ShowProcesses(), Check(), Issues(), NodeTool(), Report()]
84
86
 
85
87
  def cassandra_ops() -> list[Command]:
@@ -14,12 +14,12 @@ T = TypeVar('T')
14
14
  # utility collection on cassandra clusters; methods are all static
15
15
  class CassandraClusters:
16
16
  def exec(statefulset: str, namespace: str, command: str, action: str = 'action',
17
- max_workers=0, show_out=True, on_any = False, shell = '/bin/sh') -> list[PodExecResult]:
17
+ max_workers=0, show_out=True, on_any = False, shell = '/bin/sh', background = False) -> list[PodExecResult]:
18
18
  def body(executor: ThreadPoolExecutor, pod: str, namespace: str, show_out: bool):
19
19
  if executor:
20
- return executor.submit(CassandraNodes.exec, pod, namespace, command, False, False, shell)
20
+ return executor.submit(CassandraNodes.exec, pod, namespace, command, False, False, shell, background)
21
21
 
22
- return CassandraNodes.exec(pod, namespace, command, show_out=show_out)
22
+ return CassandraNodes.exec(pod, namespace, command, show_out=show_out, background=background)
23
23
 
24
24
  def post(result, show_out: bool):
25
25
  if KubeContext.show_out(show_out):
@@ -31,4 +31,4 @@ class CassandraClusters:
31
31
 
32
32
  return result
33
33
 
34
- return StatefulSets.on_cluster(statefulset, namespace, body, post=post, action=action, max_workers=max_workers, show_out=show_out, on_any=on_any)
34
+ return StatefulSets.on_cluster(statefulset, namespace, body, post=post, action=action, max_workers=max_workers, show_out=show_out, on_any=on_any, background=background)
@@ -6,8 +6,8 @@ from adam.repl_session import ReplSession
6
6
 
7
7
  # utility collection on cassandra nodes; methods are all static
8
8
  class CassandraNodes:
9
- def exec(pod_name: str, namespace: str, command: str, show_out = True, throw_err = False, shell = '/bin/sh') -> PodExecResult:
10
- r = Pods.exec(pod_name, "cassandra", namespace, command, show_out = show_out, throw_err = throw_err, shell = shell)
9
+ def exec(pod_name: str, namespace: str, command: str, show_out = True, throw_err = False, shell = '/bin/sh', background = False) -> PodExecResult:
10
+ r = Pods.exec(pod_name, "cassandra", namespace, command, show_out = show_out, throw_err = throw_err, shell = shell, background = background)
11
11
 
12
12
  if r and Config().get('repl.history.push-cat-remote-log-file', True):
13
13
  if r.log_file:
@@ -43,7 +43,11 @@ class Pods:
43
43
  namespace: str,
44
44
  body: Callable[[ThreadPoolExecutor, str, str, bool], T],
45
45
  post: Callable[[T], T] = None,
46
- action: str = 'action', max_workers=0, show_out=True, on_any = False) -> list[T]:
46
+ action: str = 'action',
47
+ max_workers=0,
48
+ show_out=True,
49
+ on_any = False,
50
+ background = False) -> list[T]:
47
51
  show_out = KubeContext.show_out(show_out)
48
52
 
49
53
  if not max_workers:
@@ -94,7 +98,9 @@ class Pods:
94
98
 
95
99
  return results
96
100
 
97
- def exec(pod_name: str, container: str, namespace: str, command: str, show_out = True, throw_err = False, shell = '/bin/sh',
101
+ def exec(pod_name: str, container: str, namespace: str, command: str,
102
+ show_out = True, throw_err = False, shell = '/bin/sh',
103
+ background = False,
98
104
  interaction: Callable[[any, list[str]], any] = None):
99
105
  if _TEST_POD_EXEC_OUTS:
100
106
  return _TEST_POD_EXEC_OUTS
@@ -106,8 +112,8 @@ class Pods:
106
112
  log_file = None
107
113
  tty = True
108
114
  exec_command = [shell, '-c', command]
109
- if command.endswith(' &'):
110
- # should be false for starting a backgroud process
115
+ if background or command.endswith(' &'):
116
+ # should be false for starting a background process
111
117
  tty = False
112
118
 
113
119
  if Config().get('repl.background-process.auto-nohup', True):
@@ -62,10 +62,10 @@ class StatefulSets:
62
62
  namespace: str,
63
63
  body: Callable[[ThreadPoolExecutor, str, str, bool], T],
64
64
  post: Callable[[T], T] = None,
65
- action: str = 'action', max_workers=0, show_out=True, on_any = False) -> list[T]:
65
+ action: str = 'action', max_workers=0, show_out=True, on_any = False, background = False) -> list[T]:
66
66
  pods = StatefulSets.pod_names(statefulset, namespace)
67
67
 
68
- return Pods.on_pods(pods, namespace, body, post=post, action=action, max_workers=max_workers, show_out=show_out, on_any=on_any)
68
+ return Pods.on_pods(pods, namespace, body, post=post, action=action, max_workers=max_workers, show_out=show_out, on_any=on_any, background=background)
69
69
 
70
70
  @functools.lru_cache()
71
71
  def pod_names(ss: str, ns: str):
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+
4
+ __version__ = "2.0.102" #: the working version
5
+ __release__ = "1.0.0" #: the release version
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: kaqing
3
- Version: 2.0.101
3
+ Version: 2.0.102
4
4
  Summary: UNKNOWN
5
5
  Home-page: UNKNOWN
6
6
  License: UNKNOWN
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name='kaqing',
5
- version='2.0.101',
5
+ version='2.0.102',
6
6
  packages=find_packages(),
7
7
  entry_points={
8
8
  'console_scripts': [
@@ -1,5 +0,0 @@
1
- #!/usr/bin/env python
2
- # -*- coding: utf-8 -*-
3
-
4
- __version__ = "2.0.101" #: the working version
5
- __release__ = "1.0.0" #: the release version
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes