7c73e63feb54daf6441fdb5d8eee8304e75c1a48
[netvirt.git] / openstack / net-virt / src / main / java / org / opendaylight / ovsdb / openstack / netvirt / translator / NeutronNetwork.java
1 /*
2  * Copyright (c) 2013, 2015 IBM Corporation and others.  All rights reserved.
3  *
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
7  */
8
9 package org.opendaylight.ovsdb.openstack.netvirt.translator;
10
11 import java.io.Serializable;
12 import java.util.ArrayList;
13 import java.util.Iterator;
14 import java.util.List;
15
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;
20
21 @XmlRootElement(name = "network")
22 @XmlAccessorType(XmlAccessType.NONE)
23
24 public class NeutronNetwork implements Serializable, INeutronObject {
25     // See OpenStack Network API v2.0 Reference for description of
26     // annotated attributes
27
28     private static final long serialVersionUID = 1L;
29
30     @XmlElement (name = "id")
31     String networkUUID;
32
33     @XmlElement (name = "name")
34     String networkName;
35
36     @XmlElement (defaultValue = "true", name = "admin_state_up")
37     Boolean adminStateUp;
38
39     @XmlElement (defaultValue = "false", name = "shared")
40     Boolean shared;
41
42     @XmlElement (name = "tenant_id")
43     String tenantID;
44
45     //    @XmlElement (defaultValue = "false", name = "router:external")
46     @XmlElement (defaultValue="false", namespace="router", name="external")
47     Boolean routerExternal;
48
49     //    @XmlElement (defaultValue = "flat", name = "provider:network_type")
50     @XmlElement (namespace="provider", name="network_type")
51     String providerNetworkType;
52
53     //    @XmlElement (name = "provider:physical_network")
54     @XmlElement (namespace="provider", name="physical_network")
55     String providerPhysicalNetwork;
56
57     //    @XmlElement (name = "provider:segmentation_id")
58     @XmlElement (namespace="provider", name="segmentation_id")
59     String providerSegmentationID;
60
61     @XmlElement (name = "status")
62     String status;
63
64     @XmlElement (name = "subnets")
65     List<String> subnets;
66
67     @XmlElement (name="segments")
68     List<NeutronNetwork_Segment> segments;
69
70     @XmlElement (name="vlan_transparent")
71     Boolean vlanTransparent;
72
73     @XmlElement (name="mtu")
74     Integer mtu;
75
76     /* This attribute lists the ports associated with an instance
77      * which is needed for determining if that instance can be deleted
78      */
79
80     public NeutronNetwork() {
81     }
82
83     public void initDefaults() {
84         subnets = new ArrayList<>();
85         if (status == null) {
86             status = "ACTIVE";
87         }
88         if (adminStateUp == null) {
89             adminStateUp = true;
90         }
91         if (shared == null) {
92             shared = false;
93         }
94         if (routerExternal == null) {
95             routerExternal = false;
96         }
97         if (providerNetworkType == null) {
98             providerNetworkType = "flat";
99         }
100     }
101
102     public String getID() { return networkUUID; }
103
104     public void setID(String id) { this.networkUUID = id; }
105
106     public String getNetworkUUID() {
107         return networkUUID;
108     }
109
110     public void setNetworkUUID(String networkUUID) {
111         this.networkUUID = networkUUID;
112     }
113
114     public String getNetworkName() {
115         return networkName;
116     }
117
118     public void setNetworkName(String networkName) {
119         this.networkName = networkName;
120     }
121
122     public boolean isAdminStateUp() {
123         return adminStateUp;
124     }
125
126     public Boolean getAdminStateUp() { return adminStateUp; }
127
128     public void setAdminStateUp(boolean newValue) {
129         adminStateUp = newValue;
130     }
131
132     public boolean isShared() { return shared; }
133
134     public Boolean getShared() { return shared; }
135
136     public void setShared(boolean newValue) {
137         shared = newValue;
138     }
139
140     public String getTenantID() {
141         return tenantID;
142     }
143
144     public void setTenantID(String tenantID) {
145         this.tenantID = tenantID;
146     }
147
148     public boolean isRouterExternal() { return routerExternal; }
149
150     public Boolean getRouterExternal() { return routerExternal; }
151
152     public void setRouterExternal(boolean newValue) {
153         routerExternal = newValue;
154     }
155
156     public String getProviderNetworkType() {
157         return providerNetworkType;
158     }
159
160     public void setProviderNetworkType(String providerNetworkType) {
161         this.providerNetworkType = providerNetworkType;
162     }
163
164     public String getProviderPhysicalNetwork() {
165         return providerPhysicalNetwork;
166     }
167
168     public void setProviderPhysicalNetwork(String providerPhysicalNetwork) {
169         this.providerPhysicalNetwork = providerPhysicalNetwork;
170     }
171
172     public String getProviderSegmentationID() {
173         return providerSegmentationID;
174     }
175
176     public void setProviderSegmentationID(String providerSegmentationID) {
177         this.providerSegmentationID = providerSegmentationID;
178     }
179
180     public String getStatus() {
181         return status;
182     }
183
184     public void setStatus(String status) {
185         this.status = status;
186     }
187
188     public List<String> getSubnets() {
189         return subnets;
190     }
191
192     public void setSubnets(List<String> subnets) {
193         this.subnets = subnets;
194     }
195
196     public void addSubnet(String uuid) {
197         subnets.add(uuid);
198     }
199
200     public void removeSubnet(String uuid) {
201         subnets.remove(uuid);
202     }
203
204     public void setSegments(List<NeutronNetwork_Segment> segments) {
205         this.segments = segments;
206     }
207
208     public List<NeutronNetwork_Segment> getSegments() {
209         return segments;
210     }
211
212     public Boolean getVlanTransparent() {
213         return vlanTransparent;
214     }
215
216     public void setVlanTransparent(Boolean input) {
217         this.vlanTransparent = input;
218     }
219
220     public Integer getMtu() {
221         return mtu;
222     }
223
224     public void setMtu(Integer input) {
225         mtu = input;
226     }
227
228     /**
229      * This method copies selected fields from the object and returns them
230      * as a new object, suitable for marshaling.
231      *
232      * @param fields
233      *            List of attributes to be extracted
234      * @return an OpenStackNetworks object with only the selected fields
235      * populated
236      */
237
238     public NeutronNetwork extractFields(List<String> fields) {
239         NeutronNetwork ans = new NeutronNetwork();
240         Iterator<String> i = fields.iterator();
241         while (i.hasNext()) {
242             String s = i.next();
243             if (s.equals("id")) {
244                 ans.setNetworkUUID(this.getNetworkUUID());
245             }
246             if (s.equals("name")) {
247                 ans.setNetworkName(this.getNetworkName());
248             }
249             if (s.equals("admin_state_up")) {
250                 ans.setAdminStateUp(adminStateUp);
251             }
252             if (s.equals("status")) {
253                 ans.setStatus(this.getStatus());
254             }
255             if (s.equals("subnets")) {
256                 List<String> subnetList = new ArrayList<>();
257                 subnetList.addAll(this.getSubnets());
258                 ans.setSubnets(subnetList);
259             }
260             if (s.equals("shared")) {
261                 ans.setShared(shared);
262             }
263             if (s.equals("tenant_id")) {
264                 ans.setTenantID(this.getTenantID());
265             }
266             if (s.equals("external")) {
267                 ans.setRouterExternal(this.getRouterExternal());
268             }
269             if (s.equals("segmentation_id")) {
270                 ans.setProviderSegmentationID(this.getProviderSegmentationID());
271             }
272             if (s.equals("physical_network")) {
273                 ans.setProviderPhysicalNetwork(this.getProviderPhysicalNetwork());
274             }
275             if (s.equals("network_type")) {
276                 ans.setProviderNetworkType(this.getProviderNetworkType());
277             }
278         }
279         return ans;
280     }
281
282     @Override
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 + "]";
289     }
290 }
291