This is an automated email from the ASF dual-hosted git repository.

liuxun pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gravitino.git


The following commit(s) were added to refs/heads/main by this push:
     new 1134386e4 [#3732] refactor: update Python client to align with the 
Java client API: gravitino_metalake, gravitino_client (#4025)
1134386e4 is described below

commit 1134386e4ab68381347cfb8bb684b19f7a029656
Author: Shaofeng Shi <shaofeng...@gmail.com>
AuthorDate: Wed Jul 3 10:28:27 2024 +0800

    [#3732] refactor: update Python client to align with the Java client API: 
gravitino_metalake, gravitino_client (#4025)
    
    ### What changes were proposed in this pull request?
    After the refactoring work in Java client is done
    (https://github.com/datastrato/gravitino/issues/3626), the Python client
    should also get updated to align with the Java API.
    
    This PR mainly work on the following python classes:
    1. gravitino_metalake.py
    2. gravitino_client.py
    3. gravitino_admin_client.py
    
    
    ### Why are the changes needed?
    
    To make the API simple and easy to use.
    
    Fix: #3732
    
    ### Does this PR introduce _any_ user-facing change?
    Change the Python client API.
    
    ### How was this patch tested?
    The integration tests are updated and passed.
---
 .../gravitino/client/gravitino_admin_client.py     | 30 +++-----
 .../gravitino/client/gravitino_client.py           | 29 ++++----
 .../gravitino/client/gravitino_client_base.py      | 20 ++++--
 .../gravitino/client/gravitino_metalake.py         | 81 +++++++++-------------
 .../tests/integration/test_catalog.py              | 78 +++++++++++++++++++++
 .../tests/integration/test_fileset_catalog.py      | 23 +++---
 .../tests/integration/test_metalake.py             | 18 ++---
 .../client-python/tests/integration/test_schema.py | 23 +++---
 .../tests/integration/test_simple_auth_client.py   | 23 +++---
 9 files changed, 184 insertions(+), 141 deletions(-)

diff --git a/clients/client-python/gravitino/client/gravitino_admin_client.py 
b/clients/client-python/gravitino/client/gravitino_admin_client.py
index bff04c639..8ea8f9c8f 100644
--- a/clients/client-python/gravitino/client/gravitino_admin_client.py
+++ b/clients/client-python/gravitino/client/gravitino_admin_client.py
@@ -15,7 +15,6 @@ from gravitino.dto.responses.drop_response import DropResponse
 from gravitino.dto.responses.metalake_list_response import MetalakeListResponse
 from gravitino.dto.responses.metalake_response import MetalakeResponse
 from gravitino.api.metalake_change import MetalakeChange
-from gravitino.name_identifier import NameIdentifier
 
 logger = logging.getLogger(__name__)
 
@@ -45,12 +44,12 @@ class GravitinoAdminClient(GravitinoClientBase):
         ]
 
     def create_metalake(
-        self, ident: NameIdentifier, comment: str, properties: Dict[str, str]
+        self, name: str, comment: str, properties: Dict[str, str]
     ) -> GravitinoMetalake:
         """Creates a new Metalake using the Gravitino API.
 
         Args:
-            ident: The identifier of the new Metalake.
+            name: The name of the new Metalake.
             comment: The comment for the new Metalake.
             properties: The properties of the new Metalake.
 
@@ -58,9 +57,7 @@ class GravitinoAdminClient(GravitinoClientBase):
             A GravitinoMetalake instance representing the newly created 
Metalake.
             TODO: @throws MetalakeAlreadyExistsException If a Metalake with 
the specified identifier already exists.
         """
-        NameIdentifier.check_metalake(ident)
-
-        req = MetalakeCreateRequest(ident.name(), comment, properties)
+        req = MetalakeCreateRequest(name, comment, properties)
         req.validate()
 
         resp = self._rest_client.post(self.API_METALAKES_LIST_PATH, req)
@@ -70,13 +67,11 @@ class GravitinoAdminClient(GravitinoClientBase):
 
         return GravitinoMetalake(metalake, self._rest_client)
 
-    def alter_metalake(
-        self, ident: NameIdentifier, *changes: MetalakeChange
-    ) -> GravitinoMetalake:
+    def alter_metalake(self, name: str, *changes: MetalakeChange) -> 
GravitinoMetalake:
         """Alters a specific Metalake using the Gravitino API.
 
         Args:
-            ident: The identifier of the Metalake to be altered.
+            name: The name of the Metalake to be altered.
             changes: The changes to be applied to the Metalake.
 
         Returns:
@@ -85,13 +80,12 @@ class GravitinoAdminClient(GravitinoClientBase):
         TODO: @throws IllegalArgumentException If the provided changes are 
invalid or not applicable.
         """
 
-        NameIdentifier.check_metalake(ident)
         reqs = [DTOConverters.to_metalake_update_request(change) for change in 
changes]
         updates_request = MetalakeUpdatesRequest(reqs)
         updates_request.validate()
 
         resp = self._rest_client.put(
-            self.API_METALAKES_IDENTIFIER_PATH + ident.name(), updates_request
+            self.API_METALAKES_IDENTIFIER_PATH + name, updates_request
         )
         metalake_response = MetalakeResponse.from_json(resp.body, 
infer_missing=True)
         metalake_response.validate()
@@ -99,24 +93,20 @@ class GravitinoAdminClient(GravitinoClientBase):
 
         return GravitinoMetalake(metalake, self._rest_client)
 
-    def drop_metalake(self, ident: NameIdentifier) -> bool:
+    def drop_metalake(self, name: str) -> bool:
         """Drops a specific Metalake using the Gravitino API.
 
         Args:
-            ident: The identifier of the Metalake to be dropped.
+            name: The name of the Metalake to be dropped.
 
         Returns:
             True if the Metalake was successfully dropped, false otherwise.
         """
-        NameIdentifier.check_metalake(ident)
-
         try:
-            resp = self._rest_client.delete(
-                self.API_METALAKES_IDENTIFIER_PATH + ident.name()
-            )
+            resp = self._rest_client.delete(self.API_METALAKES_IDENTIFIER_PATH 
+ name)
             drop_response = DropResponse.from_json(resp.body, 
infer_missing=True)
 
             return drop_response.dropped()
         except Exception:
-            logger.warning("Failed to drop metalake %s", ident)
+            logger.warning("Failed to drop metalake %s", name)
             return False
diff --git a/clients/client-python/gravitino/client/gravitino_client.py 
b/clients/client-python/gravitino/client/gravitino_client.py
index 6bb9bc00a..b0ec86e40 100644
--- a/clients/client-python/gravitino/client/gravitino_client.py
+++ b/clients/client-python/gravitino/client/gravitino_client.py
@@ -10,8 +10,6 @@ from gravitino.api.catalog_change import CatalogChange
 from gravitino.auth.auth_data_provider import AuthDataProvider
 from gravitino.client.gravitino_client_base import GravitinoClientBase
 from gravitino.client.gravitino_metalake import GravitinoMetalake
-from gravitino.name_identifier import NameIdentifier
-from gravitino.namespace import Namespace
 
 
 class NoSuchMetalakeException(Exception):
@@ -53,7 +51,8 @@ class GravitinoClient(GravitinoClientBase):
             NoSuchMetalakeException if the metalake with specified name does 
not exist.
         """
         super().__init__(uri, check_version, auth_data_provider)
-        self._metalake = 
super().load_metalake(NameIdentifier.of(metalake_name))
+        self.check_metalake_name(metalake_name)
+        self._metalake = super().load_metalake(metalake_name)
 
     def get_metalake(self) -> GravitinoMetalake:
         """Get the current metalake object
@@ -66,29 +65,29 @@ class GravitinoClient(GravitinoClientBase):
         """
         return self._metalake
 
-    def list_catalogs(self, namespace: Namespace) -> List[NameIdentifier]:
-        return self.get_metalake().list_catalogs(namespace)
+    def list_catalogs(self) -> List[str]:
+        return self.get_metalake().list_catalogs()
 
-    def list_catalogs_info(self, namespace: Namespace) -> List[Catalog]:
-        return self.get_metalake().list_catalogs_info(namespace)
+    def list_catalogs_info(self) -> List[Catalog]:
+        return self.get_metalake().list_catalogs_info()
 
-    def load_catalog(self, ident: NameIdentifier) -> Catalog:
-        return self.get_metalake().load_catalog(ident)
+    def load_catalog(self, name: str) -> Catalog:
+        return self.get_metalake().load_catalog(name)
 
     def create_catalog(
         self,
-        ident: NameIdentifier,
+        name: str,
         catalog_type: Catalog.Type,
         provider: str,
         comment: str,
         properties: Dict[str, str],
     ) -> Catalog:
         return self.get_metalake().create_catalog(
-            ident, catalog_type, provider, comment, properties
+            name, catalog_type, provider, comment, properties
         )
 
-    def alter_catalog(self, ident: NameIdentifier, *changes: CatalogChange):
-        return self.get_metalake().alter_catalog(ident, *changes)
+    def alter_catalog(self, name: str, *changes: CatalogChange):
+        return self.get_metalake().alter_catalog(name, *changes)
 
-    def drop_catalog(self, ident: NameIdentifier):
-        return self.get_metalake().drop_catalog(ident)
+    def drop_catalog(self, name: str):
+        return self.get_metalake().drop_catalog(name)
diff --git a/clients/client-python/gravitino/client/gravitino_client_base.py 
b/clients/client-python/gravitino/client/gravitino_client_base.py
index b2fb713b0..c082eaf0a 100644
--- a/clients/client-python/gravitino/client/gravitino_client_base.py
+++ b/clients/client-python/gravitino/client/gravitino_client_base.py
@@ -13,10 +13,10 @@ from gravitino.client.gravitino_version import 
GravitinoVersion
 from gravitino.dto.version_dto import VersionDTO
 from gravitino.dto.responses.metalake_response import MetalakeResponse
 from gravitino.dto.responses.version_response import VersionResponse
-from gravitino.name_identifier import NameIdentifier
 from gravitino.utils import HTTPClient
 from gravitino.exceptions.gravitino_runtime_exception import 
GravitinoRuntimeException
 from gravitino.constants.version import VERSION_INI, Version
+from gravitino.name_identifier import NameIdentifier
 
 logger = logging.getLogger(__name__)
 
@@ -46,11 +46,11 @@ class GravitinoClientBase:
         if check_version:
             self.check_version()
 
-    def load_metalake(self, ident: NameIdentifier) -> GravitinoMetalake:
+    def load_metalake(self, name: str) -> GravitinoMetalake:
         """Loads a specific Metalake from the Gravitino API.
 
         Args:
-            ident The identifier of the Metalake to be loaded.
+            name: The name of the Metalake to be loaded.
 
         Returns:
             A GravitinoMetalake instance representing the loaded Metalake.
@@ -59,10 +59,9 @@ class GravitinoClientBase:
             NoSuchMetalakeException If the specified Metalake does not exist.
         """
 
-        NameIdentifier.check_metalake(ident)
-
+        self.check_metalake_name(name)
         response = self._rest_client.get(
-            GravitinoClientBase.API_METALAKES_IDENTIFIER_PATH + ident.name()
+            GravitinoClientBase.API_METALAKES_IDENTIFIER_PATH + name
         )
         metalake_response = MetalakeResponse.from_json(
             response.body, infer_missing=True
@@ -126,3 +125,12 @@ class GravitinoClientBase:
                 self._rest_client.close()
             except Exception as e:
                 logger.warning("Failed to close the HTTP REST client: %s", e)
+
+    def check_metalake_name(self, metalake_name: str):
+        identifier = NameIdentifier.parse(metalake_name)
+        namespace = identifier.namespace()
+
+        if not namespace:
+            raise ValueError(
+                f"Metalake namespace must be empty, the input namespace is 
{namespace}"
+            )
diff --git a/clients/client-python/gravitino/client/gravitino_metalake.py 
b/clients/client-python/gravitino/client/gravitino_metalake.py
index 4b774681d..acff0093f 100644
--- a/clients/client-python/gravitino/client/gravitino_metalake.py
+++ b/clients/client-python/gravitino/client/gravitino_metalake.py
@@ -16,8 +16,6 @@ from gravitino.dto.responses.catalog_list_response import 
CatalogListResponse
 from gravitino.dto.responses.catalog_response import CatalogResponse
 from gravitino.dto.responses.drop_response import DropResponse
 from gravitino.dto.responses.entity_list_response import EntityListResponse
-from gravitino.name_identifier import NameIdentifier
-from gravitino.namespace import Namespace
 from gravitino.utils import HTTPClient
 
 
@@ -56,30 +54,23 @@ class GravitinoMetalake(MetalakeDTO):
         )
         self.rest_client = client
 
-    def list_catalogs(self, namespace: Namespace) -> List[NameIdentifier]:
-        """List all the catalogs under this metalake with specified namespace.
-
-        Args:
-            namespace The namespace to list the catalogs under it.
+    def list_catalogs(self) -> List[str]:
+        """List all the catalogs under this metalake.
 
         Raises:
             NoSuchMetalakeException if the metalake with specified namespace 
does not exist.
 
         Returns:
-            A list of {@link NameIdentifier} of the catalogs under the 
specified namespace.
+            A list of the catalog names under this metalake.
         """
-        Namespace.check_catalog(namespace)
-        url = f"api/metalakes/{namespace.level(0)}/catalogs"
+        url = f"api/metalakes/{self.name()}/catalogs"
         response = self.rest_client.get(url)
         entity_list = EntityListResponse.from_json(response.body, 
infer_missing=True)
         entity_list.validate()
-        return entity_list.identifiers()
+        return [identifier.name() for identifier in entity_list.identifiers()]
 
-    def list_catalogs_info(self, namespace: Namespace) -> List[Catalog]:
-        """List all the catalogs with their information under this metalake 
with specified namespace.
-
-        Args:
-            namespace The namespace to list the catalogs under it.
+    def list_catalogs_info(self) -> List[Catalog]:
+        """List all the catalogs with their information under this metalake.
 
         Raises:
             NoSuchMetalakeException if the metalake with specified namespace 
does not exist.
@@ -87,9 +78,8 @@ class GravitinoMetalake(MetalakeDTO):
         Returns:
             A list of Catalog under the specified namespace.
         """
-        Namespace.check_catalog(namespace)
         params = {"details": "true"}
-        url = f"api/metalakes/{namespace.level(0)}/catalogs"
+        url = f"api/metalakes/{self.name()}/catalogs"
         response = self.rest_client.get(url, params=params)
         catalog_list = CatalogListResponse.from_json(response.body, 
infer_missing=True)
 
@@ -98,22 +88,19 @@ class GravitinoMetalake(MetalakeDTO):
             for catalog in catalog_list.catalogs()
         ]
 
-    def load_catalog(self, ident: NameIdentifier) -> Catalog:
-        """Load the catalog with specified identifier.
+    def load_catalog(self, name: str) -> Catalog:
+        """Load the catalog with specified name.
 
         Args:
-            ident: The identifier of the catalog to load.
+            name: The name of the catalog to load.
 
         Raises:
-            NoSuchCatalogException if the catalog with specified identifier 
does not exist.
+            NoSuchCatalogException if the catalog with specified name does not 
exist.
 
         Returns:
-            The Catalog with specified identifier.
+            The Catalog with specified name.
         """
-        NameIdentifier.check_catalog(ident)
-        url = self.API_METALAKES_CATALOGS_PATH.format(
-            ident.namespace().level(0), ident.name()
-        )
+        url = self.API_METALAKES_CATALOGS_PATH.format(self.name(), name)
         response = self.rest_client.get(url)
         catalog_resp = CatalogResponse.from_json(response.body, 
infer_missing=True)
 
@@ -121,32 +108,31 @@ class GravitinoMetalake(MetalakeDTO):
 
     def create_catalog(
         self,
-        ident: NameIdentifier,
+        name: str,
         catalog_type: Catalog.Type,
         provider: str,
         comment: str,
         properties: Dict[str, str],
     ) -> Catalog:
-        """Create a new catalog with specified identifier, catalog type, 
comment and properties.
+        """Create a new catalog with specified name, catalog type, comment and 
properties.
 
         Args:
-            ident: The identifier of the catalog.
+            name: The name of the catalog.
             catalog_type: The type of the catalog.
             provider: The provider of the catalog.
             comment: The comment of the catalog.
             properties: The properties of the catalog.
 
         Raises:
-            NoSuchMetalakeException if the metalake with specified namespace 
does not exist.
-            CatalogAlreadyExistsException if the catalog with specified 
identifier already exists.
+            NoSuchMetalakeException if the metalake does not exist.
+            CatalogAlreadyExistsException if the catalog with specified name 
already exists.
 
         Returns:
             The created Catalog.
         """
-        NameIdentifier.check_catalog(ident)
 
         catalog_create_request = CatalogCreateRequest(
-            name=ident.name(),
+            name=name,
             catalog_type=catalog_type,
             provider=provider,
             comment=comment,
@@ -154,54 +140,49 @@ class GravitinoMetalake(MetalakeDTO):
         )
         catalog_create_request.validate()
 
-        url = f"api/metalakes/{ident.namespace().level(0)}/catalogs"
+        url = f"api/metalakes/{self.name()}/catalogs"
         response = self.rest_client.post(url, json=catalog_create_request)
         catalog_resp = CatalogResponse.from_json(response.body, 
infer_missing=True)
 
         return DTOConverters.to_catalog(catalog_resp.catalog(), 
self.rest_client)
 
-    def alter_catalog(self, ident: NameIdentifier, *changes: CatalogChange) -> 
Catalog:
-        """Alter the catalog with specified identifier by applying the changes.
+    def alter_catalog(self, name: str, *changes: CatalogChange) -> Catalog:
+        """Alter the catalog with specified name by applying the changes.
 
         Args:
-            ident: the identifier of the catalog.
+            name: the name of the catalog.
             changes: the changes to apply to the catalog.
 
         Raises:
-            NoSuchCatalogException if the catalog with specified identifier 
does not exist.
+            NoSuchCatalogException if the catalog with specified name does not 
exist.
             IllegalArgumentException if the changes are invalid.
 
         Returns:
             the altered Catalog.
         """
-        NameIdentifier.check_catalog(ident)
 
         reqs = [DTOConverters.to_catalog_update_request(change) for change in 
changes]
         updates_request = CatalogUpdatesRequest(reqs)
         updates_request.validate()
 
-        url = self.API_METALAKES_CATALOGS_PATH.format(
-            ident.namespace().level(0), ident.name()
-        )
+        url = self.API_METALAKES_CATALOGS_PATH.format(self.name(), name)
         response = self.rest_client.put(url, json=updates_request)
         catalog_response = CatalogResponse.from_json(response.body, 
infer_missing=True)
         catalog_response.validate()
 
         return DTOConverters.to_catalog(catalog_response.catalog(), 
self.rest_client)
 
-    def drop_catalog(self, ident: NameIdentifier) -> bool:
-        """Drop the catalog with specified identifier.
+    def drop_catalog(self, name: str) -> bool:
+        """Drop the catalog with specified name.
 
         Args:
-            ident the identifier of the catalog.
+            name the name of the catalog.
 
         Returns:
             true if the catalog is dropped successfully, false otherwise.
         """
         try:
-            url = self.API_METALAKES_CATALOGS_PATH.format(
-                ident.namespace().level(0), ident.name()
-            )
+            url = self.API_METALAKES_CATALOGS_PATH.format(self.name(), name)
             response = self.rest_client.delete(url)
 
             drop_response = DropResponse.from_json(response.body, 
infer_missing=True)
@@ -209,5 +190,5 @@ class GravitinoMetalake(MetalakeDTO):
 
             return drop_response.dropped()
         except Exception:
-            logger.warning("Failed to drop catalog %s", ident)
+            logger.warning("Failed to drop catalog %s", name)
             return False
diff --git a/clients/client-python/tests/integration/test_catalog.py 
b/clients/client-python/tests/integration/test_catalog.py
new file mode 100644
index 000000000..5b08edc23
--- /dev/null
+++ b/clients/client-python/tests/integration/test_catalog.py
@@ -0,0 +1,78 @@
+"""
+Copyright 2024 Datastrato Pvt Ltd.
+This software is licensed under the Apache License version 2.
+"""
+
+import logging
+from random import randint
+
+from gravitino import (
+    NameIdentifier,
+    GravitinoAdminClient,
+    GravitinoClient,
+    Catalog,
+)
+
+from tests.integration.integration_test_env import IntegrationTestEnv
+
+logger = logging.getLogger(__name__)
+
+
+class TestCatalog(IntegrationTestEnv):
+    metalake_name: str = "TestSchema_metalake" + str(randint(1, 10000))
+
+    catalog_name: str = "testCatalog"
+    catalog_location_prop: str = "location"  # Fileset Catalog must set 
`location`
+    catalog_provider: str = "hadoop"
+
+    catalog_ident: NameIdentifier = NameIdentifier.of_catalog(
+        metalake_name, catalog_name
+    )
+
+    gravitino_admin_client: GravitinoAdminClient = GravitinoAdminClient(
+        uri="http://localhost:8090";
+    )
+    gravitino_client: GravitinoClient = None
+
+    def setUp(self):
+        self.init_test_env()
+
+    def tearDown(self):
+        self.clean_test_data()
+
+    def init_test_env(self):
+        self.gravitino_admin_client.create_metalake(
+            self.metalake_name, comment="", properties={}
+        )
+        self.gravitino_client = GravitinoClient(
+            uri="http://localhost:8090";, metalake_name=self.metalake_name
+        )
+        self.gravitino_client.create_catalog(
+            name=self.catalog_name,
+            catalog_type=Catalog.Type.FILESET,
+            provider=self.catalog_provider,
+            comment="",
+            properties={self.catalog_location_prop: "/tmp/test_schema"},
+        )
+
+    def clean_test_data(self):
+        try:
+            self.gravitino_client = GravitinoClient(
+                uri="http://localhost:8090";, metalake_name=self.metalake_name
+            )
+            logger.info(
+                "Drop catalog %s[%s]",
+                self.catalog_ident,
+                self.gravitino_client.drop_catalog(name=self.catalog_name),
+            )
+            logger.info(
+                "Drop metalake %s[%s]",
+                self.metalake_name,
+                self.gravitino_admin_client.drop_metalake(self.metalake_name),
+            )
+        except Exception as e:
+            logger.error("Clean test data failed: %s", e)
+
+    def test_list_catalogs(self):
+        catalog_names = self.gravitino_client.list_catalogs()
+        self.assertTrue(self.catalog_name in catalog_names)
diff --git a/clients/client-python/tests/integration/test_fileset_catalog.py 
b/clients/client-python/tests/integration/test_fileset_catalog.py
index e299bada2..ece756612 100644
--- a/clients/client-python/tests/integration/test_fileset_catalog.py
+++ b/clients/client-python/tests/integration/test_fileset_catalog.py
@@ -43,7 +43,6 @@ class TestFilesetCatalog(IntegrationTestEnv):
     }
     fileset_new_name = fileset_name + "_new"
 
-    metalake_ident: NameIdentifier = NameIdentifier.of(metalake_name)
     catalog_ident: NameIdentifier = NameIdentifier.of_catalog(
         metalake_name, catalog_name
     )
@@ -73,7 +72,7 @@ class TestFilesetCatalog(IntegrationTestEnv):
             self.gravitino_client = GravitinoClient(
                 uri="http://localhost:8090";, metalake_name=self.metalake_name
             )
-            catalog = 
self.gravitino_client.load_catalog(ident=self.catalog_ident)
+            catalog = 
self.gravitino_client.load_catalog(name=self.catalog_name)
             logger.info(
                 "Drop fileset %s[%s]",
                 self.fileset_ident,
@@ -92,25 +91,25 @@ class TestFilesetCatalog(IntegrationTestEnv):
             logger.info(
                 "Drop catalog %s[%s]",
                 self.catalog_ident,
-                self.gravitino_client.drop_catalog(ident=self.catalog_ident),
+                self.gravitino_client.drop_catalog(name=self.catalog_name),
             )
             logger.info(
                 "Drop metalake %s[%s]",
-                self.metalake_ident,
-                self.gravitino_admin_client.drop_metalake(self.metalake_ident),
+                self.metalake_name,
+                self.gravitino_admin_client.drop_metalake(self.metalake_name),
             )
         except Exception as e:
             logger.error("Clean test data failed: %s", e)
 
     def init_test_env(self):
         self.gravitino_admin_client.create_metalake(
-            ident=self.metalake_ident, comment="", properties={}
+            self.metalake_name, comment="", properties={}
         )
         self.gravitino_client = GravitinoClient(
             uri="http://localhost:8090";, metalake_name=self.metalake_name
         )
         catalog = self.gravitino_client.create_catalog(
-            ident=self.catalog_ident,
+            name=self.catalog_name,
             catalog_type=Catalog.Type.FILESET,
             provider=self.catalog_provider,
             comment="",
@@ -121,7 +120,7 @@ class TestFilesetCatalog(IntegrationTestEnv):
         )
 
     def create_fileset(self) -> Fileset:
-        catalog = self.gravitino_client.load_catalog(ident=self.catalog_ident)
+        catalog = self.gravitino_client.load_catalog(name=self.catalog_name)
         return catalog.as_fileset_catalog().create_fileset(
             ident=self.fileset_ident,
             fileset_type=Fileset.Type.MANAGED,
@@ -139,14 +138,14 @@ class TestFilesetCatalog(IntegrationTestEnv):
 
     def test_drop_fileset(self):
         self.create_fileset()
-        catalog = self.gravitino_client.load_catalog(ident=self.catalog_ident)
+        catalog = self.gravitino_client.load_catalog(name=self.catalog_name)
         self.assertTrue(
             catalog.as_fileset_catalog().drop_fileset(ident=self.fileset_ident)
         )
 
     def test_list_fileset(self):
         self.create_fileset()
-        catalog = self.gravitino_client.load_catalog(ident=self.catalog_ident)
+        catalog = self.gravitino_client.load_catalog(name=self.catalog_name)
         fileset_list: List[NameIdentifier] = 
catalog.as_fileset_catalog().list_filesets(
             namespace=self.fileset_ident.namespace()
         )
@@ -155,7 +154,7 @@ class TestFilesetCatalog(IntegrationTestEnv):
     def test_load_fileset(self):
         self.create_fileset()
         fileset = (
-            self.gravitino_client.load_catalog(ident=self.catalog_ident)
+            self.gravitino_client.load_catalog(name=self.catalog_name)
             .as_fileset_catalog()
             .load_fileset(ident=self.fileset_ident)
         )
@@ -175,7 +174,7 @@ class TestFilesetCatalog(IntegrationTestEnv):
                 self.fileset_properties_key2, fileset_propertie_new_value
             ),
         )
-        catalog = self.gravitino_client.load_catalog(ident=self.catalog_ident)
+        catalog = self.gravitino_client.load_catalog(name=self.catalog_name)
         fileset_new = catalog.as_fileset_catalog().alter_fileset(
             self.fileset_ident, *changes
         )
diff --git a/clients/client-python/tests/integration/test_metalake.py 
b/clients/client-python/tests/integration/test_metalake.py
index c8bbb1769..c2ef0d4d7 100644
--- a/clients/client-python/tests/integration/test_metalake.py
+++ b/clients/client-python/tests/integration/test_metalake.py
@@ -6,12 +6,7 @@ This software is licensed under the Apache License version 2.
 import logging
 from typing import Dict, List
 
-from gravitino import (
-    GravitinoAdminClient,
-    GravitinoMetalake,
-    MetalakeChange,
-    NameIdentifier,
-)
+from gravitino import GravitinoAdminClient, GravitinoMetalake, MetalakeChange
 from gravitino.dto.dto_converters import DTOConverters
 from gravitino.dto.requests.metalake_updates_request import 
MetalakeUpdatesRequest
 from tests.integration.integration_test_env import IntegrationTestEnv
@@ -61,7 +56,7 @@ class TestMetalake(IntegrationTestEnv):
 
     def create_metalake(self, metalake_name) -> GravitinoMetalake:
         return self.gravitino_admin_client.create_metalake(
-            NameIdentifier.of(metalake_name),
+            metalake_name,
             self.metalake_comment,
             self.metalake_properties,
         )
@@ -83,7 +78,7 @@ class TestMetalake(IntegrationTestEnv):
         )
 
         metalake = self.gravitino_admin_client.alter_metalake(
-            NameIdentifier.of(self.metalake_name), *changes
+            self.metalake_name, *changes
         )
         self.assertEqual(metalake.name(), metalake_new_name)
         self.assertEqual(metalake.comment(), metalake_new_comment)
@@ -94,8 +89,7 @@ class TestMetalake(IntegrationTestEnv):
         self.assertTrue(self.metalake_properties_key1 not in 
metalake.properties())
 
     def drop_metalake(self, metalake_name: str) -> bool:
-        ident = NameIdentifier.of(metalake_name)
-        return self.gravitino_admin_client.drop_metalake(ident)
+        return self.gravitino_admin_client.drop_metalake(metalake_name)
 
     def test_drop_metalake(self):
         self.create_metalake(self.metalake_name)
@@ -125,9 +119,7 @@ class TestMetalake(IntegrationTestEnv):
 
     def test_load_metalakes(self):
         self.create_metalake(self.metalake_name)
-        metalake = self.gravitino_admin_client.load_metalake(
-            NameIdentifier.of(self.metalake_name)
-        )
+        metalake = 
self.gravitino_admin_client.load_metalake(self.metalake_name)
         self.assertIsNotNone(metalake)
         self.assertEqual(metalake.name(), self.metalake_name)
         self.assertEqual(metalake.comment(), self.metalake_comment)
diff --git a/clients/client-python/tests/integration/test_schema.py 
b/clients/client-python/tests/integration/test_schema.py
index 4ad7f3fa3..0e5633284 100644
--- a/clients/client-python/tests/integration/test_schema.py
+++ b/clients/client-python/tests/integration/test_schema.py
@@ -41,7 +41,6 @@ class TestSchema(IntegrationTestEnv):
         schema_properties_key2: schema_properties_value2,
     }
 
-    metalake_ident: NameIdentifier = NameIdentifier.of(metalake_name)
     catalog_ident: NameIdentifier = NameIdentifier.of_catalog(
         metalake_name, catalog_name
     )
@@ -65,13 +64,13 @@ class TestSchema(IntegrationTestEnv):
 
     def init_test_env(self):
         self.gravitino_admin_client.create_metalake(
-            ident=self.metalake_ident, comment="", properties={}
+            self.metalake_name, comment="", properties={}
         )
         self.gravitino_client = GravitinoClient(
             uri="http://localhost:8090";, metalake_name=self.metalake_name
         )
         self.gravitino_client.create_catalog(
-            ident=self.catalog_ident,
+            name=self.catalog_name,
             catalog_type=Catalog.Type.FILESET,
             provider=self.catalog_provider,
             comment="",
@@ -83,7 +82,7 @@ class TestSchema(IntegrationTestEnv):
             self.gravitino_client = GravitinoClient(
                 uri="http://localhost:8090";, metalake_name=self.metalake_name
             )
-            catalog = 
self.gravitino_client.load_catalog(ident=self.catalog_ident)
+            catalog = 
self.gravitino_client.load_catalog(name=self.catalog_name)
             logger.info(
                 "Drop schema %s[%s]",
                 self.schema_ident,
@@ -97,18 +96,18 @@ class TestSchema(IntegrationTestEnv):
             logger.info(
                 "Drop catalog %s[%s]",
                 self.catalog_ident,
-                self.gravitino_client.drop_catalog(ident=self.catalog_ident),
+                self.gravitino_client.drop_catalog(name=self.catalog_name),
             )
             logger.info(
                 "Drop metalake %s[%s]",
-                self.metalake_ident,
-                self.gravitino_admin_client.drop_metalake(self.metalake_ident),
+                self.metalake_name,
+                self.gravitino_admin_client.drop_metalake(self.metalake_name),
             )
         except Exception as e:
             logger.error("Clean test data failed: %s", e)
 
     def create_schema(self) -> Schema:
-        catalog = self.gravitino_client.load_catalog(ident=self.catalog_ident)
+        catalog = self.gravitino_client.load_catalog(name=self.catalog_name)
         return catalog.as_schemas().create_schema(
             ident=self.schema_ident,
             comment=self.schema_comment,
@@ -124,14 +123,14 @@ class TestSchema(IntegrationTestEnv):
 
     def test_drop_schema(self):
         self.create_schema()
-        catalog = self.gravitino_client.load_catalog(ident=self.catalog_ident)
+        catalog = self.gravitino_client.load_catalog(name=self.catalog_name)
         self.assertTrue(
             catalog.as_schemas().drop_schema(ident=self.schema_ident, 
cascade=True)
         )
 
     def test_list_schema(self):
         self.create_schema()
-        catalog = self.gravitino_client.load_catalog(ident=self.catalog_ident)
+        catalog = self.gravitino_client.load_catalog(name=self.catalog_name)
         schema_list: List[NameIdentifier] = catalog.as_schemas().list_schemas(
             namespace=self.schema_ident.namespace()
         )
@@ -139,7 +138,7 @@ class TestSchema(IntegrationTestEnv):
 
     def test_load_schema(self):
         self.create_schema()
-        catalog = self.gravitino_client.load_catalog(ident=self.catalog_ident)
+        catalog = self.gravitino_client.load_catalog(name=self.catalog_name)
         schema = catalog.as_schemas().load_schema(ident=self.schema_ident)
         self.assertIsNotNone(schema)
         self.assertEqual(schema.name(), self.schema_name)
@@ -157,7 +156,7 @@ class TestSchema(IntegrationTestEnv):
                 self.schema_properties_key2, schema_propertie_new_value
             ),
         )
-        catalog = self.gravitino_client.load_catalog(ident=self.catalog_ident)
+        catalog = self.gravitino_client.load_catalog(name=self.catalog_name)
         schema_new = catalog.as_schemas().alter_schema(self.schema_ident, 
*changes)
         self.assertEqual(
             schema_new.properties().get(self.schema_properties_key2),
diff --git a/clients/client-python/tests/integration/test_simple_auth_client.py 
b/clients/client-python/tests/integration/test_simple_auth_client.py
index c13faa780..96a5bc903 100644
--- a/clients/client-python/tests/integration/test_simple_auth_client.py
+++ b/clients/client-python/tests/integration/test_simple_auth_client.py
@@ -43,7 +43,6 @@ class TestSimpleAuthClient(unittest.TestCase):
         fileset_properties_key2: fileset_properties_value2,
     }
 
-    metalake_ident: NameIdentifier = NameIdentifier.of(metalake_name)
     catalog_ident: NameIdentifier = NameIdentifier.of_catalog(
         metalake_name, catalog_name
     )
@@ -66,7 +65,7 @@ class TestSimpleAuthClient(unittest.TestCase):
 
     def clean_test_data(self):
         try:
-            catalog = 
self.gravitino_client.load_catalog(ident=self.catalog_ident)
+            catalog = 
self.gravitino_client.load_catalog(name=self.catalog_name)
             logger.info(
                 "Drop fileset %s[%s]",
                 self.fileset_ident,
@@ -80,19 +79,19 @@ class TestSimpleAuthClient(unittest.TestCase):
             logger.info(
                 "Drop catalog %s[%s]",
                 self.catalog_ident,
-                self.gravitino_client.drop_catalog(ident=self.catalog_ident),
+                self.gravitino_client.drop_catalog(name=self.catalog_name),
             )
             logger.info(
                 "Drop metalake %s[%s]",
-                self.metalake_ident,
-                self.gravitino_admin_client.drop_metalake(self.metalake_ident),
+                self.metalake_name,
+                self.gravitino_admin_client.drop_metalake(self.metalake_name),
             )
         except Exception as e:
             logger.error("Clean test data failed: %s", e)
 
     def init_test_env(self):
         self.gravitino_admin_client.create_metalake(
-            ident=self.metalake_ident, comment="", properties={}
+            self.metalake_name, comment="", properties={}
         )
         self.gravitino_client = GravitinoClient(
             uri="http://localhost:8090";,
@@ -100,7 +99,7 @@ class TestSimpleAuthClient(unittest.TestCase):
             auth_data_provider=SimpleAuthProvider(),
         )
         catalog = self.gravitino_client.create_catalog(
-            ident=self.catalog_ident,
+            name=self.catalog_name,
             catalog_type=Catalog.Type.FILESET,
             provider=self.catalog_provider,
             comment="",
@@ -118,21 +117,19 @@ class TestSimpleAuthClient(unittest.TestCase):
         )
 
     def test_metalake_creator(self):
-        metalake = self.gravitino_admin_client.load_metalake(
-            NameIdentifier.of_metalake(self.metalake_ident.name())
-        )
+        metalake = 
self.gravitino_admin_client.load_metalake(self.metalake_name)
         self.assertEqual(metalake.audit_info().creator(), self.creator)
 
     def test_catalog_creator(self):
-        catalog = self.gravitino_client.load_catalog(self.catalog_ident)
+        catalog = self.gravitino_client.load_catalog(self.catalog_name)
         self.assertEqual(catalog.audit_info().creator(), self.creator)
 
     def test_schema_creator(self):
-        catalog = self.gravitino_client.load_catalog(self.catalog_ident)
+        catalog = self.gravitino_client.load_catalog(self.catalog_name)
         schema = catalog.as_schemas().load_schema(self.schema_ident)
         self.assertEqual(schema.audit_info().creator(), self.creator)
 
     def test_fileset_creator(self):
-        catalog = self.gravitino_client.load_catalog(self.catalog_ident)
+        catalog = self.gravitino_client.load_catalog(self.catalog_name)
         fileset = catalog.as_fileset_catalog().load_fileset(self.fileset_ident)
         self.assertEqual(fileset.audit_info().creator(), self.creator)


Reply via email to