Skip to content

Commit b6fb2ad

Browse files
committed
feat(rootfs/api): support logging.
add extra logs
1 parent 45f0ec5 commit b6fb2ad

1 file changed

Lines changed: 21 additions & 3 deletions

File tree

rootfs/api/models/service.py

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
1+
import logging
2+
13
from django.db import models
24
from django.conf import settings
35

4-
from api.models import AuditedModel
6+
from api.models import AuditedModel, UuidAuditedModel, AlreadyExists, DeisException, ServiceUnavailable
7+
from scheduler import KubeException
8+
9+
logger = logging.getLogger(__name__)
510

611
class Service(AuditedModel):
712
owner = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT)
@@ -25,8 +30,9 @@ def as_dict(self):
2530

2631
def create(self, *args, **kwargs): # noqa
2732
# create required minimum service in k8s for the application
33+
2834
namespace = self.app.id
29-
svc_name = "{}-{}".format(self.id, self.procfile_type)
35+
svc_name = "{}-{}".format(namespace, self.procfile_type)
3036
self.log('creating Service: {}'.format(svc_name), level=logging.DEBUG)
3137
try:
3238
try:
@@ -42,12 +48,14 @@ def create(self, *args, **kwargs): # noqa
4248

4349
def save(self, *args, **kwargs):
4450
service = super(Service, self).save(*args, **kwargs)
51+
4552
self.create()
53+
4654
return service
4755

4856
def delete(self, *args, **kwargs):
4957
namespace = self.app.id
50-
svc_name = "{}-{}".format(self.id, self.procfile_type)
58+
svc_name = "{}-{}".format(namespace, self.procfile_type)
5159
self.log('deleting Service: {}'.format(svc_name), level=logging.DEBUG)
5260
try:
5361
self._scheduler.svc.delete(namespace, svc_name)
@@ -59,6 +67,16 @@ def delete(self, *args, **kwargs):
5967
# Delete from DB
6068
return super(Service, self).delete(*args, **kwargs)
6169

70+
def log(self, message, level=logging.INFO):
71+
"""Logs a message in the context of this service.
72+
73+
This prefixes log messages with an application "tag" that the customized deis-logspout will
74+
be on the lookout for. When it's seen, the message-- usually an application event of some
75+
sort like releasing or scaling, will be considered as "belonging" to the application
76+
instead of the controller and will be handled accordingly.
77+
"""
78+
logger.log(level, "[{}]: {}".format(self.id, message))
79+
6280
def _gather_settings(self):
6381
app_settings = self.app.appsettings_set.latest()
6482
return {

0 commit comments

Comments
 (0)