From e4e8f7b49af672242e02a9732745e76bd4d030bc Mon Sep 17 00:00:00 2001
From: Art Lukyanchyk <artiom.lukyanchyk@hs-hannover.de>
Date: Thu, 26 Oct 2017 17:26:10 +0200
Subject: [PATCH] Add config for SSL and broker port. Not sure whether SSL
 works though.

---
 pikatasks/settings.py | 12 +++++++++++-
 pikatasks/utils.py    | 10 ++++++++--
 2 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/pikatasks/settings.py b/pikatasks/settings.py
index 1b6c58c..c8fb803 100644
--- a/pikatasks/settings.py
+++ b/pikatasks/settings.py
@@ -11,7 +11,8 @@ from datetime import timedelta
 
 
 # stuff you want to change:
-BROKER = "localhost"
+BROKER_HOST = "localhost"
+BROKER_PORT = "5672"
 VIRTUAL_HOST = "vhost"
 USERNAME = "user"
 PASSWORD = "password"
@@ -20,6 +21,15 @@ CLIENT_EXCHANGE_NAME = ""  # empty string -> amq.default exchange
 
 WORKER_TASK_PROCESSES = 10  # this many processes will be executing tasks
 
+SSL_ENABLED = True
+SSL_CONF = {
+    # # See ssl.wrap_socket() documentation: https://docs.python.org/3.6/library/ssl.html#ssl.wrap_socket
+    # "keyfile": "/foo/client/key.pem",
+    # "certfile": "/foo/client/cert.pem",
+    # "ca_certs": "/foo/ca/cacert.pem",
+    # "ssl_version": ssl.PROTOCOL_TLSv1_2,
+    # "cert_reqs": ssl.CERT_NONE,
+}
 
 # stuff you might want to change sometimes:
 RPC_TIMEOUT = timedelta(seconds=10)  # affects client behaviour and message TTL
diff --git a/pikatasks/utils.py b/pikatasks/utils.py
index 82fb270..cacf231 100644
--- a/pikatasks/utils.py
+++ b/pikatasks/utils.py
@@ -17,10 +17,16 @@ def deserialize(binary):
 
 def get_pika_connection_parameters():
     return pika.ConnectionParameters(
-            host=settings.BROKER,
+            host=settings.BROKER_HOST,
+            port=int(settings.BROKER_PORT),
             virtual_host=settings.VIRTUAL_HOST,
-            credentials=pika.PlainCredentials(username=settings.USERNAME, password=settings.PASSWORD),
+            credentials=pika.PlainCredentials(
+                username=settings.USERNAME,
+                password=settings.PASSWORD
+            ),
             blocked_connection_timeout=settings.BLOCKED_CONNECTION_TIMEOUT.total_seconds(),  # TODO: causes a warning when closing connections
+            ssl=settings.SSL_ENABLED,
+            ssl_options=settings.SSL_CONF,
         )
 
 
-- 
GitLab