From c00f13de2c4c9a578e4596c49b32c83940534a22 Mon Sep 17 00:00:00 2001 From: richard-dds Date: Mon, 9 Sep 2019 16:07:07 -0400 Subject: [PATCH] Add query for getting environments pending baseline creation --- atst/domain/environments.py | 10 +++++++++ tests/domain/test_environments.py | 37 +++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) 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 + )