Change the way of fetching data from datastore and write user's intents into datastor...
[nemo.git] / nemo-impl / src / main / java / org / opendaylight / nemo / user / vnspacemanager / languagestyle / updateintentlang / UpdateConnectionLang.java
index 91609f4ee4fc3942ddbc33a0d545f6f1976942c7..ab1d74df66299b2d654216b0c48612802296fe2a 100644 (file)
@@ -7,6 +7,7 @@
  */\r
 package org.opendaylight.nemo.user.vnspacemanager.languagestyle.updateintentlang;\r
 \r
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;\r
 import org.opendaylight.nemo.user.tenantmanager.TenantManage;\r
 import org.opendaylight.nemo.user.vnspacemanager.languagestyle.NEMOConstants;\r
 import org.opendaylight.nemo.user.vnspacemanager.structurestyle.updateintent.UpdateConnection;\r
@@ -14,13 +15,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.com
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Connection;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.ConnectionBuilder;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.ConnectionKey;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Node;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.connection.instance.*;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.PropertyValuesBuilder;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.property.values.*;\r
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;\r
-\r
 \r
 import java.util.*;\r
 \r
@@ -80,65 +77,46 @@ public class UpdateConnectionLang {
 \r
     private String createConnection(UserId userId, String connectionname, String connectiontype, List<String> endnodes, LinkedHashMap<String, LinkedHashMap<String,String>> propertyList){\r
         String errorInfo = null;\r
-        tenantManage.fetchVNSpace(userId);\r
-        User user = tenantManage.getUser();\r
-        List<Connection> connectionList = new ArrayList<Connection>();\r
-        List<Node> nodeList = new ArrayList<Node>();\r
-        Boolean ConnExist = false;\r
-\r
-        if (user.getObjects()!=null){\r
-            if (user.getObjects().getNode()!=null){\r
-                nodeList = user.getObjects().getNode();\r
-            }\r
-            if (user.getObjects().getConnection()!=null){\r
-                connectionList = user.getObjects().getConnection();\r
-            }\r
-        }\r
         ConnectionBuilder connectionBuilder = new ConnectionBuilder();\r
-        if (!connectionList.isEmpty()){\r
-            for (Connection connection1:connectionList) {\r
-                if (connection1.getConnectionName().getValue().equals(connectionname)){\r
-                    ConnExist = true;\r
-                    connectionBuilder.setKey(connection1.getKey());\r
-                    connectionBuilder.setConnectionId(connection1.getConnectionId());\r
-                }\r
+        Connection connection1 = null;\r
+        if (tenantManage.getObjectId(userId,connectionname)!=null){\r
+            ConnectionId connectionId = new ConnectionId(tenantManage.getObjectId(userId,connectionname));\r
+            if (tenantManage.getConnection(userId).containsKey(connectionId)){\r
+                connection1 = tenantManage.getConnection(userId).get(connectionId);\r
+            }\r
+            else if (tenantManage.getConnectionDataStore(userId).containsKey(connectionId)){\r
+                connection1 = tenantManage.getConnectionDataStore(userId).get(connectionId);\r
             }\r
         }\r
-        if (!ConnExist){\r
+\r
+        if (connection1==null){\r
             ConnectionId connectionId = new ConnectionId(UUID.randomUUID().toString());\r
-            connectionBuilder.setKey(new ConnectionKey(connectionId));\r
-            connectionBuilder.setConnectionId(connectionId);\r
+            connectionBuilder.setKey(new ConnectionKey(connectionId))\r
+                             .setConnectionId(connectionId);\r
+        }\r
+        else {\r
+            connectionBuilder.setKey(connection1.getKey())\r
+                             .setConnectionId(connection1.getConnectionId());\r
         }\r
 \r
-        connectionBuilder.setConnectionName(new ConnectionName(connectionname));\r
-        connectionBuilder.setConnectionType(new ConnectionType(connectiontype));\r
+        connectionBuilder.setConnectionName(new ConnectionName(connectionname))\r
+                         .setConnectionType(new ConnectionType(connectiontype));\r
 \r
-        if (!endnodes.isEmpty() && errorInfo==null){\r
+        if (!endnodes.isEmpty()){\r
             List<EndNode> endNodeList = new ArrayList<EndNode>();\r
-\r
-            if (nodeList.isEmpty()){\r
-                errorInfo = "The EndNode is not exist in the user vn space.";\r
-                return errorInfo;\r
-            }\r
-            else{\r
-                int order = 0;\r
-                for (String endnode : endnodes){\r
-                    Boolean endnodeexist = false;\r
-                    for (Node node : nodeList) {\r
-                        if (node.getNodeName().getValue().equals(endnode)){\r
-                            endnodeexist = true;\r
-                            EndNodeBuilder endNodeBuilder = new EndNodeBuilder();\r
-                            endNodeBuilder.setKey(new EndNodeKey(node.getNodeId()));\r
-                            endNodeBuilder.setNodeId(node.getNodeId());\r
-                            endNodeBuilder.setOrder((long) order);\r
-                            endNodeList.add(endNodeBuilder.build());\r
-                        }\r
-                    }\r
-                    if (!endnodeexist) {\r
-                        errorInfo = "The EndNode is not exist in the user vn space.";\r
-                        return errorInfo;\r
-                    }\r
-                    order ++;\r
+            for (String nodeName : endnodes){\r
+                if (tenantManage.getObjectId(userId,nodeName)!=null){\r
+                    Long order = 0L;\r
+                    NodeId nodeId = new NodeId(tenantManage.getObjectId(userId,nodeName));\r
+                    EndNodeBuilder endNodeBuilder = new EndNodeBuilder();\r
+                    endNodeBuilder.setKey(new EndNodeKey(nodeId))\r
+                                  .setNodeId(nodeId)\r
+                                  .setOrder(order);\r
+                    order++;\r
+                    endNodeList.add(endNodeBuilder.build());\r
+                }\r
+                else {\r
+                    return "The end node " + nodeName + " is not exist.";\r
                 }\r
             }\r
             connectionBuilder.setEndNode(endNodeList);\r