]> git.ipfire.org Git - pbs.git/commitdiff
systemd: Add unit files for hub
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 4 Jan 2019 12:41:26 +0000 (12:41 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 4 Jan 2019 12:41:26 +0000 (12:41 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
.gitignore
Makefile.am
src/hub/__init__.py
src/scripts/pakfire-hub
src/systemd/pakfire-hub-1.service.in [new file with mode: 0644]
src/systemd/pakfire-hub-2.service.in [new file with mode: 0644]

index 336eb2319d33760c8b2399a06156b38e53b903c3..c4a1742613a72b0f5174701d4cd7edb993d505af 100644 (file)
@@ -5,6 +5,7 @@
 /missing
 /src/buildservice/constants.py
 /src/buildservice/__version__.py
+/src/systemd/*.service
 /tmp
 /.vscode
 *.py[co]
index 912f5a0b916031adb9c3417a5c89c14e6807aafc..f453fa147968804b61cd43f33612af20cdbb0ff5 100644 (file)
@@ -418,7 +418,8 @@ docker: Dockerfile
 
 if HAVE_SYSTEMD
 systemdsystemunit_DATA = \
-       # TODO
+       src/systemd/pakfire-hub-1.service \
+       src/systemd/pakfire-hub-2.service
 
 CLEANFILES += \
         $(systemdsystemunit_DATA)
@@ -428,7 +429,8 @@ INSTALL_DIRS += \
 endif
 
 EXTRA_DIST += \
-       # TODO
+       src/systemd/pakfire-hub-1.service.in \
+       src/systemd/pakfire-hub-2.service.in
 
 dist_database_DATA = \
        src/database.sql
index 360349d0c113406a0b10707fd05ec17b0f2411b5..d8fe3888454a72b98bc753b96d156a66e5ad06a2 100644 (file)
@@ -1,28 +1,13 @@
 #!/usr/bin/python
 
 import logging
-import os.path
-import tornado.httpserver
-import tornado.locale
-import tornado.options
 import tornado.web
 
 from .. import Backend
-from ..decorators import *
-
 from . import handlers
 
-# Read command line
-tornado.options.define("debug", default=False, help="Run in debug mode", type=bool)
-tornado.options.parse_command_line()
-
 class Application(tornado.web.Application):
-       def __init__(self):
-               settings = dict(
-                       debug = tornado.options.options.debug,
-                       gzip  = True,
-               )
-
+       def __init__(self, **settings):
                tornado.web.Application.__init__(self, [
                        # Redirect strayed users.
                        #(r"/", handlers.RedirectHandler),
@@ -62,41 +47,7 @@ class Application(tornado.web.Application):
                        (r"/uploads/(.*)/destroy", handlers.UploadsDestroyHandler),
                ], **settings)
 
-               logging.info("Successfully initialied application")
-
-       @lazy_property
-       def backend(self):
-               return Backend()
-
-       def __del__(self):
-               logging.info("Shutting down application")
-
-       @property
-       def ioloop(self):
-               return tornado.ioloop.IOLoop.instance()
+               # Launch backend
+               self.backend = Backend()
 
-       def shutdown(self, *args):
-               logging.debug("Caught shutdown signal")
-               self.ioloop.stop()
-
-       def run(self, port=81):
-               logging.debug("Going to background")
-
-               http_server = tornado.httpserver.HTTPServer(self, xheaders=True,
-                       max_body_size=1 * (1024 ** 3))
-
-               # If we are not running in debug mode, we can actually run multiple
-               # frontends to get best performance out of our service.
-               if not self.settings["debug"]:
-                       http_server.bind(port)
-                       http_server.start(num_processes=4)
-               else:
-                       http_server.listen(port)
-
-               # All requests should be done after 30 seconds or they will be killed.
-               self.ioloop.set_blocking_log_threshold(30)
-
-               self.ioloop.start()
-
-       def reload(self):
-               logging.debug("Caught reload signal")
+               logging.info("Successfully initialied application")
index 6390a895b816dc2bd5b19b10408d8245af757462..4845a006bcbad1269ec114e593535a00e2e67bc2 100644 (file)
@@ -1,6 +1,21 @@
 #!/usr/bin/python
 
+import tornado.ioloop
+import tornado.options
+
 import pakfire.buildservice.hub
 
-app = pakfire.buildservice.hub.Application()
-app.run()
\ No newline at end of file
+tornado.options.define("debug", type=bool, default=False, help="Enable debug mode")
+tornado.options.define("port", type=int, default=8000, help="Port to listen on")
+
+def run():
+       tornado.options.parse_command_line()
+
+       # Initialise application
+       app = pakfire.buildservice.hub.Application(debug=tornado.options.options.debug)
+       app.listen(tornado.options.options.port, xheaders=True)
+
+       # Launch IOLoop
+       tornado.ioloop.IOLoop.current().start()
+
+run()
diff --git a/src/systemd/pakfire-hub-1.service.in b/src/systemd/pakfire-hub-1.service.in
new file mode 100644 (file)
index 0000000..c767f21
--- /dev/null
@@ -0,0 +1,10 @@
+[Unit]
+Description=Pakfire Hub #1
+After=network.target
+
+[Service]
+ExecStart=@bindir@/pakfire-hub --port=8001
+User=pakfire
+
+[Install]
+WantedBy=multi-user.target
diff --git a/src/systemd/pakfire-hub-2.service.in b/src/systemd/pakfire-hub-2.service.in
new file mode 100644 (file)
index 0000000..b9222b6
--- /dev/null
@@ -0,0 +1,10 @@
+[Unit]
+Description=Pakfire Hub #1
+After=network.target
+
+[Service]
+ExecStart=@bindir@/pakfire-hub --port=8002
+User=pakfire
+
+[Install]
+WantedBy=multi-user.target