kaqing 2.0.52__py3-none-any.whl → 2.0.184__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 (223) hide show
  1. adam/__init__.py +0 -2
  2. adam/app_session.py +9 -12
  3. adam/apps.py +20 -6
  4. adam/batch.py +15 -19
  5. adam/checks/check_utils.py +19 -49
  6. adam/checks/compactionstats.py +1 -1
  7. adam/checks/cpu.py +9 -3
  8. adam/checks/cpu_metrics.py +52 -0
  9. adam/checks/disk.py +3 -4
  10. adam/checks/gossip.py +1 -1
  11. adam/checks/memory.py +3 -3
  12. adam/checks/status.py +1 -1
  13. adam/columns/columns.py +3 -1
  14. adam/columns/cpu.py +3 -1
  15. adam/columns/cpu_metrics.py +22 -0
  16. adam/columns/memory.py +3 -4
  17. adam/commands/__init__.py +24 -0
  18. adam/commands/alter_tables.py +37 -63
  19. adam/commands/app/app.py +38 -0
  20. adam/commands/{app_ping.py → app/app_ping.py} +8 -14
  21. adam/commands/app/show_app_actions.py +49 -0
  22. adam/commands/{show → app}/show_app_id.py +9 -12
  23. adam/commands/{show → app}/show_app_queues.py +8 -14
  24. adam/commands/app/utils_app.py +98 -0
  25. adam/commands/audit/audit.py +81 -0
  26. adam/commands/audit/audit_repair_tables.py +72 -0
  27. adam/commands/audit/audit_run.py +50 -0
  28. adam/commands/audit/show_last10.py +37 -0
  29. adam/commands/audit/show_slow10.py +36 -0
  30. adam/commands/audit/show_top10.py +36 -0
  31. adam/commands/audit/utils_show_top10.py +71 -0
  32. adam/commands/bash/__init__.py +5 -0
  33. adam/commands/bash/bash.py +36 -0
  34. adam/commands/bash/bash_completer.py +93 -0
  35. adam/commands/bash/utils_bash.py +16 -0
  36. adam/commands/cat.py +36 -0
  37. adam/commands/cd.py +14 -89
  38. adam/commands/check.py +18 -21
  39. adam/commands/cli_commands.py +5 -6
  40. adam/commands/clipboard_copy.py +86 -0
  41. adam/commands/code.py +57 -0
  42. adam/commands/command.py +197 -35
  43. adam/commands/commands_utils.py +15 -31
  44. adam/commands/cql/cql_completions.py +29 -8
  45. adam/commands/cql/cqlsh.py +12 -27
  46. adam/commands/cql/utils_cql.py +297 -0
  47. adam/commands/deploy/code_start.py +7 -10
  48. adam/commands/deploy/code_stop.py +4 -21
  49. adam/commands/deploy/code_utils.py +5 -5
  50. adam/commands/deploy/deploy.py +4 -21
  51. adam/commands/deploy/deploy_frontend.py +14 -17
  52. adam/commands/deploy/deploy_pg_agent.py +3 -6
  53. adam/commands/deploy/deploy_pod.py +71 -79
  54. adam/commands/deploy/deploy_utils.py +16 -26
  55. adam/commands/deploy/undeploy.py +4 -21
  56. adam/commands/deploy/undeploy_frontend.py +4 -7
  57. adam/commands/deploy/undeploy_pg_agent.py +6 -8
  58. adam/commands/deploy/undeploy_pod.py +15 -16
  59. adam/commands/devices/__init__.py +0 -0
  60. adam/commands/devices/device.py +123 -0
  61. adam/commands/devices/device_app.py +163 -0
  62. adam/commands/devices/device_auit_log.py +49 -0
  63. adam/commands/devices/device_cass.py +179 -0
  64. adam/commands/devices/device_export.py +84 -0
  65. adam/commands/devices/device_postgres.py +150 -0
  66. adam/commands/devices/devices.py +25 -0
  67. adam/commands/download_file.py +47 -0
  68. adam/commands/exit.py +1 -4
  69. adam/commands/export/__init__.py +0 -0
  70. adam/commands/export/clean_up_all_export_sessions.py +37 -0
  71. adam/commands/export/clean_up_export_sessions.py +39 -0
  72. adam/commands/export/download_export_session.py +39 -0
  73. adam/commands/export/drop_export_database.py +39 -0
  74. adam/commands/export/drop_export_databases.py +37 -0
  75. adam/commands/export/export.py +53 -0
  76. adam/commands/export/export_databases.py +245 -0
  77. adam/commands/export/export_select.py +59 -0
  78. adam/commands/export/export_select_x.py +54 -0
  79. adam/commands/export/export_sessions.py +209 -0
  80. adam/commands/export/export_use.py +49 -0
  81. adam/commands/export/exporter.py +332 -0
  82. adam/commands/export/import_files.py +44 -0
  83. adam/commands/export/import_session.py +44 -0
  84. adam/commands/export/importer.py +81 -0
  85. adam/commands/export/importer_athena.py +177 -0
  86. adam/commands/export/importer_sqlite.py +67 -0
  87. adam/commands/export/show_column_counts.py +45 -0
  88. adam/commands/export/show_export_databases.py +38 -0
  89. adam/commands/export/show_export_session.py +39 -0
  90. adam/commands/export/show_export_sessions.py +37 -0
  91. adam/commands/export/utils_export.py +343 -0
  92. adam/commands/find_files.py +51 -0
  93. adam/commands/find_processes.py +76 -0
  94. adam/commands/head.py +36 -0
  95. adam/commands/help.py +14 -9
  96. adam/commands/intermediate_command.py +49 -0
  97. adam/commands/issues.py +14 -40
  98. adam/commands/kubectl.py +38 -0
  99. adam/commands/login.py +26 -25
  100. adam/commands/logs.py +5 -7
  101. adam/commands/ls.py +11 -110
  102. adam/commands/medusa/medusa.py +4 -22
  103. adam/commands/medusa/medusa_backup.py +22 -29
  104. adam/commands/medusa/medusa_restore.py +40 -39
  105. adam/commands/medusa/medusa_show_backupjobs.py +19 -20
  106. adam/commands/medusa/medusa_show_restorejobs.py +15 -20
  107. adam/commands/nodetool.py +11 -15
  108. adam/commands/param_get.py +11 -14
  109. adam/commands/param_set.py +8 -12
  110. adam/commands/postgres/postgres.py +45 -46
  111. adam/commands/postgres/postgres_databases.py +269 -0
  112. adam/commands/postgres/postgres_ls.py +4 -8
  113. adam/commands/postgres/postgres_preview.py +5 -9
  114. adam/commands/postgres/psql_completions.py +4 -3
  115. adam/commands/postgres/utils_postgres.py +70 -0
  116. adam/commands/preview_table.py +10 -61
  117. adam/commands/pwd.py +14 -43
  118. adam/commands/reaper/reaper.py +4 -24
  119. adam/commands/reaper/reaper_forward.py +49 -56
  120. adam/commands/reaper/reaper_forward_session.py +6 -0
  121. adam/commands/reaper/reaper_forward_stop.py +10 -16
  122. adam/commands/reaper/reaper_restart.py +8 -15
  123. adam/commands/reaper/reaper_run_abort.py +8 -33
  124. adam/commands/reaper/reaper_runs.py +43 -58
  125. adam/commands/reaper/reaper_runs_abort.py +29 -49
  126. adam/commands/reaper/reaper_schedule_activate.py +9 -32
  127. adam/commands/reaper/reaper_schedule_start.py +9 -32
  128. adam/commands/reaper/reaper_schedule_stop.py +9 -32
  129. adam/commands/reaper/reaper_schedules.py +4 -14
  130. adam/commands/reaper/reaper_status.py +8 -16
  131. adam/commands/reaper/utils_reaper.py +194 -0
  132. adam/commands/repair/repair.py +4 -22
  133. adam/commands/repair/repair_log.py +6 -12
  134. adam/commands/repair/repair_run.py +29 -36
  135. adam/commands/repair/repair_scan.py +33 -39
  136. adam/commands/repair/repair_stop.py +6 -12
  137. adam/commands/report.py +25 -21
  138. adam/commands/restart.py +27 -28
  139. adam/commands/rollout.py +20 -25
  140. adam/commands/shell.py +12 -4
  141. adam/commands/show/show.py +11 -23
  142. adam/commands/show/show_adam.py +3 -3
  143. adam/commands/show/show_cassandra_repairs.py +35 -0
  144. adam/commands/show/show_cassandra_status.py +34 -52
  145. adam/commands/show/show_cassandra_version.py +5 -18
  146. adam/commands/show/show_commands.py +20 -25
  147. adam/commands/show/show_host.py +33 -0
  148. adam/commands/show/show_login.py +23 -27
  149. adam/commands/show/show_params.py +2 -5
  150. adam/commands/show/show_processes.py +16 -20
  151. adam/commands/show/show_storage.py +10 -20
  152. adam/commands/watch.py +27 -30
  153. adam/config.py +7 -15
  154. adam/embedded_params.py +1 -1
  155. adam/log.py +4 -4
  156. adam/pod_exec_result.py +13 -5
  157. adam/repl.py +126 -119
  158. adam/repl_commands.py +63 -29
  159. adam/repl_state.py +320 -71
  160. adam/sql/sql_completer.py +98 -383
  161. adam/sql/sql_state_machine.py +630 -0
  162. adam/sql/term_completer.py +14 -4
  163. adam/sso/authn_ad.py +6 -8
  164. adam/sso/authn_okta.py +4 -6
  165. adam/sso/cred_cache.py +4 -6
  166. adam/sso/idp.py +10 -13
  167. adam/utils.py +511 -10
  168. adam/utils_athena.py +145 -0
  169. adam/utils_audits.py +102 -0
  170. adam/utils_issues.py +32 -0
  171. adam/utils_k8s/__init__.py +0 -0
  172. adam/utils_k8s/app_clusters.py +28 -0
  173. adam/utils_k8s/app_pods.py +36 -0
  174. adam/utils_k8s/cassandra_clusters.py +44 -0
  175. adam/{k8s_utils → utils_k8s}/cassandra_nodes.py +11 -4
  176. adam/{k8s_utils → utils_k8s}/custom_resources.py +16 -17
  177. adam/{k8s_utils → utils_k8s}/deployment.py +2 -2
  178. adam/{k8s_utils → utils_k8s}/ingresses.py +2 -2
  179. adam/{k8s_utils → utils_k8s}/jobs.py +7 -11
  180. adam/utils_k8s/k8s.py +87 -0
  181. adam/{k8s_utils → utils_k8s}/kube_context.py +2 -2
  182. adam/{k8s_utils → utils_k8s}/pods.py +109 -74
  183. adam/{k8s_utils → utils_k8s}/secrets.py +7 -3
  184. adam/{k8s_utils → utils_k8s}/service_accounts.py +5 -4
  185. adam/{k8s_utils → utils_k8s}/services.py +2 -2
  186. adam/{k8s_utils → utils_k8s}/statefulsets.py +3 -14
  187. adam/utils_local.py +4 -0
  188. adam/utils_net.py +24 -0
  189. adam/utils_repl/__init__.py +0 -0
  190. adam/utils_repl/automata_completer.py +48 -0
  191. adam/utils_repl/repl_completer.py +46 -0
  192. adam/utils_repl/state_machine.py +173 -0
  193. adam/utils_sqlite.py +137 -0
  194. adam/version.py +1 -1
  195. {kaqing-2.0.52.dist-info → kaqing-2.0.184.dist-info}/METADATA +1 -1
  196. kaqing-2.0.184.dist-info/RECORD +244 -0
  197. adam/commands/app.py +0 -67
  198. adam/commands/bash.py +0 -87
  199. adam/commands/cp.py +0 -95
  200. adam/commands/cql/cql_table_completer.py +0 -8
  201. adam/commands/cql/cql_utils.py +0 -109
  202. adam/commands/describe/describe.py +0 -46
  203. adam/commands/describe/describe_keyspace.py +0 -60
  204. adam/commands/describe/describe_keyspaces.py +0 -50
  205. adam/commands/describe/describe_table.py +0 -60
  206. adam/commands/describe/describe_tables.py +0 -50
  207. adam/commands/devices.py +0 -89
  208. adam/commands/postgres/postgres_session.py +0 -240
  209. adam/commands/postgres/postgres_utils.py +0 -31
  210. adam/commands/postgres/psql_table_completer.py +0 -11
  211. adam/commands/reaper/reaper_session.py +0 -159
  212. adam/commands/show/show_app_actions.py +0 -53
  213. adam/commands/show/show_repairs.py +0 -47
  214. adam/k8s_utils/cassandra_clusters.py +0 -35
  215. adam/sql/sql_utils.py +0 -5
  216. kaqing-2.0.52.dist-info/RECORD +0 -184
  217. /adam/commands/{describe → app}/__init__.py +0 -0
  218. /adam/{k8s_utils → commands/audit}/__init__.py +0 -0
  219. /adam/{k8s_utils → utils_k8s}/config_maps.py +0 -0
  220. /adam/{k8s_utils → utils_k8s}/volumes.py +0 -0
  221. {kaqing-2.0.52.dist-info → kaqing-2.0.184.dist-info}/WHEEL +0 -0
  222. {kaqing-2.0.52.dist-info → kaqing-2.0.184.dist-info}/entry_points.txt +0 -0
  223. {kaqing-2.0.52.dist-info → kaqing-2.0.184.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,173 @@
1
+ from abc import abstractmethod
2
+ from typing import Generic, TypeVar
3
+
4
+ from adam.utils import log_exc
5
+
6
+ __all__ = [
7
+ 'State',
8
+ 'StateMachine',
9
+ ]
10
+
11
+ T = TypeVar('T')
12
+
13
+ class State:
14
+ def __init__(self, state: str, comeback_token: str = None, comeback_state: str = None):
15
+ self.state = state
16
+ self.comeback_token = comeback_token
17
+ self.comeback_state = comeback_state
18
+ self.context: dict[str, str] = {}
19
+
20
+ def __str__(self):
21
+ return f'{self.state if self.state else None} comeback[{self.comeback_token} {self.comeback_state}]'
22
+
23
+ class StateMachine(Generic[T]):
24
+ @abstractmethod
25
+ def spec(self) -> str:
26
+ return None
27
+
28
+ @abstractmethod
29
+ def keywords(self) -> list[str]:
30
+ return None
31
+
32
+ def expandable_names(self):
33
+ return []
34
+
35
+ def incomplete_name_transition_condition(self, from_s: str, token: str, to_s: str, suggestions: str) -> list[str]:
36
+ if not suggestions:
37
+ return None
38
+
39
+ tokens = [token]
40
+ if '|' in token:
41
+ tokens = token.split('|')
42
+
43
+ if 'name' not in tokens:
44
+ return None
45
+
46
+ return tokens
47
+
48
+ def __init__(self, indent=0, push_level = 0, debug = False):
49
+ self.states: dict[str, State] = {}
50
+ self.suggestions: dict[str, str] = {}
51
+
52
+ self.indent = indent
53
+ self.push_level = push_level
54
+ self.comebacks: dict[int, str] = {}
55
+ self.debug = debug
56
+
57
+ from_ss_to_add = []
58
+ from_ss = ['']
59
+ words: str = None
60
+ for l in self.spec():
61
+ t_and_w = l.split('^')
62
+ if len(t_and_w) > 1:
63
+ words = t_and_w[1].strip()
64
+ else:
65
+ words = None
66
+
67
+ tks = t_and_w[0].strip(' ').split('>')
68
+ if not l.startswith('-'):
69
+ if words:
70
+ self.suggestions[tks[0].strip(' ')] = words
71
+
72
+ if len(tks) == 1:
73
+ from_ss_to_add.append(tks[0].strip(' '))
74
+ continue
75
+
76
+ from_ss = []
77
+ from_ss.extend(from_ss_to_add)
78
+ from_ss_to_add = []
79
+ from_ss.append(tks[0].strip(' '))
80
+
81
+ self.add_transitions(from_ss, tks, words)
82
+
83
+ def add_transitions(self, from_ss: list[str], tks: list[str], words: str):
84
+ token = tks[1].strip(' ')
85
+ if len(tks) > 2:
86
+ to_s = tks[2].strip(' ')
87
+ for from_s in from_ss:
88
+ self.add_whitespace_transition(from_s, to_s)
89
+ self.add_transition(from_s, token, to_s)
90
+ self.add_incomplete_name_transition(from_s, token, to_s, words)
91
+ elif '<' in tks[0]:
92
+ from_and_token = tks[0].split('<')
93
+ if len(from_and_token) > 1:
94
+ for from_s in from_ss:
95
+ self.add_comeback_transition(from_s, from_and_token[1], tks[1].strip(' '))
96
+
97
+ def add_whitespace_transition(self, from_s: str, to_s: str):
98
+ if self.witespace_transition_condition(from_s, to_s):
99
+ if self.debug:
100
+ print(f'{from_s[:-1]} > _ = {to_s}')
101
+ self.states[f'{from_s[:-1]} > _'] = State(from_s)
102
+
103
+ def witespace_transition_condition(self, from_s: str, to_s: str):
104
+ return from_s.endswith('_')
105
+
106
+ def add_incomplete_name_transition(self, from_s: str, token: str, to_s: str, words: str):
107
+ if tokens := self.incomplete_name_transition_condition(from_s, token, to_s, words):
108
+ self.suggestions[to_s] = words
109
+ for token in tokens:
110
+ if self.debug:
111
+ print(f'{to_s} > {token} = {to_s}')
112
+ self.states[f'{to_s} > {token}'] = State(to_s)
113
+
114
+ def add_transition(self, from_s: str, token: str, to_s: str):
115
+ tokens = [token]
116
+ if '|' in token:
117
+ tokens = token.split('|')
118
+
119
+ for t in tokens:
120
+ if t == '_or_':
121
+ t = '||'
122
+ elif t == 'pipe':
123
+ t = '|'
124
+ elif t == '_rdr0_':
125
+ t = '<'
126
+ elif t == '_rdr1_':
127
+ t = '>'
128
+ elif t == '_rdr2_':
129
+ t = '2>'
130
+
131
+ if self.debug:
132
+ print(f'{from_s} > {t} = {to_s}')
133
+ self.states[f'{from_s} > {t}'] = State(to_s)
134
+
135
+ def add_comeback_transition(self, from_s: str, token: str, to_s: str):
136
+ key = f'{from_s} > ('
137
+ orig = self.states[key]
138
+ if not orig:
139
+ raise Exception(f'from state not found for {key}')
140
+
141
+ orig.comeback_token = token
142
+ orig.comeback_state = to_s
143
+ if self.debug:
144
+ print(f'{from_s} > ) = {to_s}')
145
+ self.states[key] = orig
146
+
147
+ def traverse_tokens(self, tokens: list[str], state: State = State('')):
148
+ for token in tokens[:-1]:
149
+ if not token:
150
+ continue
151
+
152
+ if self.debug:
153
+ print(f'{token} ', end='')
154
+
155
+ last_name = None
156
+
157
+ if (t := token.lower()) in self.keywords():
158
+ token = t
159
+ elif token in ['*', ',', '.']:
160
+ pass
161
+ else:
162
+ last_name = token
163
+ token = 'word'
164
+
165
+ with log_exc():
166
+ context = state.context
167
+ state = self.states[f'{state.state} > {token}']
168
+ state.context = context
169
+
170
+ if last_name:
171
+ state.context['last_name'] = last_name
172
+
173
+ return state
adam/utils_sqlite.py ADDED
@@ -0,0 +1,137 @@
1
+ from collections.abc import Callable
2
+
3
+ import functools
4
+ import glob
5
+ import os
6
+ import sqlite3
7
+ import pandas
8
+
9
+ from adam.config import Config
10
+ from adam.utils import tabulize, log, wait_log
11
+
12
+ class CursorHandler:
13
+ def __init__(self, conn: sqlite3.Connection):
14
+ self.conn = conn
15
+ self.cursor = None
16
+
17
+ def __enter__(self):
18
+ self.cursor = self.conn.cursor()
19
+
20
+ return self.cursor
21
+
22
+ def __exit__(self, exc_type, exc_val, exc_tb):
23
+ if self.cursor:
24
+ self.cursor.close()
25
+
26
+ return False
27
+
28
+ class SQLiteConnectionHandler:
29
+ def __init__(self, database: str, keyspace = None):
30
+ self.database = database
31
+ self.keyspace = keyspace
32
+ self.conn = None
33
+
34
+ def __enter__(self) -> sqlite3.Connection:
35
+ self.conn = SQLite.connect(self.database, self.keyspace)
36
+
37
+ self.conn.__enter__()
38
+
39
+ return self.conn
40
+
41
+ def __exit__(self, exc_type, exc_val, exc_tb):
42
+ if self.conn:
43
+ self.conn.__exit__(exc_type, exc_val, exc_tb)
44
+
45
+ return False
46
+
47
+ def sqlite(database: str, keyspace = None):
48
+ return SQLiteConnectionHandler(database, keyspace=keyspace)
49
+
50
+ # no state utility class
51
+ class SQLite:
52
+ def cursor(conn: sqlite3.Connection):
53
+ return CursorHandler(conn)
54
+
55
+ def local_db_dir():
56
+ return Config().get('export.sqlite.local-db-dir', '/tmp/qing-db')
57
+
58
+ def keyspace(database: str):
59
+ return '_'.join(database.replace(".db", "").split('_')[1:])
60
+
61
+ @functools.lru_cache()
62
+ def database_names(prefix: str = None):
63
+ wait_log('Inspecting export databases...')
64
+
65
+ pattern = f'{SQLite.local_db_dir()}/s*.db'
66
+ if prefix:
67
+ pattern = f'{SQLite.local_db_dir()}/{prefix}*'
68
+ return [os.path.basename(f) for f in glob.glob(pattern)]
69
+
70
+ def clear_cache(cache: str = None):
71
+ SQLite.database_names.cache_clear()
72
+ SQLite.table_names.cache_clear()
73
+
74
+ @functools.lru_cache()
75
+ def table_names(database: str):
76
+ tokens = database.replace('.db', '').split('_')
77
+ ts_prefix = tokens[0]
78
+ keyspace = '_'.join(tokens[1:])
79
+
80
+ conn = None
81
+ tables = []
82
+ try:
83
+ conn = sqlite3.connect(f'{SQLite.local_db_dir()}/{ts_prefix}_{keyspace}.db')
84
+ with SQLite.cursor(conn) as cursor:
85
+ cursor.execute("SELECT name FROM sqlite_master WHERE type='table' ORDER BY name;")
86
+
87
+ tables = [row[0] for row in cursor.fetchall() if row[0] != "sqlite_sequence"]
88
+
89
+ return tables
90
+ except sqlite3.Error as e:
91
+ print(f"Error connecting to or querying the database: {e}")
92
+ return []
93
+ finally:
94
+ if conn:
95
+ conn.close()
96
+
97
+ def connect(database: str, keyspace: str = None):
98
+ os.makedirs(SQLite.local_db_dir(), exist_ok=True)
99
+
100
+ if keyspace:
101
+ return sqlite3.connect(f'{SQLite.local_db_dir()}/{database}_{keyspace}.db')
102
+ else:
103
+ conn = sqlite3.connect(f'{SQLite.local_db_dir()}/{database}_root.db')
104
+ with SQLite.cursor(conn) as cursor:
105
+ for d in SQLite.database_names(database):
106
+ if d != f'{database}.db':
107
+ q = f"ATTACH DATABASE '{SQLite.local_db_dir()}/{d}' AS {SQLite.keyspace(d)}"
108
+ cursor.execute(q)
109
+
110
+ return conn
111
+
112
+ @functools.lru_cache()
113
+ def column_names(tables: list[str] = [], database: str = None, function: str = 'audit', partition_cols_only = False):
114
+ pass
115
+
116
+ def run_query(query: str, database: str = None, output: Callable[[str], str] = None) -> tuple[int, str]:
117
+ with sqlite(database) as conn:
118
+ return SQLite.run_query_with_conn(conn, query, output=output)
119
+
120
+ def run_query_with_conn(conn, query: str, output: Callable[[str], str] = None) -> tuple[int, str]:
121
+ log_file = None
122
+
123
+ df = SQLite.query(conn, query)
124
+ lines = ['\t'.join(map(str, line)) for line in df.values.tolist()]
125
+ out = tabulize(lines, header='\t'.join(df.columns.tolist()), separator='\t', to=0)
126
+ if output:
127
+ log_file = output(out)
128
+ else:
129
+ log(out)
130
+
131
+ return len(lines), log_file
132
+
133
+ 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')
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.52" #: the working version
4
+ __version__ = "2.0.184" #: 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.52
3
+ Version: 2.0.184
4
4
  Summary: UNKNOWN
5
5
  Home-page: UNKNOWN
6
6
  License: UNKNOWN
@@ -0,0 +1,244 @@
1
+ adam/__init__.py,sha256=is7iqn2nhRzPymhTEajITEFVyvROZ9GWfNsZX3L5g_o,45
2
+ adam/app_session.py,sha256=4bRs1uYvaFWnWlTyQctSeR3BE2Dk0bVe509LbqvX9iE,6841
3
+ adam/apps.py,sha256=f1qsIOYjn4fdpCvMfOBns5YEiA5fMm7yZu3cQrK6z2M,7049
4
+ adam/batch.py,sha256=c1FgH3-glAqBdAXMEGBe9MTHnqGFUXfsgLB1Mw9LV60,24041
5
+ adam/cli.py,sha256=03pIZdomAu7IL-GSP6Eun_PKwwISShRAmfx6eVRPGC0,458
6
+ adam/cli_group.py,sha256=W3zy1BghCtVcEXizq8fBH-93ZRVVwgAyGPzy0sHno1Y,593
7
+ adam/config.py,sha256=LJWT9eiKhNj6qYDKx8TAkCmlBsxXTxLbYuSppnP5SGA,2697
8
+ adam/embedded_apps.py,sha256=lKPx63mKzJbNmwz0rgL4gF76M9fDGxraYTtNAIGnZ_s,419
9
+ adam/embedded_params.py,sha256=esYTcFkYUoGFjLHNz8wZ6uMLOlNq_yONTE2_Umb8ThU,6287
10
+ adam/log.py,sha256=vcJ1Q8LLnt3NSXqpVcKjAI2OZE6KaD3PEi1kfu_D8qs,1156
11
+ adam/pod_exec_result.py,sha256=85jy_5dS6TEEk5ijU0B62YfUycxmD3dG8mhIHFPipc8,1260
12
+ adam/repl.py,sha256=RYF94UkstdPgqkZUmN6pTqEBIyCf0IGiGMPzjmGNrYA,7421
13
+ adam/repl_commands.py,sha256=MKiawgYi0A28WMeu7oOKZSJvBmA9FKyPJ3c6fAGI5Hs,6906
14
+ adam/repl_session.py,sha256=uIogcvWBh7wd8QQ-p_JgLsyJ8YJgINw5vOd6JIsd7Vo,472
15
+ adam/repl_state.py,sha256=gBYi5WKQ5KaTcCSFB193IcW8HalrqjwtHkvx_-vwW1Q,15810
16
+ adam/utils.py,sha256=YCZ_qUlIAWigzPYarzUrtKGA0A03pZe_AtDuMFZE6rk,21729
17
+ adam/utils_athena.py,sha256=13ZtBlOIDhIvZYRGRLtDrKrEcn4VIq87IZVrIkM1mAM,5389
18
+ adam/utils_audits.py,sha256=lZ2U1AcROxLB4652auG091QFTPs_YNzbtdXBiK6bY_Y,4063
19
+ adam/utils_issues.py,sha256=nWhzUXmD2IfbT8MzjdyvuvpKrtUoieF74O2joaWFpUU,1438
20
+ adam/utils_local.py,sha256=3RIvP5ZluJhOl-z9qi5U4bLFP5_vuYGnjcY-koO40lE,109
21
+ adam/utils_net.py,sha256=byEtNVr8iG9UaD7dM77dN2WEBClB7YNKult7LKFTCOc,428
22
+ adam/utils_sqlite.py,sha256=z34AxQL1HZBcv704NXZsMerWt-BPtnCUUw1rZHQB9Bw,4330
23
+ adam/version.py,sha256=kYLgDfH_OX0upFxTpysYQpCmiJusQM-UuG8SS3sisJg,140
24
+ adam/checks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
+ adam/checks/check.py,sha256=Qopr3huYcMu2bzQgb99dEUYjFzkjKHRI76S6KA9b9Rk,702
26
+ adam/checks/check_context.py,sha256=FEHkQ32jY1EDopQ2uYWqy9v7aEEX1orLpJWhopwAlh4,402
27
+ adam/checks/check_result.py,sha256=5_DVNgkCC9t7xFJYNsjd9bfXA1I4vYb6K3kmN8cdMrA,669
28
+ adam/checks/check_utils.py,sha256=oF4nOTqHY_ynf8M3kvDqzSzxA7-vScobxP9W_oWp8No,2736
29
+ adam/checks/compactionstats.py,sha256=NFi9RcRImZqCJBZs3LH851RHmlu4BO0s_QOsvkdUxKQ,2304
30
+ adam/checks/cpu.py,sha256=j1CFzDO77uTpnYW7xUbx0OzHkQksc2IEXLPXenDo2wE,2978
31
+ adam/checks/cpu_metrics.py,sha256=ymDxof0l4PdRp527nFAJae7Yzn7zjAOvDMZiBwS50QY,2023
32
+ adam/checks/disk.py,sha256=pmjNUEF4rrYtQGcHfv9K78q8cCbAsZeg6qE3KN-IbBU,5215
33
+ adam/checks/gossip.py,sha256=60PeVkhtMWziiYILPwMKfesFjOanIn-nxeZZL5nUHQs,3119
34
+ adam/checks/issue.py,sha256=u3E6yCpDGGJiveKXdpkrKq7HQRTrG7aR2XLCoO-ys7U,498
35
+ adam/checks/memory.py,sha256=1TPoC_eL7QmMMJfaclW3hoSxudsUc4qvrzzb0Z4f5Kw,3056
36
+ adam/checks/status.py,sha256=4IFCesrovCbGKgbJxLr0VxjGGWmmF23ZQNfHUFb5Kyg,2140
37
+ adam/columns/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
+ adam/columns/column.py,sha256=O_5ptfx136BKdLo8enDvSL3HlId1dkjMM2XUumg1tNA,956
39
+ adam/columns/columns.py,sha256=AqUhIdu8dlaZuA96rWW3TBnR6SdbvQkr02ZGyHZKKmU,1708
40
+ adam/columns/compactions.py,sha256=ybIEYTkDuRTBLIUNurGhu1jhVnf1UEpJ0abo3GTgmKw,928
41
+ adam/columns/cpu.py,sha256=b_kFLUwBFxAkZXmqu-L7stuJDT_5bbEUZPLiTOQaBKg,585
42
+ adam/columns/cpu_metrics.py,sha256=4CWz-hwJhAW00Yd-7jKWRYIPviyjY4THp_FulMW6otc,711
43
+ adam/columns/dir_data.py,sha256=gDLcrwMZ6dEVTmpvc35yX3iNY97mQ5q0eQojm8tZ2so,545
44
+ adam/columns/dir_snapshots.py,sha256=OSseuf7gAvT-_ujLvGt43jF-q7QVJNDcvqOK47QSJbk,451
45
+ adam/columns/gossip.py,sha256=KKUycFG-8YxMh9VYUrYOFwPVvnh-0i19k---DrpW93g,656
46
+ adam/columns/host_id.py,sha256=oqesvFCzUu0utkcH5mhYg0vx7lAW2EIDoezgY_CCP_Y,350
47
+ adam/columns/memory.py,sha256=yUjHcdhoiivJQB2kVimCSuzkhZTiPSugwtJ8invoub0,706
48
+ adam/columns/node_address.py,sha256=PqSm2FtR0NAhc-R17sPRJJ3c6eWlJLHPctu8RsCslcM,355
49
+ adam/columns/node_load.py,sha256=Oc-kdfezYBP5eWDug-ijgM48x6XRNjwxxoQDZt_MbQc,349
50
+ adam/columns/node_owns.py,sha256=Iv5FDYV0m3ZM2JK05Fl485ZxDgOxZHDIN9KYNJc6Zdg,349
51
+ adam/columns/node_status.py,sha256=im52GfdETXVJVM00fU5OjJM2FvLZrgqpLkWKCwWhjAs,353
52
+ adam/columns/node_tokens.py,sha256=38D9xJ3uA48gzEYBtIiIUbZJcteM1H4KryzJNn01uZ8,353
53
+ adam/columns/node_utils.py,sha256=ql2StXmASC7equuabZVZEQ_BPTu2KkS99gY_3JXpIvU,774
54
+ adam/columns/pod_name.py,sha256=IYw0ZKA7Fb9LaGXENqzZTiTgL98tahwFRtfy0KkKh2Q,280
55
+ adam/columns/volume_cassandra.py,sha256=9KRNOzjNYganI9avN6zaA5_-7yxD4rV-KNxro9CSUg4,753
56
+ adam/columns/volume_root.py,sha256=29ujLoCAf9LO75u62LxEaPD58s6ihV-tcK17OeLSOM0,556
57
+ adam/commands/__init__.py,sha256=xMC9cRhdshstKEgmu5-euiAE53vvWItKqUzlKhTteAg,1302
58
+ adam/commands/alter_tables.py,sha256=yNqIYDoZd2xZEl3hc8E6V1Br6_BEM3X7DCnXFGuR1pQ,3216
59
+ adam/commands/cat.py,sha256=faPselbEKg9g7iROZyeMUkroaYL3D1pe5UT12ZQVTu4,1210
60
+ adam/commands/cd.py,sha256=g6GGHqg72pfxjVL_s5KFne2GL8taikWRWgCEU1nDRqg,1338
61
+ adam/commands/check.py,sha256=5aa4DAIMB24HNY-zYwHGthQM_9qwB-vlKpzeaq65HBs,2314
62
+ adam/commands/cli_commands.py,sha256=TGnm2uxtuDRmkNNMlPOpYAXJkgDQEuhDeimBcwsEtC8,3574
63
+ adam/commands/clipboard_copy.py,sha256=H5NgTiJPK9pybqJ2lPvbTodVLkTjoqNrPeEanVg_mbY,3107
64
+ adam/commands/code.py,sha256=q95MN9Ts7xjCAUZB50Q8MJYNPzny-4FeI2LdwMBzozQ,1890
65
+ adam/commands/command.py,sha256=LPsrGIBwVawRNAnP0jvovbxVLifAQftpzUQjymHIrYY,9204
66
+ adam/commands/command_helpers.py,sha256=leOJJK1UXczNTJHN9TGMCbIpUpmpreULvQ-TvnsYS7w,1134
67
+ adam/commands/commands_utils.py,sha256=E5i592tpfpNqKFHcyvOdCqMmg7RdHWfRwRN3zxVzfQs,2734
68
+ adam/commands/download_file.py,sha256=edfBKapK7URHRMnIJn6a6HMNFmFD-kUq62Z3DHdtyT4,1693
69
+ adam/commands/exit.py,sha256=T7bCEShd6MXQ8rXak7vGZTvqEOejPOUPtbdfy7d8WWA,753
70
+ adam/commands/find_files.py,sha256=2yx-RhOHvok0y0wxYf-OChWghEQc_pnp3B_nASt33zk,1480
71
+ adam/commands/find_processes.py,sha256=jrIwz8YtQRO4I-zov1wfjcLpCJ_nDRDMmL9iZWg1ztg,2911
72
+ adam/commands/head.py,sha256=vcGSi-5ImB3ik8d6LUxijogyEvUeyiYiOml8qZJmT-A,1216
73
+ adam/commands/help.py,sha256=SYaJL-7mApfSlfkDvY2uKl7onyr54ntDmMSQ18sfaZw,1886
74
+ adam/commands/intermediate_command.py,sha256=6g3rei97hKwO-pG_Wisp6T5DSiychcMY8CoTnf39Hfc,1721
75
+ adam/commands/issues.py,sha256=5evrVBzc4sCMHwQ9LmuGAgoPBINr-OCa9FZMJVJDwH8,1431
76
+ adam/commands/kubectl.py,sha256=kCXIl_9vNDW6CBirCeowQjJ2UhidlCEDBP8XOVIloF8,993
77
+ adam/commands/login.py,sha256=rY8P3wpWZOBN-68QRZfDfBvd0wjLUkwbTNPduqAOoVA,2073
78
+ adam/commands/logs.py,sha256=CS4eh5JWzoXboYSXXpiE6CDsky1Jsu61Q1MZAqGjOB8,1142
79
+ adam/commands/ls.py,sha256=b6EBzjXdlagOkpD_OM77I_n18ikGub5obtuerruA9yA,1298
80
+ adam/commands/nodetool.py,sha256=Fz6hbBHmp7zY5Xr4EVmOqVAVLo0RjADwsBePCFVWPT8,2191
81
+ adam/commands/nodetool_commands.py,sha256=5IgWC3rmeDD1cgwqQjiiWzi-wJpJ3n_8pAzz_9phXuk,2635
82
+ adam/commands/param_get.py,sha256=3IpAn4_T-_NlSkEXyv0jkBJ_aHE-e9hdY5YVaZlIKBI,1357
83
+ adam/commands/param_set.py,sha256=v1oKyr7Efv7YpnwuXj-dm4M_vo9F1FNIdQHSb6F_t1o,1351
84
+ adam/commands/preview_table.py,sha256=sw2vqItIo4YuaawFOecS5lYl-cMfYiLgeR0fKG23o4A,1255
85
+ adam/commands/pwd.py,sha256=aQKMHEONxTM2h1nv3dT9rj6cUl3WUZC6SD8nrfNYrZI,1427
86
+ adam/commands/report.py,sha256=IESGEq6akUY2IznKUZV90_5s2gRM4npexFQH7Pa3rAI,2086
87
+ adam/commands/restart.py,sha256=CUjHxdWznqgY2BdYcHHKH2eolj3cPeE5xbMjkIiyJ2A,2202
88
+ adam/commands/rollout.py,sha256=BmlvnVffPGCERfXxdJJFnxtU3yDILp5016N7C-EWCOE,3032
89
+ adam/commands/shell.py,sha256=UQs4TEIDiZOjJrVsZJ_O9DDtn_k3K7-ifg1ZBsJFnsU,1155
90
+ adam/commands/watch.py,sha256=q3kJd6YSO_ZxQ107EeIWZsW8m2X7YIGT3QPXjKloTIo,2459
91
+ adam/commands/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
92
+ adam/commands/app/app.py,sha256=mjieddAahG3wnXMOIcrrclVqzqsA-6gRvTLjp6Qr4Gs,1198
93
+ adam/commands/app/app_ping.py,sha256=VOPaWE2DQjAXlN1uonH2chNItiTUt7HqltQDA2LkwrU,1207
94
+ adam/commands/app/show_app_actions.py,sha256=vChdR20zGEBMRJotwGPyRjpteoFawaIU6fZnVdBtj_w,1742
95
+ adam/commands/app/show_app_id.py,sha256=4Y4uTZa7J5NJI6W8OTqtS5ynCoflYiPVz98c-h3hNBo,1359
96
+ adam/commands/app/show_app_queues.py,sha256=F6qFqnUqiNocvWROj8oXQmmLYU9e8S51N8ao6P0wp-Y,1234
97
+ adam/commands/app/utils_app.py,sha256=TQM7AH4hCk7Wl88r-rzecEZ7djejp3vtVGvug63kGD8,3024
98
+ adam/commands/audit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
99
+ adam/commands/audit/audit.py,sha256=WLWPnLry90kdrxZy0odNHwL9E3xvHe0TtFN2JfvJJKY,3157
100
+ adam/commands/audit/audit_repair_tables.py,sha256=F4EuDV4pObZJ4Xc2lj32vadTQQyCdxiyGWznQqm4YTw,2575
101
+ adam/commands/audit/audit_run.py,sha256=yFrLGRYblEwOgB2nxEjicSVD3ZzcYV4hmH0AoB7u8OE,1698
102
+ adam/commands/audit/show_last10.py,sha256=jCDFVeyAO_ofi4PwVPaAlcB8wF2lNPLoN1eWhwoNgnU,1041
103
+ adam/commands/audit/show_slow10.py,sha256=a0KU9Z6Z93eWqcrnJ-Ssz1U2488aUk62dLOZcnM5pFg,1040
104
+ adam/commands/audit/show_top10.py,sha256=7uqgkdrEfK0-ucsQrpyaa6_9i3nOpWJ116sNL-fkKUA,1033
105
+ adam/commands/audit/utils_show_top10.py,sha256=o37sWLEJD16eoWPM3Rql_H-noLHVMp4DH1VeTpnFeNA,2354
106
+ adam/commands/bash/__init__.py,sha256=K4BBF_T-6czi7uqBN-WQg3eNvG-ePJF3IPp8eyGyqmk,163
107
+ adam/commands/bash/bash.py,sha256=AvXehWWltrT9sXttpeGFhRoNO0PAjyNEiqnbxSiNpZI,1168
108
+ adam/commands/bash/bash_completer.py,sha256=IStUg5LLTqc3vjupw33WtXUG9zRQ37BctjDYGDyYEXU,3883
109
+ adam/commands/bash/utils_bash.py,sha256=LmpTVPaM0aEMDqKPFnyEp5EidAyQQiiUkcvRjvOu-20,433
110
+ adam/commands/cql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
111
+ adam/commands/cql/cql_completions.py,sha256=Wr37WHWO4-zAYMRlG38GpfxFAIFHlmBUKSAHHsx7ftU,1465
112
+ adam/commands/cql/cqlsh.py,sha256=JWoxx75d5Kn1vDpmSfTjHVfeMpL-r0zIIrODutQipQI,2383
113
+ adam/commands/cql/utils_cql.py,sha256=4YRD7mYzVxW050oWl7JhOuBZ7JOmWcc1oXFdo6pYp80,11259
114
+ adam/commands/deploy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
115
+ adam/commands/deploy/code_start.py,sha256=0h8AIPjThC7uxa4HVkYMdC-7qCNXk0QXO1zDrzIOA4s,1335
116
+ adam/commands/deploy/code_stop.py,sha256=R9zvNVD4NLUD3J6ktZ53Rsalzn-t0ZxEpeyOoiizfgU,1153
117
+ adam/commands/deploy/code_utils.py,sha256=H0XgKxVV1Rt3JRjZlssUHwkttuRQ0n6JjjsYw-jn5kI,3285
118
+ adam/commands/deploy/deploy.py,sha256=TmJbWS6JPts8mfPakguTMA88xjstdiUgYfA2aacLA2E,821
119
+ adam/commands/deploy/deploy_frontend.py,sha256=msfDZW8aAlL8E5ve36VkWthuqmXONGRVe7djqLo3i7g,1689
120
+ adam/commands/deploy/deploy_pg_agent.py,sha256=BeM1jpGVHzcpTl4Bs2LaVfyHeqYo0tYRdqnst0AYuas,1150
121
+ adam/commands/deploy/deploy_pod.py,sha256=as7E-2bO1v7IY_3G8iOhrGajFxrGQFYfWebJKMWx16s,4541
122
+ adam/commands/deploy/deploy_utils.py,sha256=P_Z-8tY_ZZuucsHL-8r5rt1c0LfIM-CYpvPsTiM4oe8,1241
123
+ adam/commands/deploy/undeploy.py,sha256=QblQDQOjesNbMfi0Rx_D3oxC93LEPfTVqDj5sLAc84g,873
124
+ adam/commands/deploy/undeploy_frontend.py,sha256=khgxZ94bXlQ8c737B_J-gE0pNBA0GaIQmxCapnkI98c,1210
125
+ adam/commands/deploy/undeploy_pg_agent.py,sha256=X73_0dadpn_DFW1rQMQssE3NQbmovllEXkxFDAunPms,1259
126
+ adam/commands/deploy/undeploy_pod.py,sha256=Pc5xpU4z5_CHrtz3cAzReT4Qxyks2kQ-uWSRUnAYiJ4,1907
127
+ adam/commands/devices/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
128
+ adam/commands/devices/device.py,sha256=NEGeE-uWjW_AJPZufuVe3FKuPrPh59iCMNh4nk7r2FI,3490
129
+ adam/commands/devices/device_app.py,sha256=ZqS5bNq2fBAkuYzYfiSRPt1k26-Cc6u5Fo5AcCWPY_s,6373
130
+ adam/commands/devices/device_auit_log.py,sha256=kOP5QwDixwVPupd1A0PG2RY0fq_aeEdx4MRWegnj2Ow,1560
131
+ adam/commands/devices/device_cass.py,sha256=45tEDKETZF20Bj3lPyFLkcJ7VDmGVB8mVtBWq8YGcps,6754
132
+ adam/commands/devices/device_export.py,sha256=dkXVrBzfVyqT4sLIZBHxYqJl9whXhs3UM1WgaHXuWyY,2932
133
+ adam/commands/devices/device_postgres.py,sha256=up-F3dW7nMqtnOcw9WQVeZ3FjwM5F2PjSwV1bgAMEiI,5508
134
+ adam/commands/devices/devices.py,sha256=-VV8nU-Qcebx2g2ftOywmgrn8wW7-teCpxFQjU9wBR4,965
135
+ adam/commands/export/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
136
+ adam/commands/export/clean_up_all_export_sessions.py,sha256=YpGBrOMYY2n_G-fQMpJPZSEHIC9zArWayYWbaOHOkY8,1161
137
+ adam/commands/export/clean_up_export_sessions.py,sha256=AaYaMG8x0lRCzOs8-vAH1J76Y-iLX1QOkwC4rMu8nXw,1328
138
+ adam/commands/export/download_export_session.py,sha256=tY8AQpGI9hN-WCR9ezjn6N2ue_ZHWPkCp--N7S_9GuE,1493
139
+ adam/commands/export/drop_export_database.py,sha256=3S6yj0OuMknPZ1MpPad7eCm1V6BdDn6enHcjRC_fjek,1232
140
+ adam/commands/export/drop_export_databases.py,sha256=WzOm4Ykf1O_ZRjF8oZn_PaKTuIzxFeRJhqWfsENCstg,1095
141
+ adam/commands/export/export.py,sha256=l-3dSKXVdAteicfQvkLmELRJ42LBmCAqhOqL0uthrJA,2105
142
+ adam/commands/export/export_databases.py,sha256=g736a1WZqkTjsddNdX0NwQJV8SnAJWHbBSMS6fWZ5Ro,8158
143
+ adam/commands/export/export_select.py,sha256=WDpyQOmKQ1DuAeZUvgu3K32gOCNgV5uWG7fwCMGTszY,2117
144
+ adam/commands/export/export_select_x.py,sha256=WuSkuhB4yfz0IVt3-Dd42GG7FTWoNzBhVsfieEN51W0,2020
145
+ adam/commands/export/export_sessions.py,sha256=ZGixNge-xCDf5qNIPM9hGEJnQw16vM8AVKClURDONmY,7420
146
+ adam/commands/export/export_use.py,sha256=1Z-N19wK_tkqoCHR2XqFGod4hr2BTJkhNJfcxiL-BuE,1518
147
+ adam/commands/export/exporter.py,sha256=Oh---HyjjgeyX9h9flvmEvh4DXkziWwfZTnndnqo0j4,15222
148
+ adam/commands/export/import_files.py,sha256=OIAZUVcwvWSKLjyLi6298bdMYRPPFldNXykvrQSsUYY,1625
149
+ adam/commands/export/import_session.py,sha256=cbLQts9kkZBwEhpHV_fDhcHN2uzfsjdYvhzr4Vx6xDw,1640
150
+ adam/commands/export/importer.py,sha256=QI_SH3PvIJWQtC8wo5cjz_0IEZ1ts760zGazXw2Kj4A,2726
151
+ adam/commands/export/importer_athena.py,sha256=St6n5C4bB0J-41z-rk712pA1yWsjbdyrCuBAOgF3a74,7809
152
+ adam/commands/export/importer_sqlite.py,sha256=t0zYiV5pp3X22eO7wKGc4MbP9Gp4AWTVAaGJMzuexR0,2713
153
+ adam/commands/export/show_column_counts.py,sha256=uv8KfWRpQL4KyyrKpKoZpBV8REuYIvDO6FqWDaV368A,1661
154
+ adam/commands/export/show_export_databases.py,sha256=EhMFdWLMtW0sHd0i1V2pAPrFozxDxLSkKGtnflhOhsY,1257
155
+ adam/commands/export/show_export_session.py,sha256=Rby9WRMzhDhRKzAWl2fYgOMI9kVG1jH0dgHMQB4r_60,1421
156
+ adam/commands/export/show_export_sessions.py,sha256=WklIVsvY7_DUeykOTdibpPYuwpxqZdQLBsoKLpKOQy8,1153
157
+ adam/commands/export/utils_export.py,sha256=Q_NmUBNmxMgcs_NUnsJmRVea4N0TE2x9tvNlB90CuT4,12433
158
+ adam/commands/medusa/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
159
+ adam/commands/medusa/medusa.py,sha256=Ey2kJpoKqPFP6m623B3ciMoLur5SVcHEBYsvW7G7aAY,958
160
+ adam/commands/medusa/medusa_backup.py,sha256=n-caJjd3WObm2tplVKUG-GahWoOwDS2pk_MZKQl0S7Q,1812
161
+ adam/commands/medusa/medusa_restore.py,sha256=MetDgcWj0BznrgoEkCvZ0ZAHwHP3SJCIE7CAvBy30-w,3330
162
+ adam/commands/medusa/medusa_show_backupjobs.py,sha256=rYP5r_NXAQcWrsstv4UngAb4gbQ8xOuyH9EFs1K00hA,1795
163
+ adam/commands/medusa/medusa_show_restorejobs.py,sha256=rgNg-fy0EbTBd2PghOM-w16PrtqL9QCE0Z0vhIcK8CE,1584
164
+ adam/commands/postgres/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
165
+ adam/commands/postgres/postgres.py,sha256=UhnNC29sigqwMGw4Kj71jwkBTLEYWbWvLu_4-4cDyuU,3452
166
+ adam/commands/postgres/postgres_databases.py,sha256=p9jgyEPkPZuZMpM5aEJXhv4aZu8CDy36XlejZVqu5vw,11417
167
+ adam/commands/postgres/postgres_ls.py,sha256=yT-V1mGnvImaIr4s75FUsV5klcrOB7HHJwWbY6h1Kpk,1111
168
+ adam/commands/postgres/postgres_preview.py,sha256=Bmw3YC98tFdjUx2CRHOakcvLHCOLtEiKxvNDjlDoRo0,1174
169
+ adam/commands/postgres/psql_completions.py,sha256=HuBxb8vl6SELJxWmbKYwOobGqZOYMoK0wkIQD7RfCeI,363
170
+ adam/commands/postgres/utils_postgres.py,sha256=rZbJecJRqHOHg6MyGZjenv_q1CB9EYSAv2IIQ88GmXM,2133
171
+ adam/commands/reaper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
172
+ adam/commands/reaper/reaper.py,sha256=Xrfjvqtn5txnaMwofBb77yEsmSYLO_-Bi43ABq2ZmaQ,1398
173
+ adam/commands/reaper/reaper_forward.py,sha256=O5L4SnZdeFMtJqc5SHYVCYQcfkQ2-JnDN9rEX7u_8Xg,3307
174
+ adam/commands/reaper/reaper_forward_session.py,sha256=CfKMYQPDZYQBtYQjxcPs7ns5e8AGZj9Q0LD8dOxvLl0,160
175
+ adam/commands/reaper/reaper_forward_stop.py,sha256=a8i6Zp4rYKFt6qC7iqpf57gDZTMAtZy1H1PXq5tTOHM,1375
176
+ adam/commands/reaper/reaper_restart.py,sha256=Ms3OWhV6pqEtmQiupvKO9ArTVBPlniPtg4BwPCgaFq8,1173
177
+ adam/commands/reaper/reaper_run_abort.py,sha256=f3D2EhtiPiLXBOx0vY-XmBivDrgLbppb4dgnStucNVk,1276
178
+ adam/commands/reaper/reaper_runs.py,sha256=DjD-K2XCGQyekLf3QfoidApr-S5yI2lb9dSo51042sk,3045
179
+ adam/commands/reaper/reaper_runs_abort.py,sha256=ykY8D5fcZwqMRebM2JxFClVksjeDIBTIQe5nSk5oyp0,2058
180
+ adam/commands/reaper/reaper_schedule_activate.py,sha256=PELW78_kblgGegyRFXtIOMf3eIHxJt2D3jNEYITwHFw,1485
181
+ adam/commands/reaper/reaper_schedule_start.py,sha256=VjZ2E-pm8QpnVuMYw53VhfXUgfORC-DjJoDiERKqxYM,1472
182
+ adam/commands/reaper/reaper_schedule_stop.py,sha256=FWaUF3j8R6v57bNQm2np96QwsvBUS3Ee7TDDl5avbRM,1464
183
+ adam/commands/reaper/reaper_schedules.py,sha256=vbvt0JojQecWCo5i4M-3HenWSnJU68F1MAoWcPhp8bo,1071
184
+ adam/commands/reaper/reaper_status.py,sha256=IuRbQwlZB4pDZu4iuPk5TXdTqvzBTMtAl68tHiiPZM0,1801
185
+ adam/commands/reaper/utils_reaper.py,sha256=vOMemHAL0-qGvwSZEwE8OwnF7KDT2f2cOD9YrjYYFgk,7392
186
+ adam/commands/repair/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
187
+ adam/commands/repair/repair.py,sha256=tNNJk01Bo8KYeogoUO0oGzwErCfFZz_aW7CmzP81Fs4,830
188
+ adam/commands/repair/repair_log.py,sha256=UCdcTE_4gdZxgQ-suDPk5uKMEDytubzucT_zEMUQ6Ck,1063
189
+ adam/commands/repair/repair_run.py,sha256=l78BWpa8wcuSPvYoweVDko57e2fFP6u0ZYbMHQE4FsM,2560
190
+ adam/commands/repair/repair_scan.py,sha256=-7dS9i-_5WO9uHW_PhA0Wi0bY1RvP5sHeQJXl5VB6Ps,2424
191
+ adam/commands/repair/repair_stop.py,sha256=J-IMeQCDo9bA6GbY98rM4456uAMtezX40zVIECEMjws,1097
192
+ adam/commands/show/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
193
+ adam/commands/show/show.py,sha256=0kBGHeSNdnRsIarZO-MmNhYFARUoCONZlDLbX4OOfZk,1724
194
+ adam/commands/show/show_adam.py,sha256=zmzgIvWo9hg0v6YyA26N-xGZipVome22AtrZ9iI6oSw,1298
195
+ adam/commands/show/show_cassandra_repairs.py,sha256=wmv_fOKr_SwZnMCFDjtRBNEFuXoQNbCSAxoxgPknDhA,1129
196
+ adam/commands/show/show_cassandra_status.py,sha256=GLWYS7__qB1gBhQFI1dQ9LH5OXggOvKHqyslmYzcO0w,4612
197
+ adam/commands/show/show_cassandra_version.py,sha256=O-vTwnK5mSyhFNRDGQ2c-3YNAbW0TZo1pndvD6kMRMo,1144
198
+ adam/commands/show/show_commands.py,sha256=G391M-hQkB7fSOmjYqyYfNu3qb0Mglx9iBqLvqSuhzY,1884
199
+ adam/commands/show/show_host.py,sha256=b7UrC_n9qRp9jHuQqint1YDEmBbC2dZUjHr59Wff-nM,868
200
+ adam/commands/show/show_login.py,sha256=l5vwFvNQ9WcppSJU_f6xVKGznz32OYd76EImFdR0xEo,1816
201
+ adam/commands/show/show_params.py,sha256=Y-mj-qMql448KmLEVUWIJ1EqzSzSpaYIdiKsLI8FtAg,944
202
+ adam/commands/show/show_processes.py,sha256=Qh0R_fC4QfkC6B9mLeeiReZDmFCNf5emxdYAlztdQjw,2075
203
+ adam/commands/show/show_storage.py,sha256=RUG91-ae6yr1BVb8QOrvaM3pPp38255mIF1rkG2OmlQ,1561
204
+ adam/sql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
205
+ adam/sql/sql_completer.py,sha256=RO-S4OiBuDPUL8EWiymB8JexIwgwNXx1QzErDxuL3y4,3939
206
+ adam/sql/sql_state_machine.py,sha256=3m8JsIg_tojwaHY5AdPl6UEE4ZnB5hbhOOApFfozhVo,39144
207
+ adam/sql/term_completer.py,sha256=HZjOV4fEV9LraoMjkk8lHxNvzRtSIYsGUJhSMOhuoHY,2599
208
+ adam/sso/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
209
+ adam/sso/authenticator.py,sha256=BCm16L9zf5aLU47-sTCnudn2zLPwd8M2wwRminJfsqw,615
210
+ adam/sso/authn_ad.py,sha256=FQbOJOT_goH7YSr2iqnHh8Ao-WL0jPaE3KyIe3T7g7Y,5786
211
+ adam/sso/authn_okta.py,sha256=e4DjNvCDw646L0SM0aWt_lT2q69MqtzTJiYQpo_EuAQ,4505
212
+ adam/sso/cred_cache.py,sha256=9c-Cdz4xlJ3FakqVmVkBVfQ0XLweDivdlu3kdIMLbFs,2039
213
+ adam/sso/id_token.py,sha256=wmVZ8S0sjScnOxmSvOKlIEKgnvdWqhsgq9XjFe355O4,744
214
+ adam/sso/idp.py,sha256=Fml1IwP2n3e-j3SFtH3uqL8h9dhQ62J3oM4d37svIu8,5775
215
+ adam/sso/idp_login.py,sha256=QAtCUeDTVWliJy40RK_oac8Vgybr13xH8wzeBoxPaa8,1754
216
+ adam/sso/idp_session.py,sha256=9BUHNRf70u4rVKrVY1HKPOEmOviXvkjam8WJxmXSKIM,1735
217
+ adam/sso/sso_config.py,sha256=5N8WZgIJQBtHUy585XLRWKjpU87_v6QluyNK9E27D5s,2459
218
+ adam/utils_k8s/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
219
+ adam/utils_k8s/app_clusters.py,sha256=TGqJxlZ0JLqBW806gKDxRxr1BMsCBa6ni8CxEusNgU0,1220
220
+ adam/utils_k8s/app_pods.py,sha256=sWt8c04UtViEPn_7hOZy6sJ5lWlIFrCEE5cWbROaNB8,1539
221
+ adam/utils_k8s/cassandra_clusters.py,sha256=0jJ5-5PJoJKEf4ZiGwdmZi0h3_SakjUPawj3etQ2N4I,1680
222
+ adam/utils_k8s/cassandra_nodes.py,sha256=xUbheZqIxNwuPHA1v2Bb8n1C_aU6xYYbwNirdvUt-uc,1556
223
+ adam/utils_k8s/config_maps.py,sha256=vc9A-2D1-1mindCMFL1wuysDOXb0RCl4BdjC6B6usXI,1194
224
+ adam/utils_k8s/custom_resources.py,sha256=95zVZchFtFWGZ_P-jLaSMl6WYTObn7PqeTLxZ_HKoEo,7599
225
+ adam/utils_k8s/deployment.py,sha256=SLhnMm5GMXwEldj2OupSFBUsvNjynwSNrv5tIDvLMrc,2921
226
+ adam/utils_k8s/ingresses.py,sha256=q8nJTIoxa_dVrGMl1HS5yTS_11jLNBAnWlc2ZishMEE,3458
227
+ adam/utils_k8s/jobs.py,sha256=HbUBNXcKcuXaNzc8NmqR_Sq35yHQ_qeQtiQFFM-J2QY,2534
228
+ adam/utils_k8s/k8s.py,sha256=hq3kPTdDB9Fyny64mFLepOgtqpEEVw6wm6IveWzBRfY,3133
229
+ adam/utils_k8s/kube_context.py,sha256=gu9ZyO2yVuv4B5eu3PSdyjrza46Pj5u6sjnfSAP49wg,3295
230
+ adam/utils_k8s/pods.py,sha256=fRUWVeiuoLRgrkjtyba52HmSediqKfbDK1oyfLa81kA,11425
231
+ adam/utils_k8s/secrets.py,sha256=xnqRSumCIcPaASDcErzxjx1BCE-qJkPoG5wIP7YHzIo,2430
232
+ adam/utils_k8s/service_accounts.py,sha256=OF1-UwWupUAvn_rqNNTWsF3BWYgaLiGTJfinn8sreog,6342
233
+ adam/utils_k8s/services.py,sha256=7K6CxvYntbCsRjTZVcuYiBb5WPH7A5CTWTlUGvaVDRg,3154
234
+ adam/utils_k8s/statefulsets.py,sha256=06ccJhkkFQekIG8gIS9BicMZV1FVX_FKZOOxzdaTUcA,4097
235
+ adam/utils_k8s/volumes.py,sha256=RIBmlOSWM3V3QVXLCFT0owVOyh4rGG1ETp521a-6ndo,1137
236
+ adam/utils_repl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
237
+ adam/utils_repl/automata_completer.py,sha256=LJP_2WHHR7AtjX00MJ59VGQEL3t0XS-qYnDmMaZe-Tk,1641
238
+ adam/utils_repl/repl_completer.py,sha256=lsu0vWFdTs8SSSY9gxHN-fQSap-Wqz1QhMF4FqGf7qA,1722
239
+ adam/utils_repl/state_machine.py,sha256=kO4_oSi_M53f3QQjINzzb2VFptjbnqX3KRC0G8LqqeA,5426
240
+ kaqing-2.0.184.dist-info/METADATA,sha256=5ZeiZUxoUrX92OhF0Ka8_mqYDTmim2afFb9lNIWNK40,133
241
+ kaqing-2.0.184.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
242
+ kaqing-2.0.184.dist-info/entry_points.txt,sha256=SkzhuQJUWsXOzHeZ5TgQ2c3_g53UGK23zzJU_JTZOZI,39
243
+ kaqing-2.0.184.dist-info/top_level.txt,sha256=8_2PZkwBb-xDcnc8a2rAbQeJhXKXskc7zTP7pSPa1fw,5
244
+ kaqing-2.0.184.dist-info/RECORD,,
adam/commands/app.py DELETED
@@ -1,67 +0,0 @@
1
- import json
2
-
3
- from adam.apps import Apps
4
- from adam.commands.command import Command
5
- from adam.repl_state import ReplState, RequiredState
6
- from adam.app_session import AppSession
7
- from adam.utils import log2
8
-
9
- class App(Command):
10
- COMMAND = 'app'
11
-
12
- # the singleton pattern
13
- def __new__(cls, *args, **kwargs):
14
- if not hasattr(cls, 'instance'): cls.instance = super(App, cls).__new__(cls)
15
-
16
- return cls.instance
17
-
18
- def __init__(self, successor: Command=None):
19
- super().__init__(successor)
20
-
21
- def command(self):
22
- return App.COMMAND
23
-
24
- def required(self):
25
- return RequiredState.CLUSTER_OR_POD
26
-
27
- def run(self, cmd: str, state: ReplState):
28
- if not(args := self.args(cmd)):
29
- return super().run(cmd, state)
30
-
31
- state, args = self.apply_state(args, state)
32
- if not self.validate_state(state, app_required=RequiredState.APP_APP):
33
- return state
34
-
35
- args, forced = Command.extract_options(args, '--force')
36
-
37
- if not args:
38
- return 'arg missing'
39
-
40
- t_f = args[0].split('.')
41
- if len(t_f) < 2:
42
- return 'arg missing'
43
-
44
- payload, valid = Apps().payload(t_f[0], t_f[1], args[1:] if len(args) > 1 else [])
45
- if not valid:
46
- log2('Missing one or more action arguments.')
47
- return state
48
-
49
- if payload:
50
- try:
51
- payload = json.loads(payload)
52
- except json.decoder.JSONDecodeError as e:
53
- log2(f'Invalid json argument: {e}')
54
- return state
55
-
56
- AppSession.run(state.app_env, state.app_app, state.namespace, t_f[0], t_f[1], payload=payload, forced=forced)
57
-
58
- return state
59
-
60
- def completion(self, state: ReplState):
61
- if state.app_app:
62
- return super().completion(state, {'--force': None})
63
-
64
- return {}
65
-
66
- def help(self, _: ReplState):
67
- return f"{App.COMMAND} [--force]\t post app API query with type and function"