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.
- adam/batch.py +1 -1
- adam/commands/app/utils_app.py +1 -1
- adam/commands/cql/completions_c.py +1 -1
- adam/commands/cql/utils_cql.py +14 -13
- adam/commands/devices/device.py +1 -1
- adam/commands/download_cassandra_log.py +2 -2
- adam/commands/export/export_databases.py +13 -8
- adam/commands/export/export_sessions.py +12 -11
- adam/commands/export/exporter.py +140 -53
- adam/commands/export/import_session.py +0 -4
- adam/commands/export/importer.py +11 -11
- adam/commands/export/importer_athena.py +15 -6
- adam/commands/export/importer_sqlite.py +19 -8
- adam/commands/export/utils_export.py +37 -15
- adam/commands/postgres/postgres_databases.py +1 -1
- adam/commands/postgres/postgres_ls.py +1 -1
- adam/commands/postgres/utils_postgres.py +2 -1
- adam/commands/show/show_cassandra_status.py +3 -10
- adam/commands/show/show_processes.py +1 -1
- adam/commands/show/show_storage.py +2 -1
- adam/embedded_params.py +1 -1
- adam/repl_commands.py +13 -12
- adam/sso/cred_cache.py +2 -5
- adam/utils.py +122 -71
- adam/utils_k8s/app_clusters.py +10 -3
- adam/utils_k8s/app_pods.py +9 -3
- adam/utils_k8s/cassandra_clusters.py +4 -4
- adam/utils_k8s/cassandra_nodes.py +13 -7
- adam/{pod_exec_result.py → utils_k8s/pod_exec_result.py} +8 -2
- adam/utils_k8s/pods.py +34 -29
- adam/utils_local.py +78 -2
- adam/utils_repl/repl_completer.py +6 -2
- adam/utils_sqlite.py +3 -8
- adam/version.py +1 -1
- {kaqing-2.0.200.dist-info → kaqing-2.0.211.dist-info}/METADATA +1 -1
- {kaqing-2.0.200.dist-info → kaqing-2.0.211.dist-info}/RECORD +39 -61
- adam/commands/alter_tables.py +0 -66
- adam/commands/cassandra/download_cassandra_log.py +0 -45
- adam/commands/cassandra/nodetool.py +0 -64
- adam/commands/cassandra/nodetool_commands.py +0 -120
- adam/commands/cassandra/restart_cluster.py +0 -47
- adam/commands/cassandra/restart_node.py +0 -51
- adam/commands/cassandra/restart_nodes.py +0 -47
- adam/commands/cassandra/rollout.py +0 -88
- adam/commands/cat.py +0 -36
- adam/commands/cd.py +0 -41
- adam/commands/download_file.py +0 -47
- adam/commands/find_files.py +0 -51
- adam/commands/find_processes.py +0 -76
- adam/commands/head.py +0 -36
- adam/commands/ls.py +0 -41
- adam/commands/os/cat.py +0 -36
- adam/commands/os/download_file.py +0 -47
- adam/commands/os/find_files.py +0 -51
- adam/commands/os/find_processes.py +0 -76
- adam/commands/os/head.py +0 -36
- adam/commands/os/shell.py +0 -41
- adam/commands/shell.py +0 -41
- {kaqing-2.0.200.dist-info → kaqing-2.0.211.dist-info}/WHEEL +0 -0
- {kaqing-2.0.200.dist-info → kaqing-2.0.211.dist-info}/entry_points.txt +0 -0
- {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
|
-
|
|
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
|
-
|
|
80
|
-
|
|
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,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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
19
|
+
adam/utils_local.py,sha256=Q4jqAenWQYvL6VLb0BlAJ4Z4VoWQIZBrrfyEDCS9qAw,2308
|
|
21
20
|
adam/utils_net.py,sha256=byEtNVr8iG9UaD7dM77dN2WEBClB7YNKult7LKFTCOc,428
|
|
22
|
-
adam/utils_sqlite.py,sha256=
|
|
23
|
-
adam/version.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
167
|
-
adam/commands/export/importer.py,sha256=
|
|
168
|
-
adam/commands/export/importer_athena.py,sha256=
|
|
169
|
-
adam/commands/export/importer_sqlite.py,sha256=
|
|
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=
|
|
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=
|
|
193
|
-
adam/commands/postgres/postgres_ls.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
228
|
-
adam/commands/show/show_storage.py,sha256=
|
|
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=
|
|
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=
|
|
249
|
-
adam/utils_k8s/app_pods.py,sha256=
|
|
250
|
-
adam/utils_k8s/cassandra_clusters.py,sha256=
|
|
251
|
-
adam/utils_k8s/cassandra_nodes.py,sha256=
|
|
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/
|
|
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
|
|
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.
|
|
274
|
-
kaqing-2.0.
|
|
275
|
-
kaqing-2.0.
|
|
276
|
-
kaqing-2.0.
|
|
277
|
-
kaqing-2.0.
|
|
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,,
|
adam/commands/alter_tables.py
DELETED
|
@@ -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()
|