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.ovsdb.openstack.netvirt.translator;
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 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 = "id")
33 @XmlElement (name = "name")
36 @XmlElement (defaultValue = "true", name = "admin_state_up")
39 @XmlElement (defaultValue = "false", name = "shared")
42 @XmlElement (name = "tenant_id")
45 // @XmlElement (defaultValue = "false", name = "router:external")
46 @XmlElement (defaultValue="false", namespace="router", name="external")
47 Boolean routerExternal;
49 // @XmlElement (defaultValue = "flat", name = "provider:network_type")
50 @XmlElement (namespace="provider", name="network_type")
51 String providerNetworkType;
53 // @XmlElement (name = "provider:physical_network")
54 @XmlElement (namespace="provider", name="physical_network")
55 String providerPhysicalNetwork;
57 // @XmlElement (name = "provider:segmentation_id")
58 @XmlElement (namespace="provider", name="segmentation_id")
59 String providerSegmentationID;
61 @XmlElement (name = "status")
64 @XmlElement (name = "subnets")
67 @XmlElement (name="segments")
68 List<NeutronNetwork_Segment> segments;
70 @XmlElement (name="vlan_transparent")
71 Boolean vlanTransparent;
73 @XmlElement (name="mtu")
76 /* This attribute lists the ports associated with an instance
77 * which is needed for determining if that instance can be deleted
80 public NeutronNetwork() {
83 public void initDefaults() {
84 subnets = new ArrayList<>();
88 if (adminStateUp == null) {
94 if (routerExternal == null) {
95 routerExternal = false;
97 if (providerNetworkType == null) {
98 providerNetworkType = "flat";
102 public String getID() { return networkUUID; }
104 public void setID(String id) { this.networkUUID = id; }
106 public String getNetworkUUID() {
110 public void setNetworkUUID(String networkUUID) {
111 this.networkUUID = networkUUID;
114 public String getNetworkName() {
118 public void setNetworkName(String networkName) {
119 this.networkName = networkName;
122 public boolean isAdminStateUp() {
126 public Boolean getAdminStateUp() { return adminStateUp; }
128 public void setAdminStateUp(boolean newValue) {
129 adminStateUp = newValue;
132 public boolean isShared() { return shared; }
134 public Boolean getShared() { return shared; }
136 public void setShared(boolean newValue) {
140 public String getTenantID() {
144 public void setTenantID(String tenantID) {
145 this.tenantID = tenantID;
148 public boolean isRouterExternal() { return routerExternal; }
150 public Boolean getRouterExternal() { return routerExternal; }
152 public void setRouterExternal(boolean newValue) {
153 routerExternal = newValue;
156 public String getProviderNetworkType() {
157 return providerNetworkType;
160 public void setProviderNetworkType(String providerNetworkType) {
161 this.providerNetworkType = providerNetworkType;
164 public String getProviderPhysicalNetwork() {
165 return providerPhysicalNetwork;
168 public void setProviderPhysicalNetwork(String providerPhysicalNetwork) {
169 this.providerPhysicalNetwork = providerPhysicalNetwork;
172 public String getProviderSegmentationID() {
173 return providerSegmentationID;
176 public void setProviderSegmentationID(String providerSegmentationID) {
177 this.providerSegmentationID = providerSegmentationID;
180 public String getStatus() {
184 public void setStatus(String status) {
185 this.status = status;
188 public List<String> getSubnets() {
192 public void setSubnets(List<String> subnets) {
193 this.subnets = subnets;
196 public void addSubnet(String uuid) {
200 public void removeSubnet(String uuid) {
201 subnets.remove(uuid);
204 public void setSegments(List<NeutronNetwork_Segment> segments) {
205 this.segments = segments;
208 public List<NeutronNetwork_Segment> getSegments() {
212 public Boolean getVlanTransparent() {
213 return vlanTransparent;
216 public void setVlanTransparent(Boolean input) {
217 this.vlanTransparent = input;
220 public Integer getMtu() {
224 public void setMtu(Integer input) {
229 * This method copies selected fields from the object and returns them
230 * as a new object, suitable for marshaling.
233 * List of attributes to be extracted
234 * @return an OpenStackNetworks object with only the selected fields
238 public NeutronNetwork extractFields(List<String> fields) {
239 NeutronNetwork ans = new NeutronNetwork();
240 Iterator<String> i = fields.iterator();
241 while (i.hasNext()) {
243 if (s.equals("id")) {
244 ans.setNetworkUUID(this.getNetworkUUID());
246 if (s.equals("name")) {
247 ans.setNetworkName(this.getNetworkName());
249 if (s.equals("admin_state_up")) {
250 ans.setAdminStateUp(adminStateUp);
252 if (s.equals("status")) {
253 ans.setStatus(this.getStatus());
255 if (s.equals("subnets")) {
256 List<String> subnetList = new ArrayList<>();
257 subnetList.addAll(this.getSubnets());
258 ans.setSubnets(subnetList);
260 if (s.equals("shared")) {
261 ans.setShared(shared);
263 if (s.equals("tenant_id")) {
264 ans.setTenantID(this.getTenantID());
266 if (s.equals("external")) {
267 ans.setRouterExternal(this.getRouterExternal());
269 if (s.equals("segmentation_id")) {
270 ans.setProviderSegmentationID(this.getProviderSegmentationID());
272 if (s.equals("physical_network")) {
273 ans.setProviderPhysicalNetwork(this.getProviderPhysicalNetwork());
275 if (s.equals("network_type")) {
276 ans.setProviderNetworkType(this.getProviderNetworkType());
283 public String toString() {
284 return "NeutronNetwork [networkUUID=" + networkUUID + ", networkName=" + networkName + ", adminStateUp="
285 + adminStateUp + ", shared=" + shared + ", tenantID=" + tenantID + ", routerExternal=" + routerExternal
286 + ", providerNetworkType=" + providerNetworkType + ", providerPhysicalNetwork="
287 + providerPhysicalNetwork + ", providerSegmentationID=" + providerSegmentationID + ", status=" + status
288 + ", subnets=" + subnets + ", segments = " + segments + "]";