kaqing 2.0.41__py3-none-any.whl → 2.0.43__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.
adam/commands/cd.py CHANGED
@@ -1,4 +1,5 @@
1
1
  from adam.commands.command import Command
2
+ from adam.commands.postgres.postgres_utils import pg_database_names
2
3
  from adam.commands.postgres.postgres_session import PostgresSession
3
4
  from adam.k8s_utils.cassandra_clusters import CassandraClusters
4
5
  from adam.k8s_utils.kube_context import KubeContext
@@ -91,7 +92,7 @@ class Cd(Command):
91
92
  if pg and pg.db:
92
93
  return {Cd.COMMAND: {'..': None}}
93
94
  elif pg and pg.host:
94
- return {Cd.COMMAND: {'..': None} | {p['name']: None for p in pg.databases()}}
95
+ return {Cd.COMMAND: {'..': None} | {p: None for p in pg_database_names(state.namespace, pg.directory())}}
95
96
  else:
96
97
  return {Cd.COMMAND: {p: None for p in PostgresSession.hosts(state.namespace)}}
97
98
  elif state.device == ReplState.A:
@@ -11,7 +11,7 @@ from adam.utils import log2
11
11
 
12
12
  @functools.lru_cache()
13
13
  def keyspaces(state: ReplState, on_any=False):
14
- Config().wait_log("Inspecting Cassandra Keyspaces...")
14
+ Config().wait_log('Inspecting Cassandra Keyspaces...')
15
15
 
16
16
  r: list[PodExecResult] = run_cql(state, 'describe keyspaces', show_out=False, on_any=on_any)
17
17
  if not r:
adam/commands/ls.py CHANGED
@@ -1,15 +1,14 @@
1
1
  import copy
2
- import re
3
2
 
4
3
  from adam.commands.command import Command
5
4
  from adam.commands.commands_utils import show_pods, show_rollout
6
5
  from adam.commands.cqlsh import Cqlsh
6
+ from adam.commands.postgres.postgres_utils import pg_database_names, pg_table_names
7
7
  from adam.commands.postgres.postgres_session import PostgresSession
8
8
  from adam.config import Config
9
9
  from adam.k8s_utils.custom_resources import CustomResources
10
10
  from adam.k8s_utils.ingresses import Ingresses
11
11
  from adam.k8s_utils.kube_context import KubeContext
12
- from adam.k8s_utils.services import Services
13
12
  from adam.k8s_utils.statefulsets import StatefulSets
14
13
  from adam.pod_exec_result import PodExecResult
15
14
  from adam.repl_state import ReplState
@@ -123,14 +122,10 @@ class Ls(Command):
123
122
  log(lines_to_tabular(lines, 'NAME,NAMESPACE,ENDPOINT,USERNAME,PASSWORD', separator=','))
124
123
 
125
124
  def show_pg_databases(self, pg: PostgresSession):
126
- lines = [db["name"] for db in pg.databases() if db["owner"] == PostgresSession.default_owner()]
127
-
128
- log(lines_to_tabular(lines, 'DATABASE', separator=','))
125
+ log(lines_to_tabular(pg_database_names(pg.namespace, pg.directory()), 'DATABASE', separator=','))
129
126
 
130
127
  def show_pg_tables(self, pg: PostgresSession):
131
- lines = [db["name"] for db in pg.tables() if db["schema"] == PostgresSession.default_schema()]
132
-
133
- log(lines_to_tabular(lines, 'NAME', separator=','))
128
+ log(lines_to_tabular(pg_table_names(pg.namespace, pg.directory()), 'NAME', separator=','))
134
129
 
135
130
  def completion(self, state: ReplState):
136
131
  if state.pod:
@@ -2,6 +2,7 @@ import functools
2
2
  import click
3
3
 
4
4
  from adam.commands.command import Command
5
+ from adam.commands.postgres.postgres_utils import pg_table_names
5
6
  from .postgres_ls import PostgresLs
6
7
  from .postgres_preview import PostgresPreview
7
8
  from .postgres_session import PostgresSession
@@ -67,19 +68,20 @@ class Postgres(Command):
67
68
  leaf = {}
68
69
  session = PostgresSession(state.namespace, state.pg_path)
69
70
  if session.db:
70
- ts = self.tables(state.namespace, state.pg_path)
71
+ if pg_table_names(state.namespace, state.pg_path):
72
+ ts = f'<pg_tables:{state.namespace}:{state.pg_path}>'
71
73
  leaf = {
72
74
  '\h': None,
73
75
  '\d': None,
74
76
  '\dt': None,
75
77
  '\du': None,
76
- 'delete': {'from': {t: {'where': {'id': {'=': None}}} for t in ts}},
77
- 'insert': {'into': {t: {'values': None} for t in ts}},
78
- 'select': {'*': {'from': {t: {
78
+ 'delete': {'from': {ts: {'where': {'id': {'=': None}}}}},
79
+ 'insert': {'into': {ts: {'values': None}}},
80
+ 'select': {'*': {'from': {ts: {
79
81
  'limit': {'1': None},
80
82
  'where': {'id': {'=': None}}
81
- } for t in ts}}},
82
- 'update': {t: {'set': None} for t in ts},
83
+ }}}},
84
+ 'update': {ts: {'set': None}},
83
85
  }
84
86
  elif state.pg_path:
85
87
  leaf = {
@@ -92,15 +94,6 @@ class Postgres(Command):
92
94
  else:
93
95
  return {}
94
96
 
95
- # TODO fix cache
96
- # @functools.lru_cache()
97
- def tables(self, ns: str, pg_path: str):
98
- session = PostgresSession(ns, pg_path)
99
- if session.db:
100
- return [f'{t["schema"]}.{t["name"]}' for t in session.tables()]
101
-
102
- return []
103
-
104
97
  def help(self, _: ReplState):
105
98
  return f'[{Postgres.COMMAND}] <sql-statements>\t run psql with queries'
106
99
 
@@ -25,13 +25,6 @@ class PostgresSession:
25
25
  if len(tks) > 1:
26
26
  self.db = tks[1]
27
27
 
28
- # works only for databases()
29
- def __eq__(self, other: 'PostgresSession'):
30
- return self.host == other.host
31
-
32
- def __hash__(self):
33
- return hash(self.host)
34
-
35
28
  def find_namespace(self, arg: str):
36
29
  if arg:
37
30
  tks = arg.split('@')
@@ -82,7 +75,6 @@ class PostgresSession:
82
75
 
83
76
  return [s for s in ss if not excludes(s)]
84
77
 
85
- @functools.lru_cache()
86
78
  def databases(self):
87
79
  dbs = []
88
80
  # List of databases
@@ -0,0 +1,23 @@
1
+ import functools
2
+
3
+ from adam.commands.postgres.postgres_session import PostgresSession
4
+ from adam.config import Config
5
+
6
+ @functools.lru_cache()
7
+ def pg_database_names(ns: str, pg_path: str):
8
+ Config().wait_log('Inspecting Postgres Databases...')
9
+
10
+ pg = PostgresSession(ns, pg_path)
11
+ return [db['name'] for db in pg.databases() if db['owner'] == PostgresSession.default_owner()]
12
+
13
+ @functools.lru_cache()
14
+ def pg_table_names(ns: str, pg_path: str):
15
+ Config().wait_log('Inspecting Postgres Database...')
16
+ return [table['name'] for table in pg_tables(ns, pg_path) if table['schema'] == PostgresSession.default_schema()]
17
+
18
+ def pg_tables(ns: str, pg_path: str):
19
+ pg = PostgresSession(ns, pg_path)
20
+ if pg.db:
21
+ return pg.tables()
22
+
23
+ return []
@@ -4,7 +4,6 @@ from adam.commands.command import Command
4
4
  from adam.commands.cql_utils import run_cql, tables
5
5
  from adam.commands.postgres.postgres_session import PostgresSession
6
6
  from adam.config import Config
7
- from adam.pod_exec_result import PodExecResult
8
7
  from adam.repl_state import ReplState, RequiredState
9
8
  from adam.utils import lines_to_tabular, log, log2
10
9
 
@@ -72,8 +71,7 @@ class PreviewTable(Command):
72
71
 
73
72
  def completion(self, state: ReplState):
74
73
  if state.device == ReplState.P:
75
- if tables := PreviewTable.pg_tables(state.namespace, state.pg_path):
76
- return {PreviewTable.COMMAND: {db["name"]: None for db in tables if db["schema"] == PostgresSession.default_schema()}}
74
+ return {PreviewTable.COMMAND: {f'<pg_tables:{state.namespace}:{state.pg_path}>': None}}
77
75
  elif state.sts:
78
76
  tables = PreviewTable.cql_tables(state)
79
77
  return {PreviewTable.COMMAND: {f'{k}.{t}': None for k, ts in tables.items() for t in ts}}
@@ -88,18 +86,4 @@ class PreviewTable(Command):
88
86
  if state.pod:
89
87
  return tables(state)
90
88
 
91
- return tables(state, on_any=True)
92
-
93
- # r: list[PodExecResult] = run_cql(state, 'describe tables', show_out=False, on_any=True)
94
- # if not r:
95
- # return []
96
-
97
- # return parse_cql_desc_tables(r[0].stdout)
98
-
99
- @functools.lru_cache()
100
- def pg_tables(ns: str, pg_path: str):
101
- pg = PostgresSession(ns, pg_path)
102
- if pg.db:
103
- return pg.tables()
104
-
105
- return None
89
+ return tables(state, on_any=True)
@@ -149,7 +149,7 @@ class ReaperSession:
149
149
  return ReaperSession.schedules_ids_by_cluster[state.sts]
150
150
 
151
151
  if reaper := ReaperSession.create(state):
152
- Config().wait_log("Inspecting Cassandra Reaper...")
152
+ Config().wait_log('Inspecting Cassandra Reaper...')
153
153
 
154
154
  schedules = reaper.schedule_ids(state, show_output = False)
155
155
  ReaperSession.schedules_ids_by_cluster[state.sts] = schedules
@@ -24,6 +24,7 @@ class StatefulSets:
24
24
 
25
25
  return statefulsets.items
26
26
 
27
+ @functools.lru_cache()
27
28
  def list_sts_name_and_ns():
28
29
  return [(statefulset.metadata.name, statefulset.metadata.namespace) for statefulset in StatefulSets.list_sts()]
29
30
 
adam/repl.py CHANGED
@@ -1,3 +1,4 @@
1
+ import json
1
2
  import os
2
3
  import re
3
4
  import time
@@ -16,6 +17,7 @@ from adam.k8s_utils.kube_context import KubeContext
16
17
  from adam.k8s_utils.statefulsets import StatefulSets
17
18
  from adam.log import Log
18
19
  from adam.repl_commands import ReplCommands
20
+ from adam.repl_completer import CompleterContext, ReplCompleter
19
21
  from adam.repl_session import ReplSession
20
22
  from adam.repl_state import ReplState
21
23
  from adam.utils import deep_merge_dicts, deep_sort_dict, lines_to_tabular, log2
@@ -92,7 +94,7 @@ def enter_repl(state: ReplState):
92
94
  sorted_cmds = sorted(cmd_list, key=lambda cmd: cmd.command())
93
95
  while True:
94
96
  try:
95
- completer = NestedCompleter.from_nested_dict({})
97
+ completer = ReplCompleter.from_nested_dict({})
96
98
  if not state.bash_session:
97
99
  completions = {}
98
100
  # app commands are available only on a: drive
@@ -105,9 +107,10 @@ def enter_repl(state: ReplState):
105
107
  completions = deep_sort_dict(deep_merge_dicts(completions, cmd.completion(state)))
106
108
  finally:
107
109
  if Config().get('debugs.timings', False):
108
- Config().debug('Timing completion calc', cmd.command(), f'{time.time() - s1:.2f}')
110
+ log2(f'Timing auto-completion-calc {cmd.command()}: {time.time() - s1:.2f}')
109
111
 
110
- completer = NestedCompleter.from_nested_dict(completions)
112
+ # print(json.dumps(completions, indent=4))
113
+ completer = ReplCompleter.from_nested_dict(completions)
111
114
 
112
115
  cmd = session.prompt(prompt_msg(), completer=completer, key_bindings=kb)
113
116
  s0 = time.time()
@@ -151,9 +154,10 @@ def enter_repl(state: ReplState):
151
154
  log2(e)
152
155
  Config().debug(traceback.format_exc())
153
156
  finally:
157
+ CompleterContext().reset()
154
158
  Config().clear_wait_log_flag()
155
159
  if Config().get('debugs.timings', False) and 'cmd' in locals() and 's0' in locals():
156
- print('Timing command', cmd, f'{time.time() - s0:.2f}')
160
+ log2(f'Timing command {cmd}: {time.time() - s0:.2f}')
157
161
 
158
162
  @cli.command(context_settings=dict(ignore_unknown_options=True, allow_extra_args=True), cls=ClusterCommandHelper, help="Enter interactive shell.")
159
163
  @click.option('--kubeconfig', '-k', required=False, metavar='path', help='path to kubeconfig file')
adam/repl_completer.py ADDED
@@ -0,0 +1,74 @@
1
+ import re
2
+
3
+ from typing import Iterable
4
+ from prompt_toolkit.completion import CompleteEvent, Completion, NestedCompleter, WordCompleter
5
+ from prompt_toolkit.document import Document
6
+
7
+ from adam.commands.postgres.postgres_utils import pg_table_names
8
+
9
+ class CompleterContext:
10
+ # the singleton pattern
11
+ def __new__(cls, *args, **kwargs):
12
+ if not hasattr(cls, 'instance'): cls.instance = super(CompleterContext, cls).__new__(cls)
13
+
14
+ return cls.instance
15
+
16
+ def __init__(self):
17
+ if not hasattr(self, 'table_resolver'):
18
+ self.table_resolver = None
19
+ self.tables = []
20
+
21
+ def produce(self, word: str):
22
+ if match := re.match(r'^<pg_tables:(.*?):(.*?)>$', word):
23
+ self.table_resolver = word
24
+ self.tables = pg_table_names(match.group(1), match.group(2))
25
+
26
+ return self.tables
27
+
28
+ return None
29
+
30
+ def is_table(self, word: str):
31
+ if word in self.tables and self.table_resolver:
32
+ return self.table_resolver
33
+
34
+ return None
35
+
36
+ def reset(self):
37
+ self.table_resolver = None
38
+ self.tables = []
39
+
40
+
41
+ class ReplCompleter(NestedCompleter):
42
+ def get_completions(
43
+ self, document: Document, complete_event: CompleteEvent
44
+ ) -> Iterable[Completion]:
45
+ text = document.text_before_cursor.lstrip()
46
+ stripped_len = len(document.text_before_cursor) - len(text)
47
+
48
+ if " " in text:
49
+ first_term = text.split()[0]
50
+ completer = self.options.get(first_term)
51
+ if table_resolver := CompleterContext().is_table(first_term):
52
+ completer = self.options.get(table_resolver)
53
+
54
+ if completer is not None:
55
+ remaining_text = text[len(first_term) :].lstrip()
56
+ move_cursor = len(text) - len(remaining_text) + stripped_len
57
+
58
+ new_document = Document(
59
+ remaining_text,
60
+ cursor_position=document.cursor_position - move_cursor,
61
+ )
62
+
63
+ for c in completer.get_completions(new_document, complete_event):
64
+ if words := CompleterContext().produce(c.text):
65
+ for w in words:
66
+ yield Completion(w)
67
+ else:
68
+ yield c
69
+ else:
70
+ completer = WordCompleter(
71
+ list(self.options.keys()), ignore_case=self.ignore_case
72
+ )
73
+ for c in completer.get_completions(document, complete_event):
74
+ yield c
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.41" #: the working version
4
+ __version__ = "2.0.43" #: 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.41
3
+ Version: 2.0.43
4
4
  Summary: UNKNOWN
5
5
  Home-page: UNKNOWN
6
6
  License: UNKNOWN
@@ -9,12 +9,13 @@ adam/embedded_apps.py,sha256=lKPx63mKzJbNmwz0rgL4gF76M9fDGxraYTtNAIGnZ_s,419
9
9
  adam/embedded_params.py,sha256=_9tBKpkSzBfzm-s3tUgZs8DcSVBnPA1iumG0ZRCbZIs,4586
10
10
  adam/log.py,sha256=gg5DK52wLPc9cjykeh0WFHyAk1qI3HEpGaAK8W2dzXY,1146
11
11
  adam/pod_exec_result.py,sha256=nq0xnCNOpUGBSijGF0H-YNrwBc9vUQs4DkvLMIFS5LQ,951
12
- adam/repl.py,sha256=Yx7paOgzj-KCX8q46nsr9LQJAmoz-Gvnzo7dH9rwh_0,7277
12
+ adam/repl.py,sha256=y2jNMYewfo2o36wB9Zknh_MLGzSRHPY0USNU3LOO_7U,7439
13
13
  adam/repl_commands.py,sha256=aH7xxbsQGrpL9Ozk9QF54iToK6wbDT3Pu9rMyw9sDBY,4719
14
+ adam/repl_completer.py,sha256=8OWLEb5UbGwOX5vcJaigR68XxVr9lRBlt8ByVCD7O7Y,2528
14
15
  adam/repl_session.py,sha256=uIogcvWBh7wd8QQ-p_JgLsyJ8YJgINw5vOd6JIsd7Vo,472
15
16
  adam/repl_state.py,sha256=591d7gV6uQSFtm7IWdlIYAHjfAzs9bdvIkwlIAeKddE,7540
16
17
  adam/utils.py,sha256=2DoWsrcaioFFH0-RjT30qelVRPUJqCGTfz_ucfE7F8g,7406
17
- adam/version.py,sha256=dFQ-OBXEqCb5aUcKIvnOUqGZNXXCV8b55Fb031UN2b0,139
18
+ adam/version.py,sha256=eU0CKlIirO6upyKMED0IV0w12H69CmesNmCqalyxx5k,139
18
19
  adam/checks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
20
  adam/checks/check.py,sha256=Qopr3huYcMu2bzQgb99dEUYjFzkjKHRI76S6KA9b9Rk,702
20
21
  adam/checks/check_context.py,sha256=FEHkQ32jY1EDopQ2uYWqy9v7aEEX1orLpJWhopwAlh4,402
@@ -51,14 +52,14 @@ adam/commands/alter_tables.py,sha256=Y5cWg0Ow93rIDusbHgxQcC7sSB64LmULTlDxPLybiVM
51
52
  adam/commands/app.py,sha256=7alV8wK801t67_rUe6EmhtHJTl-6K7fGCm6Uz1dDgpM,1963
52
53
  adam/commands/app_ping.py,sha256=Xk7cfefphXM2w-UvpnhNUTZ3BU38f0deehUb2FEyLCI,1337
53
54
  adam/commands/bash.py,sha256=1O9cCl9JHQdttqNAgdB44rO0NjCqHzHv4psAEQMJcjw,2714
54
- adam/commands/cd.py,sha256=XEoiMhbJgA2KVKwhHFcs5BRAlf9qpgbAh6IImpKOtHI,4486
55
+ adam/commands/cd.py,sha256=wJdfCzA2939PpGx4xKsfDxiu-64OC9SecgPDb7nd4O0,4582
55
56
  adam/commands/check.py,sha256=853FPfgTMGxQXI_5UaPAtzaSWB_BvEVm48EkJhsHe4w,2181
56
57
  adam/commands/cli_commands.py,sha256=PEEyrG9yz7RAEZwHbbuFpyE3fVi8vrIWbr0d1H0Gp9o,3620
57
58
  adam/commands/command.py,sha256=Ph7IduCTGQ04dcwNegl1ekYbqCzOwAOYeWZVIRWnKyU,3958
58
59
  adam/commands/command_helpers.py,sha256=leOJJK1UXczNTJHN9TGMCbIpUpmpreULvQ-TvnsYS7w,1134
59
60
  adam/commands/commands_utils.py,sha256=ShUcxtDSd9B3NM0GDj3NBvKdmjCGY8qXgeUJpzNF63E,3122
60
61
  adam/commands/cp.py,sha256=dyQViRDPNqsKRkxPb7WyEVIBNw7YB6IfYa2q3VtfzyA,3107
61
- adam/commands/cql_utils.py,sha256=LGRwhGf1bCZ0SS0F9a2dXGcCbcKpoR10wuQyaXuAm-A,3893
62
+ adam/commands/cql_utils.py,sha256=q5hzAUVh7h8iVVH2s0M4E76zWqaMUDXULMn412mfHII,3893
62
63
  adam/commands/cqlsh.py,sha256=PknA1I13E4L6leSq6TC3fsyJw_bugo6376q0FE0Ufz0,3088
63
64
  adam/commands/devices.py,sha256=_f8j6aQzTL8_pFlWYawRuG2Ju1zPjYSPcRIlLnZng10,2397
64
65
  adam/commands/exit.py,sha256=5MWUAmzYBlsrp0CoiTDB13SUkX9Ya18UlGeOIPia6TA,798
@@ -66,12 +67,12 @@ adam/commands/help.py,sha256=Ey3R1X8w_CMhdADI0t8dSQ28euhDHheJm7NermiGni4,1645
66
67
  adam/commands/issues.py,sha256=VS-PC7e-2lywsa-lbmoUX8IY77OPGzFudwbw1g8XmQc,2599
67
68
  adam/commands/login.py,sha256=bj95WWIF7mJDJhnyS9T8xvaZUGL37dj7GlH8TgmODbk,1877
68
69
  adam/commands/logs.py,sha256=T-O9DYXmWEm4G1I5SM6MwyeRwq2aT-WMqNW0XA2MWmo,1165
69
- adam/commands/ls.py,sha256=-AT0UnjvotSpFguaUoRAnJ8XXfshwh0ElHa_Ofl5l9w,5671
70
+ adam/commands/ls.py,sha256=X_dSitiwMsKh6wi5P6OdF50a5eUCFv_-Huem7Qzff_s,5572
70
71
  adam/commands/nodetool.py,sha256=HV9yDzMhRjS4lw6UfV7Hc1pcmeSx5a1jU6cAEKSZ1Bg,2334
71
72
  adam/commands/nodetool_commands.py,sha256=5IgWC3rmeDD1cgwqQjiiWzi-wJpJ3n_8pAzz_9phXuk,2635
72
73
  adam/commands/param_get.py,sha256=kPAAppK2T0tEFRnSIVFLDPIIGHhgLA7drJhn8TRyvvE,1305
73
74
  adam/commands/param_set.py,sha256=QDIuqfU80aWCB16OK49yf7XRaRTWwiLkwMsJuVikq9I,1271
74
- adam/commands/preview_table.py,sha256=ROEYHwCOhTxkSNqEyYZ9ASSevNmkN_mHEeH8LXa4gw8,3513
75
+ adam/commands/preview_table.py,sha256=UOquEHPg5Oj5VuzB6WVldicU0WTNqPVqEf6rPdfDB2o,2971
75
76
  adam/commands/pwd.py,sha256=VlgFjxFl66I7Df1YI6cuiEeY6Q13lEavMKfrzHLESKo,2340
76
77
  adam/commands/report.py,sha256=Ky45LIzSlB_X4V12JZWjU3SA2u4_FKRencRTq7psOWU,1944
77
78
  adam/commands/restart.py,sha256=Hik1t5rjH2ATZv4tzwrGB3e44b3dNuATgY327_Nb8Bs,2044
@@ -104,10 +105,11 @@ adam/commands/medusa/medusa_restore.py,sha256=MU47bmozrjfGJ6GVkj_OVgLH6Uz_fGh03M
104
105
  adam/commands/medusa/medusa_show_backupjobs.py,sha256=QekHpKezVJdgfa9hOxfgyx-y4D08tmHzyu_AAa8QPR0,1756
105
106
  adam/commands/medusa/medusa_show_restorejobs.py,sha256=wgPonSmC6buDIp3k3WUY-Yu2MyP1xyE3Q_XhvAwpnx4,1651
106
107
  adam/commands/postgres/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
107
- adam/commands/postgres/postgres.py,sha256=zi6zicBLe2ZM6UCZgL3L3tdKIISEMGAh8UFcTuTUp5k,3649
108
+ adam/commands/postgres/postgres.py,sha256=SFy8nj4BCna_MDyrBAujeM7ojGPGJwYRfQPHdJiZ1ow,3475
108
109
  adam/commands/postgres/postgres_ls.py,sha256=HwZTgwGKXUqHX33S8aQPF6FqCrLqtoz4cLyJV2SpoE0,1186
109
110
  adam/commands/postgres/postgres_preview.py,sha256=MLzdEc4mvNj6V1Q8jO5OPznXyYELJHgd35_eQgLlNIU,1274
110
- adam/commands/postgres/postgres_session.py,sha256=CK5rkYcRHZqg2AR3fRrP81zF5P71yroPV7SvyQ6pJ7c,9509
111
+ adam/commands/postgres/postgres_session.py,sha256=RcqkCgtA78M-9LKTwG6pp8n9JwjmURXgf1FknIIPl9g,9305
112
+ adam/commands/postgres/postgres_utils.py,sha256=fdE-fZrT-fY5Ehdfhf6b0yuRs-uYmkKONXGhrNMBSbc,757
111
113
  adam/commands/reaper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
112
114
  adam/commands/reaper/reaper.py,sha256=83R0ZRitEwaYKKssfKxn3zAzLnWIP9QKd1mA6awceS8,1908
113
115
  adam/commands/reaper/reaper_forward.py,sha256=mUp409MzT91cVXGxoPfBGceaR3qZ0rVdWKGdyzPNzSA,3177
@@ -120,7 +122,7 @@ adam/commands/reaper/reaper_schedule_activate.py,sha256=HbwaSeKaDoR2qgiWgglwM5gm
120
122
  adam/commands/reaper/reaper_schedule_start.py,sha256=oDwH99QVyeKgu-jk5-pB7BzUH_rablCbtumNHXjBnpU,1940
121
123
  adam/commands/reaper/reaper_schedule_stop.py,sha256=_Ld5BRX5pqfIis5i1KG8yif0q5u9RTaFBmmQwkZuOMY,1929
122
124
  adam/commands/reaper/reaper_schedules.py,sha256=-b7eKl0wJT7zMru8qKcLqG5JF0-LfeTcNmlxut9t93E,1263
123
- adam/commands/reaper/reaper_session.py,sha256=Y-NYEpADhE1XJoaXQKBa8lObtoz4ny8_XB7byV-2RZ0,6650
125
+ adam/commands/reaper/reaper_session.py,sha256=LfPbE9Czr3bwBnnk4Pvf4btnuqEzPbDw2GPDKYp_2dI,6650
124
126
  adam/commands/reaper/reaper_status.py,sha256=g3Uep1AVYOThAaZoFjn4bWTKHElZnCleJyYYHP9HayY,1967
125
127
  adam/commands/repair/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
126
128
  adam/commands/repair/repair.py,sha256=Z284AKjUupQ-Uul5xDVr_ljfiXJ0VmAXsrlhLPjRp5A,1315
@@ -155,7 +157,7 @@ adam/k8s_utils/pods.py,sha256=ljn5tB-j8bdof6X_YWS9Hf5cjAzwmYw61I9_0bwIjCc,10540
155
157
  adam/k8s_utils/secrets.py,sha256=pYaVKXTpx3-QgFtBjznWFq0N6ZcBdxnx21FRe5nBCCo,2305
156
158
  adam/k8s_utils/service_accounts.py,sha256=v2oQSqCrNvt2uRnKlNwR3fjtpUG7oF5nqgzEB7NnT-U,6349
157
159
  adam/k8s_utils/services.py,sha256=EOJJGACVbbRvu5T3rMKqIJqgYic1_MSJ17EA0TJ6UOk,3156
158
- adam/k8s_utils/statefulsets.py,sha256=TaUVqXcJ7L5CwWbhYdfFxwUxiHG67C5ddx7Et0cgiyE,4637
160
+ adam/k8s_utils/statefulsets.py,sha256=hiBOmJZ3KTI6_naAFzNoW1NoYnnBG35BZ7RMdPhNC6o,4664
159
161
  adam/k8s_utils/volumes.py,sha256=RIBmlOSWM3V3QVXLCFT0owVOyh4rGG1ETp521a-6ndo,1137
160
162
  adam/sso/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
161
163
  adam/sso/authenticator.py,sha256=BCm16L9zf5aLU47-sTCnudn2zLPwd8M2wwRminJfsqw,615
@@ -167,8 +169,8 @@ adam/sso/idp.py,sha256=fvcwUw_URTgsO6ySaqTIw0zQT2qRO1IPSGhf6rPtybo,5804
167
169
  adam/sso/idp_login.py,sha256=QAtCUeDTVWliJy40RK_oac8Vgybr13xH8wzeBoxPaa8,1754
168
170
  adam/sso/idp_session.py,sha256=9BUHNRf70u4rVKrVY1HKPOEmOviXvkjam8WJxmXSKIM,1735
169
171
  adam/sso/sso_config.py,sha256=5N8WZgIJQBtHUy585XLRWKjpU87_v6QluyNK9E27D5s,2459
170
- kaqing-2.0.41.dist-info/METADATA,sha256=2BK4sM2oap6IJ6uhJ-SU_cXy8YJg3QKmd8peq4QhvYU,132
171
- kaqing-2.0.41.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
172
- kaqing-2.0.41.dist-info/entry_points.txt,sha256=SkzhuQJUWsXOzHeZ5TgQ2c3_g53UGK23zzJU_JTZOZI,39
173
- kaqing-2.0.41.dist-info/top_level.txt,sha256=8_2PZkwBb-xDcnc8a2rAbQeJhXKXskc7zTP7pSPa1fw,5
174
- kaqing-2.0.41.dist-info/RECORD,,
172
+ kaqing-2.0.43.dist-info/METADATA,sha256=BAor1KUFI33TgafSbpLCWAgi0_431eYOpMIDDH1XPqA,132
173
+ kaqing-2.0.43.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
174
+ kaqing-2.0.43.dist-info/entry_points.txt,sha256=SkzhuQJUWsXOzHeZ5TgQ2c3_g53UGK23zzJU_JTZOZI,39
175
+ kaqing-2.0.43.dist-info/top_level.txt,sha256=8_2PZkwBb-xDcnc8a2rAbQeJhXKXskc7zTP7pSPa1fw,5
176
+ kaqing-2.0.43.dist-info/RECORD,,