diff --git a/atst/domain/environments.py b/atst/domain/environments.py index 2d3bd4a8..b4bd2edd 100644 --- a/atst/domain/environments.py +++ b/atst/domain/environments.py @@ -129,3 +129,13 @@ class Environments(object): .filter(Environment.root_user_info == text("'null'")) ) return [environment_id for (environment_id,) in query.all()] + + @classmethod + def get_environments_pending_baseline_creation(cls, now) -> [str]: + query = ( + cls.base_provision_query(now) + .filter(Environment.cloud_id != None) + .filter(Environment.root_user_info != text("'null'")) + .filter(Environment.baseline_info == text("'null'")) + ) + return [environment_id for (environment_id,) in query.all()] diff --git a/tests/domain/test_environments.py b/tests/domain/test_environments.py index e7049d37..36624403 100644 --- a/tests/domain/test_environments.py +++ b/tests/domain/test_environments.py @@ -214,3 +214,40 @@ class TestGetEnvironmentsPendingAtatUserCreation(EnvQueryTest): assert ( len(Environments.get_environments_pending_atat_user_creation(self.NOW)) == 0 ) + + +class TestGetEnvironmentsPendingBaselineCreation(EnvQueryTest): + def test_with_provisioned_environment(self): + self.create_portfolio_with_clins( + [(self.YESTERDAY, self.TOMORROW)], + { + "cloud_id": uuid4().hex, + "root_user_info": {"foo": "bar"}, + "baseline_info": {"foo": "bar"}, + }, + ) + assert ( + len(Environments.get_environments_pending_baseline_creation(self.NOW)) == 0 + ) + + def test_with_unprovisioned_environment(self): + self.create_portfolio_with_clins( + [(self.YESTERDAY, self.TOMORROW)], + { + "cloud_id": uuid4().hex, + "root_user_info": {"foo": "bar"}, + "baseline_info": None, + }, + ) + assert ( + len(Environments.get_environments_pending_baseline_creation(self.NOW)) == 1 + ) + + def test_with_unprovisioned_expired_clins_environment(self): + self.create_portfolio_with_clins( + [(self.YESTERDAY, self.YESTERDAY)], + {"cloud_id": uuid4().hex, "root_user_info": {"foo": "bar"}}, + ) + assert ( + len(Environments.get_environments_pending_baseline_creation(self.NOW)) == 0 + )