dbus service: create Agent wrapper only if agent has been created successfully
authorFrederic PAUT <frederic.paut@linux.intel.com>
Fri, 26 Jul 2013 16:33:13 +0000 (18:33 +0200)
committerFrederic PAUT <frederic.paut@linux.intel.com>
Fri, 26 Jul 2013 16:33:13 +0000 (18:33 +0200)
cloudeebus/cloudeebus.js

index 04faaa4..e0ee0a4 100644 (file)
@@ -206,7 +206,6 @@ cloudeebus.BusConnection.prototype.addService = function(serviceName) {
 //jsHdl : a Javascript handler to process methods, 
 //xml : the xml which describe interface/methods/signals...
 cloudeebus.Agent = function(objPath, jsHdl, xml) {
-//     this.srvName = srvDbusName;
        this.xml = xml;
        this.objectPath = objPath;
        this.jsHdl = jsHdl;
@@ -353,6 +352,15 @@ cloudeebus.Service.prototype.addAgent = function(agent) {
        var promise = new cloudeebus.Promise(function (resolver) {
                function ServiceAddAgentSuccessCB(objPath) {
                        self.agents.push(agent);
+                       try {
+                               self._createWrapper(agent);
+                       }
+                       catch (e) {
+                               var errorStr = cloudeebus.getError(e);
+                               cloudeebus.log("Exception creating agent wrapper " + agent.objectPath + " : " + errorStr);
+                               resolver.reject(errorStr, true);
+                               return;
+                       }               
                        resolver.fulfill(objPath, true);
                }
                
@@ -362,16 +370,6 @@ cloudeebus.Service.prototype.addAgent = function(agent) {
                        self.promise.resolver.reject(errorStr, true);
                }
                
-               try {
-                       self._createWrapper(agent);
-               }
-               catch (e) {
-                       var errorStr = cloudeebus.getError(e);
-                       cloudeebus.log("Exception creating agent wrapper " + agent.objectPath + " : " + errorStr);
-                       resolver.reject(errorStr, true);
-                       return;
-               }
-               
                var arglist = [
                    agent.objectPath,
                    agent.xml