Add query for getting environments pending atat user creation

This commit is contained in:
richard-dds
2019-09-09 16:00:08 -04:00
parent e3ea2d2fe5
commit 13861ad998
3 changed files with 71 additions and 9 deletions

View File

@@ -1,3 +1,4 @@
from sqlalchemy import text
from sqlalchemy.orm.exc import NoResultFound
from atst.database import db
@@ -104,8 +105,8 @@ class Environments(object):
return environment
@classmethod
def get_environments_pending_creation(cls, now) -> [str]:
query = (
def base_provision_query(cls, now):
return (
db.session.query(Environment.id)
.join(Application)
.join(Portfolio)
@@ -113,6 +114,18 @@ class Environments(object):
.join(CLIN)
.filter(CLIN.start_date <= now)
.filter(CLIN.end_date > now)
.filter(Environment.cloud_id == None)
)
@classmethod
def get_environments_pending_creation(cls, now) -> [str]:
query = cls.base_provision_query(now).filter(Environment.cloud_id == None)
return [environment_id for (environment_id,) in query.all()]
@classmethod
def get_environments_pending_atat_user_creation(cls, now) -> [str]:
query = (
cls.base_provision_query(now)
.filter(Environment.cloud_id != None)
.filter(Environment.root_user_info == text("'null'"))
)
return [environment_id for (environment_id,) in query.all()]

View File

@@ -126,3 +126,11 @@ def dispatch_create_environment(self):
pendulum.now()
):
create_environment.delay(environment_id=environment_id, atat_user_id="TODO")
@celery.task(bind=True)
def dispatch_create_atat_admin_user(self):
for environment_id in Environments.get_environments_pending_atat_user_creation(
pendulum.now()
):
create_atat_admin_user.delay(environment_id=environment_id, atat_user_id="TODO")