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.ArrayList;
13 import java.util.Iterator;
14 import java.util.List;
16 import javax.xml.bind.annotation.XmlAccessType;
17 import javax.xml.bind.annotation.XmlAccessorType;
18 import javax.xml.bind.annotation.XmlElement;
19 import javax.xml.bind.annotation.XmlRootElement;
21 @XmlRootElement(name = "network")
22 @XmlAccessorType(XmlAccessType.NONE)
24 public class NeutronNetwork extends NeutronObject implements Serializable, INeutronObject {
25 // See OpenStack Network API v2.0 Reference for description of
26 // annotated attributes
28 private static final long serialVersionUID = 1L;
30 @XmlElement (name = "name")
33 @XmlElement (defaultValue = "true", name = "admin_state_up")
36 @XmlElement (defaultValue = "false", name = "shared")
39 // @XmlElement (defaultValue = "false", name = "router:external")
40 @XmlElement (defaultValue="false", namespace="router", name="external")
41 Boolean routerExternal;
43 // @XmlElement (defaultValue = "flat", name = "provider:network_type")
44 @XmlElement (namespace="provider", name="network_type")
45 String providerNetworkType;
47 // @XmlElement (name = "provider:physical_network")
48 @XmlElement (namespace="provider", name="physical_network")
49 String providerPhysicalNetwork;
51 // @XmlElement (name = "provider:segmentation_id")
52 @XmlElement (namespace="provider", name="segmentation_id")
53 String providerSegmentationID;
55 @XmlElement (name = "status")
58 @XmlElement (name = "subnets")
61 @XmlElement (name="segments")
62 List<NeutronNetwork_Segment> segments;
64 @XmlElement (name="vlan_transparent")
65 Boolean vlanTransparent;
67 @XmlElement (name="mtu")
70 /* This attribute lists the ports associated with an instance
71 * which is needed for determining if that instance can be deleted
74 public NeutronNetwork() {
77 public void initDefaults() {
78 subnets = new ArrayList<String>();
82 if (adminStateUp == null) {
88 if (routerExternal == null) {
89 routerExternal = false;
91 if (providerNetworkType == null) {
92 providerNetworkType = "flat";
97 public String getNetworkUUID() {
102 public void setNetworkUUID(String uuid) {
106 public String getNetworkName() {
110 public void setNetworkName(String networkName) {
111 this.networkName = networkName;
114 public boolean isAdminStateUp() {
118 public Boolean getAdminStateUp() { return adminStateUp; }
120 public void setAdminStateUp(boolean newValue) {
121 adminStateUp = newValue;
124 public boolean isShared() { return shared; }
126 public Boolean getShared() { return shared; }
128 public void setShared(boolean newValue) {
132 public boolean isRouterExternal() { return routerExternal; }
134 public Boolean getRouterExternal() { return routerExternal; }
136 public void setRouterExternal(boolean newValue) {
137 routerExternal = newValue;
140 public String getProviderNetworkType() {
141 return providerNetworkType;
144 public void setProviderNetworkType(String providerNetworkType) {
145 this.providerNetworkType = providerNetworkType;
148 public String getProviderPhysicalNetwork() {
149 return providerPhysicalNetwork;
152 public void setProviderPhysicalNetwork(String providerPhysicalNetwork) {
153 this.providerPhysicalNetwork = providerPhysicalNetwork;
156 public String getProviderSegmentationID() {
157 return providerSegmentationID;
160 public void setProviderSegmentationID(String providerSegmentationID) {
161 this.providerSegmentationID = providerSegmentationID;
164 public String getStatus() {
168 public void setStatus(String status) {
169 this.status = status;
172 public List<String> getSubnets() {
176 public void setSubnets(List<String> subnets) {
177 this.subnets = subnets;
180 public void addSubnet(String uuid) {
184 public void removeSubnet(String uuid) {
185 subnets.remove(uuid);
188 public void setSegments(List<NeutronNetwork_Segment> segments) {
189 this.segments = segments;
192 public List<NeutronNetwork_Segment> getSegments() {
196 public Boolean getVlanTransparent() {
197 return vlanTransparent;
200 public void setVlanTransparent(Boolean input) {
201 this.vlanTransparent = input;
204 public Integer getMtu() {
208 public void setMtu(Integer input) {
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 NeutronNetwork extractFields(List<String> fields) {
223 NeutronNetwork ans = new NeutronNetwork();
224 Iterator<String> i = fields.iterator();
225 while (i.hasNext()) {
227 if (s.equals("id")) {
228 ans.setID(this.getID());
230 if (s.equals("name")) {
231 ans.setNetworkName(this.getNetworkName());
233 if (s.equals("admin_state_up")) {
234 ans.setAdminStateUp(adminStateUp);
236 if (s.equals("status")) {
237 ans.setStatus(this.getStatus());
239 if (s.equals("subnets")) {
240 List<String> subnetList = new ArrayList<String>();
241 subnetList.addAll(this.getSubnets());
242 ans.setSubnets(subnetList);
244 if (s.equals("shared")) {
245 ans.setShared(shared);
247 if (s.equals("tenant_id")) {
248 ans.setTenantID(this.getTenantID());
250 if (s.equals("external")) {
251 ans.setRouterExternal(this.getRouterExternal());
253 if (s.equals("segmentation_id")) {
254 ans.setProviderSegmentationID(this.getProviderSegmentationID());
256 if (s.equals("physical_network")) {
257 ans.setProviderPhysicalNetwork(this.getProviderPhysicalNetwork());
259 if (s.equals("network_type")) {
260 ans.setProviderNetworkType(this.getProviderNetworkType());
267 public String toString() {
268 return "NeutronNetwork [networkUUID=" + uuid + ", networkName=" + networkName + ", adminStateUp="
269 + adminStateUp + ", shared=" + shared + ", tenantID=" + tenantID + ", routerExternal=" + routerExternal
270 + ", providerNetworkType=" + providerNetworkType + ", providerPhysicalNetwork="
271 + providerPhysicalNetwork + ", providerSegmentationID=" + providerSegmentationID + ", status=" + status
272 + ", subnets=" + subnets + ", segments = " + segments + "]";