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 implements Serializable, INeutronObject {
42 private static final long serialVersionUID = 1L;
44 @XmlElement(name = "id")
45 String loadBalancerPoolID;
47 @XmlElement (name = "tenant_id")
48 String loadBalancerPoolTenantID;
50 @XmlElement (name = "name")
51 String loadBalancerPoolName;
53 @XmlElement (name = "description")
54 String loadBalancerPoolDescription;
56 @XmlElement (name = "protocol")
57 String loadBalancerPoolProtocol;
59 @XmlElement (name = "lb_algorithm")
60 String loadBalancerPoolLbAlgorithm;
62 @XmlElement (name = "healthmonitor_id")
63 String neutronLoadBalancerPoolHealthMonitorID;
65 @XmlElement (defaultValue = "true", name = "admin_state_up")
66 Boolean loadBalancerPoolAdminStateIsUp;
68 @XmlElement(name = "listeners")
69 List<Neutron_ID> loadBalancerPoolListeners;
71 @XmlElement(name = "session_persistence")
72 NeutronLoadBalancer_SessionPersistence loadBalancerPoolSessionPersistence;
74 @XmlElement(name = "members")
75 List<NeutronLoadBalancerPoolMember> loadBalancerPoolMembers;
77 public NeutronLoadBalancerPool() {
78 loadBalancerPoolMembers = new ArrayList<NeutronLoadBalancerPoolMember>();
81 public String getID() {
82 return loadBalancerPoolID;
85 public void setID(String id) {
86 loadBalancerPoolID = id;
89 // @deprecated use getID()
90 public String getLoadBalancerPoolID() {
91 return loadBalancerPoolID;
94 // @deprecated use setID()
95 public void setLoadBalancerPoolID(String loadBalancerPoolID) {
96 this.loadBalancerPoolID = loadBalancerPoolID;
99 public String getLoadBalancerPoolTenantID() {
100 return loadBalancerPoolTenantID;
103 public void setLoadBalancerPoolTenantID(String loadBalancerPoolTenantID) {
104 this.loadBalancerPoolTenantID = loadBalancerPoolTenantID;
107 public String getLoadBalancerPoolName() {
108 return loadBalancerPoolName;
111 public void setLoadBalancerPoolName(String loadBalancerPoolName) {
112 this.loadBalancerPoolName = loadBalancerPoolName;
115 public String getLoadBalancerPoolDescription() {
116 return loadBalancerPoolDescription;
119 public void setLoadBalancerPoolDescription(String loadBalancerPoolDescription) {
120 this.loadBalancerPoolDescription = loadBalancerPoolDescription;
123 public String getLoadBalancerPoolProtocol() {
124 return loadBalancerPoolProtocol;
127 public void setLoadBalancerPoolProtocol(String loadBalancerPoolProtocol) {
128 this.loadBalancerPoolProtocol = loadBalancerPoolProtocol;
131 public String getLoadBalancerPoolLbAlgorithm() {
132 return loadBalancerPoolLbAlgorithm;
135 public void setLoadBalancerPoolLbAlgorithm(String loadBalancerPoolLbAlgorithm) {
136 this.loadBalancerPoolLbAlgorithm = loadBalancerPoolLbAlgorithm;
139 public String getNeutronLoadBalancerPoolHealthMonitorID() {
140 return neutronLoadBalancerPoolHealthMonitorID;
143 public void setNeutronLoadBalancerPoolHealthMonitorID(String neutronLoadBalancerPoolHealthMonitorID) {
144 this.neutronLoadBalancerPoolHealthMonitorID = neutronLoadBalancerPoolHealthMonitorID;
147 public Boolean getLoadBalancerPoolAdminIsStateIsUp() {
148 return loadBalancerPoolAdminStateIsUp;
151 public void setLoadBalancerPoolAdminStateIsUp(Boolean loadBalancerPoolAdminStateIsUp) {
152 this.loadBalancerPoolAdminStateIsUp = loadBalancerPoolAdminStateIsUp;
155 public NeutronLoadBalancer_SessionPersistence getLoadBalancerPoolSessionPersistence() {
156 return loadBalancerPoolSessionPersistence;
159 public void setLoadBalancerSessionPersistence(NeutronLoadBalancer_SessionPersistence loadBalancerPoolSessionPersistence) {
160 this.loadBalancerPoolSessionPersistence = loadBalancerPoolSessionPersistence;
163 public List<Neutron_ID> getLoadBalancerPoolListeners() {
164 return loadBalancerPoolListeners;
167 public void setLoadBalancerPoolListeners(List<Neutron_ID> loadBalancerPoolListeners) {
168 this.loadBalancerPoolListeners = loadBalancerPoolListeners;
171 public List<NeutronLoadBalancerPoolMember> getLoadBalancerPoolMembers() {
173 * Update the pool_id of the member to that this.loadBalancerPoolID
175 List<NeutronLoadBalancerPoolMember> answer = new ArrayList<NeutronLoadBalancerPoolMember>();
176 if (loadBalancerPoolMembers != null) {
177 for (NeutronLoadBalancerPoolMember member: loadBalancerPoolMembers) {
178 member.setPoolID(loadBalancerPoolID);
185 public NeutronLoadBalancerPoolMember getNeutronLoadBalancerPoolMember(String uuid) {
186 for (NeutronLoadBalancerPoolMember member: loadBalancerPoolMembers) {
187 if (uuid.equals(member.getID())) {
194 public void setLoadBalancerPoolMembers(List<NeutronLoadBalancerPoolMember> loadBalancerPoolMembers) {
195 this.loadBalancerPoolMembers = loadBalancerPoolMembers;
198 public void addLoadBalancerPoolMember(NeutronLoadBalancerPoolMember loadBalancerPoolMember) {
199 this.loadBalancerPoolMembers.add(loadBalancerPoolMember);
202 public void removeLoadBalancerPoolMember(NeutronLoadBalancerPoolMember loadBalancerPoolMember) {
203 this.loadBalancerPoolMembers.remove(loadBalancerPoolMember);
206 public NeutronLoadBalancerPool extractFields(List<String> fields) {
207 NeutronLoadBalancerPool ans = new NeutronLoadBalancerPool();
208 for (String s: fields) {
209 if (s.equals("id")) {
210 ans.setID(this.getID());
212 if (s.equals("tenant_id")) {
213 ans.setLoadBalancerPoolTenantID(this.getLoadBalancerPoolTenantID());
215 if (s.equals("name")) {
216 ans.setLoadBalancerPoolName(this.getLoadBalancerPoolName());
218 if(s.equals("description")) {
219 ans.setLoadBalancerPoolDescription(this.getLoadBalancerPoolDescription());
221 if(s.equals("protocol")) {
222 ans.setLoadBalancerPoolProtocol(this.getLoadBalancerPoolProtocol());
224 if (s.equals("lb_algorithm")) {
225 ans.setLoadBalancerPoolLbAlgorithm(this.getLoadBalancerPoolLbAlgorithm());
227 if (s.equals("healthmonitor_id")) {
228 ans.setNeutronLoadBalancerPoolHealthMonitorID(this.getNeutronLoadBalancerPoolHealthMonitorID());
230 if (s.equals("admin_state_up")) {
231 ans.setLoadBalancerPoolAdminStateIsUp(loadBalancerPoolAdminStateIsUp);
233 if (s.equals("members")) {
234 ans.setLoadBalancerPoolMembers(getLoadBalancerPoolMembers());
241 public String toString() {
242 return "NeutronLoadBalancerPool{" +
243 "id='" + loadBalancerPoolID + '\'' +
244 ", tenantID='" + loadBalancerPoolTenantID + '\'' +
245 ", name='" + loadBalancerPoolName + '\'' +
246 ", description='" + loadBalancerPoolDescription + '\'' +
247 ", protocol=" + loadBalancerPoolProtocol +'\''+
248 ", lbAlgorithm='" + loadBalancerPoolLbAlgorithm + '\'' +
249 ", healthmonitorID=" + neutronLoadBalancerPoolHealthMonitorID +
250 ", adminStateUp=" + loadBalancerPoolAdminStateIsUp +
251 // todo: add loadBalancerPoolMembers as joined string