kaqing 2.0.200__py3-none-any.whl → 2.0.211__py3-none-any.whl

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 (61) hide show
  1. adam/batch.py +1 -1
  2. adam/commands/app/utils_app.py +1 -1
  3. adam/commands/cql/completions_c.py +1 -1
  4. adam/commands/cql/utils_cql.py +14 -13
  5. adam/commands/devices/device.py +1 -1
  6. adam/commands/download_cassandra_log.py +2 -2
  7. adam/commands/export/export_databases.py +13 -8
  8. adam/commands/export/export_sessions.py +12 -11
  9. adam/commands/export/exporter.py +140 -53
  10. adam/commands/export/import_session.py +0 -4
  11. adam/commands/export/importer.py +11 -11
  12. adam/commands/export/importer_athena.py +15 -6
  13. adam/commands/export/importer_sqlite.py +19 -8
  14. adam/commands/export/utils_export.py +37 -15
  15. adam/commands/postgres/postgres_databases.py +1 -1
  16. adam/commands/postgres/postgres_ls.py +1 -1
  17. adam/commands/postgres/utils_postgres.py +2 -1
  18. adam/commands/show/show_cassandra_status.py +3 -10
  19. adam/commands/show/show_processes.py +1 -1
  20. adam/commands/show/show_storage.py +2 -1
  21. adam/embedded_params.py +1 -1
  22. adam/repl_commands.py +13 -12
  23. adam/sso/cred_cache.py +2 -5
  24. adam/utils.py +122 -71
  25. adam/utils_k8s/app_clusters.py +10 -3
  26. adam/utils_k8s/app_pods.py +9 -3
  27. adam/utils_k8s/cassandra_clusters.py +4 -4
  28. adam/utils_k8s/cassandra_nodes.py +13 -7
  29. adam/{pod_exec_result.py → utils_k8s/pod_exec_result.py} +8 -2
  30. adam/utils_k8s/pods.py +34 -29
  31. adam/utils_local.py +78 -2
  32. adam/utils_repl/repl_completer.py +6 -2
  33. adam/utils_sqlite.py +3 -8
  34. adam/version.py +1 -1
  35. {kaqing-2.0.200.dist-info → kaqing-2.0.211.dist-info}/METADATA +1 -1
  36. {kaqing-2.0.200.dist-info → kaqing-2.0.211.dist-info}/RECORD +39 -61
  37. adam/commands/alter_tables.py +0 -66
  38. adam/commands/cassandra/download_cassandra_log.py +0 -45
  39. adam/commands/cassandra/nodetool.py +0 -64
  40. adam/commands/cassandra/nodetool_commands.py +0 -120
  41. adam/commands/cassandra/restart_cluster.py +0 -47
  42. adam/commands/cassandra/restart_node.py +0 -51
  43. adam/commands/cassandra/restart_nodes.py +0 -47
  44. adam/commands/cassandra/rollout.py +0 -88
  45. adam/commands/cat.py +0 -36
  46. adam/commands/cd.py +0 -41
  47. adam/commands/download_file.py +0 -47
  48. adam/commands/find_files.py +0 -51
  49. adam/commands/find_processes.py +0 -76
  50. adam/commands/head.py +0 -36
  51. adam/commands/ls.py +0 -41
  52. adam/commands/os/cat.py +0 -36
  53. adam/commands/os/download_file.py +0 -47
  54. adam/commands/os/find_files.py +0 -51
  55. adam/commands/os/find_processes.py +0 -76
  56. adam/commands/os/head.py +0 -36
  57. adam/commands/os/shell.py +0 -41
  58. adam/commands/shell.py +0 -41
  59. {kaqing-2.0.200.dist-info → kaqing-2.0.211.dist-info}/WHEEL +0 -0
  60. {kaqing-2.0.200.dist-info → kaqing-2.0.211.dist-info}/entry_points.txt +0 -0
  61. {kaqing-2.0.200.dist-info → kaqing-2.0.211.dist-info}/top_level.txt +0 -0
adam/utils_local.py CHANGED
@@ -1,4 +1,80 @@
1
+ import os
2
+ import subprocess
3
+ import traceback
4
+
1
5
  from adam.config import Config
6
+ from adam.utils import ExecResult, creating_dir, debug
7
+
8
+ def local_qing_dir():
9
+ return creating_dir(Config().get('local-qing-dir', '/tmp/qing-db/q'))
10
+
11
+ def local_downloads_dir():
12
+ return creating_dir(Config().get('local-downloads-dir', '/tmp/qing-db/q/downloads'))
13
+
14
+ class LocalExecResult(ExecResult):
15
+ def __init__(self, stdout: str, stderr: str, command: str = None, code = 0, log_file: str = None):
16
+ self.stdout: str = stdout
17
+ self.stderr: str = stderr
18
+ self.command: str = command
19
+ self.code = code
20
+ self.pod = 'local'
21
+ self.log_file = log_file
22
+
23
+ def exit_code(self) -> int:
24
+ return self.code
25
+
26
+ def cat_log_file_cmd(self):
27
+ if self.log_file:
28
+ return f':cat {self.log_file}'
29
+
30
+ return None
31
+
32
+ def __str__(self):
33
+ return f'{"OK" if self.exit_code() == 0 else self.exit_code()} {self.command}'
34
+
35
+ def __audit_extra__(self):
36
+ return self.log_file if self.log_file else None
37
+
38
+ def local_exec(cmd: list[str], shell=False, show_out=False):
39
+ stdout = ''
40
+ stderr = ''
41
+ returncode = 0
42
+
43
+ try:
44
+ if show_out:
45
+ debug(' '.join(cmd))
46
+
47
+ r = subprocess.run(cmd, capture_output=True, text=True, shell=shell)
48
+ stdout = r.stdout
49
+ stderr = r.stderr
50
+ returncode = r.returncode
51
+ except FileNotFoundError as e:
52
+ pass
53
+
54
+ return LocalExecResult(stdout, stderr, ' '.join(cmd), returncode)
55
+
56
+ def find_local_files(pattern: str = f'{local_qing_dir()}/*', file_type: str = None, max_depth = 0, mmin: int = 0):
57
+ # find . -maxdepth 1 -type f -name '*'
58
+ log_files = []
59
+ try:
60
+ dir = os.path.dirname(pattern)
61
+ base = os.path.basename(pattern)
62
+ cmd = ['find', dir]
63
+ if file_type:
64
+ cmd += ['-type', file_type]
65
+ if max_depth:
66
+ cmd += ['-maxdepth', str(max_depth)]
67
+ if mmin:
68
+ cmd += ['-mmin', f'-{mmin}']
69
+ cmd += ['-name', base]
70
+
71
+ stdout = local_exec(cmd, show_out=Config().is_debug()).stdout
72
+
73
+ for line in stdout.split('\n'):
74
+ line = line.strip(' \r')
75
+ if line:
76
+ log_files.append(line)
77
+ except:
78
+ traceback.print_exc()
2
79
 
3
- def local_tmp_dir():
4
- return Config().get('local-tmp-dir', '/tmp/qing-db')
80
+ return log_files
@@ -76,8 +76,12 @@ class ReplCompleter(NestedCompleter):
76
76
  cursor_position=document.cursor_position - move_cursor,
77
77
  )
78
78
 
79
- for c in completer.get_completions(new_document, complete_event):
80
- yield c
79
+ try:
80
+ # potential thread racing
81
+ for c in completer.get_completions(new_document, complete_event):
82
+ yield c
83
+ except:
84
+ pass
81
85
 
82
86
  # No space in the input: behave exactly like `WordCompleter`.
83
87
  else:
adam/utils_sqlite.py CHANGED
@@ -7,7 +7,7 @@ import sqlite3
7
7
  import pandas
8
8
 
9
9
  from adam.config import Config
10
- from adam.utils import tabulize, log, wait_log
10
+ from adam.utils import creating_dir, tabulize, log, wait_log
11
11
 
12
12
  class CursorHandler:
13
13
  def __init__(self, conn: sqlite3.Connection):
@@ -53,7 +53,7 @@ class SQLite:
53
53
  return CursorHandler(conn)
54
54
 
55
55
  def local_db_dir():
56
- return Config().get('export.sqlite.local-db-dir', '/tmp/qing-db')
56
+ return creating_dir(Config().get('export.sqlite.local-db-dir', '/tmp/qing-db/q/export/db'))
57
57
 
58
58
  def keyspace(database: str):
59
59
  return '_'.join(database.replace(".db", "").split('_')[1:])
@@ -95,8 +95,6 @@ class SQLite:
95
95
  conn.close()
96
96
 
97
97
  def connect(database: str, keyspace: str = None):
98
- os.makedirs(SQLite.local_db_dir(), exist_ok=True)
99
-
100
98
  if keyspace:
101
99
  return sqlite3.connect(f'{SQLite.local_db_dir()}/{database}_{keyspace}.db')
102
100
  else:
@@ -131,7 +129,4 @@ class SQLite:
131
129
  return len(lines), log_file
132
130
 
133
131
  def query(conn, sql: str) -> tuple[str, str, list]:
134
- return pandas.read_sql_query(sql, conn)
135
-
136
- def log_prefix():
137
- return Config().get('export.log-prefix', '/tmp/qing')
132
+ return pandas.read_sql_query(sql, conn)
adam/version.py CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
 
4
- __version__ = "2.0.200" #: the working version
4
+ __version__ = "2.0.211" #: the working version
5
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.200
3
+ Version: 2.0.211
4
4
  Summary: UNKNOWN
5
5
  Home-page: UNKNOWN
6
6
  License: UNKNOWN
@@ -1,26 +1,25 @@
1
1
  adam/__init__.py,sha256=is7iqn2nhRzPymhTEajITEFVyvROZ9GWfNsZX3L5g_o,45
2
2
  adam/app_session.py,sha256=I2EX7eNRCP6T9u1BTVLs-5SB1ypyhSwNvVmi4nwoU-0,6836
3
3
  adam/apps.py,sha256=f1qsIOYjn4fdpCvMfOBns5YEiA5fMm7yZu3cQrK6z2M,7049
4
- adam/batch.py,sha256=9naBuqH0Kg_ldVvckyJmo9nSzjn4AFC5uFyJJWnlHY0,24132
4
+ adam/batch.py,sha256=EHo97iZn8ZC-QOq9pSGQy-shXCh0XGWDx7DYpXOQxfM,24135
5
5
  adam/cli.py,sha256=03pIZdomAu7IL-GSP6Eun_PKwwISShRAmfx6eVRPGC0,458
6
6
  adam/cli_group.py,sha256=W3zy1BghCtVcEXizq8fBH-93ZRVVwgAyGPzy0sHno1Y,593
7
7
  adam/config.py,sha256=ra2pm1NsHWLUXhhn-ES_tI5MCZx44x2eBoHAjnCd1JA,2642
8
8
  adam/embedded_apps.py,sha256=lKPx63mKzJbNmwz0rgL4gF76M9fDGxraYTtNAIGnZ_s,419
9
- adam/embedded_params.py,sha256=oJjtr0d1VdXw2MtEorm3tKYv1LRkGNfvZPMX2EWiX8Q,6434
9
+ adam/embedded_params.py,sha256=LDI2ph8YRoB-t_rSR9B3JqsnXsk_AvNyT6CgFAly4is,6505
10
10
  adam/log.py,sha256=vcJ1Q8LLnt3NSXqpVcKjAI2OZE6KaD3PEi1kfu_D8qs,1156
11
- adam/pod_exec_result.py,sha256=85jy_5dS6TEEk5ijU0B62YfUycxmD3dG8mhIHFPipc8,1260
12
11
  adam/repl.py,sha256=V5q0AfFnFKPyOZNPdy9WZGJCH6_jyOTCxa3WS9jU9Ro,7623
13
- adam/repl_commands.py,sha256=dZn6a9kxZgYgFukS5LQY8CQ0woiuVqmPrQMHMLV-ZGY,7319
12
+ adam/repl_commands.py,sha256=kvf5W5Lzs7VQgiOopIXD2D-kgmJ_d86VaU-Hn2pxUJY,7405
14
13
  adam/repl_session.py,sha256=BWjPJq3lHrK6I5wxMqgKyv9_k98yEScn1-WHqsEk0k8,823
15
14
  adam/repl_state.py,sha256=jdW56D2gjIEM40ttYtsr2MyIC8oW4KpxuhfQLUgTWZA,16168
16
- adam/utils.py,sha256=KZQN2JsGjwJup7jowDrLx5b_y2OQXv4FviSpYmTT04s,24720
15
+ adam/utils.py,sha256=AV32tqeGjDrk29oJqDTwY80WI9hgkQYUIJYitCbpvdw,26440
17
16
  adam/utils_athena.py,sha256=13ZtBlOIDhIvZYRGRLtDrKrEcn4VIq87IZVrIkM1mAM,5389
18
17
  adam/utils_audits.py,sha256=lZ2U1AcROxLB4652auG091QFTPs_YNzbtdXBiK6bY_Y,4063
19
18
  adam/utils_issues.py,sha256=nWhzUXmD2IfbT8MzjdyvuvpKrtUoieF74O2joaWFpUU,1438
20
- adam/utils_local.py,sha256=3RIvP5ZluJhOl-z9qi5U4bLFP5_vuYGnjcY-koO40lE,109
19
+ adam/utils_local.py,sha256=Q4jqAenWQYvL6VLb0BlAJ4Z4VoWQIZBrrfyEDCS9qAw,2308
21
20
  adam/utils_net.py,sha256=byEtNVr8iG9UaD7dM77dN2WEBClB7YNKult7LKFTCOc,428
22
- adam/utils_sqlite.py,sha256=z34AxQL1HZBcv704NXZsMerWt-BPtnCUUw1rZHQB9Bw,4330
23
- adam/version.py,sha256=G2YWxjnq2Atug-Qnc2AKsLrdY1A0qKD_gCj28i17Ouo,140
21
+ adam/utils_sqlite.py,sha256=NexOm1Fxq99dLvBn7XhxCh1SinwBtVUzadbyS7lorkU,4233
22
+ adam/version.py,sha256=LA8oGVlPQjhR_LJojVqMHHE-hfv4XGeJq97PtcEYApY,140
24
23
  adam/checks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
24
  adam/checks/check.py,sha256=Qopr3huYcMu2bzQgb99dEUYjFzkjKHRI76S6KA9b9Rk,702
26
25
  adam/checks/check_context.py,sha256=FEHkQ32jY1EDopQ2uYWqy9v7aEEX1orLpJWhopwAlh4,402
@@ -55,9 +54,6 @@ adam/columns/pod_name.py,sha256=IYw0ZKA7Fb9LaGXENqzZTiTgL98tahwFRtfy0KkKh2Q,280
55
54
  adam/columns/volume_cassandra.py,sha256=9KRNOzjNYganI9avN6zaA5_-7yxD4rV-KNxro9CSUg4,753
56
55
  adam/columns/volume_root.py,sha256=29ujLoCAf9LO75u62LxEaPD58s6ihV-tcK17OeLSOM0,556
57
56
  adam/commands/__init__.py,sha256=xMC9cRhdshstKEgmu5-euiAE53vvWItKqUzlKhTteAg,1302
58
- adam/commands/alter_tables.py,sha256=yNqIYDoZd2xZEl3hc8E6V1Br6_BEM3X7DCnXFGuR1pQ,3216
59
- adam/commands/cat.py,sha256=_h8V1g57zKCeSeE7MVuqCC3k90_q3fd19FvdvCP8Q9g,1278
60
- adam/commands/cd.py,sha256=bvFgqzd0b4BROExcCaN_y-_tnyUUDEuoQk3dXest9l0,1330
61
57
  adam/commands/check.py,sha256=5aa4DAIMB24HNY-zYwHGthQM_9qwB-vlKpzeaq65HBs,2314
62
58
  adam/commands/cli_commands.py,sha256=sbGi1AoSlZsgUmaZ1p5Jk5gQ0VlkET9czUWq-Ars93w,3765
63
59
  adam/commands/clipboard_copy.py,sha256=2FOBPbrb59D3unNUaKJhkEPJQ7f09O0JQkqqP567_a4,3171
@@ -65,19 +61,14 @@ adam/commands/code.py,sha256=q95MN9Ts7xjCAUZB50Q8MJYNPzny-4FeI2LdwMBzozQ,1890
65
61
  adam/commands/command.py,sha256=W9ynh5kIy7h3r-ksHFP2CbU9ZrukxfMr_LpRir2qzqc,9820
66
62
  adam/commands/command_helpers.py,sha256=leOJJK1UXczNTJHN9TGMCbIpUpmpreULvQ-TvnsYS7w,1134
67
63
  adam/commands/commands_utils.py,sha256=NmNQD_m6kcXp1aW4SuLssk4V6zOWzmcqzWOGXAsTQ5g,2948
68
- adam/commands/download_cassandra_log.py,sha256=U7pojvjdZ5YB_qW34V6GvthB4JLRAU7CxXwG0kM_vZU,1643
69
- adam/commands/download_file.py,sha256=xY5-o1cKhIvToVFz8iT3kcU5zBuIiOdPcGQz3oENnak,1839
64
+ adam/commands/download_cassandra_log.py,sha256=GXn4pqimt8zK5_7HqkFM_9Qir-ktkpY4Dw_JZcfpaZ8,1651
70
65
  adam/commands/exit.py,sha256=T7bCEShd6MXQ8rXak7vGZTvqEOejPOUPtbdfy7d8WWA,753
71
- adam/commands/find_files.py,sha256=2yx-RhOHvok0y0wxYf-OChWghEQc_pnp3B_nASt33zk,1480
72
- adam/commands/find_processes.py,sha256=Ta1l5zddaazoWjaKZb8LRa4sfemr8HbOAdlLXNWBGrM,2908
73
66
  adam/commands/generate_report.py,sha256=KNFnRxwKDfXi1kfoqQQBGd0NH0AathgyQwUMGJMDGM4,1743
74
- adam/commands/head.py,sha256=NeR1xRpmbyUQI5IgRE-zdWyyjs9C-C8E-g0WNulZ2Ck,1284
75
67
  adam/commands/help.py,sha256=SYaJL-7mApfSlfkDvY2uKl7onyr54ntDmMSQ18sfaZw,1886
76
68
  adam/commands/intermediate_command.py,sha256=vT802djwMyMgcidZufa98GnFiWHgmNKU1XFp7Y_ovhU,1784
77
69
  adam/commands/issues.py,sha256=5evrVBzc4sCMHwQ9LmuGAgoPBINr-OCa9FZMJVJDwH8,1431
78
70
  adam/commands/kubectl.py,sha256=kCXIl_9vNDW6CBirCeowQjJ2UhidlCEDBP8XOVIloF8,993
79
71
  adam/commands/login.py,sha256=rY8P3wpWZOBN-68QRZfDfBvd0wjLUkwbTNPduqAOoVA,2073
80
- adam/commands/ls.py,sha256=vUQrOaptKcC9HHzQaL_82h9bWoUxwGu0YSg8YKOwrBI,1282
81
72
  adam/commands/nodetool.py,sha256=3z55UTx7ZKPLwrgZXAUL9nFTKZtEx-jxH6y_gCJdue0,2024
82
73
  adam/commands/nodetool_commands.py,sha256=5IgWC3rmeDD1cgwqQjiiWzi-wJpJ3n_8pAzz_9phXuk,2635
83
74
  adam/commands/param_get.py,sha256=3IpAn4_T-_NlSkEXyv0jkBJ_aHE-e9hdY5YVaZlIKBI,1357
@@ -88,7 +79,6 @@ adam/commands/restart_cluster.py,sha256=uY7z5lRsNR7lWyoXSwqUwYPVmTpZfsYiu9dkz2Tx
88
79
  adam/commands/restart_node.py,sha256=TDykeAxNT4avVcrrAisFKly9ZvP0kV2Nhev0II_7Tec,1598
89
80
  adam/commands/restart_nodes.py,sha256=PIbTPDBF1jY9Rk7QL_-IfNhOZaUrdNmCLhhIOPxAE28,1653
90
81
  adam/commands/rollout.py,sha256=BmlvnVffPGCERfXxdJJFnxtU3yDILp5016N7C-EWCOE,3032
91
- adam/commands/shell.py,sha256=UQs4TEIDiZOjJrVsZJ_O9DDtn_k3K7-ifg1ZBsJFnsU,1155
92
82
  adam/commands/watch.py,sha256=q3kJd6YSO_ZxQ107EeIWZsW8m2X7YIGT3QPXjKloTIo,2459
93
83
  adam/commands/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
94
84
  adam/commands/app/app.py,sha256=4N1bkXItOkuw_uXQNyB24eZ7vqUIbafbKRnf1DociSw,1152
@@ -96,7 +86,7 @@ adam/commands/app/app_ping.py,sha256=VOPaWE2DQjAXlN1uonH2chNItiTUt7HqltQDA2LkwrU
96
86
  adam/commands/app/show_app_actions.py,sha256=A2voQ4cKZatQLNaTCf05Z0I7U77UPmtzoxeCaURiiYU,1731
97
87
  adam/commands/app/show_app_id.py,sha256=4Y4uTZa7J5NJI6W8OTqtS5ynCoflYiPVz98c-h3hNBo,1359
98
88
  adam/commands/app/show_app_queues.py,sha256=F6qFqnUqiNocvWROj8oXQmmLYU9e8S51N8ao6P0wp-Y,1234
99
- adam/commands/app/utils_app.py,sha256=ukzlaktcTyJ9mmTkhNhBrIzSXDlrFqRmFeYNiCGPasU,3335
89
+ adam/commands/app/utils_app.py,sha256=DTfRNmowCiYTR36R9MgjRCpR_ug4wtPMqlc2FeR9IGM,3345
100
90
  adam/commands/audit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
101
91
  adam/commands/audit/audit.py,sha256=ifo7A9h5H_nQASQVdAH9lg0WugSgd6Nt6x1gRqaMN38,2442
102
92
  adam/commands/audit/audit_repair_tables.py,sha256=m2GKLoGw2TuwPmfMQxN0t9h1V3q-RHylVpPafQjUNkk,2577
@@ -111,18 +101,11 @@ adam/commands/bash/bash.py,sha256=wha8gxFoxZGnNoQjpAJzaoOYUWuz0neEKCFOKsrOYKo,12
111
101
  adam/commands/bash/bash_completer.py,sha256=IStUg5LLTqc3vjupw33WtXUG9zRQ37BctjDYGDyYEXU,3883
112
102
  adam/commands/bash/utils_bash.py,sha256=Wsz0TdALDNTfgqWa7nRqh00kALvA67OqV3NdYMYy7_Q,429
113
103
  adam/commands/cassandra/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
114
- adam/commands/cassandra/download_cassandra_log.py,sha256=U7pojvjdZ5YB_qW34V6GvthB4JLRAU7CxXwG0kM_vZU,1643
115
- adam/commands/cassandra/nodetool.py,sha256=bM3VSA66TLhbFOqUV9wKeaonqumFtkxrRHGooWtl278,2034
116
- adam/commands/cassandra/nodetool_commands.py,sha256=5IgWC3rmeDD1cgwqQjiiWzi-wJpJ3n_8pAzz_9phXuk,2635
117
- adam/commands/cassandra/restart_cluster.py,sha256=uY7z5lRsNR7lWyoXSwqUwYPVmTpZfsYiu9dkz2Txaas,1609
118
- adam/commands/cassandra/restart_node.py,sha256=TDykeAxNT4avVcrrAisFKly9ZvP0kV2Nhev0II_7Tec,1598
119
- adam/commands/cassandra/restart_nodes.py,sha256=PIbTPDBF1jY9Rk7QL_-IfNhOZaUrdNmCLhhIOPxAE28,1653
120
- adam/commands/cassandra/rollout.py,sha256=BmlvnVffPGCERfXxdJJFnxtU3yDILp5016N7C-EWCOE,3032
121
104
  adam/commands/cql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
122
105
  adam/commands/cql/alter_tables.py,sha256=igFeIhvanSTUSRZOtZxdR7E4a8G4Mi_h7vTnUS5aiuA,3217
123
- adam/commands/cql/completions_c.py,sha256=BF-T79HiI0DhmuhckdF41_J3STWErIvRl9QkmWln6Zw,1634
106
+ adam/commands/cql/completions_c.py,sha256=S5euGPerY6LlQXf4O0OWFc8z3dzeahB9mALdQB4pQgE,1646
124
107
  adam/commands/cql/cqlsh.py,sha256=UpMQlCabsRwICebd37S655lRlPekHuv_dlXExlqNJ4k,2164
125
- adam/commands/cql/utils_cql.py,sha256=fMlJ2OzLqubnSBOlO10TVs0BokubvcHYK6NzZWBqDPw,11738
108
+ adam/commands/cql/utils_cql.py,sha256=zIBRa_nqZniqkR5iwx58RSfADxC70wnX20YWlz4dpus,11855
126
109
  adam/commands/debug/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
127
110
  adam/commands/debug/debug.py,sha256=q2RtMKZ0OH-O3suY6rrSmiRXn_6nyGBNk49G2Y9vW4I,685
128
111
  adam/commands/debug/debug_completes.py,sha256=jn1KxwF88YV8S0DUHSTFdhww091GfIxV9Qmp98uU7Zs,1161
@@ -141,7 +124,7 @@ adam/commands/deploy/undeploy_frontend.py,sha256=khgxZ94bXlQ8c737B_J-gE0pNBA0GaI
141
124
  adam/commands/deploy/undeploy_pg_agent.py,sha256=X73_0dadpn_DFW1rQMQssE3NQbmovllEXkxFDAunPms,1259
142
125
  adam/commands/deploy/undeploy_pod.py,sha256=Pc5xpU4z5_CHrtz3cAzReT4Qxyks2kQ-uWSRUnAYiJ4,1907
143
126
  adam/commands/devices/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
144
- adam/commands/devices/device.py,sha256=j6HK9WJ9QXqPorcs5C7GpuKPWwUyJI_b20K1K3McyhM,4372
127
+ adam/commands/devices/device.py,sha256=uSff7S57MtTHhWEyheTqaLD9QidloDyjScrtg5tm1Cs,4382
145
128
  adam/commands/devices/device_app.py,sha256=ib32_a4qK3BOu2jCzedG5IZFua1OvZmXdVj_aforoxE,6373
146
129
  adam/commands/devices/device_auit_log.py,sha256=kOP5QwDixwVPupd1A0PG2RY0fq_aeEdx4MRWegnj2Ow,1560
147
130
  adam/commands/devices/device_cass.py,sha256=45tEDKETZF20Bj3lPyFLkcJ7VDmGVB8mVtBWq8YGcps,6754
@@ -156,22 +139,22 @@ adam/commands/export/download_export_session.py,sha256=hy8WJZZJhdaZta6VCUZicdCEc
156
139
  adam/commands/export/drop_export_database.py,sha256=3S6yj0OuMknPZ1MpPad7eCm1V6BdDn6enHcjRC_fjek,1232
157
140
  adam/commands/export/drop_export_databases.py,sha256=WzOm4Ykf1O_ZRjF8oZn_PaKTuIzxFeRJhqWfsENCstg,1095
158
141
  adam/commands/export/export.py,sha256=MaEPS_QKmI9SGnLbwJRNKguk4ODx-YsbAziUYjf0_Dw,1293
159
- adam/commands/export/export_databases.py,sha256=gI8OMwYup9K-AO13F-dQHNhH0o7NyXAZyRWgbVJMjw4,8240
142
+ adam/commands/export/export_databases.py,sha256=jrWGZiladBldht9mqcYJLSud4EbItR6fSXT_5pJpCdc,8513
160
143
  adam/commands/export/export_select.py,sha256=tfy6JYEobbJ86-HRd5I02OnRqB_xEVtSIQaPYK6UThQ,984
161
- adam/commands/export/export_sessions.py,sha256=WLW40Au7bD4ygEUyu4wOR_fJYK1bjMlexq1GDPt6dOA,7425
144
+ adam/commands/export/export_sessions.py,sha256=bk8cXJ4HRUu3RraFfEaRGI3acjhv9NwTV5Ota-b70_0,7386
162
145
  adam/commands/export/export_use.py,sha256=H7F43ub944sCPxwd2Z0KpDiUhACg049BBak3uhQcT68,1412
163
146
  adam/commands/export/export_x_select.py,sha256=kHDOd_RIz3JucXE-RGNpX9eBVaaBzwefEok5pdcroAM,1656
164
- adam/commands/export/exporter.py,sha256=eAD2CJO30DAYB4zwgdBtKUP4tu9xt8gRMGk8wnYoi64,15236
147
+ adam/commands/export/exporter.py,sha256=YGsPNJ2R_YQ_13fg0SK8QXQpGfPCDdaU0V0NPLwzJnU,19159
165
148
  adam/commands/export/import_files.py,sha256=nSgez-i1tO8sPQV4mlfplFy-cRBC3ETCJi-oU_EBnaY,1629
166
- adam/commands/export/import_session.py,sha256=qv2wlzNkUu-lm7apBAbwf8rImnsyOvRpxGPhsOmCzvQ,1644
167
- adam/commands/export/importer.py,sha256=QI_SH3PvIJWQtC8wo5cjz_0IEZ1ts760zGazXw2Kj4A,2726
168
- adam/commands/export/importer_athena.py,sha256=x3onD5dKvUq1Dn429AZfD72tD0aNWk_NKJN-b4aHxoM,6290
169
- adam/commands/export/importer_sqlite.py,sha256=t0zYiV5pp3X22eO7wKGc4MbP9Gp4AWTVAaGJMzuexR0,2713
149
+ adam/commands/export/import_session.py,sha256=Z2L26DHJzvXy4DtXs2E9cXl2cLFMeKbfqDPVwdK0t7s,1418
150
+ adam/commands/export/importer.py,sha256=y8Rg8hUKfWalL6pvDgcBhgH_njbiOzFjgElNDo0n_yI,2694
151
+ adam/commands/export/importer_athena.py,sha256=5tlwAPVikxYc3u9b6KjtjQOh6j8-oeO9MBwvfrmowHk,6640
152
+ adam/commands/export/importer_sqlite.py,sha256=7PLuuO1-xRAt1m0qu7wHMkbnqk4qtvHPExbOzBAt5J8,3113
170
153
  adam/commands/export/show_column_counts.py,sha256=3kvS0tO2A-FOG2IM2N55mkOdUdxLucDcjGNbBikljJ4,1855
171
154
  adam/commands/export/show_export_databases.py,sha256=zSjZ8tuMXj1dZ6iIXwFVqVk7hokH1hbnYwkXLZE7Sjk,1277
172
155
  adam/commands/export/show_export_session.py,sha256=hrUJFIaycnCpcv5wZ8bxCbYtzvdRm-JIswm_gvjzk4g,1291
173
156
  adam/commands/export/show_export_sessions.py,sha256=s5m9oGlrJe3NWE-TQZszis0WGbKBs4T6C_NeihfYdxs,1130
174
- adam/commands/export/utils_export.py,sha256=c3gMuQq8mvhwdG7BcK14_0NAQgifAaT97R0OBWGhBGY,12464
157
+ adam/commands/export/utils_export.py,sha256=_j9cW_NAkTAC2kIAa3g9aFKkaunYHVivYIVyDrgTLA4,12968
175
158
  adam/commands/medusa/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
176
159
  adam/commands/medusa/medusa.py,sha256=Ey2kJpoKqPFP6m623B3ciMoLur5SVcHEBYsvW7G7aAY,958
177
160
  adam/commands/medusa/medusa_backup.py,sha256=n-caJjd3WObm2tplVKUG-GahWoOwDS2pk_MZKQl0S7Q,1812
@@ -180,19 +163,13 @@ adam/commands/medusa/medusa_show_backupjobs.py,sha256=rYP5r_NXAQcWrsstv4UngAb4gb
180
163
  adam/commands/medusa/medusa_show_restorejobs.py,sha256=rgNg-fy0EbTBd2PghOM-w16PrtqL9QCE0Z0vhIcK8CE,1584
181
164
  adam/commands/medusa/utils_medusa.py,sha256=7uwIFJDGYBATnl46coO24tGw4a-07mVLB82Os4pTkKo,594
182
165
  adam/commands/os/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
183
- adam/commands/os/cat.py,sha256=_h8V1g57zKCeSeE7MVuqCC3k90_q3fd19FvdvCP8Q9g,1278
184
- adam/commands/os/download_file.py,sha256=xY5-o1cKhIvToVFz8iT3kcU5zBuIiOdPcGQz3oENnak,1839
185
- adam/commands/os/find_files.py,sha256=2yx-RhOHvok0y0wxYf-OChWghEQc_pnp3B_nASt33zk,1480
186
- adam/commands/os/find_processes.py,sha256=Ta1l5zddaazoWjaKZb8LRa4sfemr8HbOAdlLXNWBGrM,2908
187
- adam/commands/os/head.py,sha256=NeR1xRpmbyUQI5IgRE-zdWyyjs9C-C8E-g0WNulZ2Ck,1284
188
- adam/commands/os/shell.py,sha256=UQs4TEIDiZOjJrVsZJ_O9DDtn_k3K7-ifg1ZBsJFnsU,1155
189
166
  adam/commands/postgres/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
190
167
  adam/commands/postgres/completions_p.py,sha256=I4E88nKBzSegm0EY0qRcQq4pkz4iEQnS48CFXK9AXYU,727
191
168
  adam/commands/postgres/postgres.py,sha256=kfqFYdcEdev8p9yjAxYXsTzC3hKrazge2zPBXHF37uw,3311
192
- adam/commands/postgres/postgres_databases.py,sha256=e0AbF_tVtd91fZgt_Pw9W0H35uZ0bllok9fc3xVkb9Y,11305
193
- adam/commands/postgres/postgres_ls.py,sha256=yT-V1mGnvImaIr4s75FUsV5klcrOB7HHJwWbY6h1Kpk,1111
169
+ adam/commands/postgres/postgres_databases.py,sha256=DbDUJS3cVfkgyeSn5WoQte-Vb8SjjnwQP6M8zAXU7cI,11297
170
+ adam/commands/postgres/postgres_ls.py,sha256=ZnET7KfFZ9gxqsmji11dcU3SRci-_T7VsAnv77c3Vik,1114
194
171
  adam/commands/postgres/postgres_preview.py,sha256=Bmw3YC98tFdjUx2CRHOakcvLHCOLtEiKxvNDjlDoRo0,1174
195
- adam/commands/postgres/utils_postgres.py,sha256=XpcpX6ht_YsXgsvh-0UPZhaVmhu5oEN_k7X0LO6k7-E,2434
172
+ adam/commands/postgres/utils_postgres.py,sha256=0CAHiNlTuZFj1LrjcrRMenAwzBdGww1qSkpMZtYsPbg,2495
196
173
  adam/commands/reaper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
197
174
  adam/commands/reaper/reaper.py,sha256=Xrfjvqtn5txnaMwofBb77yEsmSYLO_-Bi43ABq2ZmaQ,1398
198
175
  adam/commands/reaper/reaper_forward.py,sha256=O5L4SnZdeFMtJqc5SHYVCYQcfkQ2-JnDN9rEX7u_8Xg,3307
@@ -218,14 +195,14 @@ adam/commands/show/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuF
218
195
  adam/commands/show/show.py,sha256=h8AAGyiilZ_Wc_SJvR1gT8Ie8RKQprZfNa07zy2e2lg,1728
219
196
  adam/commands/show/show_adam.py,sha256=zmzgIvWo9hg0v6YyA26N-xGZipVome22AtrZ9iI6oSw,1298
220
197
  adam/commands/show/show_cassandra_repairs.py,sha256=ygdUkiFgvaYxTEoJaJEONfpDOEzZLOPMXz1n_VZaiwc,1306
221
- adam/commands/show/show_cassandra_status.py,sha256=CM6VgfUaZ1TQRpV6lXWt2UshQ8KVeeBglP2i10Lh1eU,5366
198
+ adam/commands/show/show_cassandra_status.py,sha256=8g035RwaWHrzu2VIX6Rit5lboAdilhyNej3aYXlXOqs,5177
222
199
  adam/commands/show/show_cassandra_version.py,sha256=O-vTwnK5mSyhFNRDGQ2c-3YNAbW0TZo1pndvD6kMRMo,1144
223
200
  adam/commands/show/show_cli_commands.py,sha256=G3yT2UcreR05aT9OgU_BZnwZQ5S5mX8wyCLmNf_W77o,1894
224
201
  adam/commands/show/show_host.py,sha256=b7UrC_n9qRp9jHuQqint1YDEmBbC2dZUjHr59Wff-nM,868
225
202
  adam/commands/show/show_login.py,sha256=l5vwFvNQ9WcppSJU_f6xVKGznz32OYd76EImFdR0xEo,1816
226
203
  adam/commands/show/show_params.py,sha256=6rM9IgHusa5MrqLdHOBzBMOh1mOnlkFDbZeFGdXLnKk,939
227
- adam/commands/show/show_processes.py,sha256=bkdFF8fvnNCZ1YTe1ucxtKDTt40w1lLOHbx8FcshyEI,2378
228
- adam/commands/show/show_storage.py,sha256=AfqOn9ypo4G762aN8a5ZWW4IUpPDehM6R3QByGCpMFk,1734
204
+ adam/commands/show/show_processes.py,sha256=92DUh_-Z6Z1vCKIXX6MdgDGtW9RAXokmz7zIuUWdVzo,2404
205
+ adam/commands/show/show_storage.py,sha256=gk9E5zOlvL6ugIeqO_UPwMJ94ZgnIgZCOkLTIDctEqk,1785
229
206
  adam/sql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
230
207
  adam/sql/async_executor.py,sha256=-nf-ESyhJ9MMWZF7YtSeyvv_e7jVTGi6Ui3DK5bAC9Y,1681
231
208
  adam/sql/lark_completer.py,sha256=_6L8Y_IqTd02tbR4wmlxlXCDPe_167wGvnyHFaVMhog,12659
@@ -238,17 +215,17 @@ adam/sso/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
238
215
  adam/sso/authenticator.py,sha256=BCm16L9zf5aLU47-sTCnudn2zLPwd8M2wwRminJfsqw,615
239
216
  adam/sso/authn_ad.py,sha256=FQbOJOT_goH7YSr2iqnHh8Ao-WL0jPaE3KyIe3T7g7Y,5786
240
217
  adam/sso/authn_okta.py,sha256=e4DjNvCDw646L0SM0aWt_lT2q69MqtzTJiYQpo_EuAQ,4505
241
- adam/sso/cred_cache.py,sha256=9c-Cdz4xlJ3FakqVmVkBVfQ0XLweDivdlu3kdIMLbFs,2039
218
+ adam/sso/cred_cache.py,sha256=dh8orKM_BzVxIf33-M7_2cCEZYFnUppcEhuU73MWvX0,1936
242
219
  adam/sso/id_token.py,sha256=wmVZ8S0sjScnOxmSvOKlIEKgnvdWqhsgq9XjFe355O4,744
243
220
  adam/sso/idp.py,sha256=Fml1IwP2n3e-j3SFtH3uqL8h9dhQ62J3oM4d37svIu8,5775
244
221
  adam/sso/idp_login.py,sha256=QAtCUeDTVWliJy40RK_oac8Vgybr13xH8wzeBoxPaa8,1754
245
222
  adam/sso/idp_session.py,sha256=9BUHNRf70u4rVKrVY1HKPOEmOviXvkjam8WJxmXSKIM,1735
246
223
  adam/sso/sso_config.py,sha256=5N8WZgIJQBtHUy585XLRWKjpU87_v6QluyNK9E27D5s,2459
247
224
  adam/utils_k8s/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
248
- adam/utils_k8s/app_clusters.py,sha256=UGu0W_7Gk6k1cGt4rbscuk3BRm0-oz3ibEK7roVyJB0,1203
249
- adam/utils_k8s/app_pods.py,sha256=9bYIA9We0l_nkxOeVDxHzdDNpb8RaRp6nqQEKsW-BYo,1404
250
- adam/utils_k8s/cassandra_clusters.py,sha256=1Pk3sfMDy7_HWue1_XotAOKn3dTy0RKPuIyyOxo0oLU,1891
251
- adam/utils_k8s/cassandra_nodes.py,sha256=z_CaYqeiEC0avEtFK3QRO-MXaN3KFMKrG9NVO3NN6MI,1634
225
+ adam/utils_k8s/app_clusters.py,sha256=RFR9YADapYfEG7t8UJ8B_VPrC9utki20ntAuHFBFbbs,1304
226
+ adam/utils_k8s/app_pods.py,sha256=JzhxkcDjpbS_x50646dxFrf582rzWnB9d4JoGy7_HMU,1484
227
+ adam/utils_k8s/cassandra_clusters.py,sha256=Izt30TKA6gCiY93zPvFpmT4d60INwbFfY5xtcyd1ZCI,1826
228
+ adam/utils_k8s/cassandra_nodes.py,sha256=Ovrv76iRL3bMYXFjQCWV-JV0GsfE9aLXBTLEZdAcgZo,1582
252
229
  adam/utils_k8s/config_maps.py,sha256=vc9A-2D1-1mindCMFL1wuysDOXb0RCl4BdjC6B6usXI,1194
253
230
  adam/utils_k8s/custom_resources.py,sha256=95zVZchFtFWGZ_P-jLaSMl6WYTObn7PqeTLxZ_HKoEo,7599
254
231
  adam/utils_k8s/deployment.py,sha256=SLhnMm5GMXwEldj2OupSFBUsvNjynwSNrv5tIDvLMrc,2921
@@ -256,7 +233,8 @@ adam/utils_k8s/ingresses.py,sha256=q8nJTIoxa_dVrGMl1HS5yTS_11jLNBAnWlc2ZishMEE,3
256
233
  adam/utils_k8s/jobs.py,sha256=HbUBNXcKcuXaNzc8NmqR_Sq35yHQ_qeQtiQFFM-J2QY,2534
257
234
  adam/utils_k8s/k8s.py,sha256=5LpIGIZH1-lrkS275zgjY6i_HEA5ZXmK_pcCoqMWK6g,3577
258
235
  adam/utils_k8s/kube_context.py,sha256=SEaRhlLNniEflHtMjYS_7lArvOQJUGPe-d4KTCxzD9U,3204
259
- adam/utils_k8s/pods.py,sha256=PoGbA3UT-1TzNHm__HRCs2gPVUWNz_HdB9WQWWW5bbM,13504
236
+ adam/utils_k8s/pod_exec_result.py,sha256=_kVEAzPtBU-BP5yyF50RzmsVChlzqStuGaCKpGIcsDg,1431
237
+ adam/utils_k8s/pods.py,sha256=BvkWL2OHQ30vTwGabBQNEv5mSlLArbh9S72OIvcvDms,13588
260
238
  adam/utils_k8s/secrets.py,sha256=xnqRSumCIcPaASDcErzxjx1BCE-qJkPoG5wIP7YHzIo,2430
261
239
  adam/utils_k8s/service_accounts.py,sha256=OF1-UwWupUAvn_rqNNTWsF3BWYgaLiGTJfinn8sreog,6342
262
240
  adam/utils_k8s/services.py,sha256=7K6CxvYntbCsRjTZVcuYiBb5WPH7A5CTWTlUGvaVDRg,3154
@@ -265,13 +243,13 @@ adam/utils_k8s/volumes.py,sha256=RIBmlOSWM3V3QVXLCFT0owVOyh4rGG1ETp521a-6ndo,113
265
243
  adam/utils_repl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
266
244
  adam/utils_repl/appendable_completer.py,sha256=byLO9pZXExi13i6-fKY6gNzK-v0RtxIQtFYHdwdUbLE,158
267
245
  adam/utils_repl/automata_completer.py,sha256=LJP_2WHHR7AtjX00MJ59VGQEL3t0XS-qYnDmMaZe-Tk,1641
268
- adam/utils_repl/repl_completer.py,sha256=-9J0yJejnX8CzY0ZVpNuxpZHsolfWpnZmQDneXkeBbg,3392
246
+ adam/utils_repl/repl_completer.py,sha256=mTqkDSAB2eKgF1jcKLQrW0NWebqRRfEFpVlusfxj50Y,3516
269
247
  adam/utils_repl/state_machine.py,sha256=kO4_oSi_M53f3QQjINzzb2VFptjbnqX3KRC0G8LqqeA,5426
270
248
  teddy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
271
249
  teddy/lark_parser.py,sha256=1ZasiCM94C0nOA4HFJX7uMj0h2TReCMqLd1Wx9C50uA,14701
272
250
  teddy/lark_parser2.py,sha256=tXM6D8BimgG4FK5ANYS2K8MoATdcYed5QOKXivbPQHw,21499
273
- kaqing-2.0.200.dist-info/METADATA,sha256=ahTNmmx8YUVR3kGo0eus5-23PV6zTTg1XlMqPrO17n8,133
274
- kaqing-2.0.200.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
275
- kaqing-2.0.200.dist-info/entry_points.txt,sha256=SkzhuQJUWsXOzHeZ5TgQ2c3_g53UGK23zzJU_JTZOZI,39
276
- kaqing-2.0.200.dist-info/top_level.txt,sha256=spQlE6mz0lPv3DfQLw8FenXyU0O-P8pi_FUCjdI2H9s,11
277
- kaqing-2.0.200.dist-info/RECORD,,
251
+ kaqing-2.0.211.dist-info/METADATA,sha256=YMqqbdHQBZqlEaZCVIoWYKKKOzH8uGdYu2kRBvJvt-Q,133
252
+ kaqing-2.0.211.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
253
+ kaqing-2.0.211.dist-info/entry_points.txt,sha256=SkzhuQJUWsXOzHeZ5TgQ2c3_g53UGK23zzJU_JTZOZI,39
254
+ kaqing-2.0.211.dist-info/top_level.txt,sha256=spQlE6mz0lPv3DfQLw8FenXyU0O-P8pi_FUCjdI2H9s,11
255
+ kaqing-2.0.211.dist-info/RECORD,,
@@ -1,66 +0,0 @@
1
- from adam.commands import extract_options, validate_args
2
- from adam.commands.command import Command
3
- from adam.commands.cql.utils_cql import cassandra, cassandra_tables as get_tables
4
- from adam.config import Config
5
- from adam.repl_state import ReplState, RequiredState
6
- from adam.utils import log2, log_exc
7
-
8
- class AlterTables(Command):
9
- COMMAND = 'alter tables with'
10
-
11
- # the singleton pattern
12
- def __new__(cls, *args, **kwargs):
13
- if not hasattr(cls, 'instance'): cls.instance = super(AlterTables, cls).__new__(cls)
14
-
15
- return cls.instance
16
-
17
- def __init__(self, successor: Command=None):
18
- super().__init__(successor)
19
-
20
- def required(self):
21
- return RequiredState.CLUSTER
22
-
23
- def command(self):
24
- return AlterTables.COMMAND
25
-
26
- def run(self, cmd: str, state: ReplState):
27
- if not(args := self.args(cmd)):
28
- return super().run(cmd, state)
29
-
30
- with self.validate(args, state) as (args, state):
31
- with extract_options(args, '--include-reaper') as (args, include_reaper):
32
- with validate_args(args, state, name='gc grace in seconds') as arg_str:
33
- excludes = [e.strip(' \r\n') for e in Config().get(
34
- 'cql.alter-tables.excludes',
35
- 'system_auth,system_traces,reaper_db,system_distributed,system_views,system,system_schema,system_virtual_schema').split(',')]
36
- batching = Config().get('cql.alter-tables.batching', True)
37
- tables = get_tables(state, on_any=True)
38
- for k, v in tables.items():
39
- if k not in excludes or k == 'reaper_db' and include_reaper:
40
- if batching:
41
- # alter table <table_name> with GC_GRACE_SECONDS = <timeout>;
42
- cql = ';\n'.join([f'alter table {k}.{t} with {arg_str}' for t in v])
43
- with log_exc(True):
44
- with cassandra(state) as pods:
45
- pods.cql(cql, show_out=Config().is_debug(), show_query=not Config().is_debug(), on_any=True)
46
- continue
47
- else:
48
- for t in v:
49
- with log_exc(True):
50
- # alter table <table_name> with GC_GRACE_SECONDS = <timeout>;
51
- cql = f'alter table {k}.{t} with {arg_str}'
52
- with cassandra(state) as pods:
53
- pods.cql(show_out=Config().is_debug(), show_query=not Config().is_debug(), on_any=True)
54
- continue
55
-
56
- log2(f'{len(v)} tables altered in {k}.')
57
-
58
- # do not continue to cql route
59
- return state
60
-
61
- def completion(self, _: ReplState) -> dict[str, any]:
62
- # auto completion is taken care of by sql completer
63
- return {}
64
-
65
- def help(self, _: ReplState) -> str:
66
- return f'{AlterTables.COMMAND} <param = value> [--include-reaper] \t alter schema on all tables'
@@ -1,45 +0,0 @@
1
- from adam.commands.command import Command
2
- from adam.commands.devices.devices import Devices
3
- from adam.config import Config
4
- from adam.pod_exec_result import PodExecResult
5
- from adam.utils import log2
6
- from adam.utils_k8s.cassandra_nodes import CassandraNodes
7
- from adam.repl_state import ReplState, RequiredState
8
- from adam.utils_k8s.pods import Pods
9
-
10
- class DownloadCassandraLog(Command):
11
- COMMAND = 'download cassandra log'
12
-
13
- # the singleton pattern
14
- def __new__(cls, *args, **kwargs):
15
- if not hasattr(cls, 'instance'): cls.instance = super(DownloadCassandraLog, cls).__new__(cls)
16
-
17
- return cls.instance
18
-
19
- def __init__(self, successor: Command=None):
20
- super().__init__(successor)
21
-
22
- def command(self):
23
- return DownloadCassandraLog.COMMAND
24
-
25
- def required(self):
26
- return RequiredState.POD
27
-
28
- def run(self, cmd: str, state: ReplState):
29
- if not(args := self.args(cmd)):
30
- return super().run(cmd, state)
31
-
32
- with self.validate(args, state) as (args, state):
33
- path = Config().get('logs.path', '/c3/cassandra/logs/system.log')
34
- r: PodExecResult = CassandraNodes.exec(state.pod, state.namespace, f'cat {path}', backgrounded=True, no_history=True)
35
-
36
- to_file = Pods.download_file(state.pod, 'cassandra', state.namespace, path)
37
- log2(f'Downloaded to {to_file}.')
38
-
39
- return r
40
-
41
- def completion(self, state: ReplState):
42
- return super().completion(state, pods=Devices.of(state).pods(state, '-'), auto='jit')
43
-
44
- def help(self, _: ReplState):
45
- return f'{DownloadCassandraLog.COMMAND}\t download cassandra system log'
@@ -1,64 +0,0 @@
1
- import click
2
-
3
- from adam.commands.command import Command
4
- from adam.commands.command_helpers import ClusterOrPodCommandHelper
5
- from adam.commands.cql.utils_cql import cassandra
6
- from adam.commands.devices.devices import Devices
7
- from adam.commands.cassandra.nodetool_commands import NODETOOL_COMMANDS
8
- from adam.config import Config
9
- from adam.repl_state import ReplState, RequiredState
10
- from adam.utils import log
11
-
12
- class NodeTool(Command):
13
- COMMAND = 'nodetool'
14
-
15
- # the singleton pattern
16
- def __new__(cls, *args, **kwargs):
17
- if not hasattr(cls, 'instance'): cls.instance = super(NodeTool, cls).__new__(cls)
18
-
19
- return cls.instance
20
-
21
- def __init__(self, successor: Command=None):
22
- super().__init__(successor)
23
-
24
- def command(self):
25
- return NodeTool.COMMAND
26
-
27
- def required(self):
28
- return RequiredState.CLUSTER_OR_POD
29
-
30
- def run(self, cmd: str, state: ReplState):
31
- if not(args := self.args(cmd)):
32
- return super().run(cmd, state)
33
-
34
- with self.validate(args, state) as (args, state):
35
- with cassandra(state) as pods:
36
- pods.nodetool(' '.join(args), status=(args[0] == 'status'))
37
-
38
- return state
39
-
40
- def completion(self, state: ReplState):
41
- return super().completion(state, {c: {'&': None} for c in NODETOOL_COMMANDS}, pods=Devices.of(state).pods(state, '-'))
42
-
43
- def help(self, _: ReplState):
44
- return f'{NodeTool.COMMAND} <sub-command> [&]\t run nodetool with arguments'
45
-
46
- class NodeToolCommandHelper(click.Command):
47
- def get_help(self, ctx: click.Context):
48
- log(super().get_help(ctx))
49
- log()
50
- log('Sub-Commands:')
51
-
52
- cmds = ''
53
- for c in NODETOOL_COMMANDS:
54
- if cmds:
55
- cmds += ', '
56
- cmds += c
57
- if len(cmds) > Config().get('nodetool.commands_in_line', 40):
58
- log(' ' + cmds)
59
- cmds = ''
60
-
61
- if len(cmds) > 0:
62
- log(' ' + cmds)
63
- log()
64
- ClusterOrPodCommandHelper.cluter_or_pod_help()