When the controller already exists, the caller still expects to get its uuid. 49/3249/2
authorHugo Trippaers <hugo@trippaers.nl>
Fri, 29 Nov 2013 13:47:50 +0000 (14:47 +0100)
committerHugo Trippaers <hugo@trippaers.nl>
Mon, 2 Dec 2013 09:48:12 +0000 (10:48 +0100)
Change-Id: I7f2aac02ae2d6b678abb4cd0866dcd6ee287604a
Signed-off-by: Hugo Trippaers <hugo@trippaers.nl>
ovsdb/src/main/java/org/opendaylight/ovsdb/plugin/ConfigurationService.java
ovsdb/src/main/java/org/opendaylight/ovsdb/plugin/ConnectionService.java

index 9bba9f8ba332857309ec0ffc38e0aabd6c657630..5184457745ddf9fb97d8fd083349c8f26f9893eb 100755 (executable)
@@ -1083,7 +1083,12 @@ public class ConfigurationService implements IPluginInBridgeDomainConfigService,
                 portInsertIndex = transaction.getRequests().indexOf(addControllerRequest);
             }
 
-            return _insertTableRow(node,transaction,portInsertIndex,insertErrorMsg,rowName);
+            StatusWithUuid status = _insertTableRow(node,transaction,portInsertIndex,insertErrorMsg,rowName);
+            if (status.isSuccess() && controllerExists) {
+                // We won't get the uuid from the transact, so we set it here
+                status = new StatusWithUuid(status.getCode(), controllerUUID);
+            }
+            return status;
 
         } catch (Exception e) {
             logger.error("Error in insertControllerRow(): ",e);
@@ -1158,8 +1163,14 @@ public class ConfigurationService implements IPluginInBridgeDomainConfigService,
                 status = new StatusWithUuid(StatusCode.BADREQUEST, result.getError() + " : " + result.getDetails());
             }
             if (status.isSuccess()) {
-                UUID uuid = tr.get(insertIndex).getUuid();
-                status = new StatusWithUuid(StatusCode.SUCCESS, uuid);
+                if (insertIndex >0 && insertIndex < tr.size() && tr.get(insertIndex) != null) {
+                    UUID uuid = tr.get(insertIndex).getUuid();
+                    status = new StatusWithUuid(StatusCode.SUCCESS, uuid);
+                } else {
+                    // We can't get the uuid from the transact as the insertIndex is invalid or -1
+                    // return null uuid.
+                    status = new StatusWithUuid(StatusCode.SUCCESS, (UUID) null);
+                }
             }
             return status;
         } catch(Exception e){
index 6ddb13bb4dcce0c0a539b4df02af80ffb9f75d3c..6d2c55c62845dc13089ebbc346c2767a02408f6d 100755 (executable)
@@ -476,7 +476,7 @@ public class ConnectionService implements IPluginInConnectionService, IConnectio
             try {
                 this.setOFController(node, bridgeUUID);
             } catch (Exception e) {
-                e.printStackTrace();
+                logger.error("Failed updateOFControllers", e);
             }
         }
     }