Hook into cloud provider when creating an env/app

This commit is contained in:
Patrick Smith 2019-01-04 14:44:33 -05:00
parent 3dad43b1ee
commit 334babe5ff
2 changed files with 11 additions and 4 deletions

View File

@ -1,3 +1,4 @@
from flask import current_app as app
from sqlalchemy.orm.exc import NoResultFound
from atst.database import db
@ -15,15 +16,14 @@ class Environments(object):
@classmethod
def create(cls, project, name):
environment = Environment(project=project, name=name)
db.session.add(environment)
db.session.commit()
environment.cloud_id = app.csp.cloud.create_application(environment.name)
return environment
@classmethod
def create_many(cls, project, names):
environments = []
for name in names:
environment = Environment(project=project, name=name)
environment = Environments.create(project, name)
environments.append(environment)
db.session.add_all(environments)

View File

@ -2,7 +2,14 @@ from atst.domain.environments import Environments
from atst.domain.environment_roles import EnvironmentRoles
from atst.domain.workspace_roles import WorkspaceRoles
from tests.factories import UserFactory, WorkspaceFactory
from tests.factories import ProjectFactory, UserFactory, WorkspaceFactory
def test_create_environments():
project = ProjectFactory.create()
environments = Environments.create_many(project, ["Staging", "Production"])
for env in environments:
assert env.cloud_id is not None
def test_update_environment_roles():