Skip to content

Commit 0109c6b

Browse files
clevesquewmudge
authored andcommitted
Update wrappers for PvC - cdpcli 0.9.105
Update wrappers for PvC - cdpcli 0.9.105 - add drscp.py for PvC DRS Backup/Restore - add metrics.py for PvC Metrics Export - update environments.py for 3 new PvC functions Signed-off-by: Chuck Levesque <clevesque@cloudera.com>
1 parent bd7b2cb commit 0109c6b

File tree

4 files changed

+211
-0
lines changed

4 files changed

+211
-0
lines changed

src/cdpy/cdpy.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
from cdpy.opdb import CdpyOpdb
1515
from cdpy.dw import CdpyDw
1616
from cdpy.df import CdpyDf
17+
from cdpy.drscp import CdpyDrscp
18+
from cdpy.metrics import CdpyMetrics
1719

1820

1921
class Cdpy(CdpSdkBase):
@@ -30,3 +32,5 @@ def __init__(self, *args, **kwargs):
3032
self.dw = CdpyDw(*args, **kwargs)
3133
self.df = CdpyDf(*args, **kwargs)
3234
self.de = CdpyDe(*args, **kwargs)
35+
self.drscp = CdpyDrscp(*args, **kwargs)
36+
self.metrics = CdpyMetrics(*args, **kwargs)

src/cdpy/drscp.py

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
# -*- coding: utf-8 -*-
2+
3+
from cdpy.common import CdpSdkBase, Squelch, CdpcliWrapper
4+
5+
ENTITLEMENT_DISABLED='DRS not enabled on CDP Tenant'
6+
7+
8+
class CdpyDrscp(CdpSdkBase):
9+
def __init__(self, *args, **kwargs):
10+
super().__init__(*args, **kwargs)
11+
12+
def create_backup(self, backup_name=None, item_name=None ):
13+
return self.sdk.call(
14+
svc='drscp', func='create_backup', ret_field='backupCrn', squelch=[
15+
Squelch('NOT_FOUND'), Squelch('INVALID_ARGUMENT'),
16+
Squelch(value='PATH_DISABLED', warning=ENTITLEMENT_DISABLED)
17+
],
18+
backupName=backup_name,
19+
itemName=item_name
20+
)
21+
22+
def delete_backup(self, backup_crn):
23+
return self.sdk.call(
24+
svc='drscp', func='delete_backup', ret_field='deleteBackupCrn', squelch=[
25+
Squelch('NOT_FOUND'), Squelch('INVALID_ARGUMENT'),
26+
Squelch(value='PATH_DISABLED', warning=ENTITLEMENT_DISABLED)
27+
],
28+
backupCrn=backup_crn
29+
)
30+
31+
def describe_backup(self, backup_crn):
32+
return self.sdk.call(
33+
svc='drscp', func='describe_backup', ret_field='backup', squelch=[
34+
Squelch('NOT_FOUND'), Squelch('INVALID_ARGUMENT'),
35+
Squelch(value='PATH_DISABLED', warning=ENTITLEMENT_DISABLED)
36+
],
37+
backupCrn=backup_crn
38+
)
39+
40+
def describe_restore(self, restore_crn):
41+
return self.sdk.call(
42+
svc='drscp', func='describe_restore', ret_field='restore', squelch=[
43+
Squelch('NOT_FOUND'), Squelch('INVALID_ARGUMENT'),
44+
Squelch(value='PATH_DISABLED', warning=ENTITLEMENT_DISABLED)
45+
],
46+
restoreCrn=restore_crn
47+
)
48+
49+
def get_logs(self, crn ):
50+
return self.sdk.call(
51+
svc='drscp', func='get_logs', ret_field='logs', squelch=[
52+
Squelch('NOT_FOUND'), Squelch('INVALID_ARGUMENT'),
53+
Squelch(value='PATH_DISABLED', warning=ENTITLEMENT_DISABLED)
54+
],
55+
crn=crn
56+
)
57+
58+
def list_backup_entities(self):
59+
return self.sdk.call(
60+
svc='drscp', func='list_backup_entities', ret_field='items', squelch=[
61+
Squelch('NOT_FOUND'), Squelch('INVALID_ARGUMENT'),
62+
Squelch(value='PATH_DISABLED', warning=ENTITLEMENT_DISABLED)
63+
]
64+
)
65+
66+
def list_backups(self, backup_name=None, job_states=None):
67+
return self.sdk.call(
68+
svc='drscp', func='list_backups', ret_field='backup', squelch=[
69+
Squelch('NOT_FOUND'), Squelch('INVALID_ARGUMENT'),
70+
Squelch(value='PATH_DISABLED', warning=ENTITLEMENT_DISABLED)
71+
],
72+
backupName=backup_name,
73+
jobStates=job_states
74+
)
75+
76+
def list_restores(self, job_states=None, backup_crn=None):
77+
return self.sdk.call(
78+
svc='drscp', func='list_restores', ret_field='restores', squelch=[
79+
Squelch('NOT_FOUND'), Squelch('INVALID_ARGUMENT'),
80+
Squelch(value='PATH_DISABLED', warning=ENTITLEMENT_DISABLED)
81+
],
82+
jobStates=job_states,
83+
backupCrn=backup_crn
84+
)
85+
86+
def restore_backup(self, backup_crn ):
87+
return self.sdk.call(
88+
svc='drscp', func='restore_backup', ret_field='restoreCrn', squelch=[
89+
Squelch('NOT_FOUND'), Squelch('INVALID_ARGUMENT'),
90+
Squelch(value='PATH_DISABLED', warning=ENTITLEMENT_DISABLED)
91+
],
92+
backupCrn=backup_crn
93+
)

src/cdpy/environments.py

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,35 @@ def create_gcp_environment(self, **kwargs):
140140
self.sdk.throw_error(resp)
141141
return resp
142142

143+
def create_private_environment(self, env_name, address, user, authentication_token, cluster_names,
144+
kube_config=None, authentication_token_type="CLEARTEXT_PASSWORD",
145+
namespace_prefix=None, domain=None, platform=None, docker_config_json=None,
146+
docker_user_pass=None, description=None, storage_class=None):
147+
resp = self.sdk.call(
148+
svc='environments', func='create_private_environment', ret_field='environment', ret_error=True,
149+
squelch=[
150+
Squelch(value='NOT_FOUND', default=list(),
151+
warning='No Workspaces found in Tenant'),
152+
Squelch(value='PATH_DISABLED', warning=ENTITLEMENT_DISABLED,
153+
default=list())
154+
],
155+
environmentName=env_name,
156+
address=address,
157+
user=user,
158+
authenticationToken=authentication_token,
159+
clusterNames=cluster_names,
160+
kubeConfig=kube_config,
161+
authenticationTokenType=authentication_token_type,
162+
namespacePrefix=namespace_prefix,
163+
domain=domain,
164+
platform=platform,
165+
dockerConfigJson=docker_config_json,
166+
dockerUserPass=docker_user_pass,
167+
description=description,
168+
storageClass=storage_class
169+
)
170+
171+
143172
def stop_environment(self, name):
144173
return self.sdk.call(
145174
svc='environments', func='stop_environment', ret_field='environment', squelch=[
@@ -336,3 +365,36 @@ def resolve_environment_crn(self, env: Union[str, None]):
336365
return env_desc['crn'] if env_desc else None
337366
else:
338367
return None
368+
369+
def check_database_connectivity(self, host, port, name, username, password):
370+
return self.sdk.call(
371+
svc='environments', func='check_database_connectivity',
372+
ret_field='result',
373+
host=host,
374+
port=port,
375+
name=name,
376+
userName=username,
377+
password=password
378+
)
379+
380+
def check_environment_connectivity(self, address, user, authentication_token,
381+
authentication_token_type=None, cluster_names=None):
382+
return self.sdk.call(
383+
svc='environments', func='check_environment_connectivity',
384+
ret_field='clusters',
385+
address=address,
386+
user=user,
387+
authenticationToken=authentication_token,
388+
authenticationTokenType=authentication_token_type,
389+
clusterNames=cluster_names
390+
)
391+
392+
def check_kubernetes_connectivity(self, kube_config, format=None):
393+
return self.sdk.call(
394+
svc='environments', func='check_kubernetes_connectivity',
395+
ret_field='status',
396+
kubeConfig=kube_config,
397+
format=format
398+
)
399+
400+

src/cdpy/metrics.py

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
from cdpy.common import CdpSdkBase, Squelch
2+
3+
4+
class CdpyMetrics(CdpSdkBase):
5+
def __init__(self, *args, **kwargs):
6+
super().__init__(*args, **kwargs)
7+
8+
def create_remote_write_config(self, remote_write_config=None):
9+
return self.sdk.call(
10+
svc='metrics', func='create_remote_write_config', ret_field='remoteWriteConfig', squelch=[
11+
Squelch('NOT_FOUND'), Squelch('INVALID_ARGUMENT'),
12+
Squelch(value='PATH_DISABLED', warning=ENTITLEMENT_DISABLED)
13+
],
14+
remoteWriteConfig=remote_write_config
15+
)
16+
17+
def delete_remote_write_config(self, id=None):
18+
return self.sdk.call(
19+
svc='metrics', func='delete_remote_write_config', squelch=[
20+
Squelch('NOT_FOUND'), Squelch('INVALID_ARGUMENT'),
21+
Squelch(value='PATH_DISABLED', warning=ENTITLEMENT_DISABLED)
22+
],
23+
id=id
24+
)
25+
26+
def describe_remote_write_config(self, id=None):
27+
return self.sdk.call(
28+
svc='metrics', func='describe_remote_write_config',
29+
ret_field='remoteWriteConfig', squelch=[
30+
Squelch('NOT_FOUND'), Squelch('INVALID_ARGUMENT'),
31+
Squelch(value='PATH_DISABLED', warning=ENTITLEMENT_DISABLED)
32+
],
33+
id=id
34+
)
35+
36+
def list_remote_write_configs(self):
37+
return self.sdk.call(
38+
svc='metrics', func='list_remote_write_configs',
39+
ret_field='remoteWriteConfigs', squelch=[
40+
Squelch('NOT_FOUND'), Squelch('INVALID_ARGUMENT'),
41+
Squelch(value='PATH_DISABLED', warning=ENTITLEMENT_DISABLED)
42+
]
43+
)
44+
45+
def update_remote_write_config(self, remote_write_config=None):
46+
return self.sdk.call(
47+
svc='metrics', func='update_remote_write_config', ret_field='remoteWriteConfig', squelch=[
48+
Squelch('NOT_FOUND'), Squelch('INVALID_ARGUMENT'),
49+
Squelch(value='PATH_DISABLED', warning=ENTITLEMENT_DISABLED)
50+
],
51+
remoteWriteConfig=remote_write_config
52+
)

0 commit comments

Comments
 (0)