cloudeebus js lib version check at connexion
authorLuc Yriarte <luc.yriarte@intel.com>
Mon, 19 Nov 2012 15:28:26 +0000 (16:28 +0100)
committerLuc Yriarte <luc.yriarte@intel.com>
Mon, 19 Nov 2012 15:37:36 +0000 (16:37 +0100)
cloudeebus/cloudeebus.js
cloudeebus/cloudeebus.py

index dd51823..9c13695 100644 (file)
@@ -28,7 +28,7 @@ var dbus = { // hook object for dbus types not translated by python-json
 
 /*****************************************************************************/
 
-var cloudeebus = window.cloudeebus = {};
+var cloudeebus = window.cloudeebus = {version: "0.1"};
 
 cloudeebus.reset = function() {
        cloudeebus.sessionBus = null;
@@ -46,6 +46,19 @@ cloudeebus.connect = function(uri, manifest, successCB, errorCB) {
        cloudeebus.reset();
        cloudeebus.uri = uri;
        
+       function onCloudeebusVersionCheckCB(version) {
+               if (cloudeebus.version == version) {
+                       cloudeebus.log("Connected to " + cloudeebus.uri);
+                       if (successCB)
+                               successCB();
+               } else {
+                       var errorMsg = "Cloudeebus server version " + version + " and client version " + cloudeebus.version + " mismatch";
+                       cloudeebus.log(errorMsg);
+                       if (errorCB)
+                               errorCB(errorMsg);
+               }
+       }
+       
        function onWAMPSessionAuthErrorCB(error) {
                cloudeebus.log("Authentication error: " + error.desc);
                if (errorCB)
@@ -53,11 +66,9 @@ cloudeebus.connect = function(uri, manifest, successCB, errorCB) {
        }
        
        function onWAMPSessionAuthenticatedCB(permissions) {
-               cloudeebus.log("Connected to " + cloudeebus.uri);
                cloudeebus.sessionBus = new cloudeebus.BusConnection("session", cloudeebus.wampSession);
                cloudeebus.systemBus = new cloudeebus.BusConnection("system", cloudeebus.wampSession);
-               if (successCB)
-                       successCB();
+               cloudeebus.wampSession.call("getVersion").then(onCloudeebusVersionCheckCB, errorCB);
        }
        
        function onWAMPSessionChallengedCB(challenge) {
index 33b66bb..3a5e921 100755 (executable)
@@ -236,6 +236,14 @@ class CloudeebusService:
         return dbusCallHandler.callMethod()
 
 
+    @exportRpc
+    def getVersion(self):
+        '''
+        return current version string
+        '''
+        return VERSION
+
+
 
 ###############################################################################
 class CloudeebusServerProtocol(WampCraServerProtocol):