[Kimchi-devel] [PATCH] [Wok] Add system arch to /config API

Aline Manera alinefm at linux.vnet.ibm.com
Tue Apr 25 19:06:19 UTC 2017


It may be useful when UI differs depending on system arch.

It is part of solution to remove Ginger Base dependency from Kimchi.

Signed-off-by: Aline Manera <alinefm at linux.vnet.ibm.com>
---
 docs/API/config.md         | 2 ++
 src/wok/model/config.py    | 4 ++++
 tests/test_api.py          | 2 +-
 tests/test_config_model.py | 2 +-
 tests/test_server_root.py  | 6 +++---
 5 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/docs/API/config.md b/docs/API/config.md
index d1d1007..b810f2a 100644
--- a/docs/API/config.md
+++ b/docs/API/config.md
@@ -12,6 +12,8 @@ Contains information about the application environment and configuration.
     * proxy_port: SSL port to list on
     * websockets_port: Port for websocket proxy to listen on
     * auth: Authentication method used to log in to Wok
+    * server_root: Wok root API path
+    * arch: System architecture
     * version: Wok version
 * **POST**: *See Task Actions*
 
diff --git a/src/wok/model/config.py b/src/wok/model/config.py
index b69f2dd..54aaf54 100644
--- a/src/wok/model/config.py
+++ b/src/wok/model/config.py
@@ -18,12 +18,15 @@
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
 
 import cherrypy
+import platform
 import time
 
 from wok.config import config, get_version
 from wok.model.notifications import add_notification
 from wok.utils import wok_log
 
+ARCH = platform.machine()
+
 
 class ConfigModel(object):
     def __init__(self, **kargs):
@@ -34,6 +37,7 @@ class ConfigModel(object):
                 'websockets_port': config.get('server', 'websockets_port'),
                 'auth': config.get('authentication', 'method'),
                 'server_root': config.get('server', 'server_root'),
+                'arch': ARCH,
                 'version': get_version()}
 
     def reload(self, name):
diff --git a/tests/test_api.py b/tests/test_api.py
index 6fbee75..4e2e413 100644
--- a/tests/test_api.py
+++ b/tests/test_api.py
@@ -52,7 +52,7 @@ class APITests(unittest.TestCase):
     def test_config(self):
         resp = self.request('/config').read()
         conf = json.loads(resp)
-        keys = ["auth", "proxy_port", "websockets_port", "version",
+        keys = ["arch", "auth", "proxy_port", "websockets_port", "version",
                 "server_root"]
         self.assertEquals(sorted(keys), sorted(conf.keys()))
 
diff --git a/tests/test_config_model.py b/tests/test_config_model.py
index f8b0848..df2b058 100644
--- a/tests/test_config_model.py
+++ b/tests/test_config_model.py
@@ -30,7 +30,7 @@ class ConfigModelTests(unittest.TestCase):
         config = inst.config_lookup('')
         self.assertItemsEqual(
             ['proxy_port', 'websockets_port', 'auth',
-             'server_root', 'version'],
+             'server_root', 'arch', 'version'],
             config.keys()
         )
 
diff --git a/tests/test_server_root.py b/tests/test_server_root.py
index e95a13b..89f34d3 100644
--- a/tests/test_server_root.py
+++ b/tests/test_server_root.py
@@ -1,7 +1,7 @@
 #
 # Project Wok
 #
-# Copyright IBM Corp, 2016
+# Copyright IBM Corp, 2016-2017
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -49,7 +49,7 @@ class ServerRootTests(unittest.TestCase):
         # check if server_root in config is the same used to start server
         resp = request(server_root + '/config').read()
         conf = json.loads(resp)
-        self.assertEquals(len(conf), 5)
+        self.assertEquals(len(conf), 6)
 
     def test_development_env(self):
         """
@@ -61,4 +61,4 @@ class ServerRootTests(unittest.TestCase):
         # check if server_root in config is the same used to start server
         resp = request(server_root + '/config').read()
         conf = json.loads(resp)
-        self.assertEquals(len(conf), 5)
+        self.assertEquals(len(conf), 6)
-- 
2.9.3



More information about the Kimchi-devel mailing list