package org.opendaylight.transportpce.olm.power;
import java.util.List;
+import java.util.concurrent.ExecutionException;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.opendaylight.controller.md.sal.binding.api.MountPoint;
import org.opendaylight.controller.md.sal.binding.api.MountPointService;
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.transportpce.common.crossconnect.CrossConnect;
import org.opendaylight.transportpce.common.crossconnect.CrossConnectImpl;
import org.opendaylight.transportpce.common.device.DeviceTransactionManager;
import org.opendaylight.transportpce.olm.util.OlmPowerServiceRpcImplUtil;
import org.opendaylight.transportpce.olm.util.TransactionUtils;
import org.opendaylight.transportpce.test.AbstractTest;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.interfaces.grp.Interface;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.interfaces.grp.InterfaceKey;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.OrgOpenroadmDevice;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.NodeId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.olm.rev170418.ServicePowerSetupInput;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
public class PowerMgmtTest extends AbstractTest {
private PortMapping portMapping;
private PowerMgmt powerMgmt;
+ /*
+ * initial setup before test cases
+ */
@Before
public void setUp() {
this.mountPoint = new MountPointStub(this.getDataBroker());
this.deviceTransactionManager);
}
+ /*
+ * test setPower function in PowerMgmt
+ */
@Test
public void testSetPower() {
}
+ /*
+ * test setPower function in PowerMgmt with different input (DestTp("network"))
+ */
@Test
public void testSetPower2() {
}
+ /*
+ * test setPower function in PowerMgmt with different input (DestTp("deg"))
+ */
@Test
public void testSetPower3() {
}
+ /*
+ * test setPower function in PowerMgmt with different input (DestTp("srg"))
+ */
@Test
public void testSetPower4() {
}
+ /*
+ * test setPower function in PowerMgmt in case nodes are present in Configuration Datastore
+ * from TransactionUtils.getNodes() with null mapping key
+ */
@Test
- public void testSetPowerPresentNodes() throws InterruptedException {
+ public void testSetPowerPresentNodes() throws InterruptedException, ExecutionException {
List<NodeId> nodes = TransactionUtils.getNodeIds();
for (NodeId nodeId : nodes) {
TransactionUtils.writeNodeTransaction(nodeId.getValue(), this.getDataBroker(), null);
Assert.assertEquals(true, output);
}
+ /*
+ * test setPower function in PowerMgmt in case of different nodes are present in Configuration Datastore
+ * from TransactionUtils.getNodes2() with null mapping key
+ */
@Test
- public void testSetPowerPresentNodes2() throws InterruptedException {
+ public void testSetPowerPresentNodes2() throws InterruptedException, ExecutionException {
List<NodeId> nodes = TransactionUtils.getNodeIds();
for (NodeId nodeId : nodes) {
TransactionUtils.writeNodeTransaction2(nodeId.getValue(), this.getDataBroker(), null);
Assert.assertEquals(true, output);
}
+ /*
+ * test setPower function in PowerMgmt in case different nodes are present in Configuration Datastore
+ * from TransactionUtils.getNodes3() with null mapping key
+ */
@Test
- public void testSetPowerPresentNodes3() throws InterruptedException {
+ public void testSetPowerPresentNodes3() throws InterruptedException, ExecutionException {
List<NodeId> nodes = TransactionUtils.getNodeIds();
for (NodeId nodeId : nodes) {
TransactionUtils.writeNodeTransaction3(nodeId.getValue(), this.getDataBroker(), null);
Assert.assertEquals(true, output);
}
+ /*
+ * test setPower function in PowerMgmt in case different nodes are present in Configuration Datastore
+ * from TransactionUtils.getNodes3() with "deg" mapping key and input
+ * from OlmPowerServiceRpcImplUtil.getServicePowerSetupInput3()
+ */
@Test
- public void testSetPowerPresentNodes31() throws InterruptedException {
+ public void testSetPowerPresentNodes31() throws InterruptedException, ExecutionException {
List<NodeId> nodes = TransactionUtils.getNodeIds();
for (NodeId nodeId : nodes) {
TransactionUtils.writeNodeTransaction3(nodeId.getValue(), this.getDataBroker(), "deg");
Assert.assertEquals(false, output);
}
+ /*
+ * test setPower function in PowerMgmt in case different nodes are present in Configuration Datastore
+ * from TransactionUtils.getNodes3() with "deg" mapping key and input
+ * from OlmPowerServiceRpcImplUtil.getServicePowerSetupInput4()
+ */
@Test
- public void testSetPowerPresentNodes312() throws InterruptedException {
+ public void testSetPowerPresentNodes312() throws InterruptedException, ExecutionException {
List<NodeId> nodes = TransactionUtils.getNodeIds();
for (NodeId nodeId : nodes) {
TransactionUtils.writeNodeTransaction3(nodeId.getValue(), this.getDataBroker(), "deg");
Assert.assertEquals(true, output);
}
+ /*
+ * test setPower function in PowerMgmt in case different nodes are present in Configuration Datastore
+ * from TransactionUtils.getNodes3() with "deg" mapping key and input
+ * from OlmPowerServiceRpcImplUtil.getServicePowerSetupInput4()
+ */
@Test
- public void testSetPowerPresentNodes32() throws InterruptedException {
+ public void testSetPowerPresentNodes312_2() throws InterruptedException, ExecutionException {
+ List<NodeId> nodes = TransactionUtils.getNodeIds();
+ for (NodeId nodeId : nodes) {
+ TransactionUtils.writeNodeTransaction3(nodeId.getValue(), this.getDataBroker(), "deg");
+ Thread.sleep(500);
+ }
+
+ InstanceIdentifier<Interface> interfacesIID = InstanceIdentifier.create(OrgOpenroadmDevice.class).child(
+ Interface.class, new InterfaceKey("ots"));
+ Interface interface0 = new org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.interfaces.grp
+ .InterfaceBuilder()
+ .setName("ots")
+ .build();
+
+ TransactionUtils.putAndSubmit(new DeviceTransactionManagerImpl(mountPointService, 3000),
+ "node 1", LogicalDatastoreType.CONFIGURATION, interfacesIID, interface0);
+ Thread.sleep(5000);
+ ServicePowerSetupInput input = OlmPowerServiceRpcImplUtil.getServicePowerSetupInput3();
+ boolean output = this.powerMgmt.setPower(input);
+ Assert.assertEquals(false, output);
+ }
+
+
+ /*
+ * test setPower function in PowerMgmt in case different nodes are present in Configuration Datastore
+ * from TransactionUtils.getNodes3() with null mapping key and input
+ * from OlmPowerServiceRpcImplUtil.getServicePowerSetupInput3()
+ */
+ @Test
+ public void testSetPowerPresentNodes32() throws InterruptedException, ExecutionException {
List<NodeId> nodes = TransactionUtils.getNodeIds();
for (NodeId nodeId : nodes) {
TransactionUtils.writeNodeTransaction3(nodeId.getValue(), this.getDataBroker(), null);
Assert.assertEquals(true, output);
}
+ /*
+ * test setPower function in PowerMgmt in case different nodes are present in Configuration Datastore
+ * from TransactionUtils.getNodes() with "network" mapping key and input
+ * from OlmPowerServiceRpcImplUtil.getServicePowerSetupInput2()
+ */
@Test
- public void testSetPowerPresentNodes4() throws InterruptedException {
+ public void testSetPowerPresentNodes4() throws InterruptedException, ExecutionException {
List<NodeId> nodes = TransactionUtils.getNodeIds();
for (NodeId nodeId : nodes) {
TransactionUtils.writeNodeTransaction(nodeId.getValue(), this.getDataBroker(), "network");
Assert.assertEquals(true, output);
}
+// @Test
+// public void testSetPowerPresentNodes4_1() throws InterruptedException, ExecutionException {
+// List<NodeId> nodes = TransactionUtils.getNodeIds();
+// for (NodeId nodeId : nodes) {
+// TransactionUtils.writeNodeTransaction(nodeId.getValue(), this.getDataBroker(), "network");
+// }
+//
+// InstanceIdentifier<Ports> portIID = InstanceIdentifier.create(OrgOpenroadmDevice.class)
+// .child(CircuitPacks.class, new CircuitPacksKey("circuit name"))
+// .child(Ports.class, new PortsKey("port"));
+// Ports ports = new PortsBuilder()
+// .setPortName("port")
+// .setCircuitId("circuit name")
+// .build();
+// TransactionUtils.putAndSubmit(new DeviceTransactionManagerImpl(this.mountPointService, 3000)
+// ,"node 1", LogicalDatastoreType.OPERATIONAL, portIID, ports);
+// Thread.sleep(1000);
+// ServicePowerSetupInput input = OlmPowerServiceRpcImplUtil.getServicePowerSetupInput2();
+// boolean output = this.powerMgmt.setPower(input);
+// Assert.assertEquals(true, output);
+// }
+
+ /*
+ * test setPower function in PowerMgmt in case different nodes are present in Configuration Datastore
+ * from TransactionUtils.getNodes() with null mapping key and input
+ * from OlmPowerServiceRpcImplUtil.getServicePowerSetupInput2()
+ */
@Test
- public void testSetPowerPresentNodes41() throws InterruptedException {
+ public void testSetPowerPresentNodes41() throws InterruptedException, ExecutionException {
List<NodeId> nodes = TransactionUtils.getNodeIds();
for (NodeId nodeId : nodes) {
TransactionUtils.writeNodeTransaction(nodeId.getValue(), this.getDataBroker(), null);
Assert.assertEquals(false, output);
}
+ /*
+ * test setPower function in PowerMgmt in case different nodes are present in Configuration Datastore
+ * from TransactionUtils.getNodes() with "deg" mapping key and input
+ * from OlmPowerServiceRpcImplUtil.getServicePowerSetupInput3()
+ */
@Test
- public void testSetPowerPresentNodes42() throws InterruptedException {
+ public void testSetPowerPresentNodes42() throws InterruptedException, ExecutionException {
List<NodeId> nodes = TransactionUtils.getNodeIds();
for (NodeId nodeId : nodes) {
TransactionUtils.writeNodeTransaction(nodeId.getValue(), this.getDataBroker(), "deg");
Assert.assertEquals(true, output);
}
+ /*
+ * test setPower function in PowerMgmt in case different nodes are present in Configuration Datastore
+ * from TransactionUtils.getNodes() with "deg" mapping key and input
+ * from OlmPowerServiceRpcImplUtil.getServicePowerSetupInput4()
+ */
@Test
- public void testSetPowerPresentNodes422() throws InterruptedException {
+ public void testSetPowerPresentNodes422() throws InterruptedException, ExecutionException {
List<NodeId> nodes = TransactionUtils.getNodeIds();
for (NodeId nodeId : nodes) {
TransactionUtils.writeNodeTransaction(nodeId.getValue(), this.getDataBroker(), "deg");
Assert.assertEquals(true, output);
}
+ /*
+ * test setPower function in PowerMgmt in case different nodes are present in Configuration Datastore
+ * from TransactionUtils.getNodes() with null mapping key and input
+ * from OlmPowerServiceRpcImplUtil.getServicePowerSetupInput3()
+ */
@Test
- public void testSetPowerPresentNodes43() throws InterruptedException {
+ public void testSetPowerPresentNodes43() throws InterruptedException, ExecutionException {
List<NodeId> nodes = TransactionUtils.getNodeIds();
for (NodeId nodeId : nodes) {
TransactionUtils.writeNodeTransaction(nodeId.getValue(), this.getDataBroker(), null);
package org.opendaylight.transportpce.olm.service;
+import java.util.concurrent.ExecutionException;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.olm.rev170418.ServicePowerTurndownInput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.olm.rev170418.ServicePowerTurndownOutput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.olm.rev170418.ServicePowerTurndownOutputBuilder;
-//import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.olm.rev170418.*;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@InjectMocks
private OlmPowerService olmPowerServiceMock;
-
-
+ /*
+ * initial setup before test cases
+ */
@Before
public void setUp() {
this.mountPoint = new MountPointStub(this.getDataBroker());
MockitoAnnotations.initMocks(this);
}
+ /*
+ * dummy tests for init and close functions in OlmPowerServiceImpl class (not yet implemented)
+ */
@Test
public void dummyTest() {
OlmPowerServiceImpl olmPowerServiceImpl = (OlmPowerServiceImpl) this.olmPowerService;
olmPowerServiceImpl.close();
}
-
+ /*
+ * test getPm function in OlmPowerServiceImpl class
+ */
@Test
public void testGetPm() {
GetPmInput input = OlmPowerServiceRpcImplUtil.getGetPmInput();
Assert.assertEquals(null, output.getResourceId());
}
+ /*
+ * test servicePowerSetup function in OlmPowerServiceImpl class in case of mocking powerMgmtMock.setPower
+ * to return success
+ */
@Test
public void testServicePowerSetupSuccess() {
ServicePowerSetupInput input = OlmPowerServiceRpcImplUtil.getServicePowerSetupInput();
Assert.assertEquals("Success", output.getResult());
}
+ /*
+ * test servicePowerSetup function in OlmPowerServiceImpl class in case of mocking powerMgmtMock.setPower
+ * to return failure
+ */
@Test
public void testServicePowerSetupFailed() {
ServicePowerSetupInput input = OlmPowerServiceRpcImplUtil.getServicePowerSetupInput();
Assert.assertEquals("Failed", output.getResult());
}
+ /*
+ * test getServicePowerTurndownInput function in OlmPowerServiceImpl class in case of mocking powerMgmtMock.setPower
+ * to return success
+ */
@Test
public void testServicePowerTurnDownSuccess() {
ServicePowerTurndownInput input = OlmPowerServiceRpcImplUtil.getServicePowerTurndownInput();
Assert.assertEquals("Success", output.getResult());
}
+ /*
+ * test getServicePowerTurndownInput function in OlmPowerServiceImpl class in case of mocking powerMgmtMock.setPower
+ * to return failure
+ */
@Test
public void testServicePowerTurnDownFailed() {
ServicePowerTurndownInput input = OlmPowerServiceRpcImplUtil.getServicePowerTurndownInput();
Assert.assertEquals("Failed", output.getResult());
}
+ /*
+ * test calculateSpanlossBase function in OlmPowerServiceImpl class in case of failure and network object isn't
+ * stored in Configuration Datastore
+ */
@Test
public void testCalculateSpanlossBase() {
CalculateSpanlossBaseInput input = OlmPowerServiceRpcImplUtil.getCalculateSpanlossBaseInput();
}
+ /*
+ * test calculateSpanlossBase function in OlmPowerServiceImpl class in case of failure and network object is
+ * stored in Configuration Datastore
+ */
@Test
public void testCalculateSpanlossBase2() {
NetworkKey overlayTopologyKey = new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID));
}
+ /*
+ * test calculateSpanlossBase function in OlmPowerServiceImpl class in case of failure and network object is
+ * stored in Configuration Datastore with different input
+ */
@Test
public void testCalculateSpanlossBase3() {
NetworkKey overlayTopologyKey = new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID));
}
-
+ /*
+ * test calculateSpanlossBase function in OlmPowerServiceImpl class in case of failure and empty network
+ * object is stored in Configuration Datastore
+ */
@Test
public void testCalculateSpanlossBase4() {
NetworkKey overlayTopologyKey = new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID));
}
+ /*
+ * test calculateSpanlossBase function in OlmPowerServiceImpl class in case of failure and empty network
+ * object is stored in Configuration Datastore with different input
+ */
@Test
public void testCalculateSpanlossBase5() {
NetworkKey overlayTopologyKey = new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID));
}
-// @Test
-// public void testCalculateSpanlossBase4() throws InterruptedException {
-// NetworkKey overlayTopologyKey = new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID));
-// InstanceIdentifier<Network1> networkIID = InstanceIdentifier.builder(Network.class, overlayTopologyKey)
-// .augmentation(Network1.class)
-// .build();
-// Network1 network = TransactionUtils.getNetwork2();
-// TransactionUtils.writeTransaction(this.getDataBroker(), networkIID, network);
-//
-// Thread.sleep(500);
-//
-// List<NodeId> nodes = TransactionUtils.getNodes();
-// Node n;
-// SupportingNode sn;
-//
-// List<SupportingNode> snl;
-// NodeId n5 = new NodeId("node 5");
-// KeyedInstanceIdentifier<Node, NodeKey> mappedNodeII2 =
-// InstanceIdentifiers.UNDERLAY_NETWORK_II.child(Node.class, new NodeKey(n5));
-//
-// sn = new SupportingNodeBuilder().setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
-// .setNodeRef(n5).build();
-// snl = new ArrayList<>();
-// snl.add(sn);
-// n = new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608
-// .network.NodeBuilder().setNodeId(n5).build();
-// TransactionUtils.writeTransaction(this.getDataBroker(), mappedNodeII2, n);
-// Thread.sleep(500);
-//
-// for(int i=0; i < nodes.size(); i++) {
-// KeyedInstanceIdentifier<Node, NodeKey> mappedNodeII =
-// InstanceIdentifiers.OVERLAY_NETWORK_II.child(Node.class, new NodeKey(nodes.get(i)));
-// if (i != 0){
-// sn = new SupportingNodeBuilder().setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
-// .setNodeRef(nodes.get(i-1)).build();
-// }else {
-// sn = new SupportingNodeBuilder().setNodeRef(n5).build();
-// }
-// snl = new ArrayList<>();
-// snl.add(sn);
-// n = new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608
-// .network.NodeBuilder().setNodeId(nodes.get(i)).setSupportingNode(snl).build();
-// TransactionUtils.writeTransaction(this.getDataBroker(), mappedNodeII, n);
-// Thread.sleep(500);
-// }
-//
-// Thread.sleep(1000);
-//
-// CalculateSpanlossBaseInput input = OlmPowerServiceRpcImplUtil.getCalculateSpanlossBaseInput2();
-// CalculateSpanlossBaseOutput output = this.olmPowerService.calculateSpanlossBase(input);
-// Assert.assertEquals("Failed", output.getResult());
-//
-// }
+ /*
+ * test calculateSpanlossBase function in OlmPowerServiceImpl class in case of failure and empty network
+ * object is stored in Configuration Datastore with different input
+ */
+ @Test
+ public void testCalculateSpanlossBase5_2() {
+ NetworkKey overlayTopologyKey = new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID));
+ InstanceIdentifier<Network1> networkIID = InstanceIdentifier.builder(Network.class, overlayTopologyKey)
+ .augmentation(Network1.class)
+ .build();
+ Network1 network = TransactionUtils.getNetwork3();
+ TransactionUtils.writeTransaction(this.getDataBroker(), networkIID, network);
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ LOG.error("Write transaction failed !",e);
+ }
+ CalculateSpanlossBaseInput input = OlmPowerServiceRpcImplUtil.getCalculateSpanlossBaseInput2();
+ CalculateSpanlossBaseOutput output = this.olmPowerService.calculateSpanlossBase(input);
+ Assert.assertEquals("Failed", output.getResult());
+
+ }
+
+ /*
+ * test calculateSpanlossBase function in OlmPowerServiceImpl class in case of failure and network object of
+ * TransactionUtils.getNetwork2() object is stored in Opertional Datastore
+ */
+ @Test
+ public void testCalculateSpanlossBase4_2() throws InterruptedException, ExecutionException {
+
+ TransactionUtils.prepareTestDataInStore(this.getDataBroker(), this.mountPointService);
+ CalculateSpanlossBaseInput input = OlmPowerServiceRpcImplUtil.getCalculateSpanlossBaseInput2();
+ CalculateSpanlossBaseOutput output = this.olmPowerService.calculateSpanlossBase(input);
+ Assert.assertEquals("Failed", output.getResult());
+
+ }
+
+ /*
+ * test calculateSpanlossBase function in OlmPowerServiceImpl class in case of failure and network object of
+ * TransactionUtils.getNetwork2() object is stored in Opertional Datastore
+ */
+ @Test
+ public void testCalculateSpanlossBase4_3() throws InterruptedException, ExecutionException {
+
+ TransactionUtils.prepareTestDataInStore2(this.getDataBroker(), this.mountPointService);
+ CalculateSpanlossBaseInput input = OlmPowerServiceRpcImplUtil.getCalculateSpanlossBaseInput2();
+ CalculateSpanlossBaseOutput output = this.olmPowerService.calculateSpanlossBase(input);
+ Assert.assertEquals("Failed", output.getResult());
+
+ }
+
+
+ /*
+ * test calculateSpanlossBase function in OlmPowerServiceImpl class in case of failure and network object of
+ * TransactionUtils.getNetwork2() object is stored in Opertional Datastore
+ */
+ @Test
+ public void testCalculateSpanlossBase4_4() throws InterruptedException, ExecutionException {
+
+ TransactionUtils.prepareTestDataInStore3(this.getDataBroker(), this.mountPointService);
+ CalculateSpanlossBaseInput input = OlmPowerServiceRpcImplUtil.getCalculateSpanlossBaseInput2();
+ CalculateSpanlossBaseOutput output = this.olmPowerService.calculateSpanlossBase(input);
+ Assert.assertEquals("Failed", output.getResult());
+
+ }
+ /*
+ * test calculateSpanlossCurrent function in OlmPowerServiceImpl class in case of null return
+ */
@Test
public void testCalculateSpanlossCurrent1() {
CalculateSpanlossCurrentInput input = OlmPowerServiceRpcImplUtil.getCalculateSpanlossCurrentInput();
Assert.assertEquals(null, output);
}
+ /*
+ * test calculateSpanlossCurrent function in OlmPowerServiceImpl class in case of null return and the network
+ * object is stored in configuration datastore
+ */
@Test
public void testCalculateSpanlossCurrent2() {
NetworkKey overlayTopologyKey = new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID));
Assert.assertEquals(null, output);
}
+ /*
+ * test calculateSpanlossCurrent function in OlmPowerServiceImpl class in case of null return and the network
+ * object is stored in configuration datastore with different network object stored
+ */
+ @Test
+ public void testCalculateSpanlossCurrent2_2() {
+ NetworkKey overlayTopologyKey = new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID));
+ InstanceIdentifier<Network1> networkIID = InstanceIdentifier.builder(Network.class, overlayTopologyKey)
+ .augmentation(Network1.class)
+ .build();
+ Network1 network = TransactionUtils.getNetwork3();
+ TransactionUtils.writeTransaction(this.getDataBroker(), networkIID, network);
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ LOG.error("Write transaction failed !",e);
+ }
+ CalculateSpanlossCurrentInput input = OlmPowerServiceRpcImplUtil.getCalculateSpanlossCurrentInput();
+ CalculateSpanlossCurrentOutput output = this.olmPowerService.calculateSpanlossCurrent(input);
+ Assert.assertEquals(null, output);
+ }
+
+ /*
+ * test calculateSpanlossCurrent function in OlmPowerServiceImpl class in case of null return and the network
+ * object is stored in configuration datastore
+ */
+ @Test
+ public void testCalculateSpanlossCurrent3() throws InterruptedException, ExecutionException {
+ TransactionUtils.prepareTestDataInStore(this.getDataBroker(), this.mountPointService);
+ CalculateSpanlossCurrentInput input = OlmPowerServiceRpcImplUtil.getCalculateSpanlossCurrentInput();
+ CalculateSpanlossCurrentOutput output = this.olmPowerService.calculateSpanlossCurrent(input);
+ Assert.assertEquals("Failed", output.getResult());
+ }
+
+ /*
+ * test calculateSpanlossCurrent function in OlmPowerServiceImpl class in case of null return and the network
+ * object is stored in configuration datastore
+ */
+ @Test
+ public void testCalculateSpanlossCurrent4() throws InterruptedException, ExecutionException {
+ TransactionUtils.prepareTestDataInStore2(this.getDataBroker(), this.mountPointService);
+ CalculateSpanlossCurrentInput input = OlmPowerServiceRpcImplUtil.getCalculateSpanlossCurrentInput();
+ CalculateSpanlossCurrentOutput output = this.olmPowerService.calculateSpanlossCurrent(input);
+ Assert.assertEquals("Failed", output.getResult());
+ }
+
+ /*
+ * test calculateSpanlossCurrent function in OlmPowerServiceImpl class in case of null return and the network
+ * object is stored in configuration datastore
+ */
+ @Test
+ public void testCalculateSpanlossCurrent5() throws InterruptedException, ExecutionException {
+ TransactionUtils.prepareTestDataInStore3(this.getDataBroker(), this.mountPointService);
+ CalculateSpanlossCurrentInput input = OlmPowerServiceRpcImplUtil.getCalculateSpanlossCurrentInput();
+ CalculateSpanlossCurrentOutput output = this.olmPowerService.calculateSpanlossCurrent(input);
+ Assert.assertEquals("Failed", output.getResult());
+ }
+
+ /*
+ * test calculateSpanlossCurrent function in OlmPowerServiceImpl class in case of null return and the network
+ * object is stored in configuration datastore
+ */
+ @Test
+ public void testCalculateSpanlossCurrent6() throws InterruptedException, ExecutionException {
+ TransactionUtils.prepareTestDataInStore4(this.getDataBroker(), this.mountPointService);
+ CalculateSpanlossCurrentInput input = OlmPowerServiceRpcImplUtil.getCalculateSpanlossCurrentInput();
+ CalculateSpanlossCurrentOutput output = this.olmPowerService.calculateSpanlossCurrent(input);
+ Assert.assertEquals("Failed", output.getResult());
+ }
+
+
+ /*
+ * test servicePowerReset function in OlmPowerServiceImpl class in case of null return
+ */
@Test
public void testServicePowerReset() {
ServicePowerResetInput input = OlmPowerServiceRpcImplUtil.getServicePowerResetInput();
ServicePowerResetOutput output = this.olmPowerService.servicePowerReset(input);
Assert.assertEquals(null, output);
}
+
+
}
import java.util.List;
import java.util.Map;
import java.util.Optional;
-
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.md.sal.binding.api.MountPointService;
import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.transportpce.common.InstanceIdentifiers;
+import org.opendaylight.transportpce.common.NetworkUtils;
+import org.opendaylight.transportpce.common.device.DeviceTransaction;
+import org.opendaylight.transportpce.common.device.DeviceTransactionManagerImpl;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev161014.NodeTypes;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev161014.PmDirection;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev170929.FiberPmd;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev170929.RatioDB;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev170929.State;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.interfaces.grp.Interface;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.interfaces.grp.InterfaceKey;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.OrgOpenroadmDevice;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.layerrate.rev161014.LayerRateEnum;
import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev170929.amplified.link.attributes.amplified.link.SectionElementBuilder;
import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev170929.span.attributes.LinkConcatenation;
import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev170929.span.attributes.LinkConcatenationBuilder;
import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev170929.network.link.oms.attributes.AmplifiedLinkBuilder;
import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev170929.network.link.oms.attributes.SpanBuilder;
import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev170929.OpenroadmLinkType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev161014.CurrentPmlist;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev161014.CurrentPmlistBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev161014.current.pm.LayerRateBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev161014.current.pm.Measurements;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev161014.current.pm.MeasurementsBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev161014.current.pm.ResourceBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev161014.current.pm.measurements.MeasurementBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev161014.currentpmlist.CurrentPm;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev161014.currentpmlist.CurrentPmBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev161014.PmDataType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev161014.PmGranularity;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev161014.PmMeasurement;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev161014.PmNamesEnum;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev161014.pm.measurement.PmParameterNameBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev161014.resource.DeviceBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev161014.resource.ResourceTypeBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev161014.resource.resource.resource.InterfaceBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.types.rev161014.ResourceTypeEnum;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.NetworkId;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.NetworkKey;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.NodeId;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.network.Node;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.network.NodeKey;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.network.node.SupportingNode;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.network.node.SupportingNodeBuilder;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev150608.LinkId;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev150608.Network1;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev150608.Network1Builder;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev150608.network.link.SourceBuilder;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev150608.network.link.SupportingLink;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev150608.network.link.SupportingLinkBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.portmapping.rev170228.Network;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.portmapping.rev170228.network.Nodes;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.portmapping.rev170228.network.NodesBuilder;
import org.opendaylight.yangtools.yang.binding.Augmentation;
import org.opendaylight.yangtools.yang.binding.DataObject;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
public final class TransactionUtils {
return true;
}
+ public static boolean readTransaction(DataBroker dataBroker,InstanceIdentifier instanceIdentifier)
+ throws ExecutionException, InterruptedException {
+ ReadWriteTransaction transaction = dataBroker.newReadWriteTransaction();
+ Object object = transaction.read(LogicalDatastoreType.CONFIGURATION, instanceIdentifier).get();
+ return true;
+ }
+
+ public static boolean writeTransaction2(DataBroker dataBroker, InstanceIdentifier instanceIdentifier,
+ DataObject object) {
+ ReadWriteTransaction transaction = dataBroker.newReadWriteTransaction();
+ transaction.put(LogicalDatastoreType.OPERATIONAL, instanceIdentifier, object, true);
+ transaction.commit();// submit(Timeouts.DATASTORE_WRITE, Timeouts.DEVICE_WRITE_TIMEOUT_UNIT).get();
+ return true;
+ }
+
+
+ public static boolean writeNodeTransaction222(DataBroker dataBroker,
+ KeyedInstanceIdentifier<Node, NodeKey> instanceIdentifier, Node object)
+ throws ExecutionException, InterruptedException {
+ ReadWriteTransaction transaction = dataBroker.newReadWriteTransaction();
+ transaction.put(LogicalDatastoreType.CONFIGURATION, instanceIdentifier, object);
+ transaction.submit();
+ Thread.sleep(500);
+ transaction = dataBroker.newReadWriteTransaction();
+ Node node = transaction.read(LogicalDatastoreType.CONFIGURATION, instanceIdentifier).get().get();
+ // com.google.common.base.Optional<Node> realNode = transaction.read(LogicalDatastoreType.CONFIGURATION,
+ //// instanceIdentifier).get();
+ return true;
+ }
+
+ public static boolean writeNetworkTransaction(DataBroker dataBroker,
+ InstanceIdentifier<Network1> instanceIdentifier, Network1 object)
+ throws ExecutionException, InterruptedException {
+ ReadWriteTransaction transaction = dataBroker.newReadWriteTransaction();
+ transaction.put(LogicalDatastoreType.CONFIGURATION, instanceIdentifier, object);
+ transaction.submit();
+ Thread.sleep(5000);
+ transaction = dataBroker.newReadWriteTransaction();
+ Network1 network1 = transaction.read(LogicalDatastoreType.CONFIGURATION, instanceIdentifier).get().get();
+ // com.google.common.base.Optional<Node> realNode = transaction.read(LogicalDatastoreType.CONFIGURATION,
+ //// instanceIdentifier).get();
+ return true;
+ }
+
//
// public static boolean writeTransaction(DataBroker dataBroker, LogicalDatastoreType logicalDatastoreType,
// InstanceIdentifier instanceIdentifier,
List<SupportingLink> supportingLinks = new ArrayList<>();
SupportingLink supportingLink = new SupportingLinkBuilder().setLinkRef("ref1")
- .setNetworkRef(new NetworkId("net1")).build();
+ .setNetworkRef(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID)).build();
SupportingLink supportingLink2 = new SupportingLinkBuilder().setLinkRef("ref2")
- .setNetworkRef(new NetworkId("net1")).build();
+ .setNetworkRef(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID)).build();
supportingLinks.add(supportingLink);
supportingLinks.add(supportingLink2);
List<Link> links = new ArrayList<>();
Link link1 = new LinkBuilder().setLinkId(new LinkId("link 1"))
.setDestination(new DestinationBuilder().setDestNode(new NodeId("node 1"))
- .setDestTp("dest tp").build())
+ .setDestTp("dest").build())
.setSource(new SourceBuilder().setSourceNode(new NodeId("node 2"))
- .setSourceTp("src tp").build())
+ .setSourceTp("src").build())
.setSupportingLink(supportingLinks)
.addAugmentation(Link1.class, aug1)
.addAugmentation(Link1.class, aug2).build();
Link link2 = new LinkBuilder().setLinkId(new LinkId("link 2"))
.setDestination(new DestinationBuilder().setDestNode(new NodeId("node 3"))
- .setDestTp("dest tp").build())
+ .setDestTp("dest").build())
.setSource(new SourceBuilder().setSourceNode(new NodeId("node 4"))
- .setSourceTp("src tp").build())
+ .setSourceTp("src").build())
+ .setSupportingLink(supportingLinks).build();
+ links.add(link1);
+ links.add(link2);
+ Network1 network = new Network1Builder().setLink(links).build();
+ Optional.of(network);
+ return network;
+ }
+
+ public static Network1 getNetwork3() {
+ List<LinkConcatenation> linkConcentationValues = new ArrayList<>();
+ LinkConcatenation linkConcatenation = new LinkConcatenationBuilder()
+ .setFiberType(LinkConcatenation.FiberType.Truewave)
+ .setPmd(new FiberPmd(BigDecimal.ONE))
+ .setSRLGId(Long.valueOf(1))
+ .setSRLGLength(Long.valueOf(1))
+ .build();
+ LinkConcatenation linkConcatenation2 = new LinkConcatenationBuilder()
+ .setFiberType(LinkConcatenation.FiberType.Truewave)
+ .setPmd(new FiberPmd(BigDecimal.ONE))
+ .setSRLGId(Long.valueOf(1))
+ .setSRLGLength(Long.valueOf(1))
+ .build();
+ linkConcentationValues.add(linkConcatenation);
+ linkConcentationValues.add(linkConcatenation2);
+ List<org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev170929.amplified.link.attributes.AmplifiedLink>
+ amplifiedLinkValues = new ArrayList<>();
+ org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev170929.amplified.link.attributes.AmplifiedLink al = new
+ org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev170929.amplified.link.attributes
+ .AmplifiedLinkBuilder().setSectionElement(new SectionElementBuilder()
+ .setSectionElement(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev170929.amplified.link
+ .attributes.amplified.link.section.element.section.element.SpanBuilder()
+ .setSpan(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev170929.amplified.link
+ .attributes.amplified.link.section.element.section.element.span.SpanBuilder()
+ .setAdministrativeState(State.InService)
+ .setAutoSpanloss(true)
+ .setClfi("clfi")
+ .setEngineeredSpanloss(new RatioDB(BigDecimal.ONE))
+ .setLinkConcatenation(linkConcentationValues)
+ .setSpanlossBase(new RatioDB(BigDecimal.ONE))
+ .setSpanlossCurrent(new RatioDB(BigDecimal.ONE))
+ .build())
+ .build())
+ .build())
+ .setSectionEltNumber(Integer.valueOf(1)).build();
+ org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev170929.amplified.link.attributes.AmplifiedLink al2 = new
+ org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev170929.amplified.link.attributes
+ .AmplifiedLinkBuilder().setSectionElement(new SectionElementBuilder()
+ .setSectionElement(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev170929.amplified.link
+ .attributes.amplified.link.section.element.section.element.SpanBuilder()
+ .setSpan(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev170929.amplified.link
+ .attributes.amplified.link.section.element.section.element.span.SpanBuilder()
+ .setAdministrativeState(State.InService)
+ .setAutoSpanloss(true)
+ .setClfi("clfi")
+ .setEngineeredSpanloss(new RatioDB(BigDecimal.ONE))
+ .setLinkConcatenation(linkConcentationValues)
+ .setSpanlossBase(new RatioDB(BigDecimal.ONE))
+ .setSpanlossCurrent(new RatioDB(BigDecimal.ONE))
+ .build())
+ .build())
+ .build())
+ .setSectionEltNumber(Integer.valueOf(1)).build();
+ amplifiedLinkValues.add(al);
+ amplifiedLinkValues.add(al2);
+ Map<Class<? extends Augmentation<Link>>, Augmentation<Link>> map = Collections.emptyMap();
+ Augmentation<Link> aug1 = new Link1Builder().setAdministrativeGroup(Long.valueOf(123))
+ .setAdministrativeState(State.InService)
+ .setAmplified(true)
+ .setLinkLatency(Long.valueOf(123))
+ .setLinkLength(BigDecimal.valueOf(123))
+ .setLinkType(OpenroadmLinkType.ADDLINK)
+ .setOMSAttributes(new OMSAttributesBuilder()
+ .setAmplifiedLink(new AmplifiedLinkBuilder().setAmplifiedLink(amplifiedLinkValues).build())
+ .setOppositeLink(new LinkId("link 1"))
+ .setSpan(new SpanBuilder().build())
+ .setTEMetric(Long.valueOf(123)).build())
+ .setOperationalState(State.InService).build();
+ Augmentation<Link> aug2 = new Link1Builder().setAdministrativeGroup(Long.valueOf(123))
+ .setAdministrativeState(State.InService)
+ .setAmplified(true)
+ .setLinkLatency(Long.valueOf(123))
+ .setLinkLength(BigDecimal.valueOf(123))
+ .setLinkType(OpenroadmLinkType.EXPRESSLINK)
+ .setOMSAttributes(new OMSAttributesBuilder()
+ .setAmplifiedLink(new AmplifiedLinkBuilder().setAmplifiedLink(amplifiedLinkValues).build())
+ .setOppositeLink(new LinkId("link 1"))
+ .setSpan(new SpanBuilder().build())
+ .setTEMetric(Long.valueOf(123)).build())
+ .setOperationalState(State.InService).build();
+
+ List<SupportingLink> supportingLinks = new ArrayList<>();
+ SupportingLink supportingLink = new SupportingLinkBuilder().setLinkRef("ref1")
+ .setNetworkRef(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID)).build();
+ SupportingLink supportingLink2 = new SupportingLinkBuilder().setLinkRef("ref2")
+ .setNetworkRef(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID)).build();
+ supportingLinks.add(supportingLink);
+ supportingLinks.add(supportingLink2);
+ List<Link> links = new ArrayList<>();
+ Link link1 = new LinkBuilder().setLinkId(new LinkId("link 1"))
+ .setDestination(new DestinationBuilder().setDestNode(new NodeId("node 1"))
+ .setDestTp("dest").build())
+ .setSource(new SourceBuilder().setSourceNode(new NodeId("node 2"))
+ .setSourceTp("src").build())
+ .setSupportingLink(supportingLinks)
+ .addAugmentation(Link1.class, aug1)
+ .addAugmentation(Link1.class, aug2).build();
+
+ Link link2 = new LinkBuilder().setLinkId(new LinkId("link 2"))
+ .setDestination(new DestinationBuilder().setDestNode(new NodeId("node 3"))
+ .setDestTp("dest").build())
+ .setSource(new SourceBuilder().setSourceNode(new NodeId("node 4"))
+ .setSourceTp("src").build())
.setSupportingLink(supportingLinks).build();
links.add(link1);
links.add(link2);
return network;
}
+
public static List<NodeId> getNodeIds() {
List<NodeId> nodes = new ArrayList<>();
NodeId node = new NodeId("node 1");
- NodeId node2 = new NodeId("node 1");
- NodeId node3 = new NodeId("node 1");
- NodeId node4 = new NodeId("node 1");
+ NodeId node2 = new NodeId("node 2");
+ NodeId node3 = new NodeId("node 3");
+ NodeId node4 = new NodeId("node 4");
nodes.add(node);
nodes.add(node2);
nodes.add(node3);
return nodes;
}
- public static void writeNodeTransaction(String nodeId, DataBroker dataBroker, String mappingKey) {
+ public static void writeNodeTransaction(String nodeId, DataBroker dataBroker, String mappingKey)
+ throws ExecutionException, InterruptedException {
InstanceIdentifier<Nodes> nodesIID = InstanceIdentifier.create(Network.class)
.child(Nodes.class, new NodesKey(nodeId));
Nodes nodes = getNodes(nodeId, mappingKey);
writeTransaction(dataBroker, nodesIID, nodes);
}
- public static void writeNodeTransaction2(String nodeId, DataBroker dataBroker, String mappingKey) {
+ public static void writeNodeTransaction2(String nodeId, DataBroker dataBroker, String mappingKey)
+ throws ExecutionException, InterruptedException {
InstanceIdentifier<Nodes> nodesIID = InstanceIdentifier.create(Network.class)
.child(Nodes.class, new NodesKey(nodeId));
Nodes nodes = getNodes2(nodeId, mappingKey);
writeTransaction(dataBroker, nodesIID, nodes);
}
- public static void writeNodeTransaction3(String nodeId, DataBroker dataBroker, String mappingKey) {
+ public static void writeNodeTransaction3(String nodeId, DataBroker dataBroker, String mappingKey)
+ throws ExecutionException, InterruptedException {
InstanceIdentifier<Nodes> nodesIID = InstanceIdentifier.create(Network.class)
.child(Nodes.class, new NodesKey(nodeId));
Nodes nodes = getNodes3(nodeId, mappingKey);
writeTransaction(dataBroker, nodesIID, nodes);
}
+
+ public static <T extends DataObject> void putAndSubmit(DeviceTransactionManagerImpl deviceTxManager,
+ String deviceId, LogicalDatastoreType store, InstanceIdentifier<T> path, T data)
+ throws ExecutionException, InterruptedException {
+ Future<Optional<DeviceTransaction>> deviceTxFuture = deviceTxManager.getDeviceTransaction(deviceId);
+ DeviceTransaction deviceTx = deviceTxFuture.get().get();
+ deviceTx.put(store, path, data);
+ deviceTx.submit(1000, TimeUnit.MILLISECONDS);
+ }
+
+ public static void prepareTestDataInStore(DataBroker dataBroker, MountPointService mountPointService)
+ throws ExecutionException, InterruptedException {
+ NodeId n5 = new NodeId("node 5");
+ SupportingNode sn = new SupportingNodeBuilder().setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
+ .setNodeRef(n5).build();
+ List<SupportingNode> snl = new ArrayList<>();
+ snl.add(sn);
+ Node node = new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608
+ .network.NodeBuilder().setNodeId(n5).setSupportingNode(snl).build();
+ KeyedInstanceIdentifier<Node, NodeKey> mappedNodeII2 =
+ InstanceIdentifiers.OVERLAY_NETWORK_II.child(Node.class, new NodeKey(n5));
+ TransactionUtils.writeTransaction(dataBroker, mappedNodeII2, node);
+ Thread.sleep(500);
+ InstanceIdentifier<Mapping> portMappingIID2 = InstanceIdentifier.builder(
+ org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.portmapping.rev170228.Network.class)
+ .child(Nodes.class, new NodesKey("node 5"))
+ .child(Mapping.class, new MappingKey("dest")).build();
+ Mapping map2 = new MappingBuilder().setLogicalConnectionPoint("point")
+ .setSupportingCircuitPackName("circuit name")
+ .setSupportingOms("oms")
+ .setSupportingOts("ots")
+ .setSupportingPort("port")
+ .withKey(new MappingKey("dest"))
+ .build();
+ TransactionUtils.writeTransaction(dataBroker, portMappingIID2, map2);
+ List<NodeId> nodes = TransactionUtils.getNodeIds();
+ for (int i = 0; i < nodes.size(); i++) {
+ if (i != 0) {
+ sn = new SupportingNodeBuilder().setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
+ .setNodeRef(nodes.get(i - 1)).build();
+ } else {
+ sn = new SupportingNodeBuilder().setNodeRef(n5).setNetworkRef(
+ new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID)).build();
+ }
+ snl = new ArrayList<>();
+ snl.add(sn);
+ node = new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608
+ .network.NodeBuilder().setNodeId(nodes.get(i)).setSupportingNode(snl).build();
+ KeyedInstanceIdentifier<Node, NodeKey> mappedNodeII =
+ InstanceIdentifiers.OVERLAY_NETWORK_II.child(Node.class, new NodeKey(nodes.get(i)));
+ TransactionUtils.writeTransaction(dataBroker, mappedNodeII, node);
+ InstanceIdentifier<Mapping> portMappingIID = InstanceIdentifier.builder(
+ org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.portmapping.rev170228.Network.class)
+ .child(Nodes.class, new NodesKey(nodes.get(i).getValue()))
+ .child(Mapping.class, new MappingKey("src")).build();
+ Mapping map = new MappingBuilder().setLogicalConnectionPoint("point")
+ .setSupportingCircuitPackName("circuit name")
+ .setSupportingOms("oms")
+ .setSupportingOts("ots")
+ .setSupportingPort("port")
+ .withKey(new MappingKey("src"))
+ .build();
+ TransactionUtils.writeTransaction(dataBroker, portMappingIID, map);
+ }
+
+
+ NetworkKey overlayTopologyKey = new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID));
+ InstanceIdentifier<Network1> networkIID = InstanceIdentifier.builder(
+ org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.Network.class,
+ overlayTopologyKey).augmentation(Network1.class).build();
+ Network1 network = TransactionUtils.getNetwork2();
+ TransactionUtils.writeTransaction(dataBroker, networkIID, network);
+
+ InstanceIdentifier<CurrentPmlist> currentPmsIID = InstanceIdentifier.create(CurrentPmlist.class);
+ Measurements m0 = new MeasurementsBuilder()
+ .setMeasurement(new MeasurementBuilder()
+ .setPmParameterName(new PmParameterNameBuilder().setExtension("OpticalPowerOutput")
+ .setType(PmNamesEnum.OpticalPowerOutput).build())
+ .setPmParameterValue(new PmDataType(BigDecimal.ONE))
+ .setPmParameterUnit("unit")
+ .setValidity(PmMeasurement.Validity.Complete)
+ .setLocation(PmMeasurement.Location.NearEnd)
+ .setDirection(PmDirection.Bidirectional)
+ .build()).build();
+ List<Measurements> ll = new ArrayList<>();
+ ll.add(m0);
+ CurrentPm c0 = new CurrentPmBuilder()
+ .setLayerRate(new LayerRateBuilder().setExtension("ext").setType(LayerRateEnum.Layer2).build())
+ .setId("c")
+ .setGranularity(PmGranularity._15min)
+ .setResource(new ResourceBuilder()
+ .setResource(new org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev161014.resource
+ .ResourceBuilder().setResource(new InterfaceBuilder().setInterfaceName("ots").build()).build())
+ .setResourceType(new ResourceTypeBuilder().setType(ResourceTypeEnum.Interface).setExtension("ext")
+ .build()).setDevice(new DeviceBuilder().setNodeId("node 1").build()).build())
+ .setRetrievalTime(new DateAndTime("2019-01-01T12:00:00.456449+06:00"))
+ .setMeasurements(ll)
+ .build();
+ List<CurrentPm> cl = new ArrayList<>();
+ cl.add(c0);
+ CurrentPmlist l0 = new CurrentPmlistBuilder().setCurrentPm(cl).build();
+ TransactionUtils.putAndSubmit(new DeviceTransactionManagerImpl(mountPointService, 3000),
+ "node 1", LogicalDatastoreType.OPERATIONAL, currentPmsIID, l0);
+ Measurements m2 = new MeasurementsBuilder()
+ .setMeasurement(new MeasurementBuilder()
+ .setPmParameterName(new PmParameterNameBuilder().setExtension("OpticalPowerInput")
+ .setType(PmNamesEnum.OpticalPowerInput).build())
+ .setPmParameterValue(new PmDataType(BigDecimal.ONE))
+ .setPmParameterUnit("unit")
+ .setValidity(PmMeasurement.Validity.Complete)
+ .setLocation(PmMeasurement.Location.NearEnd)
+ .setDirection(PmDirection.Bidirectional)
+ .build()).build();
+ List<Measurements> ll2 = new ArrayList<>();
+ ll2.add(m0);
+ ll2.add(m2);
+ CurrentPm c2 = new CurrentPmBuilder()
+ .setLayerRate(new LayerRateBuilder().setExtension("ext").setType(LayerRateEnum.Layer2).build())
+ .setId("c2")
+ .setGranularity(PmGranularity._15min)
+ .setResource(new ResourceBuilder()
+ .setResource(new org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev161014.resource
+ .ResourceBuilder().setResource(new InterfaceBuilder().setInterfaceName("ots").build()).build())
+ .setResourceType(new ResourceTypeBuilder().setType(ResourceTypeEnum.Interface).setExtension("ext")
+ .build()).setDevice(new DeviceBuilder().setNodeId("node 5").build()).build())
+ .setRetrievalTime(new DateAndTime("2019-01-01T12:00:00.456449+06:00"))
+ .setMeasurements(ll2)
+ .build();
+ List<CurrentPm> cl2 = new ArrayList<>();
+ cl2.add(c2);
+ CurrentPmlist l2 = new CurrentPmlistBuilder().setCurrentPm(cl2).build();
+ InstanceIdentifier<CurrentPmlist> currentPmsIID2 = InstanceIdentifier.create(CurrentPmlist.class);
+ TransactionUtils.putAndSubmit(new DeviceTransactionManagerImpl(mountPointService, 3000),
+ "node 5", LogicalDatastoreType.OPERATIONAL, currentPmsIID2, l2);
+ Thread.sleep(1000);
+ }
+
+
+ public static void prepareTestDataInStore2(DataBroker dataBroker, MountPointService mountPointService)
+ throws ExecutionException, InterruptedException {
+ List<SupportingNode> snl;
+ NodeId n5 = new NodeId("node 5");
+ SupportingNode sn = new SupportingNodeBuilder().setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
+ .setNodeRef(n5).build();
+ snl = new ArrayList<>();
+ snl.add(sn);
+ Node n0 = new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608
+ .network.NodeBuilder().setNodeId(n5).setSupportingNode(snl).build();
+ KeyedInstanceIdentifier<Node, NodeKey> mappedNodeII2 =
+ InstanceIdentifiers.OVERLAY_NETWORK_II.child(Node.class, new NodeKey(n5));
+ TransactionUtils.writeTransaction(dataBroker, mappedNodeII2, n0);
+ Thread.sleep(500);
+ InstanceIdentifier<Mapping> portMappingIID2 = InstanceIdentifier.builder(
+ org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.portmapping.rev170228.Network.class)
+ .child(Nodes.class, new NodesKey("node 5"))
+ .child(Mapping.class, new MappingKey("dest")).build();
+ Mapping map2 = new MappingBuilder().setLogicalConnectionPoint("point")
+ .setSupportingCircuitPackName("circuit name")
+ .setSupportingOms("oms")
+ .setSupportingOts("ots")
+ .setSupportingPort("port")
+ .withKey(new MappingKey("dest"))
+ .build();
+ TransactionUtils.writeTransaction(dataBroker, portMappingIID2, map2);
+ List<NodeId> nodes = TransactionUtils.getNodeIds();
+ for (int i = 0; i < nodes.size(); i++) {
+ if (i != 0) {
+ sn = new SupportingNodeBuilder().setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
+ .setNodeRef(nodes.get(i - 1)).build();
+ } else {
+ sn = new SupportingNodeBuilder().setNodeRef(n5).setNetworkRef(
+ new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID)).build();
+ }
+ snl = new ArrayList<>();
+ snl.add(sn);
+ n0 = new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608
+ .network.NodeBuilder().setNodeId(nodes.get(i)).setSupportingNode(snl).build();
+ KeyedInstanceIdentifier<Node, NodeKey> mappedNodeII =
+ InstanceIdentifiers.OVERLAY_NETWORK_II.child(Node.class, new NodeKey(nodes.get(i)));
+ TransactionUtils.writeTransaction(dataBroker, mappedNodeII, n0);
+ InstanceIdentifier<Mapping> portMappingIID = InstanceIdentifier.builder(
+ org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.portmapping.rev170228.Network.class)
+ .child(Nodes.class, new NodesKey(nodes.get(i).getValue()))
+ .child(Mapping.class, new MappingKey("src")).build();
+ Mapping map = new MappingBuilder().setLogicalConnectionPoint("point")
+ .setSupportingCircuitPackName("circuit name")
+ .setSupportingOms("oms")
+ .setSupportingOts("ots")
+ .setSupportingPort("port")
+ .withKey(new MappingKey("src"))
+ .build();
+ TransactionUtils.writeTransaction(dataBroker, portMappingIID, map);
+
+ }
+
+
+ NetworkKey overlayTopologyKey = new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID));
+ InstanceIdentifier<Network1> networkIID = InstanceIdentifier.builder(
+ org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.Network.class,
+ overlayTopologyKey).augmentation(Network1.class).build();
+ Network1 network = TransactionUtils.getNetwork2();
+ TransactionUtils.writeTransaction(dataBroker, networkIID, network);
+
+ InstanceIdentifier<CurrentPmlist> currentPmsIID = InstanceIdentifier.create(CurrentPmlist.class);
+ Measurements m0 = new MeasurementsBuilder()
+ .setMeasurement(new MeasurementBuilder()
+ .setPmParameterName(new PmParameterNameBuilder().setExtension("OpticalPowerOutput")
+ .setType(PmNamesEnum.OpticalPowerOutput).build())
+ .setPmParameterValue(new PmDataType(BigDecimal.TEN))
+ .setPmParameterUnit("unit")
+ .setValidity(PmMeasurement.Validity.Complete)
+ .setLocation(PmMeasurement.Location.NearEnd)
+ .setDirection(PmDirection.Bidirectional)
+ .build()).build();
+ List<Measurements> ll = new ArrayList<>();
+ ll.add(m0);
+ CurrentPm c0 = new CurrentPmBuilder()
+ .setLayerRate(new LayerRateBuilder().setExtension("ext").setType(LayerRateEnum.Layer2).build())
+ .setId("c")
+ .setGranularity(PmGranularity._15min)
+ .setResource(new ResourceBuilder()
+ .setResource(new org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev161014.resource
+ .ResourceBuilder().setResource(new InterfaceBuilder().setInterfaceName("ots").build()).build())
+ .setResourceType(new ResourceTypeBuilder().setType(ResourceTypeEnum.Interface).setExtension("ext")
+ .build()).setDevice(new DeviceBuilder().setNodeId("node 1").build()).build())
+ .setRetrievalTime(new DateAndTime("2019-01-01T12:00:00.456449+06:00"))
+ .setMeasurements(ll)
+ .build();
+ List<CurrentPm> cl = new ArrayList<>();
+ cl.add(c0);
+ CurrentPmlist l0 = new CurrentPmlistBuilder().setCurrentPm(cl).build();
+ TransactionUtils.putAndSubmit(new DeviceTransactionManagerImpl(mountPointService, 3000),
+ "node 1", LogicalDatastoreType.OPERATIONAL, currentPmsIID, l0);
+
+ Measurements m2 = new MeasurementsBuilder()
+ .setMeasurement(new MeasurementBuilder()
+ .setPmParameterName(new PmParameterNameBuilder().setExtension("OpticalPowerInput")
+ .setType(PmNamesEnum.OpticalPowerInput).build())
+ .setPmParameterValue(new PmDataType(BigDecimal.ONE))
+ .setPmParameterUnit("unit")
+ .setValidity(PmMeasurement.Validity.Complete)
+ .setLocation(PmMeasurement.Location.NearEnd)
+ .setDirection(PmDirection.Bidirectional)
+ .build()).build();
+ List<Measurements> ll2 = new ArrayList<>();
+ ll2.add(m0);
+ ll2.add(m2);
+ CurrentPm c2 = new CurrentPmBuilder()
+ .setLayerRate(new LayerRateBuilder().setExtension("ext").setType(LayerRateEnum.Layer2).build())
+ .setId("c2")
+ .setGranularity(PmGranularity._15min)
+ .setResource(new ResourceBuilder()
+ .setResource(new org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev161014.resource
+ .ResourceBuilder().setResource(new InterfaceBuilder().setInterfaceName("ots").build()).build())
+ .setResourceType(new ResourceTypeBuilder().setType(ResourceTypeEnum.Interface).setExtension("ext")
+ .build()).setDevice(new DeviceBuilder().setNodeId("node 5").build()).build())
+ .setRetrievalTime(new DateAndTime("2019-01-01T12:00:00.456449+06:00"))
+ .setMeasurements(ll2)
+ .build();
+ List<CurrentPm> cl2 = new ArrayList<>();
+ cl2.add(c2);
+ CurrentPmlist l2 = new CurrentPmlistBuilder().setCurrentPm(cl2).build();
+ InstanceIdentifier<CurrentPmlist> currentPmsIID2 = InstanceIdentifier.create(CurrentPmlist.class);
+ TransactionUtils.putAndSubmit(new DeviceTransactionManagerImpl(mountPointService, 3000),
+ "node 5", LogicalDatastoreType.OPERATIONAL, currentPmsIID2, l2);
+
+ Thread.sleep(1000);
+ }
+
+ public static void prepareTestDataInStore3(DataBroker dataBroker, MountPointService mountPointService)
+ throws ExecutionException, InterruptedException {
+ List<SupportingNode> snl;
+ NodeId n5 = new NodeId("node 5");
+ SupportingNode sn = new SupportingNodeBuilder().setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
+ .setNodeRef(n5).build();
+ snl = new ArrayList<>();
+ snl.add(sn);
+ Node n0 = new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608
+ .network.NodeBuilder().setNodeId(n5).setSupportingNode(snl).build();
+ KeyedInstanceIdentifier<Node, NodeKey> mappedNodeII2 =
+ InstanceIdentifiers.OVERLAY_NETWORK_II.child(Node.class, new NodeKey(n5));
+ TransactionUtils.writeTransaction(dataBroker, mappedNodeII2, n0);
+ Thread.sleep(500);
+ InstanceIdentifier<Mapping> portMappingIID2 = InstanceIdentifier.builder(
+ org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.portmapping.rev170228.Network.class)
+ .child(Nodes.class, new NodesKey("node 5"))
+ .child(Mapping.class, new MappingKey("dest")).build();
+ Mapping map2 = new MappingBuilder().setLogicalConnectionPoint("point")
+ .setSupportingCircuitPackName("circuit name")
+ .setSupportingOms("oms")
+ .setSupportingOts("ots")
+ .setSupportingPort("port")
+ .withKey(new MappingKey("dest"))
+ .build();
+ TransactionUtils.writeTransaction(dataBroker, portMappingIID2, map2);
+ List<NodeId> nodes = TransactionUtils.getNodeIds();
+ for (int i = 0; i < nodes.size(); i++) {
+ if (i != 0) {
+ sn = new SupportingNodeBuilder().setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
+ .setNodeRef(nodes.get(i - 1)).build();
+ } else {
+ sn = new SupportingNodeBuilder().setNodeRef(n5).setNetworkRef(
+ new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID)).build();
+ }
+ snl = new ArrayList<>();
+ snl.add(sn);
+ n0 = new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608
+ .network.NodeBuilder().setNodeId(nodes.get(i)).setSupportingNode(snl).build();
+ KeyedInstanceIdentifier<Node, NodeKey> mappedNodeII =
+ InstanceIdentifiers.OVERLAY_NETWORK_II.child(Node.class, new NodeKey(nodes.get(i)));
+ TransactionUtils.writeTransaction(dataBroker, mappedNodeII, n0);
+
+ InstanceIdentifier<Mapping> portMappingIID = InstanceIdentifier.builder(
+ org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.portmapping.rev170228.Network.class)
+ .child(Nodes.class, new NodesKey(nodes.get(i).getValue()))
+ .child(Mapping.class, new MappingKey("src")).build();
+ Mapping map = new MappingBuilder().setLogicalConnectionPoint("point")
+ .setSupportingCircuitPackName("circuit name")
+ .setSupportingOms("oms")
+ .setSupportingOts("ots")
+ .setSupportingPort("port")
+ .withKey(new MappingKey("src"))
+ .build();
+ TransactionUtils.writeTransaction(dataBroker, portMappingIID, map);
+
+ }
+
+ NetworkKey overlayTopologyKey = new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID));
+ InstanceIdentifier<Network1> networkIID = InstanceIdentifier.builder(
+ org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.Network.class,
+ overlayTopologyKey)
+ .augmentation(Network1.class)
+ .build();
+ Network1 network = TransactionUtils.getNetwork2();
+ TransactionUtils.writeTransaction(dataBroker, networkIID, network);
+
+ InstanceIdentifier<CurrentPmlist> currentPmsIID = InstanceIdentifier.create(CurrentPmlist.class);
+ Measurements m0 = new MeasurementsBuilder()
+ .setMeasurement(new MeasurementBuilder()
+ .setPmParameterName(new PmParameterNameBuilder().setExtension("OpticalPowerOutput")
+ .setType(PmNamesEnum.OpticalPowerOutput).build())
+ .setPmParameterValue(new PmDataType(new BigDecimal(30)))
+ .setPmParameterUnit("unit")
+ .setValidity(PmMeasurement.Validity.Complete)
+ .setLocation(PmMeasurement.Location.NearEnd)
+ .setDirection(PmDirection.Bidirectional)
+ .build()).build();
+ List<Measurements> ll = new ArrayList<>();
+ ll.add(m0);
+ CurrentPm c0 = new CurrentPmBuilder()
+ .setLayerRate(new LayerRateBuilder().setExtension("ext").setType(LayerRateEnum.Layer2).build())
+ .setId("c")
+ .setGranularity(PmGranularity._15min)
+ .setResource(new ResourceBuilder()
+ .setResource(new org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev161014.resource
+ .ResourceBuilder().setResource(new InterfaceBuilder().setInterfaceName("ots").build()).build())
+ .setResourceType(new ResourceTypeBuilder().setType(ResourceTypeEnum.Interface).setExtension("ext")
+ .build()).setDevice(new DeviceBuilder().setNodeId("node 1").build()).build())
+ .setRetrievalTime(new DateAndTime("2019-01-01T12:00:00.456449+06:00"))
+ .setMeasurements(ll)
+ .build();
+ List<CurrentPm> cl = new ArrayList<>();
+ cl.add(c0);
+ CurrentPmlist l0 = new CurrentPmlistBuilder().setCurrentPm(cl).build();
+ TransactionUtils.putAndSubmit(new DeviceTransactionManagerImpl(mountPointService, 3000),
+ "node 1", LogicalDatastoreType.OPERATIONAL, currentPmsIID, l0);
+ Measurements m2 = new MeasurementsBuilder()
+ .setMeasurement(new MeasurementBuilder()
+ .setPmParameterName(new PmParameterNameBuilder().setExtension("OpticalPowerInput")
+ .setType(PmNamesEnum.OpticalPowerInput).build())
+ .setPmParameterValue(new PmDataType(BigDecimal.ONE))
+ .setPmParameterUnit("unit")
+ .setValidity(PmMeasurement.Validity.Complete)
+ .setLocation(PmMeasurement.Location.NearEnd)
+ .setDirection(PmDirection.Bidirectional)
+ .build()).build();
+ List<Measurements> ll2 = new ArrayList<>();
+ ll2.add(m0);
+ ll2.add(m2);
+ CurrentPm c2 = new CurrentPmBuilder()
+ .setLayerRate(new LayerRateBuilder().setExtension("ext").setType(LayerRateEnum.Layer2).build())
+ .setId("c2")
+ .setGranularity(PmGranularity._15min)
+ .setResource(new ResourceBuilder()
+ .setResource(new org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev161014.resource
+ .ResourceBuilder().setResource(new InterfaceBuilder().setInterfaceName("ots").build()).build())
+ .setResourceType(new ResourceTypeBuilder().setType(ResourceTypeEnum.Interface).setExtension("ext")
+ .build())
+ .setDevice(new DeviceBuilder().setNodeId("node 5").build()).build())
+ .setRetrievalTime(new DateAndTime("2019-01-01T12:00:00.456449+06:00"))
+ .setMeasurements(ll2)
+ .build();
+ List<CurrentPm> cl2 = new ArrayList<>();
+ cl2.add(c2);
+ CurrentPmlist l2 = new CurrentPmlistBuilder().setCurrentPm(cl2).build();
+ InstanceIdentifier<CurrentPmlist> currentPmsIID2 = InstanceIdentifier.create(CurrentPmlist.class);
+ TransactionUtils.putAndSubmit(new DeviceTransactionManagerImpl(mountPointService, 3000),
+ "node 5", LogicalDatastoreType.OPERATIONAL, currentPmsIID2, l2);
+
+ Thread.sleep(1000);
+ }
+
+ public static void prepareTestDataInStore4(DataBroker dataBroker, MountPointService mountPointService)
+ throws ExecutionException, InterruptedException {
+ List<SupportingNode> snl;
+ NodeId n5 = new NodeId("node 5");
+ SupportingNode sn = new SupportingNodeBuilder().setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
+ .setNodeRef(n5).build();
+ snl = new ArrayList<>();
+ snl.add(sn);
+ Node n0 = new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608
+ .network.NodeBuilder().setNodeId(n5).setSupportingNode(snl).build();
+ KeyedInstanceIdentifier<Node, NodeKey> mappedNodeII2 =
+ InstanceIdentifiers.OVERLAY_NETWORK_II.child(Node.class, new NodeKey(n5));
+ TransactionUtils.writeTransaction(dataBroker, mappedNodeII2, n0);
+ Thread.sleep(500);
+ InstanceIdentifier<Mapping> portMappingIID2 = InstanceIdentifier.builder(
+ org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.portmapping.rev170228.Network.class)
+ .child(Nodes.class, new NodesKey("node 5"))
+ .child(Mapping.class, new MappingKey("dest")).build();
+ Mapping map2 = new MappingBuilder().setLogicalConnectionPoint("point")
+ .setSupportingCircuitPackName("circuit name")
+ .setSupportingOms("oms")
+ .setSupportingOts("ots")
+ .setSupportingPort("port")
+ .withKey(new MappingKey("dest"))
+ .build();
+ TransactionUtils.writeTransaction(dataBroker, portMappingIID2, map2);
+ List<NodeId> nodes = TransactionUtils.getNodeIds();
+ for (int i = 0; i < nodes.size(); i++) {
+ if (i != 0) {
+ sn = new SupportingNodeBuilder().setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
+ .setNodeRef(nodes.get(i - 1)).build();
+ } else {
+ sn = new SupportingNodeBuilder().setNodeRef(n5).setNetworkRef(
+ new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID)).build();
+ }
+ snl = new ArrayList<>();
+ snl.add(sn);
+ n0 = new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608
+ .network.NodeBuilder().setNodeId(nodes.get(i)).setSupportingNode(snl).build();
+ KeyedInstanceIdentifier<Node, NodeKey> mappedNodeII =
+ InstanceIdentifiers.OVERLAY_NETWORK_II.child(Node.class, new NodeKey(nodes.get(i)));
+ TransactionUtils.writeTransaction(dataBroker, mappedNodeII, n0);
+
+ InstanceIdentifier<Mapping> portMappingIID = InstanceIdentifier.builder(
+ org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.portmapping.rev170228.Network.class)
+ .child(Nodes.class, new NodesKey(nodes.get(i).getValue()))
+ .child(Mapping.class, new MappingKey("src")).build();
+ Mapping map = new MappingBuilder().setLogicalConnectionPoint("point")
+ .setSupportingCircuitPackName("circuit name")
+ .setSupportingOms("oms")
+ .setSupportingOts("ots")
+ .setSupportingPort("port")
+ .withKey(new MappingKey("src"))
+ .build();
+ TransactionUtils.writeTransaction(dataBroker, portMappingIID, map);
+
+ }
+
+ NetworkKey overlayTopologyKey = new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID));
+ InstanceIdentifier<Network1> networkIID = InstanceIdentifier.builder(
+ org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.Network.class,
+ overlayTopologyKey).augmentation(Network1.class).build();
+ Network1 network = TransactionUtils.getNetwork2();
+ TransactionUtils.writeTransaction(dataBroker, networkIID, network);
+
+ Measurements m0 = new MeasurementsBuilder()
+ .setMeasurement(new MeasurementBuilder()
+ .setPmParameterName(new PmParameterNameBuilder().setExtension("OpticalPowerOutput")
+ .setType(PmNamesEnum.OpticalPowerOutput).build())
+ .setPmParameterValue(new PmDataType(BigDecimal.TEN))
+ .setPmParameterUnit("unit")
+ .setValidity(PmMeasurement.Validity.Complete)
+ .setLocation(PmMeasurement.Location.NearEnd)
+ .setDirection(PmDirection.Bidirectional)
+ .build()).build();
+ List<Measurements> ll = new ArrayList<>();
+ ll.add(m0);
+ CurrentPm c0 = new CurrentPmBuilder()
+ .setLayerRate(new LayerRateBuilder().setExtension("ext").setType(LayerRateEnum.Layer2).build())
+ .setId("c")
+ .setGranularity(PmGranularity._15min)
+ .setResource(new ResourceBuilder()
+ .setResource(new org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev161014.resource
+ .ResourceBuilder().setResource(new InterfaceBuilder().setInterfaceName("ots").build()).build())
+ .setResourceType(new ResourceTypeBuilder().setType(ResourceTypeEnum.Interface).setExtension("ext")
+ .build()).setDevice(new DeviceBuilder().setNodeId("node 1").build()).build())
+ .setRetrievalTime(new DateAndTime("2019-01-01T12:00:00.456449+06:00"))
+ .setMeasurements(ll)
+ .build();
+ List<CurrentPm> cl = new ArrayList<>();
+ cl.add(c0);
+ CurrentPmlist l0 = new CurrentPmlistBuilder().setCurrentPm(cl).build();
+ InstanceIdentifier<CurrentPmlist> currentPmsIID = InstanceIdentifier.create(CurrentPmlist.class);
+ TransactionUtils.putAndSubmit(new DeviceTransactionManagerImpl(mountPointService, 3000),
+ "node 1", LogicalDatastoreType.OPERATIONAL, currentPmsIID, l0);
+ Measurements m2 = new MeasurementsBuilder()
+ .setMeasurement(new MeasurementBuilder()
+ .setPmParameterName(new PmParameterNameBuilder().setExtension("OpticalPowerInput")
+ .setType(PmNamesEnum.OpticalPowerInput).build())
+ .setPmParameterValue(new PmDataType(BigDecimal.ONE))
+ .setPmParameterUnit("unit")
+ .setValidity(PmMeasurement.Validity.Complete)
+ .setLocation(PmMeasurement.Location.NearEnd)
+ .setDirection(PmDirection.Bidirectional)
+ .build()).build();
+ List<Measurements> ll2 = new ArrayList<>();
+ ll2.add(m0);
+ ll2.add(m2);
+ CurrentPm c2 = new CurrentPmBuilder()
+ .setLayerRate(new LayerRateBuilder().setExtension("ext").setType(LayerRateEnum.Layer2).build())
+ .setId("c2")
+ .setGranularity(PmGranularity._15min)
+ .setResource(new ResourceBuilder()
+ .setResource(new org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev161014.resource
+ .ResourceBuilder().setResource(new InterfaceBuilder().setInterfaceName("ots").build()).build())
+ .setResourceType(new ResourceTypeBuilder().setType(ResourceTypeEnum.Interface).setExtension("ext")
+ .build()).setDevice(new DeviceBuilder().setNodeId("node 5").build()).build())
+ .setRetrievalTime(new DateAndTime("2019-01-01T12:00:00.456449+06:00"))
+ .setMeasurements(ll2)
+ .build();
+ List<CurrentPm> cl2 = new ArrayList<>();
+ cl2.add(c2);
+ CurrentPmlist l2 = new CurrentPmlistBuilder().setCurrentPm(cl2).build();
+ InstanceIdentifier<CurrentPmlist> currentPmsIID2 = InstanceIdentifier.create(CurrentPmlist.class);
+ TransactionUtils.putAndSubmit(new DeviceTransactionManagerImpl(mountPointService, 3000),
+ "node 5", LogicalDatastoreType.OPERATIONAL, currentPmsIID2, l2);
+
+ InstanceIdentifier<Interface> interfacesIID = InstanceIdentifier.create(OrgOpenroadmDevice.class)
+ .child(Interface.class, new InterfaceKey("ots"));
+ Interface i0 = new org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.interfaces.grp
+ .InterfaceBuilder()
+ .setName("ots")
+ .build();
+
+ TransactionUtils.putAndSubmit(new DeviceTransactionManagerImpl(mountPointService, 3000),
+ "node 1", LogicalDatastoreType.CONFIGURATION, interfacesIID, i0);
+
+ Thread.sleep(1000);
+ }
+
}
import org.junit.Before;
import org.junit.Test;
import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService;
-import org.opendaylight.transportpce.pce.utils.DataStoreUtils;
-import org.opendaylight.transportpce.pce.utils.DataUtils;
-import org.opendaylight.transportpce.pce.utils.NotificationPublishServiceMock2;
-import org.opendaylight.transportpce.pce.utils.PceTestData;
-import org.opendaylight.transportpce.pce.utils.PceTestUtils;
+import org.opendaylight.transportpce.pce.utils.*;
import org.opendaylight.transportpce.test.AbstractTest;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev170426.CancelResourceReserveInput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev170426.CancelResourceReserveOutput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev170426.PathComputationRequestInput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev170426.PathComputationRequestOutput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev170426.*;
public class PathComputationServiceImplTest extends AbstractTest {
}
@Test
- public void dummyTest() {
+ public void dummyTest(){
pathComputationServiceImpl.init();
pathComputationServiceImpl.close();
}
@Test
- public void testCancelResourceReserve() {
+ public void testCancelResourceReserve(){
CancelResourceReserveInput input = DataUtils.getCancelResourceReserveInput();
CancelResourceReserveOutput output = pathComputationServiceImpl.cancelResourceReserve(input);
Assert.assertEquals("200", output.getConfigurationResponseCommon().getResponseCode());
Assert.assertEquals("Yes", output.getConfigurationResponseCommon().getAckFinalIndicator());
- Assert.assertEquals(input.getServiceHandlerHeader().getRequestId(),
- output.getConfigurationResponseCommon().getRequestId());
- Assert.assertEquals("Cancelling ResourceReserve failed !",
- output.getConfigurationResponseCommon().getResponseMessage());
+ Assert.assertEquals(input.getServiceHandlerHeader().getRequestId(), output.getConfigurationResponseCommon().getRequestId());
+ Assert.assertEquals("Cancelling ResourceReserve failed !", output.getConfigurationResponseCommon().getResponseMessage());
}
@Test
- public void testCancelResourceReserve2() {
+ public void testCancelResourceReserve2(){
notificationPublishService = new NotificationPublishServiceMock2();
pathComputationServiceImpl = new PathComputationServiceImpl(this.getDataBroker(), notificationPublishService);
CancelResourceReserveInput input = DataUtils.getCancelResourceReserveInput();
CancelResourceReserveOutput output = pathComputationServiceImpl.cancelResourceReserve(input);
Assert.assertEquals("200", output.getConfigurationResponseCommon().getResponseCode());
Assert.assertEquals("Yes", output.getConfigurationResponseCommon().getAckFinalIndicator());
- Assert.assertEquals(input.getServiceHandlerHeader().getRequestId(),
- output.getConfigurationResponseCommon().getRequestId());
- Assert.assertEquals("Cancelling ResourceReserve failed !",
- output.getConfigurationResponseCommon().getResponseMessage());
+ Assert.assertEquals(input.getServiceHandlerHeader().getRequestId(), output.getConfigurationResponseCommon().getRequestId());
+ Assert.assertEquals("Cancelling ResourceReserve failed !", output.getConfigurationResponseCommon().getResponseMessage());
}
@Test
public void testPathComputationRequest() throws ExecutionException, InterruptedException {
- PceTestUtils.writeTopologyIntoDataStore(this.getDataBroker(), this.getDataStoreContextUtil(),
- "topologyData/NW-for-test-5-4.xml");
+ PceTestUtils.writeTopologyIntoDataStore(this.getDataBroker(), this.getDataStoreContextUtil()
+ , "topologyData/NW-for-test-5-4.xml");
PathComputationRequestInput input = PceTestData.getEmptyPCERequest();
PathComputationRequestOutput output = pathComputationServiceImpl.pathComputationRequest(input);
Assert.assertEquals("Path not calculated", output.getConfigurationResponseCommon().getResponseCode());
@Test
public void testPathComputationRequest2() throws ExecutionException, InterruptedException {
- PceTestUtils.writeTopologyIntoDataStore(this.getDataBroker(), this.getDataStoreContextUtil(),
- "topologyData/NW-for-test-5-4.xml");
+ PceTestUtils.writeTopologyIntoDataStore(this.getDataBroker(), this.getDataStoreContextUtil()
+ , "topologyData/NW-for-test-5-4.xml");
PathComputationRequestInput input = PceTestData.getPCE_test1_request_54();
PathComputationRequestOutput output = pathComputationServiceImpl.pathComputationRequest(input);
Assert.assertEquals("200", output.getConfigurationResponseCommon().getResponseCode());
public void testPathComputationRequest21() throws ExecutionException, InterruptedException {
notificationPublishService = new NotificationPublishServiceMock2();
pathComputationServiceImpl = new PathComputationServiceImpl(this.getDataBroker(), notificationPublishService);
- PceTestUtils.writeTopologyIntoDataStore(this.getDataBroker(), this.getDataStoreContextUtil(),
- "topologyData/NW-for-test-5-4.xml");
+ PceTestUtils.writeTopologyIntoDataStore(this.getDataBroker(), this.getDataStoreContextUtil()
+ , "topologyData/NW-for-test-5-4.xml");
PathComputationRequestInput input = PceTestData.getPCE_test1_request_54();
PathComputationRequestOutput output = pathComputationServiceImpl.pathComputationRequest(input);
Assert.assertEquals("200", output.getConfigurationResponseCommon().getResponseCode());
Assert.assertEquals("500", output.getConfigurationResponseCommon().getResponseCode());
}
+ @Test
+ public void testPathComputationRequest23() throws ExecutionException, InterruptedException {
+ DataStoreUtils.writeTopologyIntoDataStore(this.getDataBroker(), DataStoreUtils.getNetwork1());
+ PathComputationRequestInput input = PceTestData.getPCE_test1_request_54();
+ PathComputationRequestOutput output = pathComputationServiceImpl.pathComputationRequest(input);
+ Assert.assertEquals("500", output.getConfigurationResponseCommon().getResponseCode());
+ }
+
+ @Test
+ public void testPathComputationRequest24() throws ExecutionException, InterruptedException {
+ DataStoreUtils.writeTopologyIntoDataStore(this.getDataBroker(), DataStoreUtils.getNetwork2());
+ PathComputationRequestInput input = PceTestData.getPCE_test1_request_54();
+ PathComputationRequestOutput output = pathComputationServiceImpl.pathComputationRequest(input);
+ Assert.assertEquals("500", output.getConfigurationResponseCommon().getResponseCode());
+ }
+
+ /**
+ *
+ * @throws ExecutionException
+ * @throws InterruptedException
+ */
+ @Test
+ public void testPathComputationRequest25() throws ExecutionException, InterruptedException {
+ DataStoreUtils.writeTopologyIntoDataStore(this.getDataBroker(), DataStoreUtils.getNetwork3());
+ PathComputationRequestInput input = PceTestData.getPCE_test1_request_54();
+ PathComputationRequestOutput output = pathComputationServiceImpl.pathComputationRequest(input);
+ Assert.assertEquals("500", output.getConfigurationResponseCommon().getResponseCode());
+ }
+
+// @Test
+// public void testPathComputationRequest26() throws ExecutionException, InterruptedException {
+// DataStoreUtils.writeTopologyIntoDataStore(this.getDataBroker(), DataStoreUtils.getNetwork4());
+// PathComputationRequestInput input = PceTestData.getPCE_test1_request_54();
+// PathComputationRequestOutput output = pathComputationServiceImpl.pathComputationRequest(input);
+// Assert.assertEquals("500", output.getConfigurationResponseCommon().getResponseCode());
+// }
+
@Test
public void testPathComputationRequest3() throws ExecutionException, InterruptedException {
- PceTestUtils.writeTopologyIntoDataStore(this.getDataBroker(), this.getDataStoreContextUtil(),
- "topologyData/NW-for-test-5-4.xml");
+ PceTestUtils.writeTopologyIntoDataStore(this.getDataBroker(), this.getDataStoreContextUtil()
+ , "topologyData/NW-for-test-5-4.xml");
PathComputationRequestInput input = PceTestData.getPCE_test2_request_54();
PathComputationRequestOutput output = pathComputationServiceImpl.pathComputationRequest(input);
Assert.assertEquals("200", output.getConfigurationResponseCommon().getResponseCode());
@Test
public void testPathComputationRequest4() throws ExecutionException, InterruptedException {
- PceTestUtils.writeTopologyIntoDataStore(this.getDataBroker(), this.getDataStoreContextUtil(),
- "topologyData/NW-for-test-5-4.xml");
+ PceTestUtils.writeTopologyIntoDataStore(this.getDataBroker(), this.getDataStoreContextUtil()
+ , "topologyData/NW-for-test-5-4.xml");
PathComputationRequestInput input = PceTestData.getPCE_test3_request_54();
PathComputationRequestOutput output = pathComputationServiceImpl.pathComputationRequest(input);
Assert.assertEquals("200", output.getConfigurationResponseCommon().getResponseCode());
@Test
public void testPathComputationRequest5() throws ExecutionException, InterruptedException {
- PceTestUtils.writeTopologyIntoDataStore(this.getDataBroker(), this.getDataStoreContextUtil(),
- "topologyData/NW-for-test-5-4.xml");
+ PceTestUtils.writeTopologyIntoDataStore(this.getDataBroker(), this.getDataStoreContextUtil()
+ , "topologyData/NW-for-test-5-4.xml");
PathComputationRequestInput input = PceTestData.getPCERequest();
PathComputationRequestOutput output = pathComputationServiceImpl.pathComputationRequest(input);
Assert.assertEquals("200", output.getConfigurationResponseCommon().getResponseCode());
@Test
public void testPathComputationRequest6() throws ExecutionException, InterruptedException {
- PceTestUtils.writeTopologyIntoDataStore(this.getDataBroker(), this.getDataStoreContextUtil(),
- "topologyData/NW-simple-topology.xml");
+ PceTestUtils.writeTopologyIntoDataStore(this.getDataBroker(), this.getDataStoreContextUtil()
+ , "topologyData/NW-simple-topology.xml");
PathComputationRequestInput input = PceTestData.getPCE_simpletopology_test1_request();
PathComputationRequestOutput output = pathComputationServiceImpl.pathComputationRequest(input);
Assert.assertEquals("200", output.getConfigurationResponseCommon().getResponseCode());