|
8 | 8 |
|
9 | 9 | from django.contrib.auth.models import AnonymousUser |
10 | 10 | from django.contrib.auth.models import User |
11 | | -from django.db import transaction |
12 | 11 | from django.utils import timezone |
13 | 12 | from guardian.shortcuts import assign_perm |
14 | 13 | from guardian.shortcuts import get_objects_for_user |
|
23 | 22 | from rest_framework.response import Response |
24 | 23 |
|
25 | 24 | from api import models, serializers |
26 | | -from registry import publish_release |
27 | 25 | from .exceptions import UserRegistrationException |
28 | 26 |
|
29 | 27 | from django.conf import settings |
@@ -421,20 +419,16 @@ def rollback(self, request, *args, **kwargs): |
421 | 419 | config vars of a previous release. |
422 | 420 | """ |
423 | 421 | app = get_object_or_404(models.App, id=self.kwargs['id']) |
424 | | - last_version = app.release_set.latest().version |
| 422 | + release = app.release_set.latest() |
| 423 | + last_version = release.version |
425 | 424 | version = int(request.DATA.get('version', last_version - 1)) |
426 | 425 | if version < 1: |
427 | 426 | return Response(status=status.HTTP_404_NOT_FOUND) |
| 427 | + summary = "{} rolled back to v{}".format(request.user, version) |
428 | 428 | prev = app.release_set.get(version=version) |
429 | | - with transaction.atomic(): |
430 | | - summary = "{} rolled back to v{}".format(request.user, version) |
431 | | - app.release_set.create(owner=request.user, version=last_version + 1, |
432 | | - build=prev.build, config=prev.config, |
433 | | - summary=summary) |
434 | | - # publish release to registry as new docker image |
435 | | - repository_path = "{}/{}".format(app.owner.username, app.id) |
436 | | - tag = 'v{}'.format(last_version + 1) |
437 | | - publish_release(repository_path, prev.config.values, tag) |
| 429 | + new_release = release.new( |
| 430 | + request.user, build=prev.build, config=prev.config, summary=summary) |
| 431 | + app.deploy(new_release) |
438 | 432 | msg = "Rolled back to v{}".format(version) |
439 | 433 | return Response(msg, status=status.HTTP_201_CREATED) |
440 | 434 |
|
|
0 commit comments