Skip to content

Commit 3a9c5a4

Browse files
committed
chore(controller): mount should not release
1 parent 9cfc4ec commit 3a9c5a4

3 files changed

Lines changed: 12 additions & 9 deletions

File tree

rootfs/api/models/app.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ def restart(self, **kwargs): # noqa
270270
def scale(self, user, structure):
271271
err_msg = None
272272
release = Release.latest(self)
273-
if (PTYPE_RUN in structure or release.build is None):
273+
if (PTYPE_RUN in structure or release is None or release.build is None):
274274
if PTYPE_RUN in structure:
275275
err_msg = 'Cannot set scale for reserved types, procfile type is: run'
276276
else:
@@ -283,7 +283,7 @@ def scale(self, user, structure):
283283
def pipeline(self, release, ptypes, force_deploy=False):
284284
prefix = f"[pipeline] release {release.version_name}"
285285
try:
286-
if release.build is not None:
286+
if release is not None and release.build is not None:
287287
if release.build.dryccfile:
288288
for run in release.get_runners(ptypes):
289289
self.log(f"{prefix} starts running pipeline.run {run['image']}")
@@ -323,7 +323,7 @@ def deploy(self, release, ptypes=None, force_deploy=False, rollback_on_failure=T
323323
324324
force_deploy can be used when a deployment is broken, such as for Rollback
325325
"""
326-
if release.build is None:
326+
if release is None or release.build is None:
327327
raise DryccException('No build associated with this release')
328328
# use create to make sure minimum resources are created
329329
self.create()
@@ -352,7 +352,7 @@ def mount(self, user, volume, structure=None):
352352
if release is None or release.build is None:
353353
raise DryccException('No build associated with this release')
354354
app_settings = self.appsettings_set.latest()
355-
self._mount(user, volume, release, app_settings, structure=structure)
355+
self._mount(user, volume, app_settings, structure=structure)
356356

357357
def clean(self, release=None, ptypes=None):
358358
release = release if release else self.release_set.latest()
@@ -741,11 +741,14 @@ def _clean_app_logs(self):
741741
err = 'Error deleting existing application logs: {}'.format(e)
742742
self.log(err, logging.WARNING)
743743

744-
def _mount(self, user, volume, release, app_settings, structure=None):
744+
def _mount(self, user, volume, app_settings, structure=None):
745745
volumes = Volume.objects.filter(app=self)
746746
tasks = []
747747
for scale_type, replicas in structure.items() if structure else self.structure.items():
748748
if scale_type != PTYPE_RUN:
749+
release = self.release_set.filter(
750+
deployed_ptypes__contains=scale_type,
751+
failed=False).latest()
749752
replicas = self.structure.get(scale_type, 0)
750753
scale_type_volumes = [
751754
volume for volume in volumes if scale_type in volume.path.keys()]
@@ -810,7 +813,7 @@ def _deploy(self, deploys, ptypes, prev_release,
810813
except KubeException as e:
811814
# Don't rollback if the previous release doesn't have a build which means
812815
# this is the first build and all the previous releases are just config changes.
813-
if (rollback_on_failure and prev_release.build is not None):
816+
if rollback_on_failure and prev_release is not None and prev_release.build is not None: # noqa
814817
err = 'There was a problem deploying {}. Rolling back to release {}.'.format(
815818
release.version_name, prev_release.version_name)
816819
# This goes in the log before the rollback starts
@@ -1098,7 +1101,7 @@ def _build_env_vars(self, release, ptype):
10981101
Build a dict of env vars, setting default vars based on app type
10991102
and then combining with the user set ones
11001103
"""
1101-
if release.build is None:
1104+
if release is None or release.build is None:
11021105
raise DryccException('No build associated with this release to run this command')
11031106

11041107
# mix in default environment information drycc may require

rootfs/api/settings/production.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@
189189
'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
190190
},
191191
'simple': {
192-
'format': '%(levelname)s %(message)s'
192+
'format': '%(levelname)s %(asctime)s %(message)s'
193193
},
194194
},
195195
'filters': {

rootfs/api/views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,7 @@ def run(self, request, **kwargs):
322322
if not command:
323323
raise DryccException('command is a required field, or it can be defined in Procfile')
324324
release = models.release.Release.latest(app)
325-
if release.build is None:
325+
if release is None or release.build is None:
326326
raise DryccException('no build available, please deploy a release')
327327
volumes = request.data.get('volumes', None)
328328
if volumes:

0 commit comments

Comments
 (0)