Add query for environments pending creation

This commit is contained in:
richard-dds
2019-09-06 13:39:32 -04:00
parent e9bf806dc6
commit 4a5ca1cd27
2 changed files with 72 additions and 4 deletions

View File

@@ -6,6 +6,7 @@ from atst.models import EnvironmentJobFailure, EnvironmentRoleJobFailure
from atst.domain.csp.cloud import CloudProviderInterface, GeneralCSPException
from atst.domain.environments import Environments
from atst.domain.users import Users
from atst.models import Application, Portfolio, TaskOrder, CLIN, Environment
class RecordEnvironmentFailure(celery.Task):
@@ -117,3 +118,23 @@ def create_atat_admin_user(self, environment_id=None):
@celery.task(bind=True)
def create_environment_baseline(self, environment_id=None):
do_work(do_create_environment_baseline, self, app.csp.cloud, **kwargs)
def environments_to_create(now):
query = (
db.session.query(Environment.id)
.join(Application)
.join(Portfolio)
.join(TaskOrder)
.join(CLIN)
.filter(CLIN.start_date <= now)
.filter(CLIN.end_date > now)
.filter(Environment.cloud_id == None)
)
return [environment_id for (environment_id,) in query.all()]
@celery.task(bind=True)
def dispatch_create_environment(self):
for environment_id in environments_to_create(pendulum.now()):
create_environment.delay(environment_id=environment_id, atat_user_id="TODO")