From 10af098ebfcc500aef11ce9154028b8e20a0b046 Mon Sep 17 00:00:00 2001
From: Thierry Parmentelat
Date: Tue, 1 Oct 2013 13:17:45 +0200
Subject: [PATCH] manifold url can be configured in myslice.ini - instead of in
the git repo - so we can more quietly stash
---
manifold/manifoldapi.py | 2 +-
myslice/config.py | 40 ++++++++++++++++++++++++---------
portal/homeview.py | 2 +-
portal/templates/home-view.html | 2 +-
4 files changed, 33 insertions(+), 13 deletions(-)
diff --git a/manifold/manifoldapi.py b/manifold/manifoldapi.py
index 47cf4c98..3fa5f978 100644
--- a/manifold/manifoldapi.py
+++ b/manifold/manifoldapi.py
@@ -27,7 +27,7 @@ class ManifoldAPI:
self.trace = []
self.calls = {}
self.multicall = False
- self.url = config.manifold_url
+ self.url = config.manifold_url()
self.server = xmlrpclib.Server(self.url, verbose=False, allow_none=True)
def __repr__ (self): return "ManifoldAPI[%s]"%self.url
diff --git a/myslice/config.py b/myslice/config.py
index c0e171bf..9cf24072 100644
--- a/myslice/config.py
+++ b/myslice/config.py
@@ -1,18 +1,38 @@
+import os.path
+from ConfigParser import RawConfigParser
+from myslice.settings import ROOT
+
+# as this code suggests, you have the option to write myslice/myslice.ini
+# that looks like this
+#[manifold]
+#url = http://manifold.pl.sophia.inria.fr:7080/
+
class Config:
-# this version of unfold expects a backend that runs a new API
+ # the OpenLab-wide backend as managed by UPMC
+ # xxx production should probably use https of course
+ default_manifold_url = "http://test.myslice.info:7080/"
+ # the devel/unstable version runs on "http://dev.myslice.info:7080/"
+ # if you use a development backend running on this box, use "http://localhost:7080/"
+ # the INRIA setup is with "http://manifold.pl.sophia.inria.fr:7080/"
-# production should probably use https of course
+ _config_parser = None
+ # having grown tired of screwing up with git stashes
+ # taking away my local config, we now more properly use
+ # an external config file to override teh default
+ @staticmethod
+ def manifold_url ():
+ if Config._config_parser:
+ return Config._config_parser.get('manifold','url')
+ config = RawConfigParser ()
+ config.add_section('manifold')
+ config.set ('manifold', 'url', Config.default_manifold_url)
+ config.read (os.path.join(ROOT,'myslice/myslice.ini'))
+ Config._config_parser=config
+ return Config.manifold_url()
-# if you use a development backend running on this box
-# manifold_url = "http://localhost:7080/"
-# the INRIA setup
-# manifold_url = "http://manifold.pl.sophia.inria.fr:7080/"
-# the OpenLab-wide backend as managed by UPMC
-# manifold_url = "http://dev.myslice.info:7080/" # development version
- manifold_url = "http://test.myslice.info:7080/" #stable version
# exporting these details to js
@staticmethod
def manifold_js_export ():
- return "var MANIFOLD_URL = '%s';\n"%Config.manifold_url;
+ return "var MANIFOLD_URL = '%s';\n"%Config.manifold_url();
diff --git a/portal/homeview.py b/portal/homeview.py
index b5e47fe6..b9d039a5 100644
--- a/portal/homeview.py
+++ b/portal/homeview.py
@@ -15,7 +15,7 @@ class HomeView (View):
# expose this so we can mention the backend URL on the welcome page
def default_env (self):
return {
- 'manifold_url':Config.manifold_url,
+ 'MANIFOLD_URL':Config.manifold_url(),
}
def post (self,request):
diff --git a/portal/templates/home-view.html b/portal/templates/home-view.html
index 5072e525..123bc28b 100644
--- a/portal/templates/home-view.html
+++ b/portal/templates/home-view.html
@@ -25,7 +25,7 @@ European and national projects, OneLab offers access to a range of tools and
testbeds including PlanetLab Europe, the NITOS wireless testbed, and other
federated testbeds.
-This UI server is connected to the manifold backend running at {{ manifold_url }}
.
+This UI server is connected to the manifold backend running at {{ MANIFOLD_URL }}
.
{% endblock unfold2_main %}
--
2.45.2