Merge "BUG 1853 : Clustered Data Store causes Out of Memory"
[controller.git] / opendaylight / networkconfiguration / neutron / src / main / java / org / opendaylight / controller / networkconfig / neutron / NeutronLoadBalancerPool.java
1 /*
2  * Copyright (C) 2014 Red Hat, Inc.
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.controller.networkconfig.neutron;
10
11 import org.opendaylight.controller.configuration.ConfigurationObject;
12
13 import javax.xml.bind.annotation.XmlAccessType;
14 import javax.xml.bind.annotation.XmlAccessorType;
15 import javax.xml.bind.annotation.XmlElement;
16 import javax.xml.bind.annotation.XmlRootElement;
17 //import javax.xml.bind.annotation.XmlElementWrapper;
18 import java.io.Serializable;
19 import java.util.Iterator;
20 import java.util.List;
21
22 /**
23  * OpenStack Neutron v2.0 Load Balancer as a service
24  * (LBaaS) bindings. See OpenStack Network API
25  * v2.0 Reference for description of  the fields:
26  * Implemented fields are as follows:
27  *
28  * id                 uuid-str
29  * tenant_id          uuid-str
30  * name               String
31  * description        String
32  * protocol           String
33  * lb_algorithm       String
34  * healthmonitor_id   String
35  * admin_state_up     Bool
36  * status             String
37  * members            List <NeutronLoadBalancerPoolMember>
38  * http://docs.openstack.org/api/openstack-network/2.0/openstack-network.pdf
39  */
40
41 @XmlRootElement
42 @XmlAccessorType(XmlAccessType.NONE)
43
44 public class NeutronLoadBalancerPool extends ConfigurationObject implements Serializable {
45     private static final long serialVersionUID = 1L;
46
47     @XmlElement(name="id")
48     String loadBalancerPoolID;
49
50     @XmlElement (name="tenant_id")
51     String loadBalancerPoolTenantID;
52
53     @XmlElement (name="name")
54     String loadBalancerPoolName;
55
56     @XmlElement (name="description")
57     String loadBalancerPoolDescription;
58
59     @XmlElement (name="protocol")
60     String loadBalancerPoolProtocol;
61
62     @XmlElement (name="lb_algorithm")
63     String loadBalancerPoolLbAlgorithm;
64
65     @XmlElement (name="healthmonitor_id")
66     String neutronLoadBalancerPoolHealthMonitorID;
67
68     @XmlElement (defaultValue="true", name="admin_state_up")
69     Boolean loadBalancerPoolAdminStateIsUp;
70
71     @XmlElement (name="status")
72     String loadBalancerPoolStatus;
73
74     @XmlElement(name="members")
75     List<NeutronLoadBalancerPoolMember> loadBalancerPoolMembers;
76
77     public NeutronLoadBalancerPool() {
78     }
79
80     public String getLoadBalancerPoolID() {
81         return loadBalancerPoolID;
82     }
83
84     public void setLoadBalancerPoolID(String loadBalancerPoolID) {
85         this.loadBalancerPoolID = loadBalancerPoolID;
86     }
87
88     public String getLoadBalancerPoolTenantID() {
89         return loadBalancerPoolTenantID;
90     }
91
92     public void setLoadBalancerPoolTenantID(String loadBalancerPoolTenantID) {
93         this.loadBalancerPoolTenantID = loadBalancerPoolTenantID;
94     }
95
96     public String getLoadBalancerPoolName() {
97         return loadBalancerPoolName;
98     }
99
100     public void setLoadBalancerPoolName(String loadBalancerPoolName) {
101         this.loadBalancerPoolName = loadBalancerPoolName;
102     }
103
104     public String getLoadBalancerPoolDescription() {
105         return loadBalancerPoolDescription;
106     }
107
108     public void setLoadBalancerPoolDescription(String loadBalancerPoolDescription) {
109         this.loadBalancerPoolDescription = loadBalancerPoolDescription;
110     }
111
112     public String getLoadBalancerPoolProtocol() {
113         return loadBalancerPoolProtocol;
114     }
115
116     public void setLoadBalancerPoolProtocol(String loadBalancerPoolProtocol) {
117         this.loadBalancerPoolProtocol = loadBalancerPoolProtocol;
118     }
119
120     public String getLoadBalancerPoolLbAlgorithm() {
121         return loadBalancerPoolLbAlgorithm;
122     }
123
124     public void setLoadBalancerPoolLbAlgorithm(String loadBalancerPoolLbAlgorithm) {
125         this.loadBalancerPoolLbAlgorithm = loadBalancerPoolLbAlgorithm;
126     }
127
128     public String getNeutronLoadBalancerPoolHealthMonitorID() {
129         return neutronLoadBalancerPoolHealthMonitorID;
130     }
131
132     public void setNeutronLoadBalancerPoolHealthMonitorID(String neutronLoadBalancerPoolHealthMonitorID) {
133         this.neutronLoadBalancerPoolHealthMonitorID = neutronLoadBalancerPoolHealthMonitorID;
134     }
135
136     public Boolean getLoadBalancerPoolAdminIsStateIsUp() {
137         return loadBalancerPoolAdminStateIsUp;
138     }
139
140     public void setLoadBalancerPoolAdminStateIsUp(Boolean loadBalancerPoolAdminStateIsUp) {
141         this.loadBalancerPoolAdminStateIsUp = loadBalancerPoolAdminStateIsUp;
142     }
143
144     public String getLoadBalancerPoolStatus() {
145         return loadBalancerPoolStatus;
146     }
147
148     public void setLoadBalancerPoolStatus(String loadBalancerPoolStatus) {
149         this.loadBalancerPoolStatus = loadBalancerPoolStatus;
150     }
151
152     public List<NeutronLoadBalancerPoolMember> getLoadBalancerPoolMembers() {
153         /*
154          * Update the pool_id of the member to that this.loadBalancerPoolID
155          */
156         for (NeutronLoadBalancerPoolMember member: loadBalancerPoolMembers)
157             member.setPoolID(loadBalancerPoolID);
158         return loadBalancerPoolMembers;
159     }
160
161     public void setLoadBalancerPoolMembers(List<NeutronLoadBalancerPoolMember> loadBalancerPoolMembers) {
162         this.loadBalancerPoolMembers = loadBalancerPoolMembers;
163     }
164
165     public void addLoadBalancerPoolMember(NeutronLoadBalancerPoolMember loadBalancerPoolMember) {
166         this.loadBalancerPoolMembers.add(loadBalancerPoolMember);
167     }
168
169     public void removeLoadBalancerPoolMember(NeutronLoadBalancerPoolMember loadBalancerPoolMember) {
170         this.loadBalancerPoolMembers.remove(loadBalancerPoolMember);
171     }
172
173     public NeutronLoadBalancerPool extractFields(List<String> fields) {
174         NeutronLoadBalancerPool ans = new NeutronLoadBalancerPool();
175         Iterator<String> i = fields.iterator();
176         while (i.hasNext()) {
177             String s = i.next();
178             if (s.equals("id")) {
179                 ans.setLoadBalancerPoolID(this.getLoadBalancerPoolID());
180             }
181             if (s.equals("tenant_id")) {
182                 ans.setLoadBalancerPoolTenantID(this.getLoadBalancerPoolTenantID());
183             }
184             if (s.equals("name")) {
185                 ans.setLoadBalancerPoolName(this.getLoadBalancerPoolName());
186             }
187             if(s.equals("description")) {
188                 ans.setLoadBalancerPoolDescription(this.getLoadBalancerPoolDescription());
189             }
190             if(s.equals("protocol")) {
191                 ans.setLoadBalancerPoolProtocol(this.getLoadBalancerPoolProtocol());
192             }
193             if(s.equals("lb_algorithm")) {
194                 ans.setLoadBalancerPoolLbAlgorithm(this.getLoadBalancerPoolLbAlgorithm());
195             }
196             if(s.equals("healthmonitor_id")) {
197                 ans.setNeutronLoadBalancerPoolHealthMonitorID(this.getNeutronLoadBalancerPoolHealthMonitorID());
198             }
199             if (s.equals("admin_state_up")) {
200                 ans.setLoadBalancerPoolAdminStateIsUp(loadBalancerPoolAdminStateIsUp);
201             }
202             if (s.equals("status")) {
203                 ans.setLoadBalancerPoolStatus(this.getLoadBalancerPoolStatus());
204             }
205             if (s.equals("members")) {
206                 ans.setLoadBalancerPoolMembers(getLoadBalancerPoolMembers());
207             }
208         }
209         return ans;
210     }
211 }