Add initial meta-stx to support StarlingX build
[pti/rtp.git] / meta-stx / recipes-devtools / python / files / python-django-horizon / guni_config.py
1 import datetime
2 import fnmatch
3 import os
4 import resource
5 import subprocess
6 from django.conf import settings
7
8
9 errorlog = "/var/log/horizon/gunicorn.log"
10 capture_output = True
11
12 # maxrss ceiling in kbytes
13 MAXRSS_CEILING = 512000
14
15
16 def worker_abort(worker):
17     path = ("/proc/%s/fd") % os.getpid()
18     contents = os.listdir(path)
19     upload_dir = getattr(settings, 'FILE_UPLOAD_TEMP_DIR', '/tmp')
20     pattern = os.path.join(upload_dir, '*.upload')
21
22     for i in contents:
23         f = os.path.join(path, i)
24         if os.path.exists(f):
25             try:
26                 link = os.readlink(f)
27                 if fnmatch.fnmatch(link, pattern):
28                     worker.log.info(link)
29                     os.remove(link)
30             except OSError:
31                 pass
32
33
34 def when_ready(server):
35     subprocess.check_call(["/usr/bin/horizon-assets-compress"])
36
37
38 def post_worker_init(worker):
39     worker.nrq = 0
40     worker.restart = False
41
42
43 def pre_request(worker, req):
44     worker.nrq += 1
45     if worker.restart:
46         worker.nr = worker.max_requests - 1
47         maxrss = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss
48         msg = "%(date)s %(uri)s %(rss)u" % ({'date': datetime.datetime.now(),
49                                              'uri': getattr(req, "uri"),
50                                              'rss': maxrss})
51         worker.log.info(msg)
52
53
54 def post_request(worker, req, environ, resp):
55     worker.nrq -= 1
56     if not worker.restart:
57         maxrss = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss
58         if maxrss > MAXRSS_CEILING and worker.nrq == 0:
59             worker.restart = True