2 * Copyright © 2017 AT&T and others. All rights reserved.
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
8 package org.opendaylight.transportpce.renderer.provisiondevice.servicepath;
10 import java.util.ArrayList;
11 import java.util.List;
13 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.node.types.rev181130.NodeIdType;
14 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.Topology;
15 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.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.rev190531.resource.DeviceBuilder;
18 import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev190531.resource.ResourceBuilder;
19 import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev190531.resource.ResourceTypeBuilder;
20 import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev190531.resource.resource.resource.port.PortBuilder;
21 import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.types.rev181130.ResourceTypeEnum;
22 import org.opendaylight.yang.gen.v1.http.org.openroadm.topology.rev190531.Hop.HopType;
23 import org.opendaylight.yang.gen.v1.http.org.openroadm.topology.rev190531.topology.AToZ;
24 import org.opendaylight.yang.gen.v1.http.org.openroadm.topology.rev190531.topology.AToZBuilder;
25 import org.opendaylight.yang.gen.v1.http.org.openroadm.topology.rev190531.topology.ZToA;
26 import org.opendaylight.yang.gen.v1.http.org.openroadm.topology.rev190531.topology.ZToABuilder;
28 public class ServiceListTopology {
31 private List<AToZ> a2zTopologyList;
32 private List<ZToA> z2aTopologyList;
33 private TopologyBuilder serviceTopology;
35 public ServiceListTopology() {
37 this.a2zTopologyList = new ArrayList<>();
38 this.z2aTopologyList = new ArrayList<>();
39 this.serviceTopology = new TopologyBuilder();
43 public void updateAtoZTopologyList(List<Ports> ports, String nodeId) {
45 String circuitPackName = "";
48 int id = this.a2zTopologyList.size();
50 DeviceBuilder deviceBldr = new DeviceBuilder();
51 deviceBldr.setNodeId(new NodeIdType(nodeId));
54 for (Ports port : ports) {
58 //Get circuitpack name
59 circuitPackName = port.getCircuitPackName();
62 portName = port.getPortName().toString();
64 AToZBuilder a2zBldr = new AToZBuilder();
67 a2zBldr.setId(Integer.toString(id));
70 a2zBldr.setDevice(deviceBldr.build());
72 //Set hop type to internal
73 a2zBldr.setHopType(HopType.NodeInternal);
75 //Set Resource Type to port
76 ResourceTypeBuilder rsrcTypeBldr = new ResourceTypeBuilder();
77 rsrcTypeBldr.setType(ResourceTypeEnum.Port);
78 a2zBldr.setResourceType(rsrcTypeBldr.build());
80 //building port resource
81 PortBuilder portBldr = new PortBuilder();
82 portBldr.setCircuitPackName(circuitPackName);
83 portBldr.setPortName(portName);
84 org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev190531.resource.resource.resource
85 .PortBuilder portCase =
86 new org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev190531.resource.resource.resource
88 portCase.setPort(portBldr.build());
89 ResourceBuilder rsrcBldr = new ResourceBuilder();
90 rsrcBldr.setResource(portCase.build());
91 a2zBldr.setResource(rsrcBldr.build());
93 //Add port resource to the list
94 this.a2zTopologyList.add(a2zBldr.build());
99 this.serviceTopology.setAToZ(this.a2zTopologyList);
103 public void updateZtoATopologyList(List<Ports> ports, String nodeId) {
105 String circuitPackName = "";
106 String portName = "";
108 int id = this.z2aTopologyList.size();
110 DeviceBuilder deviceBldr = new DeviceBuilder();
111 deviceBldr.setNodeId(new NodeIdType(nodeId));
113 for (Ports port : ports) {
117 //Get circuitpack name
118 circuitPackName = port.getCircuitPackName();
121 portName = port.getPortName().toString();
123 ZToABuilder z2aBldr = new ZToABuilder();
126 z2aBldr.setId(Integer.toString(id));
129 z2aBldr.setDevice(deviceBldr.build());
131 //Set hop type to internal
132 z2aBldr.setHopType(HopType.NodeInternal);
134 //Set Resource Type to port
135 ResourceTypeBuilder rsrcTypeBldr = new ResourceTypeBuilder();
136 rsrcTypeBldr.setType(ResourceTypeEnum.Port);
137 z2aBldr.setResourceType(rsrcTypeBldr.build());
139 //building port resource
140 PortBuilder portBldr = new PortBuilder();
141 portBldr.setCircuitPackName(circuitPackName);
142 portBldr.setPortName(portName);
143 org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev190531.resource.resource.resource
144 .PortBuilder portCase =
145 new org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev190531.resource.resource.resource
147 portCase.setPort(portBldr.build());
148 ResourceBuilder rsrcBldr = new ResourceBuilder();
149 rsrcBldr.setResource(portCase.build());
150 z2aBldr.setResource(rsrcBldr.build());
152 //Add port resource to the list
153 this.z2aTopologyList.add(z2aBldr.build());
158 this.serviceTopology.setZToA(this.z2aTopologyList);
162 public Topology getTopology() {
163 this.serviceTopology.setAToZ(this.a2zTopologyList);
164 this.serviceTopology.setZToA(this.z2aTopologyList);
165 return this.serviceTopology.build();