Update .gitreview for new repo
[netvirt.git] / openstack / net-virt / src / main / java / org / opendaylight / netvirt / openstack / netvirt / translator / NeutronLoadBalancerPool.java
1 /*
2  * Copyright (C) 2014 Red Hat, Inc. 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.netvirt.openstack.netvirt.translator;
10
11 import javax.xml.bind.annotation.XmlAccessType;
12 import javax.xml.bind.annotation.XmlAccessorType;
13 import javax.xml.bind.annotation.XmlElement;
14 import javax.xml.bind.annotation.XmlRootElement;
15 import java.io.Serializable;
16 import java.util.List;
17
18 /**
19  * OpenStack Neutron v2.0 Load Balancer as a service
20  * (LBaaS) bindings. See OpenStack Network API
21  * v2.0 Reference for description of  the fields:
22  * Implemented fields are as follows:
23  *
24  * id                 uuid-str
25  * tenant_id          uuid-str
26  * name               String
27  * description        String
28  * protocol           String
29  * lb_algorithm       String
30  * healthmonitor_id   String
31  * admin_state_up     Bool
32  * status             String
33  * members            List <NeutronLoadBalancerPoolMember>
34  * http://docs.openstack.org/api/openstack-network/2.0/openstack-network.pdf
35  */
36
37 @XmlRootElement
38 @XmlAccessorType(XmlAccessType.NONE)
39
40 public class NeutronLoadBalancerPool implements Serializable, INeutronObject {
41     private static final long serialVersionUID = 1L;
42
43     @XmlElement(name = "id")
44     String loadBalancerPoolID;
45
46     @XmlElement (name = "tenant_id")
47     String loadBalancerPoolTenantID;
48
49     @XmlElement (name = "name")
50     String loadBalancerPoolName;
51
52     @XmlElement (name = "description")
53     String loadBalancerPoolDescription;
54
55     @XmlElement (name = "protocol")
56     String loadBalancerPoolProtocol;
57
58     @XmlElement (name = "lb_algorithm")
59     String loadBalancerPoolLbAlgorithm;
60
61     @XmlElement (name = "healthmonitor_id")
62     String neutronLoadBalancerPoolHealthMonitorID;
63
64     @XmlElement (defaultValue = "true", name = "admin_state_up")
65     Boolean loadBalancerPoolAdminStateIsUp;
66
67     @XmlElement(name = "listeners")
68     List<Neutron_ID> loadBalancerPoolListeners;
69
70     @XmlElement(name = "session_persistence")
71     NeutronLoadBalancer_SessionPersistence loadBalancerPoolSessionPersistence;
72
73     @XmlElement(name = "members")
74     List<NeutronLoadBalancerPoolMember> loadBalancerPoolMembers;
75
76     public NeutronLoadBalancerPool() {
77     }
78
79     public String getID() {
80         return loadBalancerPoolID;
81     }
82
83     public void setID(String id) {
84         loadBalancerPoolID = id;
85     }
86
87     // @deprecated use getID()
88     public String getLoadBalancerPoolID() {
89         return loadBalancerPoolID;
90     }
91
92     // @deprecated use setID()
93     public void setLoadBalancerPoolID(String loadBalancerPoolID) {
94         this.loadBalancerPoolID = loadBalancerPoolID;
95     }
96
97     public String getLoadBalancerPoolTenantID() {
98         return loadBalancerPoolTenantID;
99     }
100
101     public void setLoadBalancerPoolTenantID(String loadBalancerPoolTenantID) {
102         this.loadBalancerPoolTenantID = loadBalancerPoolTenantID;
103     }
104
105     public String getLoadBalancerPoolName() {
106         return loadBalancerPoolName;
107     }
108
109     public void setLoadBalancerPoolName(String loadBalancerPoolName) {
110         this.loadBalancerPoolName = loadBalancerPoolName;
111     }
112
113     public String getLoadBalancerPoolDescription() {
114         return loadBalancerPoolDescription;
115     }
116
117     public void setLoadBalancerPoolDescription(String loadBalancerPoolDescription) {
118         this.loadBalancerPoolDescription = loadBalancerPoolDescription;
119     }
120
121     public String getLoadBalancerPoolProtocol() {
122         return loadBalancerPoolProtocol;
123     }
124
125     public void setLoadBalancerPoolProtocol(String loadBalancerPoolProtocol) {
126         this.loadBalancerPoolProtocol = loadBalancerPoolProtocol;
127     }
128
129     public String getLoadBalancerPoolLbAlgorithm() {
130         return loadBalancerPoolLbAlgorithm;
131     }
132
133     public void setLoadBalancerPoolLbAlgorithm(String loadBalancerPoolLbAlgorithm) {
134         this.loadBalancerPoolLbAlgorithm = loadBalancerPoolLbAlgorithm;
135     }
136
137     public String getNeutronLoadBalancerPoolHealthMonitorID() {
138         return neutronLoadBalancerPoolHealthMonitorID;
139     }
140
141     public void setNeutronLoadBalancerPoolHealthMonitorID(String neutronLoadBalancerPoolHealthMonitorID) {
142         this.neutronLoadBalancerPoolHealthMonitorID = neutronLoadBalancerPoolHealthMonitorID;
143     }
144
145     public Boolean getLoadBalancerPoolAdminIsStateIsUp() {
146         return loadBalancerPoolAdminStateIsUp;
147     }
148
149     public void setLoadBalancerPoolAdminStateIsUp(Boolean loadBalancerPoolAdminStateIsUp) {
150         this.loadBalancerPoolAdminStateIsUp = loadBalancerPoolAdminStateIsUp;
151     }
152
153     public NeutronLoadBalancer_SessionPersistence getLoadBalancerPoolSessionPersistence() {
154         return loadBalancerPoolSessionPersistence;
155     }
156
157     public void setLoadBalancerSessionPersistence(NeutronLoadBalancer_SessionPersistence loadBalancerPoolSessionPersistence) {
158         this.loadBalancerPoolSessionPersistence = loadBalancerPoolSessionPersistence;
159     }
160
161     public List<Neutron_ID> getLoadBalancerPoolListeners() {
162         return loadBalancerPoolListeners;
163     }
164
165     public void setLoadBalancerPoolListeners(List<Neutron_ID> loadBalancerPoolListeners) {
166         this.loadBalancerPoolListeners = loadBalancerPoolListeners;
167     }
168
169     public List<NeutronLoadBalancerPoolMember> getLoadBalancerPoolMembers() {
170         /*
171          * Update the pool_id of the member to that this.loadBalancerPoolID
172          */
173         if (loadBalancerPoolMembers != null) {
174             for (NeutronLoadBalancerPoolMember member: loadBalancerPoolMembers) {
175                 member.setPoolID(loadBalancerPoolID);
176             }
177             return loadBalancerPoolMembers;
178         }
179         return loadBalancerPoolMembers;
180     }
181
182     public void setLoadBalancerPoolMembers(List<NeutronLoadBalancerPoolMember> loadBalancerPoolMembers) {
183         this.loadBalancerPoolMembers = loadBalancerPoolMembers;
184     }
185
186     public void addLoadBalancerPoolMember(NeutronLoadBalancerPoolMember loadBalancerPoolMember) {
187         this.loadBalancerPoolMembers.add(loadBalancerPoolMember);
188     }
189
190     public void removeLoadBalancerPoolMember(NeutronLoadBalancerPoolMember loadBalancerPoolMember) {
191         this.loadBalancerPoolMembers.remove(loadBalancerPoolMember);
192     }
193
194     public NeutronLoadBalancerPool extractFields(List<String> fields) {
195         NeutronLoadBalancerPool ans = new NeutronLoadBalancerPool();
196         for (String s : fields) {
197             switch (s) {
198                 case "id":
199                     ans.setID(this.getID());
200                     break;
201                 case "tenant_id":
202                     ans.setLoadBalancerPoolTenantID(this.getLoadBalancerPoolTenantID());
203                     break;
204                 case "name":
205                     ans.setLoadBalancerPoolName(this.getLoadBalancerPoolName());
206                     break;
207                 case "description":
208                     ans.setLoadBalancerPoolDescription(this.getLoadBalancerPoolDescription());
209                     break;
210                 case "protocol":
211                     ans.setLoadBalancerPoolProtocol(this.getLoadBalancerPoolProtocol());
212                     break;
213                 case "lb_algorithm":
214                     ans.setLoadBalancerPoolLbAlgorithm(this.getLoadBalancerPoolLbAlgorithm());
215                     break;
216                 case "healthmonitor_id":
217                     ans.setNeutronLoadBalancerPoolHealthMonitorID(this.getNeutronLoadBalancerPoolHealthMonitorID());
218                     break;
219                 case "admin_state_up":
220                     ans.setLoadBalancerPoolAdminStateIsUp(loadBalancerPoolAdminStateIsUp);
221                     break;
222                 case "members":
223                     ans.setLoadBalancerPoolMembers(getLoadBalancerPoolMembers());
224                     break;
225             }
226         }
227         return ans;
228     }
229
230     @Override
231     public String toString() {
232         return "NeutronLoadBalancerPool{" +
233             "id='" + loadBalancerPoolID + '\'' +
234             ", tenantID='" + loadBalancerPoolTenantID + '\'' +
235             ", name='" + loadBalancerPoolName + '\'' +
236             ", description='" + loadBalancerPoolDescription + '\'' +
237             ", protocol=" + loadBalancerPoolProtocol +'\''+
238             ", lbAlgorithm='" + loadBalancerPoolLbAlgorithm + '\'' +
239             ", healthmonitorID=" + neutronLoadBalancerPoolHealthMonitorID +
240             ", adminStateUp=" + loadBalancerPoolAdminStateIsUp +
241 // todo: add loadBalancerPoolMembers as joined string
242             '}';
243     }
244
245 }