Renderer and OLM update
[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.ArrayList;
11 import java.util.List;
12
13 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.service.Topology;
14 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.service.TopologyBuilder;
15 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.get.connection.port.trail.output.Ports;
16 import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev161014.resource.DeviceBuilder;
17 import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev161014.resource.ResourceBuilder;
18 import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev161014.resource.ResourceTypeBuilder;
19 import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev161014.resource.resource.resource.port.PortBuilder;
20 import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.types.rev161014.ResourceTypeEnum;
21 import org.opendaylight.yang.gen.v1.http.org.openroadm.topology.rev161014.Hop.HopType;
22 import org.opendaylight.yang.gen.v1.http.org.openroadm.topology.rev161014.topology.AToZ;
23 import org.opendaylight.yang.gen.v1.http.org.openroadm.topology.rev161014.topology.AToZBuilder;
24 import org.opendaylight.yang.gen.v1.http.org.openroadm.topology.rev161014.topology.ZToA;
25 import org.opendaylight.yang.gen.v1.http.org.openroadm.topology.rev161014.topology.ZToABuilder;
26
27 public class ServiceListTopology {
28
29
30     private List<AToZ> a2zTopologyList;
31     private List<ZToA> z2aTopologyList;
32     private TopologyBuilder serviceTopology;
33
34     public ServiceListTopology() {
35
36         this.a2zTopologyList = new ArrayList<>();
37         this.z2aTopologyList = new ArrayList<>();
38         this.serviceTopology = new TopologyBuilder();
39
40     }
41
42     public void updateAtoZTopologyList(List<Ports> ports, String nodeId) {
43
44         String circuitPackName = "";
45         String portName = "";
46
47         int id = this.a2zTopologyList.size();
48
49         DeviceBuilder deviceBldr = new DeviceBuilder();
50         deviceBldr.setNodeId(nodeId);
51
52
53         for (Ports port : ports) {
54
55             id = id + 1;
56
57             //Get circuitpack name
58             circuitPackName = port.getCircuitPackName();
59
60             //Get port name
61             portName = port.getPortName().toString();
62
63             AToZBuilder a2zBldr = new AToZBuilder();
64
65             //Set Resource Id
66             a2zBldr.setId(Integer.toString(id));
67
68             //Set device Node-id
69             a2zBldr.setDevice(deviceBldr.build());
70
71             //Set hop type to internal
72             a2zBldr.setHopType(HopType.NodeInternal);
73
74             //Set Resource Type to port
75             ResourceTypeBuilder rsrcTypeBldr = new ResourceTypeBuilder();
76             rsrcTypeBldr.setType(ResourceTypeEnum.Port);
77             a2zBldr.setResourceType(rsrcTypeBldr.build());
78
79             //building port resource
80             PortBuilder portBldr = new PortBuilder();
81             portBldr.setCircuitPackName(circuitPackName);
82             portBldr.setPortName(portName);
83             org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev161014.resource.resource.resource
84                     .PortBuilder portCase =
85                     new org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev161014.resource.resource.resource
86                             .PortBuilder();
87             portCase.setPort(portBldr.build());
88             ResourceBuilder rsrcBldr = new ResourceBuilder();
89             rsrcBldr.setResource(portCase.build());
90             a2zBldr.setResource(rsrcBldr.build());
91
92             //Add port resource to the list
93             this.a2zTopologyList.add(a2zBldr.build());
94
95         }
96
97         //update Topology
98         this.serviceTopology.setAToZ(this.a2zTopologyList);
99
100     }
101
102     public void updateZtoATopologyList(List<Ports> ports, String nodeId) {
103
104         String circuitPackName = "";
105         String portName = "";
106
107         int id = this.a2zTopologyList.size();
108
109         DeviceBuilder deviceBldr = new DeviceBuilder();
110         deviceBldr.setNodeId(nodeId);
111
112         for (Ports port : ports) {
113
114             id = id + 1;
115
116             //Get circuitpack name
117             circuitPackName = port.getCircuitPackName();
118
119             //Get port name
120             portName = port.getPortName().toString();
121
122             ZToABuilder z2aBldr = new ZToABuilder();
123
124             //Set Resource Id
125             z2aBldr.setId(Integer.toString(id));
126
127             //Set device Node-id
128             z2aBldr.setDevice(deviceBldr.build());
129
130             //Set hop type to internal
131             z2aBldr.setHopType(HopType.NodeInternal);
132
133             //Set Resource Type to port
134             ResourceTypeBuilder rsrcTypeBldr = new ResourceTypeBuilder();
135             rsrcTypeBldr.setType(ResourceTypeEnum.Port);
136             z2aBldr.setResourceType(rsrcTypeBldr.build());
137
138             //building port resource
139             PortBuilder portBldr = new PortBuilder();
140             portBldr.setCircuitPackName(circuitPackName);
141             portBldr.setPortName(portName);
142             org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev161014.resource.resource.resource
143                     .PortBuilder portCase =
144                     new org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev161014.resource.resource.resource
145                             .PortBuilder();
146             portCase.setPort(portBldr.build());
147             ResourceBuilder rsrcBldr = new ResourceBuilder();
148             rsrcBldr.setResource(portCase.build());
149             z2aBldr.setResource(rsrcBldr.build());
150
151             //Add port resource to the list
152             this.z2aTopologyList.add(z2aBldr.build());
153
154         }
155
156     }
157
158     public Topology getTopology() {
159         this.serviceTopology.setAToZ(this.a2zTopologyList);
160         this.serviceTopology.setZToA(this.z2aTopologyList);
161         return this.serviceTopology.build();
162     }
163
164 }