Bump upstream dependencies to Ca
[transportpce.git] / renderer / src / main / java / org / opendaylight / transportpce / renderer / rpcs / OtnServicePathImpl.java
1 /*
2  * Copyright © 2024 Orange, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 package org.opendaylight.transportpce.renderer.rpcs;
9
10 import static java.util.Objects.requireNonNull;
11
12 import com.google.common.util.concurrent.ListenableFuture;
13 import org.opendaylight.transportpce.common.service.ServiceTypes;
14 import org.opendaylight.transportpce.renderer.provisiondevice.OtnDeviceRendererService;
15 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev211004.OtnServicePath;
16 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev211004.OtnServicePathInput;
17 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev211004.OtnServicePathOutput;
18 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev211004.OtnServicePathOutputBuilder;
19 import org.opendaylight.yangtools.yang.common.RpcResult;
20 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
21 import org.slf4j.Logger;
22 import org.slf4j.LoggerFactory;
23
24
25 public class OtnServicePathImpl implements OtnServicePath {
26     private static final Logger LOG = LoggerFactory.getLogger(OtnServicePathImpl.class);
27     private OtnDeviceRendererService otnDeviceRendererService;
28
29     public OtnServicePathImpl(final OtnDeviceRendererService otnDeviceRendererService) {
30         this.otnDeviceRendererService = requireNonNull(otnDeviceRendererService);
31     }
32
33     @Override
34     public ListenableFuture<RpcResult<OtnServicePathOutput>> invoke(OtnServicePathInput input) {
35         if (input.getOperation() != null && input.getServiceFormat() != null && input.getServiceRate() != null) {
36             String serviceType = ServiceTypes.getOtnServiceType(input.getServiceFormat(), input.getServiceRate());
37             if (input.getOperation().getIntValue() == 1) {
38                 LOG.info("Create operation request received");
39                 return RpcResultBuilder.success(this.otnDeviceRendererService
40                         .setupOtnServicePath(input, serviceType)).buildFuture();
41             } else if (input.getOperation().getIntValue() == 2) {
42                 LOG.info("Delete operation request received");
43                 return RpcResultBuilder.success(this.otnDeviceRendererService
44                         .deleteOtnServicePath(input, serviceType)).buildFuture();
45             }
46         }
47         return RpcResultBuilder
48             .success(new OtnServicePathOutputBuilder().setResult("Invalid operation").build())
49             .buildFuture();
50     }
51
52 }