Skip to content

Commit 1a45aa1

Browse files
Matthew Fishercarmstrong
authored andcommitted
feat(controller): hook up domains to router
1 parent 388d094 commit 1a45aa1

2 files changed

Lines changed: 16 additions & 2 deletions

File tree

api/models.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,7 @@ def scale(self, **kwargs): # noqa
209209
if to_remove:
210210
subtasks.append(tasks.stop_containers.s(to_remove))
211211
group(*subtasks).apply_async().join()
212+
_publish_domains(app=str(self), domains=list(self.domain_set.all()))
212213
log_event(self, msg)
213214
return changed
214215

@@ -540,7 +541,7 @@ class Domain(AuditedModel):
540541
domain = models.TextField(blank=False, null=False, unique=True)
541542

542543
def __str__(self):
543-
return "{0} -> {1}".format(self.domain, self.app.id)
544+
return self.domain
544545

545546

546547
@python_2_unicode_compatible
@@ -562,6 +563,12 @@ def __str__(self):
562563
# define update/delete callbacks for synchronizing
563564
# models with the configuration management backend
564565

566+
def _publish_domains(**kwargs):
567+
app = kwargs['app']
568+
domains = kwargs['domains']
569+
_etcd_client.write(
570+
'/deis/domains/{}'.format(app),
571+
' '.join(str(i) for i in domains))
565572

566573
def _log_build_created(**kwargs):
567574
if kwargs.get('created'):

api/views.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -472,11 +472,18 @@ def create(self, request, *args, **kwargs):
472472
request.DATA['app'] = app
473473
return super(DomainViewSet, self).create(request, *args, **kwargs)
474474

475+
def post_save(self, domain, created=False):
476+
if created:
477+
release = domain.app.release_set.latest()
478+
self.release = release.new(self.request.user)
479+
domain.app.deploy(self.release)
480+
475481
def destroy(self, request, **kwargs):
476482
domain = self.model.objects.get(domain=self.kwargs['id'])
477483
domain.delete()
478484
release = domain.app.release_set.latest()
479-
release.new(request.user)
485+
self.release = release.new(self.request.user)
486+
domain.app.deploy(self.release)
480487
return Response(status=status.HTTP_204_NO_CONTENT)
481488

482489
def get_queryset(self, **kwargs):

0 commit comments

Comments
 (0)