diff --git a/doc/changes/unreleased.md b/doc/changes/unreleased.md index 034a971..6f8521a 100644 --- a/doc/changes/unreleased.md +++ b/doc/changes/unreleased.md @@ -10,6 +10,7 @@ * #55 Added publicly callable function finding the database id from its name. * #60: Added download of `openapi.json` when generating python client +* #64: Add an optional idle time parameter to the database factory. ## Documentation diff --git a/exasol/saas/client/api_access.py b/exasol/saas/client/api_access.py index 048fee4..917d5e9 100644 --- a/exasol/saas/client/api_access.py +++ b/exasol/saas/client/api_access.py @@ -179,16 +179,18 @@ def create_database( name: str, cluster_size: str = "XS", region: str = "eu-central-1", + idle_time: timedelta | None = None ) -> Optional[openapi.models.Database]: def minutes(x: timedelta) -> int: return x.seconds // 60 + idle_time = idle_time or Limits.AUTOSTOP_MIN_IDLE_TIME cluster_spec = openapi.models.CreateDatabaseInitialCluster( name="my-cluster", size=cluster_size, auto_stop=openapi.models.AutoStop( enabled=True, - idle_time=minutes(Limits.AUTOSTOP_MIN_IDLE_TIME), + idle_time=minutes(idle_time), ), ) LOG.info(f"Creating database {name}") @@ -225,11 +227,12 @@ def database( name: str, keep: bool = False, ignore_delete_failure: bool = False, + idle_time: timedelta | None = None ): db = None start = datetime.now() try: - db = self.create_database(name) + db = self.create_database(name, idle_time=idle_time) yield db wait_for_delete_clearance(start) finally: