Skip to content

Commit 45f0ec5

Browse files
committed
feat(rootfs/api): restore k8s services from db and tune list op.
load services from db and re-create them in k8s, fine tune list services response
1 parent 1f51b1d commit 45f0ec5

3 files changed

Lines changed: 7 additions & 13 deletions

File tree

rootfs/api/management/commands/load_db_state_to_k8s.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from django.core.management.base import BaseCommand
22
from django.shortcuts import get_object_or_404
33

4-
from api.models import Key, App, Domain, Certificate
4+
from api.models import Key, App, Domain, Certificate, Service
55
from api.exceptions import DeisException, AlreadyExists
66

77

@@ -52,7 +52,7 @@ def save_apps(self):
5252
except DeisException as error:
5353
print('ERROR: Problem saving to model {} for {}'
5454
'due to {}'.format(str(App.__name__), str(app), str(error)))
55-
for model in (Key, Domain, Certificate):
55+
for model in (Key, Domain, Certificate, Service):
5656
for obj in model.objects.all():
5757
try:
5858
obj.save()

rootfs/api/models/service.py

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,9 @@ def create(self, *args, **kwargs): # noqa
4141
self._update_service(namespace, self.procfile_type, routable, annotations)
4242

4343
def save(self, *args, **kwargs):
44-
namespace = self.app.id
45-
svc_name = "{}-{}".format(self.id, self.procfile_type)
46-
self.log('updating Service: {}'.format(svc_name), level=logging.DEBUG)
47-
annotations = self._gather_settings()
48-
routable = annotations.pop('routable')
49-
self._update_service(namespace, self.procfile_type, routable, annotations)
50-
51-
# Save to DB
52-
return super(Service, self).save(*args, **kwargs)
44+
service = super(Service, self).save(*args, **kwargs)
45+
self.create()
46+
return service
5347

5448
def delete(self, *args, **kwargs):
5549
namespace = self.app.id
@@ -68,7 +62,7 @@ def delete(self, *args, **kwargs):
6862
def _gather_settings(self):
6963
app_settings = self.app.appsettings_set.latest()
7064
return {
71-
'domains': "{}-{}".format(self.app.id, self.procfile_type)
65+
'domains': "{}-{}".format(self.app.id, self.procfile_type),
7266
'maintenance': app_settings.maintenance,
7367
'routable': app_settings.routable,
7468
'proxyDomain': self.app.id,

rootfs/api/views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -379,7 +379,7 @@ class ServiceViewSet(AppResourceViewSet):
379379
def list(self, *args, **kwargs):
380380
services = self.get_app().service_set.all()
381381
data = [ obj.as_dict() for obj in services ]
382-
return Response(data, status=status.HTTP_200_OK)
382+
return Response({"services": data}, status=status.HTTP_200_OK)
383383

384384
def create_or_update(self, request, **kwargs):
385385
pft = self.get_serializer().validate_procfile_type(request.data.get('procfile_type'))

0 commit comments

Comments
 (0)