kaqing 2.0.94__py3-none-any.whl → 2.0.96__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of kaqing might be problematic. Click here for more details.
- adam/commands/audit/audit_repair_tables.py +57 -5
- adam/commands/ls.py +1 -1
- adam/config.py +1 -1
- adam/embedded_params.py +1 -1
- adam/repl.py +2 -0
- adam/utils_k8s/pods.py +10 -8
- adam/version.py +1 -1
- {kaqing-2.0.94.dist-info → kaqing-2.0.96.dist-info}/METADATA +1 -1
- {kaqing-2.0.94.dist-info → kaqing-2.0.96.dist-info}/RECORD +12 -12
- {kaqing-2.0.94.dist-info → kaqing-2.0.96.dist-info}/WHEEL +0 -0
- {kaqing-2.0.94.dist-info → kaqing-2.0.96.dist-info}/entry_points.txt +0 -0
- {kaqing-2.0.94.dist-info → kaqing-2.0.96.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,12 @@
|
|
|
1
|
+
import concurrent
|
|
2
|
+
import time
|
|
3
|
+
import requests
|
|
4
|
+
|
|
1
5
|
from adam.commands.command import Command
|
|
6
|
+
from adam.config import Config
|
|
2
7
|
from adam.repl_state import ReplState
|
|
3
|
-
from adam.
|
|
8
|
+
from adam.utils import log, log2
|
|
9
|
+
from adam.utils_athena import audit_query, run_audit_query
|
|
4
10
|
|
|
5
11
|
class AuditRepairTables(Command):
|
|
6
12
|
COMMAND = 'audit repair'
|
|
@@ -13,6 +19,7 @@ class AuditRepairTables(Command):
|
|
|
13
19
|
|
|
14
20
|
def __init__(self, successor: Command=None):
|
|
15
21
|
super().__init__(successor)
|
|
22
|
+
self.auto_repaired = False
|
|
16
23
|
|
|
17
24
|
def command(self):
|
|
18
25
|
return AuditRepairTables.COMMAND
|
|
@@ -23,20 +30,65 @@ class AuditRepairTables(Command):
|
|
|
23
30
|
|
|
24
31
|
state, args = self.apply_state(args, state)
|
|
25
32
|
|
|
26
|
-
tables =
|
|
33
|
+
tables = Config().get('audit.tables', 'audit').split(',')
|
|
27
34
|
if args:
|
|
28
35
|
tables = args
|
|
29
36
|
|
|
30
|
-
|
|
31
|
-
run_audit_query(f'MSCK REPAIR TABLE {table}')
|
|
37
|
+
self.repair(tables)
|
|
32
38
|
|
|
33
39
|
return state
|
|
34
40
|
|
|
35
41
|
def completion(self, state: ReplState):
|
|
36
42
|
if state.device == ReplState.L:
|
|
43
|
+
if not self.auto_repaired:
|
|
44
|
+
if hours := Config().get('audit.athena.auto-repair.elapsed_hours', 12):
|
|
45
|
+
with concurrent.futures.ThreadPoolExecutor(max_workers=Config().get('audit.workers', 3)) as executor:
|
|
46
|
+
executor.submit(self.auto_repair, hours,)
|
|
47
|
+
|
|
37
48
|
return super().completion(state)
|
|
38
49
|
|
|
39
50
|
return {}
|
|
40
51
|
|
|
52
|
+
def auto_repair(self, hours: int):
|
|
53
|
+
self.auto_repaired = True
|
|
54
|
+
|
|
55
|
+
state, _, rs = audit_query(f'select * from meta')
|
|
56
|
+
if state == 'SUCCEEDED':
|
|
57
|
+
do_repair = True
|
|
58
|
+
if len(rs) > 1:
|
|
59
|
+
try:
|
|
60
|
+
checked_in = float(rs[1]['Data'][0]['VarCharValue'])
|
|
61
|
+
do_repair = checked_in + hours * 60 * 60 < time.time()
|
|
62
|
+
except:
|
|
63
|
+
pass
|
|
64
|
+
|
|
65
|
+
if do_repair:
|
|
66
|
+
tables = Config().get('audit.athena.tables', 'audit').split(',')
|
|
67
|
+
self.repair(tables, show_sql=True)
|
|
68
|
+
log2(f'Audit tables have been auto-repaired.')
|
|
69
|
+
|
|
70
|
+
def repair(self, tables: list[str], show_sql = False):
|
|
71
|
+
with concurrent.futures.ThreadPoolExecutor(max_workers=Config().get('audit.workers', 3)) as executor:
|
|
72
|
+
for table in tables:
|
|
73
|
+
if show_sql:
|
|
74
|
+
log(f'MSCK REPAIR TABLE {table}')
|
|
75
|
+
|
|
76
|
+
executor.submit(run_audit_query, f'MSCK REPAIR TABLE {table}', None,)
|
|
77
|
+
executor.submit(self.check_in,)
|
|
78
|
+
|
|
41
79
|
def help(self, _: ReplState):
|
|
42
|
-
return f"{AuditRepairTables.COMMAND} \t run MSCK REPAIR command for new partition discovery"
|
|
80
|
+
return f"{AuditRepairTables.COMMAND} \t run MSCK REPAIR command for new partition discovery"
|
|
81
|
+
|
|
82
|
+
def check_in(self):
|
|
83
|
+
payload = {
|
|
84
|
+
'action': 'check-in'
|
|
85
|
+
}
|
|
86
|
+
audit_endpoint = Config().get("audit.endpoint", "https://4psvtaxlcb.execute-api.us-west-2.amazonaws.com/prod/")
|
|
87
|
+
try:
|
|
88
|
+
response = requests.post(audit_endpoint, json=payload, timeout=Config().get("audit.timeout", 10))
|
|
89
|
+
if response.status_code in [200, 201]:
|
|
90
|
+
Config().debug(response.text)
|
|
91
|
+
else:
|
|
92
|
+
log2(f"Error: {response.status_code} {response.text}")
|
|
93
|
+
except requests.exceptions.Timeout as e:
|
|
94
|
+
log2(f"Timeout occurred: {e}")
|
adam/commands/ls.py
CHANGED
adam/config.py
CHANGED
|
@@ -39,7 +39,7 @@ class Config:
|
|
|
39
39
|
return get_deep_keys(self.params)
|
|
40
40
|
|
|
41
41
|
def is_debug(self):
|
|
42
|
-
return os.getenv('QING_DEV').lower() == 'true' or Config().get('debug', False)
|
|
42
|
+
return os.getenv('QING_DEV', 'false').lower() == 'true' or Config().get('debug', False)
|
|
43
43
|
|
|
44
44
|
def debug(self, s: None):
|
|
45
45
|
if self.is_debug():
|
adam/embedded_params.py
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
def config():
|
|
2
|
-
return {'app': {'console-endpoint': 'https://{host}/{env}/{app}/static/console/index.html', 'cr': {'cluster-regex': '(.*?-.*?)-.*', 'group': 'ops.c3.ai', 'v': 'v2', 'plural': 'c3cassandras'}, 'label': 'c3__app_id-0', 'login': {'admin-group': '{host}/C3.ClusterAdmin', 'ingress': '{app_id}-k8singr-appleader-001', 'timeout': 5, 'session-check-url': 'https://{host}/{env}/{app}/api/8/C3/userSessionToken', 'cache-creds': True, 'cache-username': True, 'url': 'https://{host}/{env}/{app}', 'another': "You're logged in to {has}. However, for this app, you need to log in to {need}.", 'token-server-url': 'http://localhost:{port}', 'password-max-length': 128}, 'strip': '0'}, 'audit': {'endpoint': 'https://4psvtaxlcb.execute-api.us-west-2.amazonaws.com/prod/', 'workers': 3, 'timeout': 10, 'log-audit-queries': False, 'athena': {'region': 'us-west-2', 'catalog': 'AwsDataCatalog', 'database': 'audit', 'tables': 'audit', 'output': 's3://s3.ops--audit/ddl/results'}}, 'bash': {'workers': 32}, 'cassandra': {'service-name': 'all-pods-service'}, 'cql': {'workers': 32, 'samples': 3, 'secret': {'cluster-regex': '(.*?-.*?)-.*', 'name': '{cluster}-superuser', 'password-item': 'password'}, 'alter-tables': {'excludes': 'system_auth,system_traces,reaper_db,system_distributed,system_views,system,system_schema,system_virtual_schema', 'gc-grace-periods': '3600,86400,864000,7776000', 'batching': True}}, 'checks': {'compactions-threshold': 250, 'cpu-busy-threshold': 98.0, 'cpu-threshold': 0.0, 'cassandra-data-path': '/c3/cassandra', 'root-disk-threshold': 50, 'cassandra-disk-threshold': 50, 'snapshot-size-cmd': "ls /c3/cassandra/data/data/*/*/snapshots | grep snapshots | sed 's/:$//g' | xargs -I {} du -sk {} | awk '{print $1}' | awk '{s+=$1} END {print s}'", 'snapshot-size-threshold': '40G', 'table-sizes-cmd': "ls -Al /c3/cassandra/data/data/ | awk '{print $9}' | sed 's/\\^r//g' | xargs -I {} du -sk /c3/cassandra/data/data/{}"}, 'get-host-id': {'workers': 32}, 'idps': {'ad': {'email-pattern': '.*@c3.ai', 'uri': 'https://login.microsoftonline.com/53ad779a-93e7-485c-ba20-ac8290d7252b/oauth2/v2.0/authorize?response_type=id_token&response_mode=form_post&client_id=00ff94a8-6b0a-4715-98e0-95490012d818&scope=openid+email+profile&redirect_uri=https%3A%2F%2Fplat.c3ci.cloud%2Fc3%2Fc3%2Foidc%2Flogin&nonce={nonce}&state=EMPTY', 'jwks-uri': 'https://login.microsoftonline.com/common/discovery/keys', 'contact': 'Please contact ted.tran@c3.ai.', 'whitelist-file': '/kaqing/members'}, 'okta': {'default': True, 'email-pattern': '.*@c3iot.com', 'uri': 'https://c3energy.okta.com/oauth2/v1/authorize?response_type=id_token&response_mode=form_post&client_id={client_id}&scope=openid+email+profile+groups&redirect_uri=https%3A%2F%2F{host}%2Fc3%2Fc3%2Foidc%2Flogin&nonce={nonce}&state=EMPTY', 'jwks-uri': 'https://c3energy.okta.com/oauth2/v1/keys'}}, 'issues': {'workers': 32}, 'logs': {'path': '/c3/cassandra/logs/system.log'}, 'medusa': {'restore-auto-complete': False}, 'nodetool': {'workers': 32, 'samples': 3, 'commands_in_line': 40}, 'pg': {'name-pattern': '^{namespace}.*-k8spg-.*', 'excludes': '.helm., -admin-secret', 'agent': {'name': 'ops-pg-agent', 'just-in-time': False, 'timeout': 86400, 'image': 'seanahnsf/kaqing'}, 'default-db': 'postgres', 'default-schema': 'postgres', 'secret': {'endpoint-key': 'postgres-db-endpoint', 'port-key': 'postgres-db-port', 'username-key': 'postgres-admin-username', 'password-key': 'postgres-admin-password'}}, 'pod': {'name': 'ops', 'image': 'seanahnsf/kaqing-cloud', 'sa': {'name': 'ops', 'proto': 'c3', 'additional-cluster-roles': 'c3aiops-k8ssandra-operator'}, 'label-selector': 'run=ops'}, 'preview': {'rows': 10}, 'processes': {'columns': 'pod,cpu,mem', 'header': 'POD_NAME,CPU,MEM/LIMIT'}, 'reaper': {'service-name': 'reaper-service', 'port-forward': {'timeout': 86400, 'local-port': 9001}, 'abort-runs-batch': 10, 'show-runs-batch': 100, 'pod': {'cluster-regex': '(.*?-.*?-.*?-.*?)-.*', 'label-selector': 'k8ssandra.io/reaper={cluster}-reaper'}, 'secret': {'cluster-regex': '(.*?-.*?)-.*', 'name': '{cluster}-reaper-ui', 'password-item': 'password'}}, 'repair': {'log-path': '/home/cassrepair/logs/', 'image': 'ci-registry.c3iot.io/cloudops/cassrepair:2.0.14', 'secret': 'ciregistryc3iotio', 'env': {'interval': 24, 'timeout': 60, 'pr': False, 'runs': 1}}, 'repl': {'start-drive': 'a', 'auto-enter-app': 'c3/c3', 'auto-enter-only-cluster': 'cluster', 'history': {'push-cat-remote-log-file': True}}, 'status': {'columns': 'status,address,load,tokens,owns,host_id,gossip,compactions', 'header': '--,Address,Load,Tokens,Owns,Host ID,GOSSIP,COMPACTIONS'}, 'storage': {'columns': 'pod,volume_root,volume_cassandra,snapshots,data,compactions', 'header': 'POD_NAME,VOLUME /,VOLUME CASS,SNAPSHOTS,DATA,COMPACTIONS'}, 'watch': {'auto': 'rollout', 'timeout': 3600, 'interval': 10}, 'debug': False, 'debugs': {'timings': False, 'exit-on-error': False, 'show-parallelism': False}}
|
|
2
|
+
return {'app': {'console-endpoint': 'https://{host}/{env}/{app}/static/console/index.html', 'cr': {'cluster-regex': '(.*?-.*?)-.*', 'group': 'ops.c3.ai', 'v': 'v2', 'plural': 'c3cassandras'}, 'label': 'c3__app_id-0', 'login': {'admin-group': '{host}/C3.ClusterAdmin', 'ingress': '{app_id}-k8singr-appleader-001', 'timeout': 5, 'session-check-url': 'https://{host}/{env}/{app}/api/8/C3/userSessionToken', 'cache-creds': True, 'cache-username': True, 'url': 'https://{host}/{env}/{app}', 'another': "You're logged in to {has}. However, for this app, you need to log in to {need}.", 'token-server-url': 'http://localhost:{port}', 'password-max-length': 128}, 'strip': '0'}, 'audit': {'endpoint': 'https://4psvtaxlcb.execute-api.us-west-2.amazonaws.com/prod/', 'workers': 3, 'timeout': 10, 'log-audit-queries': False, 'athena': {'auto-repair': {'elapsed_hours': 12}, 'region': 'us-west-2', 'catalog': 'AwsDataCatalog', 'database': 'audit', 'tables': 'audit', 'output': 's3://s3.ops--audit/ddl/results'}}, 'bash': {'workers': 32}, 'cassandra': {'service-name': 'all-pods-service'}, 'cql': {'workers': 32, 'samples': 3, 'secret': {'cluster-regex': '(.*?-.*?)-.*', 'name': '{cluster}-superuser', 'password-item': 'password'}, 'alter-tables': {'excludes': 'system_auth,system_traces,reaper_db,system_distributed,system_views,system,system_schema,system_virtual_schema', 'gc-grace-periods': '3600,86400,864000,7776000', 'batching': True}}, 'checks': {'compactions-threshold': 250, 'cpu-busy-threshold': 98.0, 'cpu-threshold': 0.0, 'cassandra-data-path': '/c3/cassandra', 'root-disk-threshold': 50, 'cassandra-disk-threshold': 50, 'snapshot-size-cmd': "ls /c3/cassandra/data/data/*/*/snapshots | grep snapshots | sed 's/:$//g' | xargs -I {} du -sk {} | awk '{print $1}' | awk '{s+=$1} END {print s}'", 'snapshot-size-threshold': '40G', 'table-sizes-cmd': "ls -Al /c3/cassandra/data/data/ | awk '{print $9}' | sed 's/\\^r//g' | xargs -I {} du -sk /c3/cassandra/data/data/{}"}, 'get-host-id': {'workers': 32}, 'idps': {'ad': {'email-pattern': '.*@c3.ai', 'uri': 'https://login.microsoftonline.com/53ad779a-93e7-485c-ba20-ac8290d7252b/oauth2/v2.0/authorize?response_type=id_token&response_mode=form_post&client_id=00ff94a8-6b0a-4715-98e0-95490012d818&scope=openid+email+profile&redirect_uri=https%3A%2F%2Fplat.c3ci.cloud%2Fc3%2Fc3%2Foidc%2Flogin&nonce={nonce}&state=EMPTY', 'jwks-uri': 'https://login.microsoftonline.com/common/discovery/keys', 'contact': 'Please contact ted.tran@c3.ai.', 'whitelist-file': '/kaqing/members'}, 'okta': {'default': True, 'email-pattern': '.*@c3iot.com', 'uri': 'https://c3energy.okta.com/oauth2/v1/authorize?response_type=id_token&response_mode=form_post&client_id={client_id}&scope=openid+email+profile+groups&redirect_uri=https%3A%2F%2F{host}%2Fc3%2Fc3%2Foidc%2Flogin&nonce={nonce}&state=EMPTY', 'jwks-uri': 'https://c3energy.okta.com/oauth2/v1/keys'}}, 'issues': {'workers': 32}, 'logs': {'path': '/c3/cassandra/logs/system.log'}, 'medusa': {'restore-auto-complete': False}, 'nodetool': {'workers': 32, 'samples': 3, 'commands_in_line': 40}, 'pg': {'name-pattern': '^{namespace}.*-k8spg-.*', 'excludes': '.helm., -admin-secret', 'agent': {'name': 'ops-pg-agent', 'just-in-time': False, 'timeout': 86400, 'image': 'seanahnsf/kaqing'}, 'default-db': 'postgres', 'default-schema': 'postgres', 'secret': {'endpoint-key': 'postgres-db-endpoint', 'port-key': 'postgres-db-port', 'username-key': 'postgres-admin-username', 'password-key': 'postgres-admin-password'}}, 'pod': {'name': 'ops', 'image': 'seanahnsf/kaqing-cloud', 'sa': {'name': 'ops', 'proto': 'c3', 'additional-cluster-roles': 'c3aiops-k8ssandra-operator'}, 'label-selector': 'run=ops'}, 'preview': {'rows': 10}, 'processes': {'columns': 'pod,cpu,mem', 'header': 'POD_NAME,CPU,MEM/LIMIT'}, 'reaper': {'service-name': 'reaper-service', 'port-forward': {'timeout': 86400, 'local-port': 9001}, 'abort-runs-batch': 10, 'show-runs-batch': 100, 'pod': {'cluster-regex': '(.*?-.*?-.*?-.*?)-.*', 'label-selector': 'k8ssandra.io/reaper={cluster}-reaper'}, 'secret': {'cluster-regex': '(.*?-.*?)-.*', 'name': '{cluster}-reaper-ui', 'password-item': 'password'}}, 'repair': {'log-path': '/home/cassrepair/logs/', 'image': 'ci-registry.c3iot.io/cloudops/cassrepair:2.0.14', 'secret': 'ciregistryc3iotio', 'env': {'interval': 24, 'timeout': 60, 'pr': False, 'runs': 1}}, 'repl': {'start-drive': 'a', 'auto-enter-app': 'c3/c3', 'auto-enter-only-cluster': 'cluster', 'history': {'push-cat-remote-log-file': True}, 'background-process': {'auto-nohup': True}}, 'status': {'columns': 'status,address,load,tokens,owns,host_id,gossip,compactions', 'header': '--,Address,Load,Tokens,Owns,Host ID,GOSSIP,COMPACTIONS'}, 'storage': {'columns': 'pod,volume_root,volume_cassandra,snapshots,data,compactions', 'header': 'POD_NAME,VOLUME /,VOLUME CASS,SNAPSHOTS,DATA,COMPACTIONS'}, 'watch': {'auto': 'rollout', 'timeout': 3600, 'interval': 10}, 'debug': False, 'debugs': {'timings': False, 'exit-on-error': False, 'show-parallelism': False}}
|
adam/repl.py
CHANGED
|
@@ -94,6 +94,8 @@ def enter_repl(state: ReplState):
|
|
|
94
94
|
Config().wait_log(f'Moving to {state.app_env}/{state.app_app}...')
|
|
95
95
|
else:
|
|
96
96
|
Config().wait_log(f'Moving to {state.app_env}...')
|
|
97
|
+
elif state.device == ReplState.P:
|
|
98
|
+
Config().wait_log('Inspecting postgres database instances...')
|
|
97
99
|
|
|
98
100
|
kb = KeyBindings()
|
|
99
101
|
|
adam/utils_k8s/pods.py
CHANGED
|
@@ -107,17 +107,19 @@ class Pods:
|
|
|
107
107
|
tty = True
|
|
108
108
|
exec_command = [shell, '-c', command]
|
|
109
109
|
if command.endswith(' &'):
|
|
110
|
-
command = command.strip(' &')
|
|
111
|
-
cmd_name = ''
|
|
112
|
-
if command.startswith('nodetool '):
|
|
113
|
-
cmd_name = f".{'_'.join(command.split(' ')[5:])}"
|
|
114
|
-
|
|
115
|
-
log_file = f'/tmp/qing-{datetime.now().strftime("%d%H%M%S")}{cmd_name}.log'
|
|
116
|
-
command = f"nohup {command} > {log_file} 2>&1 &"
|
|
117
|
-
exec_command = [shell, '-c', command]
|
|
118
110
|
# should be false for starting a backgroud process
|
|
119
111
|
tty = False
|
|
120
112
|
|
|
113
|
+
if Config().get('repl.background-process.auto-nohup', True):
|
|
114
|
+
command = command.strip(' &')
|
|
115
|
+
cmd_name = ''
|
|
116
|
+
if command.startswith('nodetool '):
|
|
117
|
+
cmd_name = f".{'_'.join(command.split(' ')[5:])}"
|
|
118
|
+
|
|
119
|
+
log_file = f'/tmp/qing-{datetime.now().strftime("%d%H%M%S")}{cmd_name}.log'
|
|
120
|
+
command = f"nohup {command} > {log_file} 2>&1 &"
|
|
121
|
+
exec_command = [shell, '-c', command]
|
|
122
|
+
|
|
121
123
|
k_command = f'kubectl exec {pod_name} -c {container} -n {namespace} -- {shell} -c "{command}"'
|
|
122
124
|
if show_out:
|
|
123
125
|
print(k_command)
|
adam/version.py
CHANGED
|
@@ -4,19 +4,19 @@ adam/apps.py,sha256=okYibOEiCVoM5zsPUKaLJZlwlnvWSHKL7U2J1Yk3-Aw,6701
|
|
|
4
4
|
adam/batch.py,sha256=zXLh_dlfJ1vsW3YUUlMW8NXi2SMg3db3xhZiHaldUKY,25251
|
|
5
5
|
adam/cli.py,sha256=03pIZdomAu7IL-GSP6Eun_PKwwISShRAmfx6eVRPGC0,458
|
|
6
6
|
adam/cli_group.py,sha256=W3zy1BghCtVcEXizq8fBH-93ZRVVwgAyGPzy0sHno1Y,593
|
|
7
|
-
adam/config.py,sha256=
|
|
7
|
+
adam/config.py,sha256=GRtfpGgGwfeYdVSPfk3LKCRXlOEJZ2vmXM3ADr7IhVk,2880
|
|
8
8
|
adam/embedded_apps.py,sha256=lKPx63mKzJbNmwz0rgL4gF76M9fDGxraYTtNAIGnZ_s,419
|
|
9
|
-
adam/embedded_params.py,sha256=
|
|
9
|
+
adam/embedded_params.py,sha256=mxwL1A9iBsRkKPjL8xkFZ67wwknm2EPI3PstrF6Rvt0,5012
|
|
10
10
|
adam/log.py,sha256=gg5DK52wLPc9cjykeh0WFHyAk1qI3HEpGaAK8W2dzXY,1146
|
|
11
11
|
adam/pod_exec_result.py,sha256=WBXJSvxzXp9TfsfXeHtIvgz8GvfMAAcH5M03GISLqzw,1046
|
|
12
|
-
adam/repl.py,sha256=
|
|
12
|
+
adam/repl.py,sha256=wo-QGBnySC2cLsQl7M17qGsPVe68oIvJIHkGnZbjMhA,9668
|
|
13
13
|
adam/repl_commands.py,sha256=GKdpHm4e0it7qVwjzBrsIoa5szpvZC30kJmHbWCvooA,4691
|
|
14
14
|
adam/repl_session.py,sha256=uIogcvWBh7wd8QQ-p_JgLsyJ8YJgINw5vOd6JIsd7Vo,472
|
|
15
15
|
adam/repl_state.py,sha256=VlQpV19Sg5vL8H3o8lQxZB5atyuTuN5iEQsd6xpSkQQ,8774
|
|
16
16
|
adam/utils.py,sha256=sbsNZP3qGJtb6fXCa4dDXHry5ay9ev583cCZIQzy07s,7382
|
|
17
17
|
adam/utils_athena.py,sha256=tU6Arg4g7eKV6ei9SLgakOJJqxKgSCsII-7a68OI7_g,3199
|
|
18
18
|
adam/utils_net.py,sha256=65fhBnWMCkhGtyHqz95qcHaCo35q-WX1RBkkXG8dKpI,416
|
|
19
|
-
adam/version.py,sha256=
|
|
19
|
+
adam/version.py,sha256=xdZjjjSYZ9S8l6d5Gt2_xrewmog-qY9Ja-f12xFxwvU,139
|
|
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
|
|
@@ -66,7 +66,7 @@ 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=
|
|
69
|
+
adam/commands/ls.py,sha256=HzfKvaFTrPMKl7N3PtVciuBGj2lZIe9eeEohgDyyav8,5798
|
|
70
70
|
adam/commands/nodetool.py,sha256=j_DS5Tqe_NLpq2d0kTCC9IyNcl9krEHsB-URwBPeHVU,2356
|
|
71
71
|
adam/commands/nodetool_commands.py,sha256=5IgWC3rmeDD1cgwqQjiiWzi-wJpJ3n_8pAzz_9phXuk,2635
|
|
72
72
|
adam/commands/param_get.py,sha256=kPAAppK2T0tEFRnSIVFLDPIIGHhgLA7drJhn8TRyvvE,1305
|
|
@@ -80,7 +80,7 @@ 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
82
|
adam/commands/audit/audit.py,sha256=uXyzGRRW4mfg4AAjxMe6yrTrC3UNQnZh9_8n7-Y3EVE,2324
|
|
83
|
-
adam/commands/audit/audit_repair_tables.py,sha256=
|
|
83
|
+
adam/commands/audit/audit_repair_tables.py,sha256=ciKmacngg1r14uR8Z_uzgNH_sk0QlCQvJHLjcWeeDnQ,3330
|
|
84
84
|
adam/commands/cql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
85
85
|
adam/commands/cql/cql_completions.py,sha256=dXe51NTWEJis76587IWSn9Av-cjC0J6KMaxlBKfF4wM,411
|
|
86
86
|
adam/commands/cql/cql_table_completer.py,sha256=Tth6lmZ1eCEbJeAVZojTx594ttQeeVf-OjhhkSLyRnI,312
|
|
@@ -177,14 +177,14 @@ adam/utils_k8s/deployment.py,sha256=SLhnMm5GMXwEldj2OupSFBUsvNjynwSNrv5tIDvLMrc,
|
|
|
177
177
|
adam/utils_k8s/ingresses.py,sha256=ul3Z6fDGc_Cxcn-ExP0vXhZatoShCUZFtpwtCY4Qx7o,3460
|
|
178
178
|
adam/utils_k8s/jobs.py,sha256=gJpBpjcZ_FlkWJJIlavbHC_bqdmvv-GMVo8UZVh0sOQ,2610
|
|
179
179
|
adam/utils_k8s/kube_context.py,sha256=xJF_72vUJu-X9MpIYzOIfnj7KEWU7a_sLBR-H3994Y0,3311
|
|
180
|
-
adam/utils_k8s/pods.py,sha256=
|
|
180
|
+
adam/utils_k8s/pods.py,sha256=FJ8T9pVSH4AavNYbJnc7BmLlTZySU7jJHYu3v2OplJ8,11319
|
|
181
181
|
adam/utils_k8s/secrets.py,sha256=tBSKLknHlwdwyTzqvtJ2YS-y9x4gvW57Ug9sOkK_U50,2413
|
|
182
182
|
adam/utils_k8s/service_accounts.py,sha256=v2oQSqCrNvt2uRnKlNwR3fjtpUG7oF5nqgzEB7NnT-U,6349
|
|
183
183
|
adam/utils_k8s/services.py,sha256=EOJJGACVbbRvu5T3rMKqIJqgYic1_MSJ17EA0TJ6UOk,3156
|
|
184
184
|
adam/utils_k8s/statefulsets.py,sha256=5g7KxGRHgEewT8rnZneDTaJDylUf-dHH2edWJEoorr8,4667
|
|
185
185
|
adam/utils_k8s/volumes.py,sha256=RIBmlOSWM3V3QVXLCFT0owVOyh4rGG1ETp521a-6ndo,1137
|
|
186
|
-
kaqing-2.0.
|
|
187
|
-
kaqing-2.0.
|
|
188
|
-
kaqing-2.0.
|
|
189
|
-
kaqing-2.0.
|
|
190
|
-
kaqing-2.0.
|
|
186
|
+
kaqing-2.0.96.dist-info/METADATA,sha256=J4ItcIQYIVs3zvCR-iC8SzFFT2yyzrPbZX1zK_vic7g,132
|
|
187
|
+
kaqing-2.0.96.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
|
188
|
+
kaqing-2.0.96.dist-info/entry_points.txt,sha256=SkzhuQJUWsXOzHeZ5TgQ2c3_g53UGK23zzJU_JTZOZI,39
|
|
189
|
+
kaqing-2.0.96.dist-info/top_level.txt,sha256=8_2PZkwBb-xDcnc8a2rAbQeJhXKXskc7zTP7pSPa1fw,5
|
|
190
|
+
kaqing-2.0.96.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|