2 * Copyright IBM Corporation, 2013. All rights reserved.
\r
4 * This program and the accompanying materials are made available under the
\r
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
\r
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
\r
9 package org.opendaylight.controller.networkconfig.neutron;
\r
11 import java.util.ArrayList;
\r
12 import java.util.Iterator;
\r
13 import java.util.List;
\r
15 import javax.xml.bind.annotation.XmlAccessType;
\r
16 import javax.xml.bind.annotation.XmlAccessorType;
\r
17 import javax.xml.bind.annotation.XmlElement;
\r
18 import javax.xml.bind.annotation.XmlRootElement;
\r
20 @XmlRootElement(name = "network")
\r
21 @XmlAccessorType(XmlAccessType.NONE)
\r
23 public class NeutronNetwork {
\r
24 // See OpenStack Network API v2.0 Reference for description of
\r
25 // annotated attributes
\r
27 @XmlElement (name="id")
\r
28 String networkUUID; // network UUID
\r
30 @XmlElement (name="name")
\r
31 String networkName; // name
\r
33 @XmlElement (defaultValue="true", name="admin_state_up")
\r
34 Boolean adminStateUp; // admin state up (true/false)
\r
36 @XmlElement (defaultValue="false", name="shared")
\r
37 Boolean shared; // shared network or not
\r
39 @XmlElement (name="tenant_id")
\r
40 String tenantID; // tenant for this network
\r
42 @XmlElement (defaultValue="false", namespace="router", name="external")
\r
43 Boolean routerExternal; // network external or not
\r
45 @XmlElement (defaultValue="flat", namespace="provider", name="network_type")
\r
46 String providerNetworkType; // provider network type (flat or vlan)
\r
48 @XmlElement (namespace="provider", name="physical_network")
\r
49 String providerPhysicalNetwork; // provider physical network (name)
\r
51 @XmlElement (namespace="provider", name="segmentation_id")
\r
52 String providerSegmentationID; // provide segmentation ID (vlan ID)
\r
54 @XmlElement (name="status")
\r
55 String status; // status (read-only)
\r
57 @XmlElement (name="subnets")
\r
58 List<String> subnets; // subnets (read-only)
\r
60 /* This attribute lists the ports associated with an instance
\r
61 * which is needed for determining if that instance can be deleted
\r
64 List<NeutronPort> myPorts;
\r
66 public NeutronNetwork() {
\r
67 myPorts = new ArrayList<NeutronPort>();
\r
70 public void initDefaults() {
\r
71 subnets = new ArrayList<String>();
\r
72 if (this.status == null)
\r
73 this.status = "ACTIVE";
\r
74 if (this.adminStateUp == null)
\r
75 this.adminStateUp = true;
\r
76 if (this.shared == null)
\r
77 this.shared = false;
\r
78 if (this.routerExternal == null)
\r
79 this.routerExternal = false;
\r
80 if (this.providerNetworkType == null)
\r
81 this.providerNetworkType = "flat";
\r
84 public String getID() { return networkUUID; }
\r
86 public String getNetworkUUID() {
\r
90 public void setNetworkUUID(String networkUUID) {
\r
91 this.networkUUID = networkUUID;
\r
94 public String getNetworkName() {
\r
98 public void setNetworkName(String networkName) {
\r
99 this.networkName = networkName;
\r
102 public boolean isAdminStateUp() {
\r
103 return adminStateUp;
\r
106 public Boolean getAdminStateUp() { return adminStateUp; }
\r
108 public void setAdminStateUp(boolean newValue) {
\r
109 this.adminStateUp = newValue;
\r
112 public boolean isShared() { return shared; }
\r
114 public Boolean getShared() { return shared; }
\r
116 public void setShared(boolean newValue) {
\r
117 this.shared = newValue;
\r
120 public String getTenantID() {
\r
124 public void setTenantID(String tenantID) {
\r
125 this.tenantID = tenantID;
\r
128 public boolean isRouterExternal() { return routerExternal; }
\r
130 public Boolean getRouterExternal() { return routerExternal; }
\r
132 public void setRouterExternal(boolean newValue) {
\r
133 this.routerExternal = newValue;
\r
136 public String getProviderNetworkType() {
\r
137 return providerNetworkType;
\r
140 public void setProviderNetworkType(String providerNetworkType) {
\r
141 this.providerNetworkType = providerNetworkType;
\r
144 public String getProviderPhysicalNetwork() {
\r
145 return providerPhysicalNetwork;
\r
148 public void setProviderPhysicalNetwork(String providerPhysicalNetwork) {
\r
149 this.providerPhysicalNetwork = providerPhysicalNetwork;
\r
152 public String getProviderSegmentationID() {
\r
153 return providerSegmentationID;
\r
156 public void setProviderSegmentationID(String providerSegmentationID) {
\r
157 this.providerSegmentationID = providerSegmentationID;
\r
160 public String getStatus() {
\r
164 public void setStatus(String status) {
\r
165 this.status = status;
\r
168 public List<String> getSubnets() {
\r
172 public void setSubnets(List<String> subnets) {
\r
173 this.subnets = subnets;
\r
176 public void addSubnet(String uuid) {
\r
177 this.subnets.add(uuid);
\r
180 public void removeSubnet(String uuid) {
\r
181 this.subnets.remove(uuid);
\r
184 public List<NeutronPort> getPortsOnNetwork() {
\r
188 public void addPort(NeutronPort port) {
\r
192 public void removePort(NeutronPort port) {
\r
193 myPorts.remove(port);
\r
197 * This method copies selected fields from the object and returns them
\r
198 * as a new object, suitable for marshaling.
\r
201 * List of attributes to be extracted
\r
202 * @return an OpenStackNetworks object with only the selected fields
\r
206 public NeutronNetwork extractFields(List<String> fields) {
\r
207 NeutronNetwork ans = new NeutronNetwork();
\r
208 Iterator<String> i = fields.iterator();
\r
209 while (i.hasNext()) {
\r
210 String s = i.next();
\r
211 if (s.equals("id"))
\r
212 ans.setNetworkUUID(this.getNetworkUUID());
\r
213 if (s.equals("name"))
\r
214 ans.setNetworkName(this.getNetworkName());
\r
215 if (s.equals("admin_state_up"))
\r
216 ans.setAdminStateUp(this.adminStateUp);
\r
217 if (s.equals("status"))
\r
218 ans.setStatus(this.getStatus());
\r
219 if (s.equals("subnets")) {
\r
220 List<String> subnetList = new ArrayList<String>();
\r
221 subnetList.addAll(this.getSubnets());
\r
222 ans.setSubnets(subnetList);
\r
224 if (s.equals("shared"))
\r
225 ans.setShared(this.shared);
\r
226 if (s.equals("tenant_id"))
\r
227 ans.setTenantID(this.getTenantID());
\r