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 java.util.ArrayList;
12 import java.util.List;
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;
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:
30 * healthmonitor_id String
33 * members List <NeutronLoadBalancerPoolMember>
34 * http://docs.openstack.org/api/openstack-network/2.0/openstack-network.pdf
38 @XmlAccessorType(XmlAccessType.NONE)
39 public final class NeutronLoadBalancerPool extends NeutronBaseAttributes<NeutronLoadBalancerPool> {
40 private static final long serialVersionUID = 1L;
42 @XmlElement(name = "protocol")
43 String loadBalancerPoolProtocol;
45 @XmlElement(name = "lb_algorithm")
46 String loadBalancerPoolLbAlgorithm;
48 @XmlElement(name = "healthmonitor_id")
49 String loadBalancerPoolHealthMonitorID;
51 @XmlElement(defaultValue = "true", name = "admin_state_up")
52 Boolean loadBalancerPoolAdminStateIsUp;
54 @XmlElement(name = "listeners")
55 List<NeutronID> loadBalancerPoolListeners;
57 @XmlElement(name = "session_persistence")
58 NeutronLoadBalancerSessionPersistence loadBalancerPoolSessionPersistence;
60 @XmlElement(name = "members")
61 List<NeutronLoadBalancerPoolMember> loadBalancerPoolMembers;
63 public NeutronLoadBalancerPool() {
64 loadBalancerPoolMembers = new ArrayList<>();
67 public String getLoadBalancerPoolProtocol() {
68 return loadBalancerPoolProtocol;
71 public void setLoadBalancerPoolProtocol(String loadBalancerPoolProtocol) {
72 this.loadBalancerPoolProtocol = loadBalancerPoolProtocol;
75 public String getLoadBalancerPoolLbAlgorithm() {
76 return loadBalancerPoolLbAlgorithm;
79 public void setLoadBalancerPoolLbAlgorithm(String loadBalancerPoolLbAlgorithm) {
80 this.loadBalancerPoolLbAlgorithm = loadBalancerPoolLbAlgorithm;
83 public String getLoadBalancerPoolHealthMonitorID() {
84 return loadBalancerPoolHealthMonitorID;
87 public void setLoadBalancerPoolHealthMonitorID(String loadBalancerPoolHealthMonitorID) {
88 this.loadBalancerPoolHealthMonitorID = loadBalancerPoolHealthMonitorID;
91 public Boolean getLoadBalancerPoolAdminIsStateIsUp() {
92 return loadBalancerPoolAdminStateIsUp;
95 public void setLoadBalancerPoolAdminStateIsUp(Boolean loadBalancerPoolAdminStateIsUp) {
96 this.loadBalancerPoolAdminStateIsUp = loadBalancerPoolAdminStateIsUp;
99 public NeutronLoadBalancerSessionPersistence getLoadBalancerPoolSessionPersistence() {
100 return loadBalancerPoolSessionPersistence;
103 public void setLoadBalancerSessionPersistence(NeutronLoadBalancerSessionPersistence persistence) {
104 this.loadBalancerPoolSessionPersistence = persistence;
107 public List<NeutronID> getLoadBalancerPoolListeners() {
108 return loadBalancerPoolListeners;
111 public void setLoadBalancerPoolListeners(List<NeutronID> loadBalancerPoolListeners) {
112 this.loadBalancerPoolListeners = loadBalancerPoolListeners;
115 public List<NeutronLoadBalancerPoolMember> getLoadBalancerPoolMembers() {
117 * Update the pool_id of the member to that this.id
119 List<NeutronLoadBalancerPoolMember> answer = new ArrayList<>();
120 if (loadBalancerPoolMembers != null) {
121 for (NeutronLoadBalancerPoolMember member : loadBalancerPoolMembers) {
122 member.setPoolID(uuid);
129 public NeutronLoadBalancerPoolMember getNeutronLoadBalancerPoolMember(String uuid) {
130 for (NeutronLoadBalancerPoolMember member : loadBalancerPoolMembers) {
131 if (uuid.equals(member.getID())) {
138 public void setLoadBalancerPoolMembers(List<NeutronLoadBalancerPoolMember> loadBalancerPoolMembers) {
139 this.loadBalancerPoolMembers = loadBalancerPoolMembers;
142 public void addLoadBalancerPoolMember(NeutronLoadBalancerPoolMember loadBalancerPoolMember) {
143 this.loadBalancerPoolMembers.add(loadBalancerPoolMember);
146 public void removeLoadBalancerPoolMember(NeutronLoadBalancerPoolMember loadBalancerPoolMember) {
147 this.loadBalancerPoolMembers.remove(loadBalancerPoolMember);
151 protected boolean extractField(String field, NeutronLoadBalancerPool ans) {
154 ans.setLoadBalancerPoolProtocol(this.getLoadBalancerPoolProtocol());
157 ans.setLoadBalancerPoolLbAlgorithm(this.getLoadBalancerPoolLbAlgorithm());
159 case "healthmonitor_id":
160 ans.setLoadBalancerPoolHealthMonitorID(this.getLoadBalancerPoolHealthMonitorID());
162 case "admin_state_up":
163 ans.setLoadBalancerPoolAdminStateIsUp(loadBalancerPoolAdminStateIsUp);
166 ans.setLoadBalancerPoolMembers(getLoadBalancerPoolMembers());
169 return super.extractField(field, ans);
175 public String toString() {
176 return "NeutronLoadBalancerPool{" + "id='" + uuid + '\'' + ", tenantID='" + tenantID + '\'' + ", name='"
177 + name + '\'' + ", protocol=" + loadBalancerPoolProtocol + '\'' + ", lbAlgorithm='"
178 + loadBalancerPoolLbAlgorithm + '\'' + ", healthmonitorID=" + loadBalancerPoolHealthMonitorID
179 + ", adminStateUp=" + loadBalancerPoolAdminStateIsUp + '}';
180 // todo: add loadBalancerPoolMembers as joined string