Singleton fixed
[myslice.git] / myslice / configengine.py
index e512adf..c8ff197 100644 (file)
@@ -19,7 +19,25 @@ from myslice.settings import ROOT
 #api_key=theapikeyasprovidedbygoogle
 
 # use a singleton instead of staticmethods
-from manifold.util.singleton    import Singleton
+#-------------------------------------------------------------------------
+# Class Singleton
+#
+# Classes that inherit from Singleton can be instanciated only once 
+#-------------------------------------------------------------------------
+
+class Singleton(type):
+    def __init__(cls, name, bases, dic):
+        super(Singleton,cls).__init__(name,bases,dic)
+        cls.instance=None
+
+    def __call__(cls, *args, **kw):
+        if cls.instance is None:
+            cls.instance=super(Singleton,cls).__call__(*args,**kw)
+        return cls.instance
+
+
+# See also
+# http://stackoverflow.com/questions/6760685/creating-a-singleton-in-python
 
 class ConfigEngine(object):
     __metaclass__ = Singleton
@@ -33,7 +51,12 @@ class ConfigEngine(object):
 
     default_manifold_admin_user     = 'admin'
     default_manifold_admin_password = 'demo'
+    default_myslice_theme           = 'onelab'
 
+    #iotlab dev url
+    default_iotlab_url = "https://devwww.iot-lab.info/rest/admin/users"
+    default_iotlab_admin_user = "xxx"
+    default_iotlab_admin_password= "yyy"
 
     def __init__ (self):
         parser = RawConfigParser ()
@@ -41,6 +64,15 @@ class ConfigEngine(object):
         parser.set ('manifold', 'url', ConfigEngine.default_manifold_url)
         parser.set ('manifold', 'admin_user', ConfigEngine.default_manifold_admin_user)
         parser.set ('manifold', 'admin_password', ConfigEngine.default_manifold_admin_password)
+
+        parser.add_section('myslice')
+        parser.set ('myslice', 'theme', ConfigEngine.default_myslice_theme)
+
+        parser.add_section('iotlab')
+        parser.set ('iotlab', 'url', ConfigEngine.default_iotlab_url)
+        parser.set ('iotlab', 'admin_user', ConfigEngine.default_iotlab_admin_user)
+        parser.set ('iotlab', 'admin_password', ConfigEngine.default_iotlab_admin_password)
+
         parser.add_section('googlemap')
         parser.set ('googlemap','api_key', None)
         parser.read (os.path.join(ROOT,'myslice/myslice.ini'))
@@ -57,6 +89,15 @@ class ConfigEngine(object):
         return (self.config_parser.get('manifold','admin_user'),
                 self.config_parser.get('manifold','admin_password'))
 
+    def iotlab_url (self):
+        return self.config_parser.get('iotlab','url')
+
+    def iotlab_admin_user(self):
+        return self.config_parser.get('iotlab','admin_user')
+
+    def iotlab_admin_password(self):
+        return self.config_parser.get('iotlab','admin_password')
+
     def googlemap_api_key (self):
         return self.config_parser.get('googlemap','api_key')