kaqing 2.0.200__py3-none-any.whl → 2.0.213__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 (65) 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/fs/__init__.py +0 -0
  16. adam/commands/{os/cat.py → fs/cat_local.py} +15 -9
  17. adam/commands/{os → fs}/download_file.py +1 -1
  18. adam/commands/{os → fs}/find_files.py +4 -4
  19. adam/commands/{shell.py → fs/ls_local.py} +12 -13
  20. adam/commands/fs/rm.py +18 -0
  21. adam/commands/fs/rm_downloads.py +39 -0
  22. adam/commands/fs/rm_logs.py +38 -0
  23. adam/commands/postgres/postgres_databases.py +1 -1
  24. adam/commands/postgres/postgres_ls.py +1 -1
  25. adam/commands/postgres/utils_postgres.py +2 -1
  26. adam/commands/show/show_cassandra_status.py +3 -10
  27. adam/commands/show/show_processes.py +1 -1
  28. adam/commands/show/show_storage.py +2 -1
  29. adam/embedded_params.py +1 -1
  30. adam/repl_commands.py +16 -13
  31. adam/sso/cred_cache.py +2 -5
  32. adam/utils.py +122 -71
  33. adam/utils_k8s/app_clusters.py +10 -3
  34. adam/utils_k8s/app_pods.py +9 -3
  35. adam/utils_k8s/cassandra_clusters.py +4 -4
  36. adam/utils_k8s/cassandra_nodes.py +13 -7
  37. adam/{pod_exec_result.py → utils_k8s/pod_exec_result.py} +8 -2
  38. adam/utils_k8s/pods.py +34 -29
  39. adam/utils_local.py +78 -2
  40. adam/utils_repl/repl_completer.py +6 -2
  41. adam/utils_sqlite.py +3 -8
  42. adam/version.py +1 -1
  43. {kaqing-2.0.200.dist-info → kaqing-2.0.213.dist-info}/METADATA +1 -1
  44. {kaqing-2.0.200.dist-info → kaqing-2.0.213.dist-info}/RECORD +53 -61
  45. adam/commands/alter_tables.py +0 -66
  46. adam/commands/cassandra/download_cassandra_log.py +0 -45
  47. adam/commands/cassandra/nodetool.py +0 -64
  48. adam/commands/cassandra/nodetool_commands.py +0 -120
  49. adam/commands/cassandra/restart_cluster.py +0 -47
  50. adam/commands/cassandra/restart_node.py +0 -51
  51. adam/commands/cassandra/restart_nodes.py +0 -47
  52. adam/commands/cassandra/rollout.py +0 -88
  53. adam/commands/download_file.py +0 -47
  54. adam/commands/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/{cat.py → fs/cat.py} +0 -0
  58. /adam/commands/{cd.py → fs/cd.py} +0 -0
  59. /adam/commands/{find_processes.py → fs/find_processes.py} +0 -0
  60. /adam/commands/{head.py → fs/head.py} +0 -0
  61. /adam/commands/{ls.py → fs/ls.py} +0 -0
  62. /adam/commands/{os → fs}/shell.py +0 -0
  63. {kaqing-2.0.200.dist-info → kaqing-2.0.213.dist-info}/WHEEL +0 -0
  64. {kaqing-2.0.200.dist-info → kaqing-2.0.213.dist-info}/entry_points.txt +0 -0
  65. {kaqing-2.0.200.dist-info → kaqing-2.0.213.dist-info}/top_level.txt +0 -0
adam/utils_k8s/pods.py CHANGED
@@ -13,9 +13,9 @@ from kubernetes.stream.ws_client import ERROR_CHANNEL, WSClient
13
13
  from adam.config import Config
14
14
  from adam.repl_session import ReplSession
15
15
  from adam.utils_k8s.volumes import ConfigMapMount
16
- from adam.pod_exec_result import PodExecResult
17
- from adam.utils import GeneratorStream, ParallelMapHandler, log2, debug, log_exc
18
- from adam.utils_local import local_tmp_dir
16
+ from adam.utils_k8s.pod_exec_result import PodExecResult
17
+ from adam.utils import GeneratorStream, ParallelMapHandler, log2, debug, log_dir, log_exc
18
+ from adam.utils_local import local_downloads_dir
19
19
  from .kube_context import KubeContext
20
20
 
21
21
  from websocket._core import WebSocket
@@ -63,14 +63,13 @@ class Pods:
63
63
  backgrounded = False,
64
64
  log_file = None,
65
65
  interaction: Callable[[any, list[str]], any] = None,
66
- env_prefix: str = None,
67
- via_sh = True):
66
+ env_prefix: str = None):
68
67
  if _TEST_POD_EXEC_OUTS:
69
68
  return _TEST_POD_EXEC_OUTS
70
69
 
71
70
  show_out = KubeContext.show_out(show_out)
72
71
 
73
- if via_sh and (backgrounded or command.endswith(' &')) and Config().get('repl.background-process.via-sh', True):
72
+ if backgrounded or command.endswith(' &'):
74
73
  command = command.strip(' &')
75
74
 
76
75
  log_all_file = None
@@ -82,11 +81,17 @@ class Pods:
82
81
  else:
83
82
  log_pod_file = Pods.log_file(command, pod_name=pod_name)
84
83
 
84
+ if env_prefix:
85
+ command = f'{env_prefix} {command}'
86
+
85
87
  command = command.replace('"', '\\"')
86
88
  cmd = f'nohup kubectl exec {pod_name} -c {container} -- {shell} -c "{command} &" > {log_pod_file} 2>&1 &'
87
89
  if log_all_file:
88
90
  cmd = f'{cmd} >> {log_all_file}'
89
91
 
92
+ if show_out:
93
+ log2(cmd)
94
+
90
95
  result = subprocess.run(cmd, capture_output=True, text=True, shell=True)
91
96
 
92
97
  return PodExecResult(result.stdout, result.stderr, cmd, None, pod=pod_name, log_file=log_pod_file)
@@ -98,22 +103,22 @@ class Pods:
98
103
  if env_prefix:
99
104
  exec_command = [shell, '-c', f'{env_prefix} {command}']
100
105
 
101
- if backgrounded or command.endswith(' &'):
102
- # should be false for starting a background process
103
- tty = False
104
-
105
- if Config().get('repl.background-process.auto-nohup', True):
106
- command = command.strip(' &')
107
- cmd_name = ''
108
- if command.startswith('nodetool '):
109
- cmd_name = f".{'_'.join(command.split(' ')[5:])}"
110
-
111
- if not log_file:
112
- log_file = f'{log_prefix()}-{datetime.now().strftime("%d%H%M%S")}{cmd_name}.log'
113
- command = f"nohup {command} > {log_file} 2>&1 &"
114
- if env_prefix:
115
- command = f'{env_prefix} {command}'
116
- exec_command = [shell, '-c', command]
106
+ # if backgrounded or command.endswith(' &'):
107
+ # # should be false for starting a background process
108
+ # tty = False
109
+
110
+ # if Config().get('repl.background-process.auto-nohup', True):
111
+ # command = command.strip(' &')
112
+ # cmd_name = ''
113
+ # if command.startswith('nodetool '):
114
+ # cmd_name = f".{'_'.join(command.split(' ')[5:])}"
115
+
116
+ # if not log_file:
117
+ # log_file = f'{log_prefix()}-{datetime.now().strftime("%d%H%M%S")}{cmd_name}.log'
118
+ # command = f"nohup {command} > {log_file} 2>&1 &"
119
+ # if env_prefix:
120
+ # command = f'{env_prefix} {command}'
121
+ # exec_command = [shell, '-c', command]
117
122
 
118
123
  k_command = f'kubectl exec {pod_name} -c {container} -n {namespace} -- {shell} -c "{command}"'
119
124
  debug(k_command)
@@ -178,10 +183,13 @@ class Pods:
178
183
  if groups := re.match(r'.*-(.*)', pod_name):
179
184
  pod_suffix = f'-{groups[1]}'
180
185
 
186
+ return f'{log_dir()}/{Pods.job_id()}{cmd_name}{pod_suffix}.log'
187
+
188
+ def job_id(dt: datetime = None):
181
189
  if not dt:
182
190
  dt = datetime.now()
183
191
 
184
- return f'{log_prefix()}-{dt.strftime("%d%H%M%S")}{cmd_name}{pod_suffix}.log'
192
+ return dt.strftime("%d%H%M%S")
185
193
 
186
194
  def log_file_from_template(log_file: str, pod_name: str):
187
195
  pod_suffix = pod_name
@@ -227,14 +235,14 @@ class Pods:
227
235
 
228
236
  def download_file(pod_name: str, container: str, namespace: str, from_path: str, to_path: str = None):
229
237
  if not to_path:
230
- to_path = f'{local_tmp_dir()}/{os.path.basename(from_path)}'
238
+ to_path = f'{local_downloads_dir()}/{os.path.basename(from_path)}'
231
239
 
232
240
  bytes = Pods.read_file(pod_name, container, namespace, from_path)
233
241
  with open(to_path, 'wb') as f:
234
242
  for item in GeneratorStream(bytes):
235
243
  f.write(item)
236
244
 
237
- ReplSession().append_history(f':sh cat {to_path}')
245
+ ReplSession().append_history(f':cat {to_path}')
238
246
 
239
247
  return to_path
240
248
 
@@ -346,7 +354,4 @@ class Pods:
346
354
  log2(' Timed Out')
347
355
 
348
356
  def completed(namespace: str, pod_name: str):
349
- return Pods.get(namespace, pod_name).status.phase in ['Succeeded', 'Failed']
350
-
351
- def log_prefix():
352
- return Config().get('log-prefix', '/tmp/qing')
357
+ return Pods.get(namespace, pod_name).status.phase in ['Succeeded', 'Failed']
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.213" #: 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.213
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=VyeqLr2lTwtgc0sBgEMRKUQgmqVcyb3FNoSz4qb77cg,7512
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=wI4AqD_6M7TmYRXPM9JZKFB0q3f5AvvnlIBpd-OjXJM,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,36 @@ 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
158
+ adam/commands/fs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
159
+ adam/commands/fs/cat.py,sha256=_h8V1g57zKCeSeE7MVuqCC3k90_q3fd19FvdvCP8Q9g,1278
160
+ adam/commands/fs/cat_local.py,sha256=sTzt80NWELfgMtyDj3UQeQ1kx-Jr8xylnTTfUxOCOzA,1334
161
+ adam/commands/fs/cd.py,sha256=bvFgqzd0b4BROExcCaN_y-_tnyUUDEuoQk3dXest9l0,1330
162
+ adam/commands/fs/download_file.py,sha256=SmR6lq309dg6TOQUt0CqtC32T0RYEhSTut8qjV_KnOg,1849
163
+ adam/commands/fs/find_files.py,sha256=KvY2CREhhf6xr1KshG7dXBpKEi2mqWy8Gwpyc8YsfGA,1483
164
+ adam/commands/fs/find_processes.py,sha256=Ta1l5zddaazoWjaKZb8LRa4sfemr8HbOAdlLXNWBGrM,2908
165
+ adam/commands/fs/head.py,sha256=NeR1xRpmbyUQI5IgRE-zdWyyjs9C-C8E-g0WNulZ2Ck,1284
166
+ adam/commands/fs/ls.py,sha256=vUQrOaptKcC9HHzQaL_82h9bWoUxwGu0YSg8YKOwrBI,1282
167
+ adam/commands/fs/ls_local.py,sha256=FIajyaR-rcrDnMEk7COcO7KI8PAfkTXDI7nS7vBPTB8,1092
168
+ adam/commands/fs/rm.py,sha256=LxeSD6pTgU4090buVeVTKWJ0G3T9-0a_oar4MLEfrzk,528
169
+ adam/commands/fs/rm_downloads.py,sha256=4zvyKUDtcHTj5UzP7R047jzGm9RclZO8mE7w9c9Y26A,1119
170
+ adam/commands/fs/rm_logs.py,sha256=oHxV-g6qgna5LEVeeGlOwxN7A3cgxv8BpS7ASL5kCBY,1029
171
+ adam/commands/fs/shell.py,sha256=UQs4TEIDiZOjJrVsZJ_O9DDtn_k3K7-ifg1ZBsJFnsU,1155
175
172
  adam/commands/medusa/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
176
173
  adam/commands/medusa/medusa.py,sha256=Ey2kJpoKqPFP6m623B3ciMoLur5SVcHEBYsvW7G7aAY,958
177
174
  adam/commands/medusa/medusa_backup.py,sha256=n-caJjd3WObm2tplVKUG-GahWoOwDS2pk_MZKQl0S7Q,1812
@@ -180,19 +177,13 @@ adam/commands/medusa/medusa_show_backupjobs.py,sha256=rYP5r_NXAQcWrsstv4UngAb4gb
180
177
  adam/commands/medusa/medusa_show_restorejobs.py,sha256=rgNg-fy0EbTBd2PghOM-w16PrtqL9QCE0Z0vhIcK8CE,1584
181
178
  adam/commands/medusa/utils_medusa.py,sha256=7uwIFJDGYBATnl46coO24tGw4a-07mVLB82Os4pTkKo,594
182
179
  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
180
  adam/commands/postgres/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
190
181
  adam/commands/postgres/completions_p.py,sha256=I4E88nKBzSegm0EY0qRcQq4pkz4iEQnS48CFXK9AXYU,727
191
182
  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
183
+ adam/commands/postgres/postgres_databases.py,sha256=DbDUJS3cVfkgyeSn5WoQte-Vb8SjjnwQP6M8zAXU7cI,11297
184
+ adam/commands/postgres/postgres_ls.py,sha256=ZnET7KfFZ9gxqsmji11dcU3SRci-_T7VsAnv77c3Vik,1114
194
185
  adam/commands/postgres/postgres_preview.py,sha256=Bmw3YC98tFdjUx2CRHOakcvLHCOLtEiKxvNDjlDoRo0,1174
195
- adam/commands/postgres/utils_postgres.py,sha256=XpcpX6ht_YsXgsvh-0UPZhaVmhu5oEN_k7X0LO6k7-E,2434
186
+ adam/commands/postgres/utils_postgres.py,sha256=0CAHiNlTuZFj1LrjcrRMenAwzBdGww1qSkpMZtYsPbg,2495
196
187
  adam/commands/reaper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
197
188
  adam/commands/reaper/reaper.py,sha256=Xrfjvqtn5txnaMwofBb77yEsmSYLO_-Bi43ABq2ZmaQ,1398
198
189
  adam/commands/reaper/reaper_forward.py,sha256=O5L4SnZdeFMtJqc5SHYVCYQcfkQ2-JnDN9rEX7u_8Xg,3307
@@ -218,14 +209,14 @@ adam/commands/show/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuF
218
209
  adam/commands/show/show.py,sha256=h8AAGyiilZ_Wc_SJvR1gT8Ie8RKQprZfNa07zy2e2lg,1728
219
210
  adam/commands/show/show_adam.py,sha256=zmzgIvWo9hg0v6YyA26N-xGZipVome22AtrZ9iI6oSw,1298
220
211
  adam/commands/show/show_cassandra_repairs.py,sha256=ygdUkiFgvaYxTEoJaJEONfpDOEzZLOPMXz1n_VZaiwc,1306
221
- adam/commands/show/show_cassandra_status.py,sha256=CM6VgfUaZ1TQRpV6lXWt2UshQ8KVeeBglP2i10Lh1eU,5366
212
+ adam/commands/show/show_cassandra_status.py,sha256=8g035RwaWHrzu2VIX6Rit5lboAdilhyNej3aYXlXOqs,5177
222
213
  adam/commands/show/show_cassandra_version.py,sha256=O-vTwnK5mSyhFNRDGQ2c-3YNAbW0TZo1pndvD6kMRMo,1144
223
214
  adam/commands/show/show_cli_commands.py,sha256=G3yT2UcreR05aT9OgU_BZnwZQ5S5mX8wyCLmNf_W77o,1894
224
215
  adam/commands/show/show_host.py,sha256=b7UrC_n9qRp9jHuQqint1YDEmBbC2dZUjHr59Wff-nM,868
225
216
  adam/commands/show/show_login.py,sha256=l5vwFvNQ9WcppSJU_f6xVKGznz32OYd76EImFdR0xEo,1816
226
217
  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
218
+ adam/commands/show/show_processes.py,sha256=92DUh_-Z6Z1vCKIXX6MdgDGtW9RAXokmz7zIuUWdVzo,2404
219
+ adam/commands/show/show_storage.py,sha256=gk9E5zOlvL6ugIeqO_UPwMJ94ZgnIgZCOkLTIDctEqk,1785
229
220
  adam/sql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
230
221
  adam/sql/async_executor.py,sha256=-nf-ESyhJ9MMWZF7YtSeyvv_e7jVTGi6Ui3DK5bAC9Y,1681
231
222
  adam/sql/lark_completer.py,sha256=_6L8Y_IqTd02tbR4wmlxlXCDPe_167wGvnyHFaVMhog,12659
@@ -238,17 +229,17 @@ adam/sso/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
238
229
  adam/sso/authenticator.py,sha256=BCm16L9zf5aLU47-sTCnudn2zLPwd8M2wwRminJfsqw,615
239
230
  adam/sso/authn_ad.py,sha256=FQbOJOT_goH7YSr2iqnHh8Ao-WL0jPaE3KyIe3T7g7Y,5786
240
231
  adam/sso/authn_okta.py,sha256=e4DjNvCDw646L0SM0aWt_lT2q69MqtzTJiYQpo_EuAQ,4505
241
- adam/sso/cred_cache.py,sha256=9c-Cdz4xlJ3FakqVmVkBVfQ0XLweDivdlu3kdIMLbFs,2039
232
+ adam/sso/cred_cache.py,sha256=dh8orKM_BzVxIf33-M7_2cCEZYFnUppcEhuU73MWvX0,1936
242
233
  adam/sso/id_token.py,sha256=wmVZ8S0sjScnOxmSvOKlIEKgnvdWqhsgq9XjFe355O4,744
243
234
  adam/sso/idp.py,sha256=Fml1IwP2n3e-j3SFtH3uqL8h9dhQ62J3oM4d37svIu8,5775
244
235
  adam/sso/idp_login.py,sha256=QAtCUeDTVWliJy40RK_oac8Vgybr13xH8wzeBoxPaa8,1754
245
236
  adam/sso/idp_session.py,sha256=9BUHNRf70u4rVKrVY1HKPOEmOviXvkjam8WJxmXSKIM,1735
246
237
  adam/sso/sso_config.py,sha256=5N8WZgIJQBtHUy585XLRWKjpU87_v6QluyNK9E27D5s,2459
247
238
  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
239
+ adam/utils_k8s/app_clusters.py,sha256=RFR9YADapYfEG7t8UJ8B_VPrC9utki20ntAuHFBFbbs,1304
240
+ adam/utils_k8s/app_pods.py,sha256=JzhxkcDjpbS_x50646dxFrf582rzWnB9d4JoGy7_HMU,1484
241
+ adam/utils_k8s/cassandra_clusters.py,sha256=Izt30TKA6gCiY93zPvFpmT4d60INwbFfY5xtcyd1ZCI,1826
242
+ adam/utils_k8s/cassandra_nodes.py,sha256=Ovrv76iRL3bMYXFjQCWV-JV0GsfE9aLXBTLEZdAcgZo,1582
252
243
  adam/utils_k8s/config_maps.py,sha256=vc9A-2D1-1mindCMFL1wuysDOXb0RCl4BdjC6B6usXI,1194
253
244
  adam/utils_k8s/custom_resources.py,sha256=95zVZchFtFWGZ_P-jLaSMl6WYTObn7PqeTLxZ_HKoEo,7599
254
245
  adam/utils_k8s/deployment.py,sha256=SLhnMm5GMXwEldj2OupSFBUsvNjynwSNrv5tIDvLMrc,2921
@@ -256,7 +247,8 @@ adam/utils_k8s/ingresses.py,sha256=q8nJTIoxa_dVrGMl1HS5yTS_11jLNBAnWlc2ZishMEE,3
256
247
  adam/utils_k8s/jobs.py,sha256=HbUBNXcKcuXaNzc8NmqR_Sq35yHQ_qeQtiQFFM-J2QY,2534
257
248
  adam/utils_k8s/k8s.py,sha256=5LpIGIZH1-lrkS275zgjY6i_HEA5ZXmK_pcCoqMWK6g,3577
258
249
  adam/utils_k8s/kube_context.py,sha256=SEaRhlLNniEflHtMjYS_7lArvOQJUGPe-d4KTCxzD9U,3204
259
- adam/utils_k8s/pods.py,sha256=PoGbA3UT-1TzNHm__HRCs2gPVUWNz_HdB9WQWWW5bbM,13504
250
+ adam/utils_k8s/pod_exec_result.py,sha256=_kVEAzPtBU-BP5yyF50RzmsVChlzqStuGaCKpGIcsDg,1431
251
+ adam/utils_k8s/pods.py,sha256=BvkWL2OHQ30vTwGabBQNEv5mSlLArbh9S72OIvcvDms,13588
260
252
  adam/utils_k8s/secrets.py,sha256=xnqRSumCIcPaASDcErzxjx1BCE-qJkPoG5wIP7YHzIo,2430
261
253
  adam/utils_k8s/service_accounts.py,sha256=OF1-UwWupUAvn_rqNNTWsF3BWYgaLiGTJfinn8sreog,6342
262
254
  adam/utils_k8s/services.py,sha256=7K6CxvYntbCsRjTZVcuYiBb5WPH7A5CTWTlUGvaVDRg,3154
@@ -265,13 +257,13 @@ adam/utils_k8s/volumes.py,sha256=RIBmlOSWM3V3QVXLCFT0owVOyh4rGG1ETp521a-6ndo,113
265
257
  adam/utils_repl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
266
258
  adam/utils_repl/appendable_completer.py,sha256=byLO9pZXExi13i6-fKY6gNzK-v0RtxIQtFYHdwdUbLE,158
267
259
  adam/utils_repl/automata_completer.py,sha256=LJP_2WHHR7AtjX00MJ59VGQEL3t0XS-qYnDmMaZe-Tk,1641
268
- adam/utils_repl/repl_completer.py,sha256=-9J0yJejnX8CzY0ZVpNuxpZHsolfWpnZmQDneXkeBbg,3392
260
+ adam/utils_repl/repl_completer.py,sha256=mTqkDSAB2eKgF1jcKLQrW0NWebqRRfEFpVlusfxj50Y,3516
269
261
  adam/utils_repl/state_machine.py,sha256=kO4_oSi_M53f3QQjINzzb2VFptjbnqX3KRC0G8LqqeA,5426
270
262
  teddy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
271
263
  teddy/lark_parser.py,sha256=1ZasiCM94C0nOA4HFJX7uMj0h2TReCMqLd1Wx9C50uA,14701
272
264
  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,,
265
+ kaqing-2.0.213.dist-info/METADATA,sha256=Jsuyj2bMnVhgMfFfzxa6xvBrGZ2qFUI1g4PY0syyGCI,133
266
+ kaqing-2.0.213.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
267
+ kaqing-2.0.213.dist-info/entry_points.txt,sha256=SkzhuQJUWsXOzHeZ5TgQ2c3_g53UGK23zzJU_JTZOZI,39
268
+ kaqing-2.0.213.dist-info/top_level.txt,sha256=spQlE6mz0lPv3DfQLw8FenXyU0O-P8pi_FUCjdI2H9s,11
269
+ kaqing-2.0.213.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'