import java.time.OffsetDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
-import java.util.Arrays;
+import java.util.Map;
+import java.util.Set;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Executors;
import org.opendaylight.transportpce.common.ResponseCodes;
import org.opendaylight.transportpce.servicehandler.utils.ServiceDataUtils;
import org.opendaylight.transportpce.test.AbstractTest;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestOutput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestOutputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.ConnectionType;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.configuration.response.common.ConfigurationResponseCommon;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.configuration.response.common.ConfigurationResponseCommonBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.sdnc.request.header.SdncRequestHeaderBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev190531.RpcStatus;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev190329.constraints.co.routing.or.general.CoRoutingBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev190329.routing.constraints.HardConstraintsBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev190329.routing.constraints.SoftConstraintsBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceCreateInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceCreateInputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceCreateOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceDeleteInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceDeleteInputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceDeleteOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceFeasibilityCheckInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceFeasibilityCheckInputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceFeasibilityCheckOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceReconfigureInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceReconfigureInputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceRerouteInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceRerouteInputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceRestorationInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceRestorationInputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceRestorationOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.TempServiceCreateInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.TempServiceCreateInputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.TempServiceCreateOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.list.Services;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.list.ServicesBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.path.description.AToZDirectionBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.path.description.ZToADirectionBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.response.parameters.sp.ResponseParameters;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.response.parameters.sp.ResponseParametersBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.response.parameters.sp.response.parameters.PathDescriptionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220615.PathComputationRequestOutput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220615.PathComputationRequestOutputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.ConnectionType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.configuration.response.common.ConfigurationResponseCommon;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.configuration.response.common.ConfigurationResponseCommonBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.sdnc.request.header.SdncRequestHeaderBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.CoRoutingBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.co.routing.ServiceIdentifierListBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.routing.constraints.HardConstraintsBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.routing.constraints.SoftConstraintsBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceCreateInput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceCreateInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceCreateOutput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceDeleteInput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceDeleteInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceDeleteOutput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceFeasibilityCheckInput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceFeasibilityCheckInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceFeasibilityCheckOutput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceReconfigureInput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceReconfigureInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceRerouteInput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceRerouteInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceRestorationInput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceRestorationInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceRestorationOutput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.TempServiceCreateInput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.TempServiceCreateInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.TempServiceCreateOutput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.service.list.Services;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.service.list.ServicesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.service.list.ServicesKey;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev210705.path.description.AToZDirectionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev210705.path.description.ZToADirectionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.response.parameters.sp.ResponseParameters;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.response.parameters.sp.ResponseParametersBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.response.parameters.sp.response.parameters.PathDescriptionBuilder;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev171017.service.path.list.ServicePaths;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev171017.service.path.list.ServicePathsBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev171017.service.path.list.ServicePathsKey;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.opendaylight.yangtools.yang.common.Uint32;
private ListeningExecutorService executorService;
private CountDownLatch endSignal;
private static final int NUM_THREADS = 5;
- private boolean callbackRan;
@Before
public void setUp() {
executorService = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(NUM_THREADS));
endSignal = new CountDownLatch(1);
- callbackRan = false;
}
@After
.setServiceAEnd(ServiceDataUtils.getServiceAEndBuildReconfigure().build())
.setServiceZEnd(ServiceDataUtils.getServiceZEndBuildReconfigure().build())
.setHardConstraints(new HardConstraintsBuilder()
- .setCoRoutingOrGeneral(new CoRoutingBuilder()
- .setCoRouting(new org.opendaylight.yang.gen.v1.http.org.openroadm.routing
- .constrains.rev190329.constraints.co.routing.or.general.co.routing
- .CoRoutingBuilder().setExistingService(
- Arrays.asList("Some existing-service")).build())
- .build())
- .setCustomerCode(Arrays.asList("Some customer-code"))
- .build())
- .setSoftConstraints(new SoftConstraintsBuilder()
- .setCoRoutingOrGeneral(new CoRoutingBuilder()
- .setCoRouting(new org.opendaylight.yang.gen.v1.http.org.openroadm.routing
- .constrains.rev190329.constraints.co.routing.or.general.co.routing
- .CoRoutingBuilder().setExistingService(
- Arrays.asList("Some existing-service")).build())
- .build())
- .setCustomerCode(Arrays.asList("Some customer-code"))
- .build())
- .build();
+ .setCustomerCode(Set.of("Some customer-code"))
+ .setCoRouting(new CoRoutingBuilder()
+ .setServiceIdentifierList(Map.of(
+ new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210
+ .constraints.co.routing.ServiceIdentifierListKey("Some existing-service"),
+ new ServiceIdentifierListBuilder().setServiceIdentifier("Some existing-service")
+ .build()))
+ .build())
+ .build())
+ .setSoftConstraints(new SoftConstraintsBuilder()
+ .setCustomerCode(Set.of("Some customer-code"))
+ .setCoRouting(new CoRoutingBuilder()
+ .setServiceIdentifierList(Map.of(
+ new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210
+ .constraints.co.routing.ServiceIdentifierListKey("Some existing-service"),
+ new ServiceIdentifierListBuilder().setServiceIdentifier("Some existing-service")
+ .build()))
+ .build())
+ .build())
+ .build();
}
private PathComputationRequestOutput buildPathComputationOutput() {
}
@Test
+ //TODO : is this unit test relevant ?
public void mappingServicesNullServiceCreateInput() {
Services services = ModelMappingUtils.mappingServices(null, null);
- Assert.assertEquals(new ServicesBuilder().build(), services);
+ Assert.assertEquals(new ServicesBuilder().withKey(new ServicesKey("unknown")).build(), services);
}
@Test
}
@Test
+ //TODO : is this unit test relevant ?
public void mappingServicesPathNullServiceCreateInput() {
ServicePaths services = ModelMappingUtils.mappingServicePaths(null, buildPathComputationOutput());
- Assert.assertEquals(new ServicePathsBuilder().build(), services);
+ Assert.assertEquals(new ServicePathsBuilder().withKey(new ServicePathsKey("unknown")).build(), services);
}
@Test
public void createServiceDeleteInputWithServiceRerouteInput() {
ServiceRerouteInput serviceRerouteinput = new ServiceRerouteInputBuilder().setServiceName("reroute").build();
Services services = new ServicesBuilder()
- .setSdncRequestHeader(new SdncRequestHeaderBuilder().setRequestId("123").build()).build();
- org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev200520.ServiceDeleteInput
+ .withKey(new ServicesKey("reroute"))
+ .setSdncRequestHeader(new SdncRequestHeaderBuilder().setRequestId("123").build()).build();
+ org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.ServiceDeleteInput
serviceDeleteInput =
ModelMappingUtils.createServiceDeleteInput(serviceRerouteinput, services);
Assert.assertEquals("reroute", serviceDeleteInput.getServiceName());
public void createServiceDeleteInputWithServiceReconfigureInput() {
ServiceReconfigureInput serviceReconfigureInput = new ServiceReconfigureInputBuilder()
.setServiceName("reconf").build();
- org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev200520.ServiceDeleteInput
+ org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.ServiceDeleteInput
serviceDeleteInput =
ModelMappingUtils.createServiceDeleteInput(serviceReconfigureInput);
Assert.assertEquals("reconf", serviceDeleteInput.getServiceName());
@Test
public void createServiceDeleteInputWithServiceRestorationInput() {
Services services = new ServicesBuilder()
- .setSdncRequestHeader(new SdncRequestHeaderBuilder().setRequestId("123").build()).build();
+ .withKey(new ServicesKey("rest"))
+ .setSdncRequestHeader(new SdncRequestHeaderBuilder().setRequestId("123").build()).build();
ServiceRestorationInput serviceRestorationInput =
new ServiceRestorationInputBuilder().setServiceName("rest").build();
- org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev200520.ServiceDeleteInput
+ org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.ServiceDeleteInput
serviceDeleteInput =
ModelMappingUtils.createServiceDeleteInput(serviceRestorationInput, services);
Assert.assertEquals("rest", serviceDeleteInput.getServiceName());
serviceDeleteOutputF.addListener(new Runnable() {
@Override
public void run() {
- callbackRan = true;
endSignal.countDown();
}
}, executorService);
serviceDeleteOutputF.addListener(new Runnable() {
@Override
public void run() {
- callbackRan = true;
endSignal.countDown();
}
}, executorService);
serviceCreatOutputF.addListener(new Runnable() {
@Override
public void run() {
- callbackRan = true;
endSignal.countDown();
}
}, executorService);
serviceCreatOutputF.addListener(new Runnable() {
@Override
public void run() {
- callbackRan = true;
endSignal.countDown();
}
}, executorService);
serviceCreatOutputF.addListener(new Runnable() {
@Override
public void run() {
- callbackRan = true;
endSignal.countDown();
}
}, executorService);
serviceCreatOutputF.addListener(new Runnable() {
@Override
public void run() {
- callbackRan = true;
endSignal.countDown();
}
}, executorService);
serviceCreatOutputF.addListener(new Runnable() {
@Override
public void run() {
- callbackRan = true;
endSignal.countDown();
}
}, executorService);
serviceCreatOutputF.addListener(new Runnable() {
@Override
public void run() {
- callbackRan = true;
endSignal.countDown();
}
}, executorService);
@Test
public void testCreateRestoreServiceReply() throws ExecutionException, InterruptedException {
ListenableFuture<RpcResult<ServiceRestorationOutput>> serviceRestorationOutputF =
- ModelMappingUtils.createRestoreServiceReply("message", RpcStatus.Failed);
+ ModelMappingUtils.createRestoreServiceReply("message");
serviceRestorationOutputF.addListener(new Runnable() {
@Override
public void run() {
- callbackRan = true;
endSignal.countDown();
}
}, executorService);
endSignal.await();
- RpcResult<ServiceRestorationOutput> serviceRestorationOutput = serviceRestorationOutputF.get();
- Assert.assertEquals("message", serviceRestorationOutput.getResult().getStatusMessage());
}
}