Source code for provenaclient.modules.provena_client

'''
Created Date: Friday May 31st 2024 +1000
Author: Peter Baker
-----
Last Modified: Friday May 31st 2024 9:50:26 am +1000
Modified By: Peter Baker
-----
Description: The main Provena L3 client class which collects sub L2 clients and L3 clients.
-----
HISTORY:
Date      	By	Comments
----------	---	---------------------------------------------------------

18-06-2024 | Peter Baker | Cleaned up and added missing modules.
'''

from provenaclient.auth.manager import AuthManager
from provenaclient.utils.config import Config
from provenaclient.clients import *
from provenaclient.modules import *
from provenaclient.modules.module_helpers import *

# L3 interface.


[docs] class ProvenaClient(ModuleService): # L2 + L3 combinations # Data store _datastore_client: DatastoreClient datastore: Datastore # Search _search_client: SearchClient search: Search # Auth _auth_client: AuthClient auth_api: Auth # Registry _registry_client: RegistryClient registry: Registry # Prov _prov_client: ProvClient prov_api: Prov # Jobs _job_client: JobAPIClient job_api: JobService # ID service _id_client: IdServiceClient id_api: IDService def __init__(self, auth: AuthManager, config: Config) -> None: """ Build an instance of the Provena Client. Args: auth (AuthManager): The Auth implementation to use. See auth.implementations config (Config): The provena config which indicates deployment and other settings """ # Module service self._auth = auth self._config = config # (L2 clients) self._datastore_client = DatastoreClient(auth, config) self._search_client = SearchClient(auth, config) self._auth_client = AuthClient(auth, config) self._registry_client = RegistryClient(auth, config) self._prov_client = ProvClient(auth, config) self._job_client = JobAPIClient(auth,config) self._id_client = IdServiceClient(auth,config) self.datastore = Datastore( auth=auth, config=config, datastore_client=self._datastore_client, search_client=self._search_client ) self.search = Search( auth=auth, config=config, search_client=self._search_client ) self.auth_api = Auth( auth=auth, config=config, auth_client=self._auth_client ) self.registry = Registry( auth=auth, config=config, registry_client=self._registry_client ) self.prov_api = Prov( auth=auth, config=config, prov_client=self._prov_client ) self.job_api = JobService( auth=auth, config=config, job_api_client=self._job_client ) self.id_api = IDService( auth=auth, config=config, id_service_client=self._id_client )