Remove codes breaking security rules
[nemo.git] / nemo-impl / src / main / java / org / opendaylight / nemo / user / vnspacemanager / structurestyle / updateintent / GetDefinitions.java
index 5ec98deb29f147fb21181df1d47b1a8e9184c0d5..e8768f5fdd9ad5c31f6756e4738fa92824cd1f57 100644 (file)
@@ -13,7 +13,11 @@ import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;\r
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;\r
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.PhysicalNetwork;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.network.PhysicalHosts;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.network.physical.hosts.PhysicalHost;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.*;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.PhysicalHostName;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.ConnectionDefinitions;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.MatchItemDefinitions;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.NodeDefinitions;\r
@@ -31,6 +35,7 @@ import org.slf4j.LoggerFactory;
 import java.util.HashMap;\r
 import java.util.List;\r
 import java.util.Map;\r
+import java.util.concurrent.ExecutionException;\r
 \r
 /**\r
  * Created by z00293636 on 2015/12/3.\r
@@ -42,6 +47,7 @@ public class GetDefinitions {
     private List<MatchItemDefinition> matchItemDefinitionList = null;\r
     private List<ConditionParameterDefinition> conditionParameterDefinitionList = null;\r
     private List<ActionDefinition> actionDefinitionList = null;\r
+    private List<PhysicalHost> physicalHostList = null;\r
     private static final Logger LOG = LoggerFactory.getLogger(GetDefinitions.class);\r
 \r
     public GetDefinitions(DataBroker dataBroker){\r
@@ -103,6 +109,17 @@ public class GetDefinitions {
         return map;\r
     }\r
 \r
+    public Map<PhysicalHostName, PhysicalHost> getPhysicalHost(){\r
+        fetchPhysicalHosts();\r
+        Map<PhysicalHostName, PhysicalHost> map = new HashMap<PhysicalHostName, PhysicalHost>();\r
+        if (physicalHostList!=null){\r
+            for (PhysicalHost physicalHost : physicalHostList){\r
+                map.put(physicalHost.getHostName(),physicalHost);\r
+            }\r
+        }\r
+        return map;\r
+    }\r
+\r
     private void setNodeDefinitionsList(List<NodeDefinition> nodeDefinitiones){\r
         this.nodeDefinitionList = nodeDefinitiones;\r
     }\r
@@ -123,6 +140,10 @@ public class GetDefinitions {
         this.actionDefinitionList = actionDefinitions;\r
     }\r
 \r
+    private void setPhysicalHosts(List<PhysicalHost> physicalHosts){\r
+        this.physicalHostList = physicalHosts;\r
+    }\r
+\r
     private void fetchNodeDefinitions(){\r
         InstanceIdentifier<NodeDefinitions> nodedefinitionId = InstanceIdentifier.builder(NodeDefinitions.class).build();\r
         ListenableFuture<Optional<NodeDefinitions>> nodedefinitionFuture = dataBroker.newReadOnlyTransaction().read(LogicalDatastoreType.CONFIGURATION, nodedefinitionId);\r
@@ -203,6 +224,32 @@ public class GetDefinitions {
                 LOG.error("Can not read condition parameter definition information.", t);\r
             }\r
         });\r
+        try {\r
+            conditionparadefinitionFuture.get();\r
+        } catch (InterruptedException e) {\r
+            // TODO Auto-generated catch block\r
+            LOG.error("Exception:",e);\r
+        } catch (ExecutionException e){\r
+            // TODO Auto-generated catch block\r
+            LOG.error("Exception:",e);\r
+        }\r
+        return ;\r
+    }\r
+\r
+    private void fetchPhysicalHosts(){\r
+        InstanceIdentifier<PhysicalHosts> physicalHostsInstanceIdentifier = InstanceIdentifier.builder(PhysicalNetwork.class).child(PhysicalHosts.class).build();\r
+        ListenableFuture<Optional<PhysicalHosts>> physicalHostsFuture = dataBroker.newReadOnlyTransaction().read(LogicalDatastoreType.OPERATIONAL, physicalHostsInstanceIdentifier);\r
+        Futures.addCallback(physicalHostsFuture, new FutureCallback<Optional<PhysicalHosts>>() {\r
+            @Override\r
+            public void onSuccess(Optional<PhysicalHosts> result) {\r
+                setPhysicalHosts(result.get().getPhysicalHost());\r
+            }\r
+\r
+            @Override\r
+            public void onFailure(Throwable t) {\r
+                LOG.error("Can not read physical hosts information.", t);\r
+            }\r
+        });\r
         return ;\r
     }\r
 }\r