2 * Copyright (C) 2014 Red Hat, Inc. 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.neutron.spi;
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.ArrayList;
17 import java.util.List;
20 * OpenStack Neutron v2.0 Load Balancer as a service
21 * (LBaaS) bindings. See OpenStack Network API
22 * v2.0 Reference for description of the fields:
23 * Implemented fields are as follows:
31 * healthmonitor_id String
34 * members List <NeutronLoadBalancerPoolMember>
35 * http://docs.openstack.org/api/openstack-network/2.0/openstack-network.pdf
39 @XmlAccessorType(XmlAccessType.NONE)
41 public class NeutronLoadBalancerPool extends NeutronObject implements Serializable, INeutronObject {
42 private static final long serialVersionUID = 1L;
44 @XmlElement (name = "name")
45 String loadBalancerPoolName;
47 @XmlElement (name = "description")
48 String loadBalancerPoolDescription;
50 @XmlElement (name = "protocol")
51 String loadBalancerPoolProtocol;
53 @XmlElement (name = "lb_algorithm")
54 String loadBalancerPoolLbAlgorithm;
56 @XmlElement (name = "healthmonitor_id")
57 String neutronLoadBalancerPoolHealthMonitorID;
59 @XmlElement (defaultValue = "true", name = "admin_state_up")
60 Boolean loadBalancerPoolAdminStateIsUp;
62 @XmlElement(name = "listeners")
63 List<Neutron_ID> loadBalancerPoolListeners;
65 @XmlElement(name = "session_persistence")
66 NeutronLoadBalancer_SessionPersistence loadBalancerPoolSessionPersistence;
68 @XmlElement(name = "members")
69 List<NeutronLoadBalancerPoolMember> loadBalancerPoolMembers;
71 public NeutronLoadBalancerPool() {
72 loadBalancerPoolMembers = new ArrayList<NeutronLoadBalancerPoolMember>();
75 // @deprecated use getID()
76 public String getLoadBalancerPoolID() {
80 // @deprecated use setID()
81 public void setLoadBalancerPoolID(String uuid) {
86 public String getLoadBalancerPoolTenantID() {
91 public void setLoadBalancerPoolTenantID(String tenantID) {
92 setTenantID(tenantID);
95 public String getLoadBalancerPoolName() {
96 return loadBalancerPoolName;
99 public void setLoadBalancerPoolName(String loadBalancerPoolName) {
100 this.loadBalancerPoolName = loadBalancerPoolName;
103 public String getLoadBalancerPoolDescription() {
104 return loadBalancerPoolDescription;
107 public void setLoadBalancerPoolDescription(String loadBalancerPoolDescription) {
108 this.loadBalancerPoolDescription = loadBalancerPoolDescription;
111 public String getLoadBalancerPoolProtocol() {
112 return loadBalancerPoolProtocol;
115 public void setLoadBalancerPoolProtocol(String loadBalancerPoolProtocol) {
116 this.loadBalancerPoolProtocol = loadBalancerPoolProtocol;
119 public String getLoadBalancerPoolLbAlgorithm() {
120 return loadBalancerPoolLbAlgorithm;
123 public void setLoadBalancerPoolLbAlgorithm(String loadBalancerPoolLbAlgorithm) {
124 this.loadBalancerPoolLbAlgorithm = loadBalancerPoolLbAlgorithm;
127 public String getNeutronLoadBalancerPoolHealthMonitorID() {
128 return neutronLoadBalancerPoolHealthMonitorID;
131 public void setNeutronLoadBalancerPoolHealthMonitorID(String neutronLoadBalancerPoolHealthMonitorID) {
132 this.neutronLoadBalancerPoolHealthMonitorID = neutronLoadBalancerPoolHealthMonitorID;
135 public Boolean getLoadBalancerPoolAdminIsStateIsUp() {
136 return loadBalancerPoolAdminStateIsUp;
139 public void setLoadBalancerPoolAdminStateIsUp(Boolean loadBalancerPoolAdminStateIsUp) {
140 this.loadBalancerPoolAdminStateIsUp = loadBalancerPoolAdminStateIsUp;
143 public NeutronLoadBalancer_SessionPersistence getLoadBalancerPoolSessionPersistence() {
144 return loadBalancerPoolSessionPersistence;
147 public void setLoadBalancerSessionPersistence(NeutronLoadBalancer_SessionPersistence loadBalancerPoolSessionPersistence) {
148 this.loadBalancerPoolSessionPersistence = loadBalancerPoolSessionPersistence;
151 public List<Neutron_ID> getLoadBalancerPoolListeners() {
152 return loadBalancerPoolListeners;
155 public void setLoadBalancerPoolListeners(List<Neutron_ID> loadBalancerPoolListeners) {
156 this.loadBalancerPoolListeners = loadBalancerPoolListeners;
159 public List<NeutronLoadBalancerPoolMember> getLoadBalancerPoolMembers() {
161 * Update the pool_id of the member to that this.id
163 List<NeutronLoadBalancerPoolMember> answer = new ArrayList<NeutronLoadBalancerPoolMember>();
164 if (loadBalancerPoolMembers != null) {
165 for (NeutronLoadBalancerPoolMember member: loadBalancerPoolMembers) {
166 member.setPoolID(uuid);
173 public NeutronLoadBalancerPoolMember getNeutronLoadBalancerPoolMember(String uuid) {
174 for (NeutronLoadBalancerPoolMember member: loadBalancerPoolMembers) {
175 if (uuid.equals(member.getID())) {
182 public void setLoadBalancerPoolMembers(List<NeutronLoadBalancerPoolMember> loadBalancerPoolMembers) {
183 this.loadBalancerPoolMembers = loadBalancerPoolMembers;
186 public void addLoadBalancerPoolMember(NeutronLoadBalancerPoolMember loadBalancerPoolMember) {
187 this.loadBalancerPoolMembers.add(loadBalancerPoolMember);
190 public void removeLoadBalancerPoolMember(NeutronLoadBalancerPoolMember loadBalancerPoolMember) {
191 this.loadBalancerPoolMembers.remove(loadBalancerPoolMember);
194 public NeutronLoadBalancerPool extractFields(List<String> fields) {
195 NeutronLoadBalancerPool ans = new NeutronLoadBalancerPool();
196 for (String s: fields) {
197 if (s.equals("id")) {
198 ans.setID(this.getID());
200 if (s.equals("tenant_id")) {
201 ans.setTenantID(this.getTenantID());
203 if (s.equals("name")) {
204 ans.setLoadBalancerPoolName(this.getLoadBalancerPoolName());
206 if(s.equals("description")) {
207 ans.setLoadBalancerPoolDescription(this.getLoadBalancerPoolDescription());
209 if(s.equals("protocol")) {
210 ans.setLoadBalancerPoolProtocol(this.getLoadBalancerPoolProtocol());
212 if (s.equals("lb_algorithm")) {
213 ans.setLoadBalancerPoolLbAlgorithm(this.getLoadBalancerPoolLbAlgorithm());
215 if (s.equals("healthmonitor_id")) {
216 ans.setNeutronLoadBalancerPoolHealthMonitorID(this.getNeutronLoadBalancerPoolHealthMonitorID());
218 if (s.equals("admin_state_up")) {
219 ans.setLoadBalancerPoolAdminStateIsUp(loadBalancerPoolAdminStateIsUp);
221 if (s.equals("members")) {
222 ans.setLoadBalancerPoolMembers(getLoadBalancerPoolMembers());
229 public String toString() {
230 return "NeutronLoadBalancerPool{" +
231 "id='" + uuid + '\'' +
232 ", tenantID='" + tenantID + '\'' +
233 ", name='" + loadBalancerPoolName + '\'' +
234 ", description='" + loadBalancerPoolDescription + '\'' +
235 ", protocol=" + loadBalancerPoolProtocol +'\''+
236 ", lbAlgorithm='" + loadBalancerPoolLbAlgorithm + '\'' +
237 ", healthmonitorID=" + neutronLoadBalancerPoolHealthMonitorID +
238 ", adminStateUp=" + loadBalancerPoolAdminStateIsUp +
239 // todo: add loadBalancerPoolMembers as joined string