kaqing 2.0.101__py3-none-any.whl → 2.0.104__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 (49) hide show
  1. adam/batch.py +0 -14
  2. adam/commands/audit/audit.py +4 -8
  3. adam/commands/audit/audit_repair_tables.py +13 -35
  4. adam/commands/audit/audit_run.py +49 -0
  5. adam/commands/bash.py +60 -2
  6. adam/commands/cd.py +8 -8
  7. adam/commands/commands_utils.py +1 -2
  8. adam/commands/cql/cql_completions.py +4 -4
  9. adam/commands/cql/cql_utils.py +6 -9
  10. adam/commands/cql/cqlsh.py +6 -3
  11. adam/commands/deploy/deploy_pg_agent.py +2 -2
  12. adam/commands/deploy/undeploy_pg_agent.py +2 -2
  13. adam/commands/ls.py +12 -12
  14. adam/commands/nodetool.py +1 -1
  15. adam/commands/postgres/postgres.py +3 -3
  16. adam/commands/postgres/{postgres_session.py → postgres_context.py} +26 -27
  17. adam/commands/postgres/postgres_utils.py +5 -5
  18. adam/commands/postgres/psql_completions.py +1 -1
  19. adam/commands/preview_table.py +8 -27
  20. adam/commands/pwd.py +2 -2
  21. adam/embedded_params.py +1 -1
  22. adam/repl.py +5 -5
  23. adam/repl_commands.py +4 -5
  24. adam/repl_state.py +2 -2
  25. adam/sql/sql_completer.py +67 -76
  26. adam/sql/sql_state_machine.py +518 -0
  27. adam/sql/term_completer.py +3 -0
  28. adam/utils_athena.py +68 -1
  29. adam/utils_k8s/cassandra_clusters.py +4 -4
  30. adam/utils_k8s/cassandra_nodes.py +2 -2
  31. adam/utils_k8s/pods.py +12 -6
  32. adam/utils_k8s/statefulsets.py +2 -2
  33. adam/version.py +1 -1
  34. {kaqing-2.0.101.dist-info → kaqing-2.0.104.dist-info}/METADATA +1 -1
  35. {kaqing-2.0.101.dist-info → kaqing-2.0.104.dist-info}/RECORD +38 -47
  36. adam/commands/audit/audit_table_completer.py +0 -9
  37. adam/commands/cql/cql_table_completer.py +0 -8
  38. adam/commands/describe/__init__.py +0 -0
  39. adam/commands/describe/describe.py +0 -61
  40. adam/commands/describe/describe_keyspace.py +0 -58
  41. adam/commands/describe/describe_keyspaces.py +0 -46
  42. adam/commands/describe/describe_schema.py +0 -46
  43. adam/commands/describe/describe_table.py +0 -57
  44. adam/commands/describe/describe_tables.py +0 -46
  45. adam/commands/postgres/psql_table_completer.py +0 -11
  46. adam/sql/state_machine.py +0 -576
  47. {kaqing-2.0.101.dist-info → kaqing-2.0.104.dist-info}/WHEEL +0 -0
  48. {kaqing-2.0.101.dist-info → kaqing-2.0.104.dist-info}/entry_points.txt +0 -0
  49. {kaqing-2.0.101.dist-info → kaqing-2.0.104.dist-info}/top_level.txt +0 -0
adam/utils_k8s/pods.py CHANGED
@@ -11,7 +11,7 @@ from kubernetes.stream.ws_client import ERROR_CHANNEL
11
11
  from adam.config import Config
12
12
  from adam.utils_k8s.volumes import ConfigMapMount
13
13
  from adam.pod_exec_result import PodExecResult
14
- from adam.utils import elapsed_time, log2, random_alphanumeric
14
+ from adam.utils import elapsed_time, log2
15
15
  from .kube_context import KubeContext
16
16
 
17
17
  T = TypeVar('T')
@@ -28,7 +28,7 @@ class Pods:
28
28
  def delete(pod_name: str, namespace: str, grace_period_seconds: int = None):
29
29
  try:
30
30
  v1 = client.CoreV1Api()
31
- api_response = v1.delete_namespaced_pod(pod_name, namespace, grace_period_seconds=grace_period_seconds)
31
+ v1.delete_namespaced_pod(pod_name, namespace, grace_period_seconds=grace_period_seconds)
32
32
  except Exception as e:
33
33
  log2("Exception when calling CoreV1Api->delete_namespaced_pod: %s\n" % e)
34
34
 
@@ -43,7 +43,11 @@ class Pods:
43
43
  namespace: str,
44
44
  body: Callable[[ThreadPoolExecutor, str, str, bool], T],
45
45
  post: Callable[[T], T] = None,
46
- action: str = 'action', max_workers=0, show_out=True, on_any = False) -> list[T]:
46
+ action: str = 'action',
47
+ max_workers=0,
48
+ show_out=True,
49
+ on_any = False,
50
+ background = False) -> list[T]:
47
51
  show_out = KubeContext.show_out(show_out)
48
52
 
49
53
  if not max_workers:
@@ -94,7 +98,9 @@ class Pods:
94
98
 
95
99
  return results
96
100
 
97
- def exec(pod_name: str, container: str, namespace: str, command: str, show_out = True, throw_err = False, shell = '/bin/sh',
101
+ def exec(pod_name: str, container: str, namespace: str, command: str,
102
+ show_out = True, throw_err = False, shell = '/bin/sh',
103
+ background = False,
98
104
  interaction: Callable[[any, list[str]], any] = None):
99
105
  if _TEST_POD_EXEC_OUTS:
100
106
  return _TEST_POD_EXEC_OUTS
@@ -106,8 +112,8 @@ class Pods:
106
112
  log_file = None
107
113
  tty = True
108
114
  exec_command = [shell, '-c', command]
109
- if command.endswith(' &'):
110
- # should be false for starting a backgroud process
115
+ if background or command.endswith(' &'):
116
+ # should be false for starting a background process
111
117
  tty = False
112
118
 
113
119
  if Config().get('repl.background-process.auto-nohup', True):
@@ -62,10 +62,10 @@ class StatefulSets:
62
62
  namespace: str,
63
63
  body: Callable[[ThreadPoolExecutor, str, str, bool], T],
64
64
  post: Callable[[T], T] = None,
65
- action: str = 'action', max_workers=0, show_out=True, on_any = False) -> list[T]:
65
+ action: str = 'action', max_workers=0, show_out=True, on_any = False, background = False) -> list[T]:
66
66
  pods = StatefulSets.pod_names(statefulset, namespace)
67
67
 
68
- return Pods.on_pods(pods, namespace, body, post=post, action=action, max_workers=max_workers, show_out=show_out, on_any=on_any)
68
+ return Pods.on_pods(pods, namespace, body, post=post, action=action, max_workers=max_workers, show_out=show_out, on_any=on_any, background=background)
69
69
 
70
70
  @functools.lru_cache()
71
71
  def pod_names(ss: str, ns: str):
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.101" #: the working version
4
+ __version__ = "2.0.104" #: 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.101
3
+ Version: 2.0.104
4
4
  Summary: UNKNOWN
5
5
  Home-page: UNKNOWN
6
6
  License: UNKNOWN
@@ -1,22 +1,22 @@
1
1
  adam/__init__.py,sha256=oVw1FNd9HZPJ7wm6BNn5ybyNGJLjJ8kopMeBiwgMaOI,59
2
2
  adam/app_session.py,sha256=Klypm4JYHOlovaRCHAZ2P_Mj_nheMlcQgX403R0TJGk,6969
3
3
  adam/apps.py,sha256=okYibOEiCVoM5zsPUKaLJZlwlnvWSHKL7U2J1Yk3-Aw,6701
4
- adam/batch.py,sha256=7VI7g6uiZN5WNDWcTGQPXiatFsH6Mg7qsU0tCi95Qz0,25241
4
+ adam/batch.py,sha256=IYNydQtld7KallhSJyos70akArLChj7hzkRF9wmBCqU,23969
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=GRtfpGgGwfeYdVSPfk3LKCRXlOEJZ2vmXM3ADr7IhVk,2880
8
8
  adam/embedded_apps.py,sha256=lKPx63mKzJbNmwz0rgL4gF76M9fDGxraYTtNAIGnZ_s,419
9
- adam/embedded_params.py,sha256=7HLYppBdHk_HdV0afngj-NTu83Q3FbiT44WJySRUBHk,5009
9
+ adam/embedded_params.py,sha256=YeyY3QTLBtjiMsBt16A7z8lvJ_hlVtAPJR6RbjStIwI,5060
10
10
  adam/log.py,sha256=gg5DK52wLPc9cjykeh0WFHyAk1qI3HEpGaAK8W2dzXY,1146
11
11
  adam/pod_exec_result.py,sha256=WBXJSvxzXp9TfsfXeHtIvgz8GvfMAAcH5M03GISLqzw,1046
12
- adam/repl.py,sha256=RSbw2SYFmF3lz8hg7k4vI2D1TNiG0DWuXg0Z8jhB3d4,10843
13
- adam/repl_commands.py,sha256=GKdpHm4e0it7qVwjzBrsIoa5szpvZC30kJmHbWCvooA,4691
12
+ adam/repl.py,sha256=ZfYEZ6s1Hhw-aIFZk358bb7KCAJ-aTDxSPJvfd2ciHQ,10904
13
+ adam/repl_commands.py,sha256=eaxwvI1z2BnuRY4HTNqpzr0L7DhCl9j3FzVvVmi5SuI,4651
14
14
  adam/repl_session.py,sha256=uIogcvWBh7wd8QQ-p_JgLsyJ8YJgINw5vOd6JIsd7Vo,472
15
- adam/repl_state.py,sha256=VlQpV19Sg5vL8H3o8lQxZB5atyuTuN5iEQsd6xpSkQQ,8774
15
+ adam/repl_state.py,sha256=GuDq3C42hMX3pmjLlMbARJ8nGiBw8-gNT-xhkKQu-a4,8797
16
16
  adam/utils.py,sha256=sbsNZP3qGJtb6fXCa4dDXHry5ay9ev583cCZIQzy07s,7382
17
- adam/utils_athena.py,sha256=6OYed6dQ4dg2GZ3MPYt7fArWweEwyMpx2SUky0lb8Pc,3314
17
+ adam/utils_athena.py,sha256=hNvwd3F1qqs-3rGoK42aq0b5XdrHuRXGQtBRU4SBIqY,5840
18
18
  adam/utils_net.py,sha256=65fhBnWMCkhGtyHqz95qcHaCo35q-WX1RBkkXG8dKpI,416
19
- adam/version.py,sha256=68swXPI-eaVV2ykpQpwZBM0hQRNQRORKjENYlrRJQLA,140
19
+ adam/version.py,sha256=LKihFK6mt-4FST7GwFS-_WfQG7UfoEZB6WZ6szHFz5Q,140
20
20
  adam/checks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
21
  adam/checks/check.py,sha256=Qopr3huYcMu2bzQgb99dEUYjFzkjKHRI76S6KA9b9Rk,702
22
22
  adam/checks/check_context.py,sha256=FEHkQ32jY1EDopQ2uYWqy9v7aEEX1orLpJWhopwAlh4,402
@@ -52,13 +52,13 @@ adam/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
52
  adam/commands/alter_tables.py,sha256=DaJ77QSILzCnCBU1TzTQLiy67PooeneJ0kIm9Fkom4I,3112
53
53
  adam/commands/app.py,sha256=7alV8wK801t67_rUe6EmhtHJTl-6K7fGCm6Uz1dDgpM,1963
54
54
  adam/commands/app_ping.py,sha256=Xk7cfefphXM2w-UvpnhNUTZ3BU38f0deehUb2FEyLCI,1337
55
- adam/commands/bash.py,sha256=XKmbH0oWPHbzCuI54nrvSW901gUP9KWb3-NBMwBBMQk,2979
56
- adam/commands/cd.py,sha256=Te4ri6ouT6whmBsOa9G751eB39C8Pi7Susa0KE9cuGQ,4728
55
+ adam/commands/bash.py,sha256=qkpHHrfB9rMbO2q5WlDPbdsH7MRUwv6WAPBTrRDsiJ8,5924
56
+ adam/commands/cd.py,sha256=7ObTkfcoBd85e24BSOD8nwdDXoiQREZvZuwl8g-cmLc,4767
57
57
  adam/commands/check.py,sha256=853FPfgTMGxQXI_5UaPAtzaSWB_BvEVm48EkJhsHe4w,2181
58
58
  adam/commands/cli_commands.py,sha256=vZMgXBQpTfiJ9E4v9yHB6WwcJgO6UcqWF3NuRspicq8,3620
59
59
  adam/commands/command.py,sha256=PCnEOZqZP6lHONOz2HhoJqNhBfOckhgEauFjZq_mgHc,4112
60
60
  adam/commands/command_helpers.py,sha256=leOJJK1UXczNTJHN9TGMCbIpUpmpreULvQ-TvnsYS7w,1134
61
- adam/commands/commands_utils.py,sha256=jkNCI7ZpkdF3HGGF_v7kyUjiHO4zrzrYIWja1sQesH0,3122
61
+ adam/commands/commands_utils.py,sha256=lRzLrgDklmDPDDS3brG_ZVBabpG4M9W-fi_1bw799dE,3093
62
62
  adam/commands/cp.py,sha256=dyQViRDPNqsKRkxPb7WyEVIBNw7YB6IfYa2q3VtfzyA,3107
63
63
  adam/commands/devices.py,sha256=ygpvjYa_NcezM_hctGOAAuBEHiDJtLtJNlOcLGvFJAc,3184
64
64
  adam/commands/exit.py,sha256=5MWUAmzYBlsrp0CoiTDB13SUkX9Ya18UlGeOIPia6TA,798
@@ -66,47 +66,39 @@ adam/commands/help.py,sha256=4IzR4p8UiXr00o1TaymHWm8957EWbWRyuvhrJzZzvc0,1734
66
66
  adam/commands/issues.py,sha256=VS-PC7e-2lywsa-lbmoUX8IY77OPGzFudwbw1g8XmQc,2599
67
67
  adam/commands/login.py,sha256=bj95WWIF7mJDJhnyS9T8xvaZUGL37dj7GlH8TgmODbk,1877
68
68
  adam/commands/logs.py,sha256=GBVztFlCQfd4jfMtqydPjWS9xsB5mV4Aj4ohSQFm6i0,1165
69
- adam/commands/ls.py,sha256=y2r35I_Oa2tYqlkfpmcGHAdxCVCuJmCjrhlimbV142Y,5794
70
- adam/commands/nodetool.py,sha256=j_DS5Tqe_NLpq2d0kTCC9IyNcl9krEHsB-URwBPeHVU,2356
69
+ adam/commands/ls.py,sha256=cNs_pl9UZpG43NrOVc3EBAbzgHye1I0E-vN72tIG6ok,5809
70
+ adam/commands/nodetool.py,sha256=k4Gr63slw0BGinbbj3nHue2GHf55cjAjTdt636UKjb8,2363
71
71
  adam/commands/nodetool_commands.py,sha256=5IgWC3rmeDD1cgwqQjiiWzi-wJpJ3n_8pAzz_9phXuk,2635
72
72
  adam/commands/param_get.py,sha256=kPAAppK2T0tEFRnSIVFLDPIIGHhgLA7drJhn8TRyvvE,1305
73
73
  adam/commands/param_set.py,sha256=QDIuqfU80aWCB16OK49yf7XRaRTWwiLkwMsJuVikq9I,1271
74
- adam/commands/preview_table.py,sha256=Xz4-FVSAzLtZFY1moUBuWdzZK7MOsmKtGWCxXV8ZgFM,3613
75
- adam/commands/pwd.py,sha256=izzMhIcbHjky2VA-84w5pt4nQDDUqahg3t34qy5yxMM,2446
74
+ adam/commands/preview_table.py,sha256=scGOpKkSc95IHGWfQOrM0cctSgeDmjr2E6BoPp5xk1U,2857
75
+ adam/commands/pwd.py,sha256=AvM1gMgxBfIupevtYkGmNWGyEcsIx7-S8L9_v_DPEgk,2469
76
76
  adam/commands/report.py,sha256=Ky45LIzSlB_X4V12JZWjU3SA2u4_FKRencRTq7psOWU,1944
77
77
  adam/commands/restart.py,sha256=SAxWHvglTckQJ0tJe5t-HWsVerbreNMM-7Nb9PAqno4,2044
78
78
  adam/commands/rollout.py,sha256=Db9P4Owd3aPcRLIGhwyEElBNm_2Ke54KbiXyVKmztcE,2959
79
79
  adam/commands/shell.py,sha256=wY_PIx7Lt6vuxhFArlfxdEnBbrouCJ3yNHhFn17DEqw,848
80
80
  adam/commands/watch.py,sha256=fU2LGll-Igl08HpUQALOnh8l3s3AMGFX26NCLhqbfcw,2438
81
81
  adam/commands/audit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
82
- adam/commands/audit/audit.py,sha256=mPn5uGb_wF8xf0KAIuw54NDsU-CwhCuaNsugBg7YGhM,2676
83
- adam/commands/audit/audit_repair_tables.py,sha256=ciKmacngg1r14uR8Z_uzgNH_sk0QlCQvJHLjcWeeDnQ,3330
84
- adam/commands/audit/audit_table_completer.py,sha256=6xqPhAicic_-04dckaMn1v6a8utL5GY-HsE0mhpA4YM,336
82
+ adam/commands/audit/audit.py,sha256=MBCvQn6ZwytZPC47W2aV6iVUw1a9_JHMaogsejf5mgw,2588
83
+ adam/commands/audit/audit_repair_tables.py,sha256=2lyAbnni1EY01k9fGNckBvhALFLLNndnsRS_wvIt2wQ,2542
84
+ adam/commands/audit/audit_run.py,sha256=2Z9VqsAejToWlSYd0JEy1FuT7_ywqTj2D7gZgBkUCKY,1578
85
85
  adam/commands/cql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
- adam/commands/cql/cql_completions.py,sha256=PxARSyVnNHNfpC-6-8sfgChdUI5KGxs64U5EMgU6lvQ,616
87
- adam/commands/cql/cql_table_completer.py,sha256=Tth6lmZ1eCEbJeAVZojTx594ttQeeVf-OjhhkSLyRnI,312
88
- adam/commands/cql/cql_utils.py,sha256=n1XBvgC0Bi0AwUdLZHzXi3n2VQivAXF-Ll7g2dyK_M4,4058
89
- adam/commands/cql/cqlsh.py,sha256=qEQufaDVi9FXkvruum6OHQDfLX01DVWVDnWsAjyCZYQ,2661
86
+ adam/commands/cql/cql_completions.py,sha256=29TJmNHg2_EwGyBrgh04dtZl0BDxGEnLXf_hbPQF9no,660
87
+ adam/commands/cql/cql_utils.py,sha256=EWswF4JEj4EI_lIa1tqhNV-0sasf81SK64aNf8JPqZo,4103
88
+ adam/commands/cql/cqlsh.py,sha256=mpyGUdtnoCw2ZMI5S8yc2_DUQ9rT5QLuE2EBhWmuCbA,2828
90
89
  adam/commands/deploy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
91
90
  adam/commands/deploy/code_start.py,sha256=-iH8HThTNM83IfBxT_LqTByuHVatV9d-Il4OYOfrwLI,1370
92
91
  adam/commands/deploy/code_stop.py,sha256=ch7ZMgosvTHsGaIcDwQY5XYh_5HYrUjBkZFOI-d2gOU,1696
93
92
  adam/commands/deploy/code_utils.py,sha256=cRvktxpAB2-QBX7-eYt9O57uio58X763uXWotTci3mc,3296
94
93
  adam/commands/deploy/deploy.py,sha256=lDuOb460Wm8RkkX811SPGYv59wP0uc9LgCsVG-71bDI,1254
95
94
  adam/commands/deploy/deploy_frontend.py,sha256=S3SvJD4JZQ9kDOOP_mrTnZFDl54AHhio5xxNgIUBZVk,1704
96
- adam/commands/deploy/deploy_pg_agent.py,sha256=VlOplID4MBABzuXeueyjKOTZjlQlQWLwvLSxpii4FHU,1203
95
+ adam/commands/deploy/deploy_pg_agent.py,sha256=v1jVzNnNIxsemHVzGb6iDvvztjLTmHoCVRdZ_S1ATQM,1203
97
96
  adam/commands/deploy/deploy_pod.py,sha256=QvNeBoTa_d3ERXQA7OcQm1awLi5ixj_nS94pqktYMb0,4663
98
97
  adam/commands/deploy/deploy_utils.py,sha256=uQEl0gMOJw2TNjP0Q3pv5nrZYjAsoACtep0a15M0DCE,1524
99
98
  adam/commands/deploy/undeploy.py,sha256=hLrkliNVL7YBQ9sSpJgGeSZiSx7cqkWlv6Y_T3NqR5Y,1308
100
99
  adam/commands/deploy/undeploy_frontend.py,sha256=gHekPn7l19JgVbhneKpQ7ModNoDFmzWRMyQv9v4FBxo,1261
101
- adam/commands/deploy/undeploy_pg_agent.py,sha256=RYME8no1FT94WpVg-HXDGL1NmLlpE1I9R4htitjaxpo,1319
100
+ adam/commands/deploy/undeploy_pg_agent.py,sha256=gWYaxxw9Hu1V-cI2bYynej9nMaZmR_uA8mRqrYP6zpY,1319
102
101
  adam/commands/deploy/undeploy_pod.py,sha256=I-pNfdcfBGLJ5YssTjSHoM4miygqoiGN233wUSIUG9Y,1905
103
- adam/commands/describe/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
104
- adam/commands/describe/describe.py,sha256=k1nQc4ZyilDxFwwLS97Ss-x90z5719Oa4IV16K_gpXE,2056
105
- adam/commands/describe/describe_keyspace.py,sha256=-75hJSsiHCLhGGnjXgRFPCsSEcCt9m3L5qPowA7N2D4,1760
106
- adam/commands/describe/describe_keyspaces.py,sha256=9AFQRa7pAkNMWKkhao97fx0w2No9bah_7uGqTS_yuZc,1491
107
- adam/commands/describe/describe_schema.py,sha256=AdMMR6U9L2OC-XaVxr4JQjKGh_T0H4IU9UpenOoqfOo,1470
108
- adam/commands/describe/describe_table.py,sha256=HQRAx_UzDHJ1OzbqBhzFNIOO5puQBIGnWXu6Egv-Up4,1746
109
- adam/commands/describe/describe_tables.py,sha256=_dBCyN-YKmDIEqb7hi12XoFfbrR5ltQhBtS8j61W6b8,1470
110
102
  adam/commands/medusa/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
111
103
  adam/commands/medusa/medusa.py,sha256=KNFjStvilIuOJt3wTtcWmKvdm8FdCnrDY2ltEWbratk,1402
112
104
  adam/commands/medusa/medusa_backup.py,sha256=Tns-nBbqTnry8zoCFtXCisco3ipcOgArQbN5rc7SRGY,1801
@@ -114,13 +106,12 @@ adam/commands/medusa/medusa_restore.py,sha256=yvqMZtGsZHlFfBNAfcvzfcCbe1NQdlP3H4
114
106
  adam/commands/medusa/medusa_show_backupjobs.py,sha256=9wMauYGmpgELaULLuDClTLc_2cJa3U1YVs7ry7GCiaA,1756
115
107
  adam/commands/medusa/medusa_show_restorejobs.py,sha256=bj7afDJ7tgvssazOcxru9rCmcwPoDaTAgkYdvHKWhjI,1651
116
108
  adam/commands/postgres/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
117
- adam/commands/postgres/postgres.py,sha256=TiJwXGa4faPZ7DI8698SwgjnUXsIaVgG-R_-eXVPhwk,3142
109
+ adam/commands/postgres/postgres.py,sha256=xiiMgNUUXr1nFO8Lwxjr27ooPZ6i2fMyuMSkqmqjVc0,3154
110
+ adam/commands/postgres/postgres_context.py,sha256=Bk7yKHuYCjq3eNhNQ7AT8bEaNvEzyx9WwdBMFJ128b0,9357
118
111
  adam/commands/postgres/postgres_ls.py,sha256=HwZTgwGKXUqHX33S8aQPF6FqCrLqtoz4cLyJV2SpoE0,1186
119
112
  adam/commands/postgres/postgres_preview.py,sha256=MLzdEc4mvNj6V1Q8jO5OPznXyYELJHgd35_eQgLlNIU,1274
120
- adam/commands/postgres/postgres_session.py,sha256=X8YOAxt6EXsUJ_QxIYr-5pmhaSiAX4lm0FXwQPCgXbw,9305
121
- adam/commands/postgres/postgres_utils.py,sha256=mC5PZXrfxzqZt6n_HYASwe6Y-OyAK3QwEtDeVb_TKrA,877
122
- adam/commands/postgres/psql_completions.py,sha256=IHcSy-fh028_rYw2gcXaPuf_4TidP5a2hPrl63N643M,322
123
- adam/commands/postgres/psql_table_completer.py,sha256=WI9VvnI2w6U8HZOdPPiacpf4ShPjHuunHnOtrx7LYG8,509
113
+ adam/commands/postgres/postgres_utils.py,sha256=yzOdeo2opAgCb-hXurD2w2JfJ-g-D4EyBcFDw3ooGe4,889
114
+ adam/commands/postgres/psql_completions.py,sha256=Ep5BIjwH0ZnH1-YbkYdRMdT0r9R6GVVjCKmmUyfP54g,336
124
115
  adam/commands/reaper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
125
116
  adam/commands/reaper/reaper.py,sha256=83R0ZRitEwaYKKssfKxn3zAzLnWIP9QKd1mA6awceS8,1908
126
117
  adam/commands/reaper/reaper_forward.py,sha256=mUp409MzT91cVXGxoPfBGceaR3qZ0rVdWKGdyzPNzSA,3177
@@ -157,9 +148,9 @@ adam/commands/show/show_processes.py,sha256=K7sBSyvCukp3bfoi0SBaqMV5a4Af8paEQXVZ
157
148
  adam/commands/show/show_repairs.py,sha256=m82ukc6YxjvJc9rdKXsiJLtXrEUCiaE-VPqgxDsIOeM,1477
158
149
  adam/commands/show/show_storage.py,sha256=WuBB5AEFm4g7oBz_YCbtkrF2GEeJ-J2tqCVmvzwmwuI,1837
159
150
  adam/sql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
160
- adam/sql/sql_completer.py,sha256=FoCYlDWF_6a7CE752kkzNsuVZ_gPBxEUHZYDiefmegg,4709
161
- adam/sql/state_machine.py,sha256=3FPDvAeqBkzyh_Sdedn7_vYwqwAjOZ7P8JGcpF7-Bx8,33609
162
- adam/sql/term_completer.py,sha256=bNnHAVf9NZl52xS_BQpikbOK39gDBJADnT9gSvG0iqI,2539
151
+ adam/sql/sql_completer.py,sha256=V4RI6LA1vdYcwP5sNuyQzOH9XkBailh7N68y2DrBOhk,3152
152
+ adam/sql/sql_state_machine.py,sha256=49ijZEj9xMKqdSLg8kb5yzcuUO0HpUGRpyNErQo1LH8,29829
153
+ adam/sql/term_completer.py,sha256=HZjOV4fEV9LraoMjkk8lHxNvzRtSIYsGUJhSMOhuoHY,2599
163
154
  adam/sso/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
164
155
  adam/sso/authenticator.py,sha256=BCm16L9zf5aLU47-sTCnudn2zLPwd8M2wwRminJfsqw,615
165
156
  adam/sso/authn_ad.py,sha256=fDW8UR3WWykny5Awa5dQjjBUSFzIDz4aMn-lwXoABl8,5857
@@ -171,22 +162,22 @@ adam/sso/idp_login.py,sha256=QAtCUeDTVWliJy40RK_oac8Vgybr13xH8wzeBoxPaa8,1754
171
162
  adam/sso/idp_session.py,sha256=9BUHNRf70u4rVKrVY1HKPOEmOviXvkjam8WJxmXSKIM,1735
172
163
  adam/sso/sso_config.py,sha256=5N8WZgIJQBtHUy585XLRWKjpU87_v6QluyNK9E27D5s,2459
173
164
  adam/utils_k8s/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
174
- adam/utils_k8s/cassandra_clusters.py,sha256=qUi50MZkk5Rhce0-7s7KSbqe3mCxzcN5bA8Y866WR5E,1400
175
- adam/utils_k8s/cassandra_nodes.py,sha256=itxmhzanBC7OsNOVb7z6zH0VA5F6HvXR5VKAqWBwbho,1440
165
+ adam/utils_k8s/cassandra_clusters.py,sha256=G-gFLjQHCnwfCkpz0mwUoPj6OS6LbB4Fr3boB2iKz_c,1478
166
+ adam/utils_k8s/cassandra_nodes.py,sha256=GeI8w-CwplC6O4UCGDcWs7b7l70Y0gxk-p7CuTY5qE0,1485
176
167
  adam/utils_k8s/config_maps.py,sha256=vc9A-2D1-1mindCMFL1wuysDOXb0RCl4BdjC6B6usXI,1194
177
168
  adam/utils_k8s/custom_resources.py,sha256=cIeaZRQET2DelTGU2f5QsMckh7TddPpWZDFeNK3txeQ,7647
178
169
  adam/utils_k8s/deployment.py,sha256=SLhnMm5GMXwEldj2OupSFBUsvNjynwSNrv5tIDvLMrc,2921
179
170
  adam/utils_k8s/ingresses.py,sha256=ul3Z6fDGc_Cxcn-ExP0vXhZatoShCUZFtpwtCY4Qx7o,3460
180
171
  adam/utils_k8s/jobs.py,sha256=gJpBpjcZ_FlkWJJIlavbHC_bqdmvv-GMVo8UZVh0sOQ,2610
181
172
  adam/utils_k8s/kube_context.py,sha256=xJF_72vUJu-X9MpIYzOIfnj7KEWU7a_sLBR-H3994Y0,3311
182
- adam/utils_k8s/pods.py,sha256=FJ8T9pVSH4AavNYbJnc7BmLlTZySU7jJHYu3v2OplJ8,11319
173
+ adam/utils_k8s/pods.py,sha256=dbNyxu2xUZcQGrUIkt55sOXtwQ2yNbV_afAZSSaDkTk,11428
183
174
  adam/utils_k8s/secrets.py,sha256=tBSKLknHlwdwyTzqvtJ2YS-y9x4gvW57Ug9sOkK_U50,2413
184
175
  adam/utils_k8s/service_accounts.py,sha256=v2oQSqCrNvt2uRnKlNwR3fjtpUG7oF5nqgzEB7NnT-U,6349
185
176
  adam/utils_k8s/services.py,sha256=EOJJGACVbbRvu5T3rMKqIJqgYic1_MSJ17EA0TJ6UOk,3156
186
- adam/utils_k8s/statefulsets.py,sha256=5g7KxGRHgEewT8rnZneDTaJDylUf-dHH2edWJEoorr8,4667
177
+ adam/utils_k8s/statefulsets.py,sha256=0J_cYRqH96PCcq3tdsRrs4Q4ewv5dT_FMBR0HGAJ3d8,4710
187
178
  adam/utils_k8s/volumes.py,sha256=RIBmlOSWM3V3QVXLCFT0owVOyh4rGG1ETp521a-6ndo,1137
188
- kaqing-2.0.101.dist-info/METADATA,sha256=a3PcWNTCr-Bt2UZcbymVhgAahRASALulZtxdEjY1xhM,133
189
- kaqing-2.0.101.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
190
- kaqing-2.0.101.dist-info/entry_points.txt,sha256=SkzhuQJUWsXOzHeZ5TgQ2c3_g53UGK23zzJU_JTZOZI,39
191
- kaqing-2.0.101.dist-info/top_level.txt,sha256=8_2PZkwBb-xDcnc8a2rAbQeJhXKXskc7zTP7pSPa1fw,5
192
- kaqing-2.0.101.dist-info/RECORD,,
179
+ kaqing-2.0.104.dist-info/METADATA,sha256=8r0K3oowsddpx2JIoV0koNZpv9hiASyAa3XvYNFvseE,133
180
+ kaqing-2.0.104.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
181
+ kaqing-2.0.104.dist-info/entry_points.txt,sha256=SkzhuQJUWsXOzHeZ5TgQ2c3_g53UGK23zzJU_JTZOZI,39
182
+ kaqing-2.0.104.dist-info/top_level.txt,sha256=8_2PZkwBb-xDcnc8a2rAbQeJhXKXskc7zTP7pSPa1fw,5
183
+ kaqing-2.0.104.dist-info/RECORD,,
@@ -1,9 +0,0 @@
1
- from adam.sql.term_completer import TermCompleter
2
- from adam.utils_athena import audit_table_names
3
-
4
- class AuditTableNameCompleter(TermCompleter):
5
- def __init__(self, ignore_case: bool = True):
6
- super().__init__(audit_table_names(), ignore_case=ignore_case)
7
-
8
- def __repr__(self) -> str:
9
- return "AuditTableCompleter()"
@@ -1,8 +0,0 @@
1
- from adam.sql.term_completer import TermCompleter
2
-
3
- class CqlTableNameCompleter(TermCompleter):
4
- def __init__(self, tables: list[str], ignore_case: bool = True):
5
- super().__init__(tables, ignore_case=ignore_case)
6
-
7
- def __repr__(self) -> str:
8
- return "CqlTableCompleter(%r)" % (len(self.words))
File without changes
@@ -1,61 +0,0 @@
1
- import click
2
-
3
- from adam.commands.command import Command
4
- from adam.commands.describe.describe_keyspace import DescribeKeyspace
5
- from adam.commands.describe.describe_keyspaces import DescribeKeyspaces
6
- from adam.commands.describe.describe_schema import DescribeSchema
7
- from adam.commands.describe.describe_table import DescribeTable
8
- from adam.commands.describe.describe_tables import DescribeTables
9
- from adam.repl_state import ReplState, RequiredState
10
- from adam.utils import log2
11
- from adam.utils_athena import run_audit_query
12
-
13
- class Describe(Command):
14
- COMMAND = 'describe'
15
- reaper_login = None
16
-
17
- # the singleton pattern
18
- def __new__(cls, *args, **kwargs):
19
- if not hasattr(cls, 'instance'): cls.instance = super(Describe, cls).__new__(cls)
20
-
21
- return cls.instance
22
-
23
- def __init__(self, successor: Command=None):
24
- super().__init__(successor)
25
-
26
- def required(self):
27
- return RequiredState.CLUSTER
28
-
29
- def command(self):
30
- return Describe.COMMAND
31
-
32
- def run(self, cmd: str, state: ReplState):
33
- if not(args := self.args(cmd)):
34
- return super().run(cmd, state)
35
-
36
- if state.device == ReplState.L:
37
- state, args = self.apply_state(args, state)
38
- if not args:
39
- if state.in_repl:
40
- log2('Please enter table name')
41
- else:
42
- log2('* table name is missing.')
43
- log2()
44
- Command.display_help()
45
- return state
46
-
47
- run_audit_query(f'describe {args[0]}')
48
-
49
- return state
50
-
51
- return super().intermediate_run(cmd, state, args, Describe.cmd_list())
52
-
53
- def cmd_list():
54
- return [DescribeKeyspace(), DescribeKeyspaces(), DescribeSchema(), DescribeTable(), DescribeTables()]
55
-
56
- def completion(self, _: ReplState):
57
- return {}
58
-
59
- class DescribeCommandHelper(click.Command):
60
- def get_help(self, ctx: click.Context):
61
- Command.intermediate_help(super().get_help(ctx), Describe.COMMAND, Describe.cmd_list(), show_cluster_help=True)
@@ -1,58 +0,0 @@
1
- from adam.commands.command import Command
2
- from adam.commands.cql.cql_utils import run_cql
3
- from adam.pod_exec_result import PodExecResult
4
- from adam.repl_state import ReplState, RequiredState
5
- from adam.utils import log2
6
-
7
- class DescribeKeyspace(Command):
8
- COMMAND = 'describe keyspace'
9
-
10
- # the singleton pattern
11
- def __new__(cls, *args, **kwargs):
12
- if not hasattr(cls, 'instance'): cls.instance = super(DescribeKeyspace, cls).__new__(cls)
13
-
14
- return cls.instance
15
-
16
- def __init__(self, successor: Command=None):
17
- super().__init__(successor)
18
-
19
- def required(self):
20
- return RequiredState.CLUSTER
21
-
22
- def command(self):
23
- return DescribeKeyspace.COMMAND
24
-
25
- def run(self, cmd: str, state: ReplState):
26
- if not(args := self.args(cmd)):
27
- return super().run(cmd, state)
28
-
29
- state, args = self.apply_state(args, state)
30
- if not self.validate_state(state):
31
- return state
32
-
33
- args, all_nodes = Command.extract_options(args, '&')
34
-
35
- if not args:
36
- if state.in_repl:
37
- log2('Please enter keyspace name')
38
- else:
39
- log2('* keyspace name is missing.')
40
- log2()
41
- Command.display_help()
42
-
43
- return 'missing-keyspace'
44
-
45
- r: list[PodExecResult] = run_cql(state, f'describe keyspace {args[0]}', show_out=True, on_any=not all_nodes)
46
- if not r:
47
- log2('No pod is available')
48
- return 'no-pod'
49
-
50
- # do not continue to cql route
51
- return state
52
-
53
- def completion(self, _: ReplState) -> dict[str, any]:
54
-
55
- return {}
56
-
57
- def help(self, _: ReplState) -> str:
58
- return f'{DescribeKeyspace.COMMAND} <keyspace-name> [&]\t describe Cassandra keyspace'
@@ -1,46 +0,0 @@
1
- from adam.commands.command import Command
2
- from adam.commands.cql.cql_utils import run_cql
3
- from adam.pod_exec_result import PodExecResult
4
- from adam.repl_state import ReplState, RequiredState
5
- from adam.utils import log2
6
-
7
- class DescribeKeyspaces(Command):
8
- COMMAND = 'describe keyspaces'
9
-
10
- # the singleton pattern
11
- def __new__(cls, *args, **kwargs):
12
- if not hasattr(cls, 'instance'): cls.instance = super(DescribeKeyspaces, cls).__new__(cls)
13
-
14
- return cls.instance
15
-
16
- def __init__(self, successor: Command=None):
17
- super().__init__(successor)
18
-
19
- def required(self):
20
- return RequiredState.CLUSTER
21
-
22
- def command(self):
23
- return DescribeKeyspaces.COMMAND
24
-
25
- def run(self, cmd: str, state: ReplState):
26
- if not(args := self.args(cmd)):
27
- return super().run(cmd, state)
28
-
29
- state, args = self.apply_state(args, state)
30
- if not self.validate_state(state):
31
- return state
32
-
33
- args, all_nodes = Command.extract_options(args, '&')
34
- r: list[PodExecResult] = run_cql(state, f'{DescribeKeyspaces.COMMAND} {" ".join(args)}', show_out=True, on_any=not all_nodes)
35
- if not r:
36
- log2('No pod is available')
37
- return 'no-pod'
38
-
39
- # do not continue to cql route
40
- return state
41
-
42
- def completion(self, _: ReplState) -> dict[str, any]:
43
- return {}
44
-
45
- def help(self, _: ReplState) -> str:
46
- return f'{DescribeKeyspaces.COMMAND} [&]\t describe Cassandra keyspaces'
@@ -1,46 +0,0 @@
1
- from adam.commands.command import Command
2
- from adam.commands.cql.cql_utils import run_cql
3
- from adam.pod_exec_result import PodExecResult
4
- from adam.repl_state import ReplState, RequiredState
5
- from adam.utils import log2
6
-
7
- class DescribeSchema(Command):
8
- COMMAND = 'describe schema'
9
-
10
- # the singleton pattern
11
- def __new__(cls, *args, **kwargs):
12
- if not hasattr(cls, 'instance'): cls.instance = super(DescribeSchema, cls).__new__(cls)
13
-
14
- return cls.instance
15
-
16
- def __init__(self, successor: Command=None):
17
- super().__init__(successor)
18
-
19
- def required(self):
20
- return RequiredState.CLUSTER
21
-
22
- def command(self):
23
- return DescribeSchema.COMMAND
24
-
25
- def run(self, cmd: str, state: ReplState):
26
- if not(args := self.args(cmd)):
27
- return super().run(cmd, state)
28
-
29
- state, args = self.apply_state(args, state)
30
- if not self.validate_state(state):
31
- return state
32
-
33
- args, all_nodes = Command.extract_options(args, '&')
34
- r: list[PodExecResult] = run_cql(state, f'{DescribeSchema.COMMAND} {" ".join(args)}', show_out=True, on_any=not all_nodes)
35
- if not r:
36
- log2('No pod is available')
37
- return 'no-pod'
38
-
39
- # do not continue to cql route
40
- return state
41
-
42
- def completion(self, _: ReplState) -> dict[str, any]:
43
- return {}
44
-
45
- def help(self, _: ReplState) -> str:
46
- return f'{DescribeSchema.COMMAND} [&]\t describe Cassandra tables'
@@ -1,57 +0,0 @@
1
- from adam.commands.command import Command
2
- from adam.commands.cql.cql_utils import run_cql
3
- from adam.pod_exec_result import PodExecResult
4
- from adam.repl_state import ReplState, RequiredState
5
- from adam.utils import log2
6
-
7
- class DescribeTable(Command):
8
- COMMAND = 'describe table'
9
-
10
- # the singleton pattern
11
- def __new__(cls, *args, **kwargs):
12
- if not hasattr(cls, 'instance'): cls.instance = super(DescribeTable, cls).__new__(cls)
13
-
14
- return cls.instance
15
-
16
- def __init__(self, successor: Command=None):
17
- super().__init__(successor)
18
-
19
- def required(self):
20
- return RequiredState.CLUSTER
21
-
22
- def command(self):
23
- return DescribeTable.COMMAND
24
-
25
- def run(self, cmd: str, state: ReplState):
26
- if not(args := self.args(cmd)):
27
- return super().run(cmd, state)
28
-
29
- state, args = self.apply_state(args, state)
30
- if not self.validate_state(state):
31
- return state
32
-
33
- args, all_nodes = Command.extract_options(args, '--all-nodes')
34
-
35
- if not args:
36
- if state.in_repl:
37
- log2('Please enter table name')
38
- else:
39
- log2('* table name is missing.')
40
- log2()
41
- Command.display_help()
42
-
43
- return 'missing-table'
44
-
45
- r: list[PodExecResult] = run_cql(state, f'describe table {args[0]}', show_out=True, on_any=not all_nodes)
46
- if not r:
47
- log2('No pod is available')
48
- return 'no-pod'
49
-
50
- # do not continue to cql route
51
- return state
52
-
53
- def completion(self, _: ReplState) -> dict[str, any]:
54
- return {}
55
-
56
- def help(self, _: ReplState) -> str:
57
- return f'{DescribeTable.COMMAND} <table-name> [&]\t describe Cassandra or Athena table'
@@ -1,46 +0,0 @@
1
- from adam.commands.command import Command
2
- from adam.commands.cql.cql_utils import run_cql
3
- from adam.pod_exec_result import PodExecResult
4
- from adam.repl_state import ReplState, RequiredState
5
- from adam.utils import log2
6
-
7
- class DescribeTables(Command):
8
- COMMAND = 'describe tables'
9
-
10
- # the singleton pattern
11
- def __new__(cls, *args, **kwargs):
12
- if not hasattr(cls, 'instance'): cls.instance = super(DescribeTables, cls).__new__(cls)
13
-
14
- return cls.instance
15
-
16
- def __init__(self, successor: Command=None):
17
- super().__init__(successor)
18
-
19
- def required(self):
20
- return RequiredState.CLUSTER
21
-
22
- def command(self):
23
- return DescribeTables.COMMAND
24
-
25
- def run(self, cmd: str, state: ReplState):
26
- if not(args := self.args(cmd)):
27
- return super().run(cmd, state)
28
-
29
- state, args = self.apply_state(args, state)
30
- if not self.validate_state(state):
31
- return state
32
-
33
- args, all_nodes = Command.extract_options(args, '&')
34
- r: list[PodExecResult] = run_cql(state, f'{DescribeTables.COMMAND} {" ".join(args)}', show_out=True, on_any=not all_nodes)
35
- if not r:
36
- log2('No pod is available')
37
- return 'no-pod'
38
-
39
- # do not continue to cql route
40
- return state
41
-
42
- def completion(self, _: ReplState) -> dict[str, any]:
43
- return {}
44
-
45
- def help(self, _: ReplState) -> str:
46
- return f'{DescribeTables.COMMAND} [&]\t describe Cassandra tables'
@@ -1,11 +0,0 @@
1
- from adam.commands.postgres.postgres_utils import pg_table_names
2
- from adam.sql.term_completer import TermCompleter
3
-
4
- class PsqlTableNameCompleter(TermCompleter):
5
- def __init__(self, namespace: str, pg_path: str, ignore_case: bool = True):
6
- super().__init__(pg_table_names(namespace, pg_path), ignore_case=ignore_case)
7
- self.namespace = namespace
8
- self.pg_path = pg_path
9
-
10
- def __repr__(self) -> str:
11
- return "PsqlTableCompleter(%r, pg_path=%r)" % (self.namespace, self.pg_path)