2 * Copyright (c) 2013, 2015 IBM Corporation 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 edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
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;
18 @XmlRootElement(name = "network")
19 @XmlAccessorType(XmlAccessType.NONE)
20 // Non-transient non-serializable instance field 'segments' - we have to assume/hope users will set a Serializable List
22 @SuppressFBWarnings("SE_BAD_FIELD")
23 public final class NeutronNetwork extends NeutronAdminAttributes<NeutronNetwork> {
24 // See OpenStack Network API v2.0 Reference for description of
25 // annotated attributes
27 private static final long serialVersionUID = 1L;
29 @XmlElement(defaultValue = "false", name = "shared")
32 // @XmlElement (defaultValue = "false", name = "router:external")
33 @XmlElement(defaultValue = "false", namespace = "router", name = "external")
34 Boolean routerExternal;
36 // @XmlElement (defaultValue = "flat", name = "provider:network_type")
37 @XmlElement(namespace = "provider", name = "network_type")
38 String providerNetworkType;
40 // @XmlElement (name = "provider:physical_network")
41 @XmlElement(namespace = "provider", name = "physical_network")
42 String providerPhysicalNetwork;
44 // @XmlElement (name = "provider:segmentation_id")
45 @XmlElement(namespace = "provider", name = "segmentation_id")
46 String providerSegmentationID;
48 @XmlElement(name = "segments")
49 List<NeutronNetworkSegment> segments;
51 @XmlElement(name = "vlan_transparent")
52 Boolean vlanTransparent;
54 @XmlElement(name = "mtu")
57 @XmlElement(name = "qos_policy_id")
60 /* This attribute lists the ports associated with an instance
61 * which is needed for determining if that instance can be deleted
64 public NeutronNetwork() {
68 public void initDefaults() {
73 if (routerExternal == null) {
74 routerExternal = false;
76 if (providerNetworkType == null) {
77 providerNetworkType = "flat";
81 public boolean isShared() {
89 public Boolean getShared() {
93 public void setShared(boolean newValue) {
97 public boolean isRouterExternal() {
98 if (routerExternal == null) {
102 return routerExternal;
105 public Boolean getRouterExternal() {
106 return routerExternal;
109 public void setRouterExternal(boolean newValue) {
110 routerExternal = newValue;
113 public String getProviderNetworkType() {
114 return providerNetworkType;
117 public void setProviderNetworkType(String providerNetworkType) {
118 this.providerNetworkType = providerNetworkType;
121 public String getProviderPhysicalNetwork() {
122 return providerPhysicalNetwork;
125 public void setProviderPhysicalNetwork(String providerPhysicalNetwork) {
126 this.providerPhysicalNetwork = providerPhysicalNetwork;
129 public String getProviderSegmentationID() {
130 return providerSegmentationID;
133 public void setProviderSegmentationID(String providerSegmentationID) {
134 this.providerSegmentationID = providerSegmentationID;
137 public void setSegments(List<NeutronNetworkSegment> segments) {
138 this.segments = segments;
141 public List<NeutronNetworkSegment> getSegments() {
145 public Boolean getVlanTransparent() {
146 return vlanTransparent;
149 public void setVlanTransparent(Boolean input) {
150 this.vlanTransparent = input;
153 public Integer getMtu() {
157 public void setMtu(Integer input) {
161 public String getQosPolicyId() {
165 public void setQosPolicyId(String qosPolicyId) {
166 this.qosPolicyId = qosPolicyId;
170 public boolean extractField(String field, NeutronNetwork ans) {
173 ans.setShared(isShared());
175 case "vlan_transparent":
176 ans.setVlanTransparent(this.getVlanTransparent());
179 ans.setRouterExternal(this.getRouterExternal());
181 case "segmentation_id":
182 ans.setProviderSegmentationID(this.getProviderSegmentationID());
184 case "physical_network":
185 ans.setProviderPhysicalNetwork(this.getProviderPhysicalNetwork());
188 ans.setProviderNetworkType(this.getProviderNetworkType());
190 case "qos_policy_id":
191 ans.setQosPolicyId(this.getQosPolicyId());
194 return super.extractField(field, ans);
200 public String toString() {
201 return "NeutronNetwork [networkUUID=" + uuid + ", networkName=" + name + ", adminStateUp=" + adminStateUp
202 + ", shared=" + shared + ", vlanTransparent=" + vlanTransparent + ", tenantID=" + tenantID
203 + ", routerExternal=" + routerExternal + ", providerNetworkType=" + providerNetworkType
204 + ", providerPhysicalNetwork=" + providerPhysicalNetwork + ", providerSegmentationID="
205 + providerSegmentationID + ", status=" + status + ", qosPolicyId =" + qosPolicyId
206 + ", segments = " + segments + "]";