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.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;
27 public class ServiceListTopology {
30 private List<AToZ> a2zTopologyList;
31 private List<ZToA> z2aTopologyList;
32 private TopologyBuilder serviceTopology;
34 public ServiceListTopology() {
36 this.a2zTopologyList = new ArrayList<>();
37 this.z2aTopologyList = new ArrayList<>();
38 this.serviceTopology = new TopologyBuilder();
42 public void updateAtoZTopologyList(List<Ports> ports, String nodeId) {
44 String circuitPackName = "";
47 int id = this.a2zTopologyList.size();
49 DeviceBuilder deviceBldr = new DeviceBuilder();
50 deviceBldr.setNodeId(nodeId);
53 for (Ports port : ports) {
57 //Get circuitpack name
58 circuitPackName = port.getCircuitPackName();
61 portName = port.getPortName().toString();
63 AToZBuilder a2zBldr = new AToZBuilder();
66 a2zBldr.setId(Integer.toString(id));
69 a2zBldr.setDevice(deviceBldr.build());
71 //Set hop type to internal
72 a2zBldr.setHopType(HopType.NodeInternal);
74 //Set Resource Type to port
75 ResourceTypeBuilder rsrcTypeBldr = new ResourceTypeBuilder();
76 rsrcTypeBldr.setType(ResourceTypeEnum.Port);
77 a2zBldr.setResourceType(rsrcTypeBldr.build());
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
87 portCase.setPort(portBldr.build());
88 ResourceBuilder rsrcBldr = new ResourceBuilder();
89 rsrcBldr.setResource(portCase.build());
90 a2zBldr.setResource(rsrcBldr.build());
92 //Add port resource to the list
93 this.a2zTopologyList.add(a2zBldr.build());
98 this.serviceTopology.setAToZ(this.a2zTopologyList);
102 public void updateZtoATopologyList(List<Ports> ports, String nodeId) {
104 String circuitPackName = "";
105 String portName = "";
107 int id = this.a2zTopologyList.size();
109 DeviceBuilder deviceBldr = new DeviceBuilder();
110 deviceBldr.setNodeId(nodeId);
112 for (Ports port : ports) {
116 //Get circuitpack name
117 circuitPackName = port.getCircuitPackName();
120 portName = port.getPortName().toString();
122 ZToABuilder z2aBldr = new ZToABuilder();
125 z2aBldr.setId(Integer.toString(id));
128 z2aBldr.setDevice(deviceBldr.build());
130 //Set hop type to internal
131 z2aBldr.setHopType(HopType.NodeInternal);
133 //Set Resource Type to port
134 ResourceTypeBuilder rsrcTypeBldr = new ResourceTypeBuilder();
135 rsrcTypeBldr.setType(ResourceTypeEnum.Port);
136 z2aBldr.setResourceType(rsrcTypeBldr.build());
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
146 portCase.setPort(portBldr.build());
147 ResourceBuilder rsrcBldr = new ResourceBuilder();
148 rsrcBldr.setResource(portCase.build());
149 z2aBldr.setResource(rsrcBldr.build());
151 //Add port resource to the list
152 this.z2aTopologyList.add(z2aBldr.build());
158 public Topology getTopology() {
159 this.serviceTopology.setAToZ(this.a2zTopologyList);
160 this.serviceTopology.setZToA(this.z2aTopologyList);
161 return this.serviceTopology.build();