summaryrefslogtreecommitdiff
path: root/ick2/controllerapi.py
diff options
context:
space:
mode:
Diffstat (limited to 'ick2/controllerapi.py')
-rw-r--r--ick2/controllerapi.py19
1 files changed, 16 insertions, 3 deletions
diff --git a/ick2/controllerapi.py b/ick2/controllerapi.py
index fe28c29..074fa2e 100644
--- a/ick2/controllerapi.py
+++ b/ick2/controllerapi.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2017 Lars Wirzenius
+# Copyright (C) 2017-2018 Lars Wirzenius
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
@@ -20,6 +20,16 @@ class ControllerAPI:
def __init__(self, state):
self._state = state
+ self._apis = {}
+
+ def set_blob_service_url(self, url): # pragma: no cover
+ self.find_missing_route('/version')
+ api = self._apis.get('/version')
+ if api:
+ api.set_blob_service_url(url)
+ ick2.log.log(
+ 'info', msg_text='Set blob service url', url=url,
+ version=api.get_version())
def find_missing_route(self, missing_path): # pragma: no cover
apis = {
@@ -32,10 +42,13 @@ class ControllerAPI:
'/workers': ick2.WorkerAPI,
}
- routes = []
for path in apis:
+ if path not in self._apis:
+ self._apis[path] = apis[path](self._state)
+
+ routes = []
+ for path, api in self._apis.items():
self._state.load_resources(path[1:])
- api = apis[path](self._state)
routes.extend(api.get_routes(path))
ick2.log.log('info', msg_texg='Found routes', routes=routes)
return routes