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.Iterator;
13 import java.util.List;
14 import javax.xml.bind.annotation.XmlAccessType;
15 import javax.xml.bind.annotation.XmlAccessorType;
16 import javax.xml.bind.annotation.XmlElement;
17 import javax.xml.bind.annotation.XmlRootElement;
19 @XmlRootElement(name = "network")
20 @XmlAccessorType(XmlAccessType.NONE)
22 public class NeutronNetwork extends NeutronObject implements Serializable, INeutronObject {
23 // See OpenStack Network API v2.0 Reference for description of
24 // annotated attributes
26 private static final long serialVersionUID = 1L;
28 @XmlElement (name = "name")
31 @XmlElement (defaultValue = "true", name = "admin_state_up")
34 @XmlElement (defaultValue = "false", name = "shared")
37 // @XmlElement (defaultValue = "false", name = "router:external")
38 @XmlElement (defaultValue="false", namespace="router", name="external")
39 Boolean routerExternal;
41 // @XmlElement (defaultValue = "flat", name = "provider:network_type")
42 @XmlElement (namespace="provider", name="network_type")
43 String providerNetworkType;
45 // @XmlElement (name = "provider:physical_network")
46 @XmlElement (namespace="provider", name="physical_network")
47 String providerPhysicalNetwork;
49 // @XmlElement (name = "provider:segmentation_id")
50 @XmlElement (namespace="provider", name="segmentation_id")
51 String providerSegmentationID;
53 @XmlElement (name = "status")
56 @XmlElement (name="segments")
57 List<NeutronNetwork_Segment> segments;
59 @XmlElement (name="vlan_transparent")
60 Boolean vlanTransparent;
62 @XmlElement (name="mtu")
65 @XmlElement (name = "qos_policy_id")
68 /* This attribute lists the ports associated with an instance
69 * which is needed for determining if that instance can be deleted
72 public NeutronNetwork() {
76 public void initDefaults() {
80 if (adminStateUp == null) {
86 if (routerExternal == null) {
87 routerExternal = false;
89 if (providerNetworkType == null) {
90 providerNetworkType = "flat";
94 public String getNetworkName() {
98 public void setNetworkName(String networkName) {
99 this.networkName = networkName;
102 public boolean isAdminStateUp() {
106 public Boolean getAdminStateUp() { return adminStateUp; }
108 public void setAdminStateUp(boolean newValue) {
109 adminStateUp = newValue;
112 public boolean isShared() { return shared; }
114 public Boolean getShared() { return shared; }
116 public void setShared(boolean newValue) {
120 public boolean isRouterExternal() { return routerExternal; }
122 public Boolean getRouterExternal() { return routerExternal; }
124 public void setRouterExternal(boolean newValue) {
125 routerExternal = newValue;
128 public String getProviderNetworkType() {
129 return providerNetworkType;
132 public void setProviderNetworkType(String providerNetworkType) {
133 this.providerNetworkType = providerNetworkType;
136 public String getProviderPhysicalNetwork() {
137 return providerPhysicalNetwork;
140 public void setProviderPhysicalNetwork(String providerPhysicalNetwork) {
141 this.providerPhysicalNetwork = providerPhysicalNetwork;
144 public String getProviderSegmentationID() {
145 return providerSegmentationID;
148 public void setProviderSegmentationID(String providerSegmentationID) {
149 this.providerSegmentationID = providerSegmentationID;
152 public String getStatus() {
156 public void setStatus(String status) {
157 this.status = status;
160 public void setSegments(List<NeutronNetwork_Segment> segments) {
161 this.segments = segments;
164 public List<NeutronNetwork_Segment> getSegments() {
168 public Boolean getVlanTransparent() {
169 return vlanTransparent;
172 public void setVlanTransparent(Boolean input) {
173 this.vlanTransparent = input;
176 public Integer getMtu() {
180 public void setMtu(Integer input) {
184 public String getQosPolicyId() {
188 public void setQosPolicyId(String qosPolicyId) {
189 this.qosPolicyId = qosPolicyId;
193 * This method copies selected fields from the object and returns them
194 * as a new object, suitable for marshaling.
197 * List of attributes to be extracted
198 * @return an OpenStackNetworks object with only the selected fields
202 public NeutronNetwork extractFields(List<String> fields) {
203 NeutronNetwork ans = new NeutronNetwork();
204 Iterator<String> i = fields.iterator();
205 while (i.hasNext()) {
207 if (s.equals("id")) {
208 ans.setID(this.getID());
210 if (s.equals("name")) {
211 ans.setNetworkName(this.getNetworkName());
213 if (s.equals("admin_state_up")) {
214 ans.setAdminStateUp(adminStateUp);
216 if (s.equals("status")) {
217 ans.setStatus(this.getStatus());
219 if (s.equals("shared")) {
220 ans.setShared(shared);
222 if (s.equals("tenant_id")) {
223 ans.setTenantID(this.getTenantID());
225 if (s.equals("external")) {
226 ans.setRouterExternal(this.getRouterExternal());
228 if (s.equals("segmentation_id")) {
229 ans.setProviderSegmentationID(this.getProviderSegmentationID());
231 if (s.equals("physical_network")) {
232 ans.setProviderPhysicalNetwork(this.getProviderPhysicalNetwork());
234 if (s.equals("network_type")) {
235 ans.setProviderNetworkType(this.getProviderNetworkType());
237 if (s.equals("qos_policy_id")) {
238 ans.setQosPolicyId(this.getQosPolicyId());
246 public String toString() {
247 return "NeutronNetwork [networkUUID=" + uuid + ", networkName=" + networkName + ", adminStateUp="
248 + adminStateUp + ", shared=" + shared + ", tenantID=" + tenantID + ", routerExternal=" + routerExternal
249 + ", providerNetworkType=" + providerNetworkType + ", providerPhysicalNetwork="
250 + providerPhysicalNetwork + ", providerSegmentationID=" + providerSegmentationID + ", status=" + status
251 + ", qosPolicyId =" + qosPolicyId
252 + ", segments = " + segments + "]";