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
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
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
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
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
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