Use version 13.1.0 of openroadm-service models
[transportpce.git] / renderer / src / main / java / org / opendaylight / transportpce / renderer / provisiondevice / servicepath / ServiceListTopology.java
1 /*
2  * Copyright © 2017 AT&T 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.provisiondevice.servicepath;
9
10 import java.util.HashMap;
11 import java.util.List;
12 import java.util.Map;
13 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.node.types.rev210528.NodeIdType;
14 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev230526.service.Topology;
15 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev230526.service.TopologyBuilder;
16 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.get.connection.port.trail.output.Ports;
17 import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev230526.resource.DeviceBuilder;
18 import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev230526.resource.ResourceBuilder;
19 import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev230526.resource.ResourceTypeBuilder;
20 import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev230526.resource.resource.resource.port.PortBuilder;
21 import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.types.rev220325.ResourceTypeEnum;
22 import org.opendaylight.yang.gen.v1.http.org.openroadm.topology.rev230526.Hop.HopType;
23 import org.opendaylight.yang.gen.v1.http.org.openroadm.topology.rev230526.topology.AToZ;
24 import org.opendaylight.yang.gen.v1.http.org.openroadm.topology.rev230526.topology.AToZBuilder;
25 import org.opendaylight.yang.gen.v1.http.org.openroadm.topology.rev230526.topology.AToZKey;
26 import org.opendaylight.yang.gen.v1.http.org.openroadm.topology.rev230526.topology.ZToA;
27 import org.opendaylight.yang.gen.v1.http.org.openroadm.topology.rev230526.topology.ZToABuilder;
28 import org.opendaylight.yang.gen.v1.http.org.openroadm.topology.rev230526.topology.ZToAKey;
29
30 public class ServiceListTopology {
31
32
33     private Map<AToZKey,AToZ> a2zTopologyList = new HashMap<>();
34     private Map<ZToAKey,ZToA> z2aTopologyList = new HashMap<>();
35     private TopologyBuilder serviceTopology = new TopologyBuilder();
36
37     public void updateAtoZTopologyList(List<Ports> ports, String nodeId) {
38
39         int id = this.a2zTopologyList.size();
40         for (Ports port : ports) {
41             id = id + 1;
42             //Add port resource to the list
43             AToZ a2z = new AToZBuilder()
44                 .setId(Integer.toString(id))
45                 .setDevice(new DeviceBuilder()
46                     .setNodeId(new NodeIdType(nodeId))
47                     .build())
48                 .setHopType(HopType.NodeInternal)
49                 .setResourceType(new ResourceTypeBuilder()
50                     .setType(ResourceTypeEnum.Port)
51                     .build())
52                 .setResource(new ResourceBuilder()
53                     .setResource(new org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev230526
54                             .resource.resource.resource.PortBuilder()
55                         .setPort(new PortBuilder()
56                             .setCircuitPackName(port.getCircuitPackName())
57                             .setPortName(port.getPortName())
58                             .build())
59                         .build())
60                     .build())
61                 .build();
62             this.a2zTopologyList.put(a2z.key(), a2z);
63         }
64
65         //update Topology
66         this.serviceTopology.setAToZ(this.a2zTopologyList);
67
68     }
69
70     public void updateZtoATopologyList(List<Ports> ports, String nodeId) {
71
72         int id = this.z2aTopologyList.size();
73
74         for (Ports port : ports) {
75             id = id + 1;
76             //Add port resource to the list
77             ZToA z2a = new ZToABuilder()
78                 .setId(Integer.toString(id))
79                 .setDevice(new DeviceBuilder()
80                     .setNodeId(new NodeIdType(nodeId))
81                     .build())
82                 .setHopType(HopType.NodeInternal)
83                 .setResourceType(new ResourceTypeBuilder()
84                     .setType(ResourceTypeEnum.Port)
85                     .build())
86                 .setResource(new ResourceBuilder()
87                     .setResource(new org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev230526
88                             .resource.resource.resource.PortBuilder()
89                         .setPort(new PortBuilder()
90                             .setCircuitPackName(port.getCircuitPackName())
91                             .setPortName(port.getPortName())
92                             .build())
93                         .build())
94                     .build())
95                 .build();
96             this.z2aTopologyList.put(z2a.key(),z2a);
97         }
98
99         //update Topology
100         this.serviceTopology.setZToA(this.z2aTopologyList);
101
102     }
103
104     public Topology getTopology() {
105         this.serviceTopology.setAToZ(this.a2zTopologyList);
106         this.serviceTopology.setZToA(this.z2aTopologyList);
107         return this.serviceTopology.build();
108     }
109
110 }