kaqing 2.0.7__py3-none-any.whl → 2.0.9__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.
@@ -2,7 +2,7 @@ from kubernetes import client
2
2
  import yaml
3
3
 
4
4
  from adam.commands.command import Command
5
- from adam.commands.deploy.deploy_utils import deploy_frontend, gen_labels
5
+ from adam.commands.deploy.deploy_utils import creating, deploy_frontend, gen_labels
6
6
  from adam.config import Config
7
7
  from adam.k8s_utils.config_maps import ConfigMaps
8
8
  from adam.k8s_utils.deployment import Deployments
@@ -48,7 +48,11 @@ class DeployPod(Command):
48
48
  additional_cluster_roles = Config().get('pod.sa.additional-cluster-roles', 'c3aiops-k8ssandra-operator').split(',')
49
49
  label_selector = Config().get('pod.label-selector', 'run=ops')
50
50
  labels = gen_labels(label_selector)
51
- ServiceAccounts.replicate(sa_name, state.namespace, sa_proto, labels=labels, add_cluster_roles=additional_cluster_roles)
51
+
52
+ creating('service account', lambda: ServiceAccounts.replicate(sa_name,
53
+ state.namespace,
54
+ sa_proto, labels=labels,
55
+ add_cluster_roles=additional_cluster_roles))
52
56
 
53
57
  settings_filename = 'settings.yaml'
54
58
  settings_path = f'/kaqing/{settings_filename}'
@@ -68,9 +72,13 @@ class DeployPod(Command):
68
72
  return state
69
73
 
70
74
  cm_name = Config().get('pod.cm.name', 'ops')
71
- ConfigMaps.create(cm_name, state.namespace, {
75
+ map_data = {
72
76
  settings_filename : settings_data
73
- }, labels=labels)
77
+ }
78
+ creating('config map', lambda: ConfigMaps.create(cm_name,
79
+ state.namespace,
80
+ map_data,
81
+ labels=labels))
74
82
 
75
83
  pod_name = Config().get('pod.name', 'ops')
76
84
  image = Config().get('pod.image', 'seanahnsf/kaqing')
@@ -79,11 +87,14 @@ class DeployPod(Command):
79
87
  add=["SYS_PTRACE"]
80
88
  )
81
89
  )
82
- Deployments.create(state.namespace, pod_name, image,
83
- env={'NAMESPACE': state.namespace},
84
- container_security_context=security_context,
85
- labels=labels, sa_name=sa_name,
86
- config_map_mount=ConfigMapMount(cm_name, settings_filename, settings_path))
90
+ creating('deployment', lambda: Deployments.create(state.namespace,
91
+ pod_name,
92
+ image,
93
+ env={'NAMESPACE': state.namespace},
94
+ container_security_context=security_context,
95
+ labels=labels,
96
+ sa_name=sa_name,
97
+ config_map_mount=ConfigMapMount(cm_name, settings_filename, settings_path)))
87
98
 
88
99
  uri = deploy_frontend(pod_name, state.namespace, label_selector)
89
100
 
@@ -1,24 +1,39 @@
1
+ from typing import Callable
1
2
  from adam.app_session import AppSession
2
3
  from adam.k8s_utils.ingresses import Ingresses
3
4
  from adam.k8s_utils.services import Services
5
+ from adam.utils import log2
4
6
 
5
7
  def deploy_frontend(name: str, namespace: str, label_selector: str):
6
8
  app_session: AppSession = AppSession.create('c3', 'c3', namespace)
7
9
  port = 7678
8
10
  labels = gen_labels(label_selector)
9
- Services.create_service(name, namespace, port, labels, labels=labels)
10
- Ingresses.create_ingress(name, namespace, app_session.host, '/c3/c3/ops($|/)', port, annotations={
11
+ creating('service', lambda: Services.create_service(name, namespace, port, labels, labels=labels))
12
+ creating('ingress', lambda: Ingresses.create_ingress(name, namespace, app_session.host, '/c3/c3/ops($|/)', port, annotations={
11
13
  'kubernetes.io/ingress.class': 'nginx',
12
14
  'nginx.ingress.kubernetes.io/use-regex': 'true',
13
15
  'nginx.ingress.kubernetes.io/rewrite-target': '/'
14
- }, labels=labels)
16
+ }, labels=labels))
15
17
 
16
18
  return f'https://{app_session.host}/c3/c3/ops'
17
19
 
18
20
  def undeploy_frontend(namespace: str, label_selector: str):
19
- Ingresses.delete_ingresses(namespace, label_selector=label_selector)
20
- Services.delete_services(namespace, label_selector=label_selector)
21
+ deleting('ingress', lambda: Ingresses.delete_ingresses(namespace, label_selector=label_selector))
22
+ deleting('service', lambda: Services.delete_services(namespace, label_selector=label_selector))
21
23
 
22
24
  def gen_labels(label_selector: str):
23
25
  kv = label_selector.split('=')
24
- return {kv[0]: kv[1]}
26
+ return {kv[0]: kv[1]}
27
+
28
+ def creating(name: str, body: Callable[[], None]):
29
+ log2(f'Creating {name}...', nl=False)
30
+ body()
31
+ log2(' OK')
32
+
33
+ def deleting(name: str, body: Callable[[], None]):
34
+ try:
35
+ log2(f'Deleting {name}...', nl=False)
36
+ body()
37
+ log2(' OK')
38
+ except Exception as e:
39
+ log2(e)
@@ -1,13 +1,11 @@
1
1
  from adam.commands.command import Command
2
- from adam.commands.deploy.deploy_utils import undeploy_frontend
2
+ from adam.commands.deploy.deploy_utils import undeploy_frontend, deleting
3
3
  from adam.config import Config
4
4
  from adam.k8s_utils.config_maps import ConfigMaps
5
5
  from adam.k8s_utils.deployment import Deployments
6
- from adam.k8s_utils.kube_context import KubeContext
7
6
  from adam.k8s_utils.pods import Pods
8
7
  from adam.k8s_utils.service_accounts import ServiceAccounts
9
8
  from adam.repl_state import ReplState, RequiredState
10
- from adam.utils import log2
11
9
 
12
10
  class UndeployPod(Command):
13
11
  COMMAND = 'undeploy pod'
@@ -36,23 +34,10 @@ class UndeployPod(Command):
36
34
  return state
37
35
 
38
36
  label_selector = Config().get('pod.label-selector', 'run=ops')
39
- try:
40
- ServiceAccounts.delete(state.namespace, label_selector=label_selector)
41
- except Exception as e:
42
- log2(e)
43
- try:
44
- ConfigMaps.delete_with_selector(state.namespace, label_selector)
45
- except Exception as e:
46
- log2(e)
47
- try:
48
- Deployments.delete_with_selector(state.namespace, label_selector, grace_period_seconds=0)
49
- except Exception as e:
50
- log2(e)
51
- # instantly destroy the pod
52
- try:
53
- Pods.delete_with_selector(state.namespace, label_selector, grace_period_seconds=0)
54
- except Exception as e:
55
- log2(e)
37
+ deleting('service account', lambda: ServiceAccounts.delete(state.namespace, label_selector=label_selector))
38
+ deleting('config map', lambda: ConfigMaps.delete_with_selector(state.namespace, label_selector))
39
+ deleting('deployment', lambda: Deployments.delete_with_selector(state.namespace, label_selector, grace_period_seconds=0))
40
+ deleting('pod', lambda: Pods.delete_with_selector(state.namespace, label_selector, grace_period_seconds=0))
56
41
  undeploy_frontend(state.namespace, label_selector)
57
42
 
58
43
  return state
adam/utils.py CHANGED
@@ -76,9 +76,9 @@ def log(s = None):
76
76
  else:
77
77
  click.echo(s)
78
78
 
79
- def log2(s = None):
79
+ def log2(s = None, nl = True):
80
80
  if s:
81
- click.echo(s, err=True)
81
+ click.echo(s, err=True, nl=nl)
82
82
  else:
83
83
  print(file=sys.stderr)
84
84
 
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.7" #: the working version
4
+ __version__ = "2.0.9" #: 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.7
3
+ Version: 2.0.9
4
4
  Summary: UNKNOWN
5
5
  Home-page: UNKNOWN
6
6
  License: UNKNOWN
@@ -13,8 +13,8 @@ adam/repl.py,sha256=5uGsu24qVAfATHIRdLJ4er44_9uUnVZ14pr-VXCILI0,7224
13
13
  adam/repl_commands.py,sha256=ionPWjPhzrzm59zbhO1WsGGcLVba3bnPl6uPjvQ4C34,4093
14
14
  adam/repl_session.py,sha256=uIogcvWBh7wd8QQ-p_JgLsyJ8YJgINw5vOd6JIsd7Vo,472
15
15
  adam/repl_state.py,sha256=QarrUAwYWOz3YTemtaf2opbHLa5a3LEsyuonNwhvOhk,7131
16
- adam/utils.py,sha256=j7p7iruLuV11swa0z9ZLBgoJHu_nkTSVKtQe0q71gmk,7025
17
- adam/version.py,sha256=HFL4yDyv3I_bTylSWpnX7w-UTLtopafIA3UszxHCKbM,138
16
+ adam/utils.py,sha256=-O47UmVG8S5N2LHAOE-UTMBHJOS_mXufU8ncupeNCHc,7043
17
+ adam/version.py,sha256=zD1yqhU4M6MrcBFSBd0Tz9G6MwT2etd6kWyLInJI_A8,138
18
18
  adam/checks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
19
  adam/checks/check.py,sha256=Qopr3huYcMu2bzQgb99dEUYjFzkjKHRI76S6KA9b9Rk,702
20
20
  adam/checks/check_context.py,sha256=FEHkQ32jY1EDopQ2uYWqy9v7aEEX1orLpJWhopwAlh4,402
@@ -83,11 +83,11 @@ adam/commands/deploy/code_stop.py,sha256=ch7ZMgosvTHsGaIcDwQY5XYh_5HYrUjBkZFOI-d
83
83
  adam/commands/deploy/code_utils.py,sha256=5Gp4U8HzKpPkbkHDU7whlvGOK-wWaAbCIIGzVoN9hio,3296
84
84
  adam/commands/deploy/deploy.py,sha256=_y_pSBHIEVMTgjDqEZwvmGfLQBirHBH4sCnsl0CKOM8,1792
85
85
  adam/commands/deploy/deploy_frontend.py,sha256=TSvMTy6uUfOBIV96hKFy-M1hNCE6OeRW9M_dj1ZJsv0,1700
86
- adam/commands/deploy/deploy_pod.py,sha256=q6Cugc9SzRgztbX4kBkFxbmwXiDzXxYfrxput7H4zeA,3640
87
- adam/commands/deploy/deploy_utils.py,sha256=-YB-XUwr8zVsf9HKYWx_TP-dB2WgOpEmUGyYNcoie0U,1046
86
+ adam/commands/deploy/deploy_pod.py,sha256=epK2FSnO4jqm7VHNID6gETvlhOs9CWVlTj1I_htDA_g,4403
87
+ adam/commands/deploy/deploy_utils.py,sha256=daJhX2kCg5aGt4ZLQdz5AbR-AS7q2y-bZNVxHzP708c,1524
88
88
  adam/commands/deploy/undeploy.py,sha256=CNgbB00TR1YRgX0xGgdGAT8YNPlcLssMsRX-pSby-Ao,1842
89
89
  adam/commands/deploy/undeploy_frontend.py,sha256=mbHlWb5UHUVpR1trfflCS_TDip7eAqxqoZ47RzRZcno,1257
90
- adam/commands/deploy/undeploy_pod.py,sha256=l4QWhY334Gv6F8It-vCvd834n3q_9dzdmgHl2NLKOIw,2153
90
+ adam/commands/deploy/undeploy_pod.py,sha256=k4O0JuVsY4h2jT_mZPM6Q8GqfSz02VAQLAYmd0FCVT8,1901
91
91
  adam/commands/medusa/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
92
92
  adam/commands/medusa/medusa.py,sha256=Y_yyOZRb6u45wfTVBRp3kuklyYDTSlaAJQdAiymP_8M,2185
93
93
  adam/commands/medusa/medusa_backup.py,sha256=j4DTVWFT-4rzs4gG_pBvjE-JuPsVCJIsnyQjIzJ4EbA,1801
@@ -158,8 +158,8 @@ adam/sso/idp.py,sha256=fvcwUw_URTgsO6ySaqTIw0zQT2qRO1IPSGhf6rPtybo,5804
158
158
  adam/sso/idp_login.py,sha256=QAtCUeDTVWliJy40RK_oac8Vgybr13xH8wzeBoxPaa8,1754
159
159
  adam/sso/idp_session.py,sha256=9BUHNRf70u4rVKrVY1HKPOEmOviXvkjam8WJxmXSKIM,1735
160
160
  adam/sso/sso_config.py,sha256=5N8WZgIJQBtHUy585XLRWKjpU87_v6QluyNK9E27D5s,2459
161
- kaqing-2.0.7.dist-info/METADATA,sha256=_nL7f5ipkYIu_Ng4c2g2Jiw7uKaMThfR65PWgO6uba4,131
162
- kaqing-2.0.7.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
163
- kaqing-2.0.7.dist-info/entry_points.txt,sha256=SkzhuQJUWsXOzHeZ5TgQ2c3_g53UGK23zzJU_JTZOZI,39
164
- kaqing-2.0.7.dist-info/top_level.txt,sha256=8_2PZkwBb-xDcnc8a2rAbQeJhXKXskc7zTP7pSPa1fw,5
165
- kaqing-2.0.7.dist-info/RECORD,,
161
+ kaqing-2.0.9.dist-info/METADATA,sha256=eILYNdwMXlTa5b3RVVV7Pf_-w8WDN_kvwkX8RV_3E9I,131
162
+ kaqing-2.0.9.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
163
+ kaqing-2.0.9.dist-info/entry_points.txt,sha256=SkzhuQJUWsXOzHeZ5TgQ2c3_g53UGK23zzJU_JTZOZI,39
164
+ kaqing-2.0.9.dist-info/top_level.txt,sha256=8_2PZkwBb-xDcnc8a2rAbQeJhXKXskc7zTP7pSPa1fw,5
165
+ kaqing-2.0.9.dist-info/RECORD,,
File without changes