diff options
-rw-r--r-- | service/pixelated/config/app_factory.py | 4 | ||||
-rw-r--r-- | service/pixelated/config/args.py | 2 | ||||
-rw-r--r-- | service/pixelated/runserver.py | 22 | ||||
-rw-r--r-- | service/test/unit/runserver_test.py | 8 |
4 files changed, 15 insertions, 21 deletions
diff --git a/service/pixelated/config/app_factory.py b/service/pixelated/config/app_factory.py index bbc29527..c479a913 100644 --- a/service/pixelated/config/app_factory.py +++ b/service/pixelated/config/app_factory.py @@ -86,8 +86,8 @@ def init_leap_session(app): except ConnectionError, error: print("Can't connect to the requested provider") sys.exit(1) - except LeapAuthException: - print("Couldn't authenticate with the credentials provided") + except LeapAuthException, e: + print("Couldn't authenticate with the credentials provided %s" % e.message) sys.exit(1) return leap_session diff --git a/service/pixelated/config/args.py b/service/pixelated/config/args.py index 9b75a04b..6b77f341 100644 --- a/service/pixelated/config/args.py +++ b/service/pixelated/config/args.py @@ -20,7 +20,7 @@ import argparse def parse(): parser = argparse.ArgumentParser(description='Pixelated user agent.') parser.add_argument('--debug', action='store_true', help='DEBUG mode.') - parser.add_argument('--dispatcher', action='store_true', help='run in organization mode, the credentials will be received from the dispatcher this way') + parser.add_argument('--dispatcher', help='run in organization mode, the credentials will be read from specified file', metavar='file') parser.add_argument('--host', default='127.0.0.1', help='the host to run the user agent on') parser.add_argument('--port', type=int, default=3333, help='the port to run the user agent on') parser.add_argument('-c', '--config', metavar='configfile', default=None, help='use specified file for credentials (for test purposes only)') diff --git a/service/pixelated/runserver.py b/service/pixelated/runserver.py index 51c8d40a..832008ad 100644 --- a/service/pixelated/runserver.py +++ b/service/pixelated/runserver.py @@ -17,7 +17,7 @@ import os import sys import logging - +import json from klein import Klein klein_app = Klein() @@ -35,7 +35,6 @@ import pixelated.support.ext_sqlcipher # monkey patch for sqlcipher in debian app = Klein() app.config = {} -credentials_pipe = os.path.join('/', 'data', 'credentials-fifo') def setup(): @@ -46,10 +45,10 @@ def setup(): register(*args.register[::-1]) else: if args.dispatcher: - provider, user, password = fetch_credentials_from_dispatcher() - app.config['LEAP_SERVER_NAME'] = provider - app.config['LEAP_USERNAME'] = user - app.config['LEAP_PASSWORD'] = password + config = fetch_credentials_from_dispatcher(args.dispatcher) + app.config['LEAP_SERVER_NAME'] = config['leap_provider_hostname'] + app.config['LEAP_USERNAME'] = config['user'] + app.config['LEAP_PASSWORD'] = config['password'] else: configuration_setup(args.config) start_services() @@ -62,15 +61,12 @@ def register(username, server_name): print('User already exists') -def fetch_credentials_from_dispatcher(): - if not os.path.exists(credentials_pipe): +def fetch_credentials_from_dispatcher(filename): + if not os.path.exists(filename): print('The credentials pipe doesn\'t exist') sys.exit(1) - with open(credentials_pipe, 'r') as cred_file: - provider = cred_file.read() - username = cred_file.read() - password = cred_file.read() - return provider, username, password + with open(filename, 'r') as fifo: + return json.loads(fifo.read()) def setup_debugger(enabled): diff --git a/service/test/unit/runserver_test.py b/service/test/unit/runserver_test.py index 4a9bca6f..e3cd8439 100644 --- a/service/test/unit/runserver_test.py +++ b/service/test/unit/runserver_test.py @@ -18,6 +18,7 @@ import unittest import sys import os import thread +import json import pixelated.runserver from mockito import * @@ -51,12 +52,9 @@ class RunserverTest(unittest.TestCase): os.remove(fifo_path) test_fifo = os.mkfifo('/tmp/credentials-pipe') thread.start_new_thread(self.spin_up_fifo, (fifo_path,)) - sys.argv = ['tmp/does_not_exist', '--dispatcher'] - pixelated.runserver.credentials_pipe = fifo_path + sys.argv = ['tmp/does_not_exist', '--dispatcher', fifo_path] pixelated.runserver.setup() def spin_up_fifo(self, test_fifo): with open(test_fifo, 'w') as fifo: - fifo.write('test_provider') - fifo.write('test_user') - fifo.write('test_password') + fifo.write(json.dumps({'leap_provider_hostname': 'test_provider', 'user': 'test_user', 'password': 'test_password'})) |