2 * Copyright (c) 2015 Ericsson India Global Services Pvt Ltd. 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
9 package org.opendaylight.neutron.spi;
11 import java.io.Serializable;
12 import java.util.List;
13 import javax.xml.bind.annotation.XmlAccessType;
14 import javax.xml.bind.annotation.XmlAccessorType;
15 import javax.xml.bind.annotation.XmlElement;
16 import javax.xml.bind.annotation.XmlRootElement;
17 import org.slf4j.Logger;
18 import org.slf4j.LoggerFactory;
20 @XmlRootElement(name = "bgpvpn")
21 @XmlAccessorType(XmlAccessType.NONE)
22 public final class NeutronBgpvpn extends NeutronAdminAttributes<NeutronBgpvpn> implements Serializable {
23 private static final Logger LOGGER = LoggerFactory.getLogger(NeutronBgpvpn.class);
24 // See OpenStack Network API v2.0 Reference for description of
25 // annotated attributes
27 private static final long serialVersionUID = 1L;
29 @XmlElement(defaultValue = "l3", name = "type")
32 @XmlElement(name = "technique")
35 @XmlElement(name = "route_targets")
36 List<String> routeTargets;
38 @XmlElement(name = "import_targets")
39 List<String> importTargets;
41 @XmlElement(name = "export_targets")
42 List<String> exportTargets;
44 @XmlElement(name = "route_distinguishers")
45 List<String> routeDistinguishers;
47 @XmlElement(name = "vnid")
50 @XmlElement(defaultValue = "false", name = "auto_aggregate")
51 Boolean autoAggregate;
53 @XmlElement(name = "networks")
54 List<String> networks;
56 @XmlElement(name = "routers")
59 /* This attribute lists the ports associated with an instance
60 * which is needed for determining if that instance can be deleted
63 public NeutronBgpvpn() {
66 public void initDefaults() {
71 if (autoAggregate == null) {
72 autoAggregate = false;
76 public boolean isAdminStateUp() {
80 public boolean isAutoAggregate() {
84 public String getType() {
88 public void setType(String type) {
92 public String getTechnique() {
96 public void setTechnique(String technique) {
97 this.technique = technique;
100 public List<String> getRouteTargets() {
104 public void setRouteTargets(List<String> routeTargets) {
105 this.routeTargets = routeTargets;
108 public void addRouteTarget(String uuid) {
109 routeTargets.add(uuid);
112 public void removeRouteTarget(String uuid) {
113 routeTargets.remove(uuid);
116 public List<String> getImportTargets() {
117 return importTargets;
120 public void setImportTargets(List<String> importTargets) {
121 this.importTargets = importTargets;
124 public void addImportTarget(String uuid) {
125 importTargets.add(uuid);
128 public void removeImportTarget(String uuid) {
129 importTargets.remove(uuid);
132 public List<String> getExportTargets() {
133 return exportTargets;
136 public void setExportTargets(List<String> exportTargets) {
137 this.exportTargets = exportTargets;
140 public void addExportTarget(String uuid) {
141 exportTargets.add(uuid);
144 public void removeExportTarget(String uuid) {
145 exportTargets.remove(uuid);
148 public List<String> getRouteDistinguishers() {
149 return routeDistinguishers;
152 public void setRouteDistinguishers(List<String> routeDistinguishers) {
153 this.routeDistinguishers = routeDistinguishers;
156 public void addRouteDistinguisher(String uuid) {
157 routeDistinguishers.add(uuid);
160 public void removeRouteDistinguisher(String uuid) {
161 routeDistinguishers.remove(uuid);
164 public Long getVnid() {
168 public void setVnid(Long input) {
172 public Boolean getAutoAggregate() {
173 return autoAggregate;
176 public void setAutoAggregate(boolean newValue) {
177 autoAggregate = newValue;
180 public List<String> getNetworks() {
184 public void setNetworks(List<String> networks) {
185 this.networks = networks;
188 public void addNetwork(String uuid) {
192 public void removeNetwork(String uuid) {
193 networks.remove(uuid);
196 public List<String> getRouters() {
200 public void setRouters(List<String> routers) {
201 this.routers = routers;
204 public void addRouter(String uuid) {
208 public void removeRouter(String uuid) {
209 routers.remove(uuid);
213 * This method copies selected fields from the object and returns them
214 * as a new object, suitable for marshaling.
217 * List of attributes to be extracted
218 * @return an OpenStackNetworks object with only the selected fields
222 public NeutronBgpvpn extractFields(List<String> fields) {
223 NeutronBgpvpn ans = new NeutronBgpvpn();
224 for (String s : fields) {
225 if (extractField(s, ans)) {
230 ans.setType(this.getType());
233 ans.setTechnique(this.getTechnique());
235 case "route_targets":
236 ans.setRouteTargets(this.getRouteTargets());
238 case "import_targets":
239 ans.setImportTargets(this.getImportTargets());
241 case "export_targets":
242 ans.setExportTargets(this.getExportTargets());
244 case "route_distinguishe":
245 ans.setRouteDistinguishers(this.getRouteDistinguishers());
248 ans.setRouters(this.getRouters());
251 ans.setNetworks(this.getNetworks());
254 ans.setVnid(this.getVnid());
256 case "auto_aggregate":
257 ans.setAutoAggregate(this.getAutoAggregate());
260 LOGGER.warn("{} is not a NeutronBgpvpn suitable field.", s);
268 public String toString() {
269 return "NeutronBgpvpn [bgpvpnUUID=" + uuid + ", bgpvpnName=" + name + ", adminStateUp=" + adminStateUp
270 + ", status=" + status + ", tenantID=" + tenantID + ", type=" + type + ", technique=" + technique
271 + ", routeTargets=" + routeTargets + ", importTargets=" + importTargets + ", exportTargets="
272 + exportTargets + ", routeDistinguishers=" + routeDistinguishers + ", vnid = " + vnid
273 + ", autoAggregate = " + autoAggregate + ", networks = " + networks + ", routers = " + routers + "]";