import java.util.Optional;
import java.util.Set;
import java.util.concurrent.ExecutionException;
+import java.util.stream.Collectors;
+
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.transportpce.common.NetworkUtils;
import org.opendaylight.transportpce.common.ResponseCodes;
returnStructure.setRC(ResponseCodes.RESPONSE_FAILED);
return;
}
-
printNodesInfo(allPceNodes);
returnStructure.setRC(ResponseCodes.RESPONSE_OK);
LOG.error("readMdSal: network is null: {}", nwInstanceIdentifier);
return false;
}
- allNodes = nw.getNode();
+ allNodes = nw.getNode().stream().sorted((n1, n2) -> n1.getNodeId().getValue().compareTo(n2.getNodeId()
+ .getValue())).collect(Collectors.toList());
Network1 nw1 = nw.augmentation(Network1.class);
- allLinks = nw1.getLink();
+ allLinks = nw1.getLink().stream().sorted((l1, l2) -> l1.getSource().getSourceTp().toString().compareTo(l2
+ .getSource().getSourceTp().toString())).collect(Collectors.toList());
if (allNodes == null || allNodes.isEmpty()) {
LOG.error("readMdSal: no nodes ");
return false;
break;
}
- if ((pceNode.getSupNodeIdPceNode().equals(anodeId)) && (endPceNode(nodeType,pceNode.getNodeId(), pceNode))) {
- this.aendPceNode = pceNode;
+ if (pceNode.getSupNodeIdPceNode().equals(this.anodeId)) {
+ if (this.aendPceNode != null) {
+ LOG.debug("aendPceNode already gets: {}", this.aendPceNode);
+ } else if (endPceNode(nodeType,pceNode.getNodeId(), pceNode)) {
+ this.aendPceNode = pceNode;
+ }
+ // returning false otherwise would break E2E test
}
- if ((pceNode.getSupNodeIdPceNode().equals(znodeId)) && (endPceNode(nodeType,pceNode.getNodeId(), pceNode))) {
- this.zendPceNode = pceNode;
+ if (pceNode.getSupNodeIdPceNode().equals(this.znodeId)) {
+ if (this.zendPceNode != null) {
+ LOG.debug("zendPceNode already gets: {}", this.zendPceNode);
+ } else if (endPceNode(nodeType,pceNode.getNodeId(), pceNode)) {
+ this.zendPceNode = pceNode;
+ }
+ // returning false otherwise would break E2E test
}
allPceNodes.put(pceNode.getNodeId(), pceNode);
}
private Boolean endPceNode(OpenroadmNodeType openroadmNodeType, NodeId nodeId, PceNode pceNode) {
- Boolean add = true;
switch (openroadmNodeType) {
case SRG :
pceNode.initSrgTps();
pceNode.initXndrTps();
break;
default:
- add = false;
LOG.warn("endPceNode: Node {} is not SRG or XPONDER !", nodeId);
- break;
+ return false;
}
- return add;
+
+ if (!pceNode.isValid()) {
+ LOG.error("validateNode : there are no availaible wavelengths in node {}", pceNode.getNodeId().getValue());
+ return false;
+ }
+ return true;
}
public PceNode getaendPceNode() {
self.assertIn('Xponder Roadm Link created successfully', res["output"]["result"])
time.sleep(2)
-
def test_19_connect_roadmA_PP2_to_xpdrA_N2(self):
url = "{}/operations/transportpce-networkutils:init-rdm-xpdr-links".format(self.restconf_baseurl)
data = {
self.assertIn('Roadm Xponder links created successfully', res["output"]["result"])
time.sleep(2)
-
def test_20_connect_xprdC_N2_to_roadmC_PP2(self):
url = "{}/operations/transportpce-networkutils:init-xpdr-rdm-links".format(self.restconf_baseurl)
data = {
self.assertIn('Xponder Roadm Link created successfully', res["output"]["result"])
time.sleep(2)
-
def test_21_connect_roadmC_PP2_to_xpdrC_N2(self):
url = "{}/operations/transportpce-networkutils:init-rdm-xpdr-links".format(self.restconf_baseurl)
data = {
self.assertNotIn('org-openroadm-network-topology:pp-attributes', dict.keys(ele))
time.sleep(10)
-
def test_27_check_topo_ROADMA_DEG1(self):
url1 = ("{}/config/ietf-network:networks/network/openroadm-topology/node/ROADMA01-DEG1"
.format(self.restconf_baseurl))
self.test_27_check_topo_ROADMA_DEG1()
time.sleep(3)
-
def test_44_delete_oc_service1(self):
url = ("{}/operations/org-openroadm-service:service-delete"
.format(self.restconf_baseurl))
print ("oc service deletion\n")
self.test_44_delete_oc_service1()
-
def test_51_disconnect_XPDRA(self):
url = ("{}/config/network-topology:"
"network-topology/topology/topology-netconf/node/XPDRA01"
self.test_34_check_topo_ROADMA_SRG1()
self.test_35_check_topo_ROADMA_DEG2()
- @unittest.expectedFailure
+# @unittest.expectedFailure
def test_49_loop_create_eth_service(self):
for i in range(1,6):
print ("trial number {}".format(i))
print ("eth service deletion\n")
self.test_30_delete_eth_service1()
- @unittest.expectedFailure
+# @unittest.expectedFailure
def test_50_loop_create_oc_service(self):
url = ("{}/operational/org-openroadm-service:service-list/services/service1"
.format(self.restconf_baseurl))