Source code for gpp_client.director
"""
Module providing the ``GPPDirector`` class for high-level access to service-specific directors.
"""
__all__ = ["GPPDirector"]
import logging
from gpp_client.client import GPPClient
from gpp_client.directors import GOATSDirector, SchedulerDirector
logger = logging.getLogger(__name__)
[docs]
class GPPDirector:
"""
Interface to access service-specific directors in the GPP client.
The ``GPPDirector`` class provides higher-level access to composed operations that
span multiple GraphQL managers. Each attribute corresponds to a domain-specific
director that encapsulates orchestration logic for that service.
Parameters
----------
client : GPPClient
Pre-configured client used to perform raw GraphQL operations.
Attributes
----------
scheduler : SchedulerDirector
High-level director for Scheduler-domain workflows.
goats : GOATSDirector
High-level director for GOATS-domain workflows.
"""
def __init__(self, client: GPPClient):
logger.debug("Initializing GPPDirector")
self._init_directors(client)
def _init_directors(self, client: GPPClient):
"""
Initialize all service-specific directors with the provided client.
"""
self.scheduler = SchedulerDirector(client)
self.goats = GOATSDirector(client)