From fe2a8a0f27d68f38074f81da3ec0b09bd9b0c574 Mon Sep 17 00:00:00 2001 From: Webster Mudge Date: Thu, 12 Sep 2024 12:43:07 -0400 Subject: [PATCH] Create Data Catalog module and add list_dbcs function Signed-off-by: Webster Mudge --- src/cdpy/cdpy.py | 2 ++ src/cdpy/dc.py | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 src/cdpy/dc.py diff --git a/src/cdpy/cdpy.py b/src/cdpy/cdpy.py index 72ae7de..1369bf9 100644 --- a/src/cdpy/cdpy.py +++ b/src/cdpy/cdpy.py @@ -14,6 +14,7 @@ from cdpy.opdb import CdpyOpdb from cdpy.dw import CdpyDw from cdpy.df import CdpyDf +from cdpy.dc import CdpyDc class Cdpy(CdpSdkBase): @@ -30,3 +31,4 @@ def __init__(self, *args, **kwargs): self.dw = CdpyDw(*args, **kwargs) self.df = CdpyDf(*args, **kwargs) self.de = CdpyDe(*args, **kwargs) + self.dc = CdpyDc(*args, **kwargs) diff --git a/src/cdpy/dc.py b/src/cdpy/dc.py new file mode 100644 index 0000000..9299aea --- /dev/null +++ b/src/cdpy/dc.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- + +from cdpy.common import CdpSdkBase, Squelch, CdpError + +ENTITLEMENT_DISABLED='Data Catalog not enabled on CDP Tenant' + + +class CdpyDc(CdpSdkBase): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + def list_dbcs(self, cluster_id): + return self.sdk.call( + svc='dw', func='list_dbcs', ret_field='dbcs', squelch=[ + Squelch(value='NOT_FOUND', default=list()), + Squelch(field='status_code', value='504', default=list(), warning="No Data Catalogs found in this Cluster"), + Squelch(value='PATH_DISABLED', warning=ENTITLEMENT_DISABLED, default=list()) + ], + clusterId=cluster_id + ) \ No newline at end of file