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 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;
18 @XmlRootElement(name = "network")
19 @XmlAccessorType(XmlAccessType.NONE)
20 public final class NeutronNetwork extends NeutronAdminAttributes<NeutronNetwork> implements Serializable {
21 // See OpenStack Network API v2.0 Reference for description of
22 // annotated attributes
24 private static final long serialVersionUID = 1L;
26 @XmlElement(defaultValue = "false", name = "shared")
29 // @XmlElement (defaultValue = "false", name = "router:external")
30 @XmlElement(defaultValue = "false", namespace = "router", name = "external")
31 Boolean routerExternal;
33 // @XmlElement (defaultValue = "flat", name = "provider:network_type")
34 @XmlElement(namespace = "provider", name = "network_type")
35 String providerNetworkType;
37 // @XmlElement (name = "provider:physical_network")
38 @XmlElement(namespace = "provider", name = "physical_network")
39 String providerPhysicalNetwork;
41 // @XmlElement (name = "provider:segmentation_id")
42 @XmlElement(namespace = "provider", name = "segmentation_id")
43 String providerSegmentationID;
45 @XmlElement(name = "segments")
46 List<NeutronNetworkSegment> segments;
48 @XmlElement(name = "vlan_transparent")
49 Boolean vlanTransparent;
51 @XmlElement(name = "mtu")
54 @XmlElement(name = "qos_policy_id")
57 /* This attribute lists the ports associated with an instance
58 * which is needed for determining if that instance can be deleted
61 public NeutronNetwork() {
65 public void initDefaults() {
69 if (adminStateUp == null) {
75 if (routerExternal == null) {
76 routerExternal = false;
78 if (providerNetworkType == null) {
79 providerNetworkType = "flat";
83 public boolean isAdminStateUp() {
87 public boolean isShared() {
91 public Boolean getShared() {
95 public void setShared(boolean newValue) {
99 public boolean isRouterExternal() {
100 return routerExternal;
103 public Boolean getRouterExternal() {
104 return routerExternal;
107 public void setRouterExternal(boolean newValue) {
108 routerExternal = newValue;
111 public String getProviderNetworkType() {
112 return providerNetworkType;
115 public void setProviderNetworkType(String providerNetworkType) {
116 this.providerNetworkType = providerNetworkType;
119 public String getProviderPhysicalNetwork() {
120 return providerPhysicalNetwork;
123 public void setProviderPhysicalNetwork(String providerPhysicalNetwork) {
124 this.providerPhysicalNetwork = providerPhysicalNetwork;
127 public String getProviderSegmentationID() {
128 return providerSegmentationID;
131 public void setProviderSegmentationID(String providerSegmentationID) {
132 this.providerSegmentationID = providerSegmentationID;
135 public void setSegments(List<NeutronNetworkSegment> segments) {
136 this.segments = segments;
139 public List<NeutronNetworkSegment> getSegments() {
143 public Boolean getVlanTransparent() {
144 return vlanTransparent;
147 public void setVlanTransparent(Boolean input) {
148 this.vlanTransparent = input;
151 public Integer getMtu() {
155 public void setMtu(Integer input) {
159 public String getQosPolicyId() {
163 public void setQosPolicyId(String qosPolicyId) {
164 this.qosPolicyId = qosPolicyId;
168 * This method copies selected fields from the object and returns them
169 * as a new object, suitable for marshaling.
172 * List of attributes to be extracted
173 * @return an OpenStackNetworks object with only the selected fields
177 public NeutronNetwork extractFields(List<String> fields) {
178 NeutronNetwork ans = new NeutronNetwork();
179 for (String s : fields) {
180 extractField(s, ans);
181 if (s.equals("shared")) {
182 ans.setShared(shared);
184 if (s.equals("external")) {
185 ans.setRouterExternal(this.getRouterExternal());
187 if (s.equals("segmentation_id")) {
188 ans.setProviderSegmentationID(this.getProviderSegmentationID());
190 if (s.equals("physical_network")) {
191 ans.setProviderPhysicalNetwork(this.getProviderPhysicalNetwork());
193 if (s.equals("network_type")) {
194 ans.setProviderNetworkType(this.getProviderNetworkType());
196 if (s.equals("qos_policy_id")) {
197 ans.setQosPolicyId(this.getQosPolicyId());
205 public String toString() {
206 return "NeutronNetwork [networkUUID=" + uuid + ", networkName=" + name + ", adminStateUp=" + adminStateUp
207 + ", shared=" + shared + ", tenantID=" + tenantID + ", routerExternal=" + routerExternal
208 + ", providerNetworkType=" + providerNetworkType + ", providerPhysicalNetwork="
209 + providerPhysicalNetwork + ", providerSegmentationID=" + providerSegmentationID + ", status=" + status
210 + ", qosPolicyId =" + qosPolicyId + ", segments = " + segments + "]";