summaryrefslogtreecommitdiff
path: root/src/mailman/queue
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman/queue')
-rw-r--r--src/mailman/queue/docs/rest.txt23
-rw-r--r--src/mailman/queue/rest.py6
2 files changed, 29 insertions, 0 deletions
diff --git a/src/mailman/queue/docs/rest.txt b/src/mailman/queue/docs/rest.txt
new file mode 100644
index 000000000..62e61643f
--- /dev/null
+++ b/src/mailman/queue/docs/rest.txt
@@ -0,0 +1,23 @@
+REST server
+===========
+
+Mailman is controllable through an administrative RESTful HTTP server.
+
+ >>> from mailman.testing import helpers
+ >>> master = helpers.TestableMaster(helpers.wait_for_webservice)
+ >>> master.start('rest')
+
+The RESTful server can be used to access basic version information.
+
+ >>> dump_json('http://localhost:8001/3.0/system')
+ http_etag: "..."
+ mailman_version: GNU Mailman 3.0... (...)
+ python_version: ...
+ resource_type_link: https://localhost:8001/3.0/#system
+ self_link: https://localhost:8001/3.0/system
+
+
+Clean up
+--------
+
+ >>> master.stop()
diff --git a/src/mailman/queue/rest.py b/src/mailman/queue/rest.py
index 0728e6fbd..148622d2b 100644
--- a/src/mailman/queue/rest.py
+++ b/src/mailman/queue/rest.py
@@ -35,15 +35,21 @@ from mailman.queue import Runner
from mailman.rest.webservice import make_server
+log = logging.getLogger('mailman.http')
+
+
class RESTRunner(Runner):
def run(self):
+ log.info('Starting REST server')
try:
make_server().serve_forever()
except KeyboardInterrupt:
+ log.info('REST server interrupted')
sys.exit(signal.SIGTERM)
except select.error as (errcode, message):
if errcode == errno.EINTR:
+ log.info('REST server exiting')
sys.exit(signal.SIGTERM)
raise
except: