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.io.Serializable;
12 import java.util.ArrayList;
13 import java.util.List;
14 import javax.xml.bind.annotation.XmlAccessType;
15 import javax.xml.bind.annotation.XmlAccessorType;
16 import javax.xml.bind.annotation.XmlElement;
17 import javax.xml.bind.annotation.XmlRootElement;
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)
40 public final class NeutronLoadBalancerPool extends NeutronBaseAttributes<NeutronLoadBalancerPool>
41 implements Serializable {
42 private static final long serialVersionUID = 1L;
44 @XmlElement(name = "protocol")
45 String loadBalancerPoolProtocol;
47 @XmlElement(name = "lb_algorithm")
48 String loadBalancerPoolLbAlgorithm;
50 @XmlElement(name = "healthmonitor_id")
51 String loadBalancerPoolHealthMonitorID;
53 @XmlElement(defaultValue = "true", name = "admin_state_up")
54 Boolean loadBalancerPoolAdminStateIsUp;
56 @XmlElement(name = "listeners")
57 List<NeutronID> loadBalancerPoolListeners;
59 @XmlElement(name = "session_persistence")
60 NeutronLoadBalancerSessionPersistence loadBalancerPoolSessionPersistence;
62 @XmlElement(name = "members")
63 List<NeutronLoadBalancerPoolMember> loadBalancerPoolMembers;
65 public NeutronLoadBalancerPool() {
66 loadBalancerPoolMembers = new ArrayList<>();
69 public String getLoadBalancerPoolProtocol() {
70 return loadBalancerPoolProtocol;
73 public void setLoadBalancerPoolProtocol(String loadBalancerPoolProtocol) {
74 this.loadBalancerPoolProtocol = loadBalancerPoolProtocol;
77 public String getLoadBalancerPoolLbAlgorithm() {
78 return loadBalancerPoolLbAlgorithm;
81 public void setLoadBalancerPoolLbAlgorithm(String loadBalancerPoolLbAlgorithm) {
82 this.loadBalancerPoolLbAlgorithm = loadBalancerPoolLbAlgorithm;
85 public String getLoadBalancerPoolHealthMonitorID() {
86 return loadBalancerPoolHealthMonitorID;
89 public void setLoadBalancerPoolHealthMonitorID(String loadBalancerPoolHealthMonitorID) {
90 this.loadBalancerPoolHealthMonitorID = loadBalancerPoolHealthMonitorID;
93 public Boolean getLoadBalancerPoolAdminIsStateIsUp() {
94 return loadBalancerPoolAdminStateIsUp;
97 public void setLoadBalancerPoolAdminStateIsUp(Boolean loadBalancerPoolAdminStateIsUp) {
98 this.loadBalancerPoolAdminStateIsUp = loadBalancerPoolAdminStateIsUp;
101 public NeutronLoadBalancerSessionPersistence getLoadBalancerPoolSessionPersistence() {
102 return loadBalancerPoolSessionPersistence;
105 public void setLoadBalancerSessionPersistence(
106 NeutronLoadBalancerSessionPersistence loadBalancerPoolSessionPersistence) {
107 this.loadBalancerPoolSessionPersistence = loadBalancerPoolSessionPersistence;
110 public List<NeutronID> getLoadBalancerPoolListeners() {
111 return loadBalancerPoolListeners;
114 public void setLoadBalancerPoolListeners(List<NeutronID> loadBalancerPoolListeners) {
115 this.loadBalancerPoolListeners = loadBalancerPoolListeners;
118 public List<NeutronLoadBalancerPoolMember> getLoadBalancerPoolMembers() {
120 * Update the pool_id of the member to that this.id
122 List<NeutronLoadBalancerPoolMember> answer = new ArrayList<>();
123 if (loadBalancerPoolMembers != null) {
124 for (NeutronLoadBalancerPoolMember member : loadBalancerPoolMembers) {
125 member.setPoolID(uuid);
132 public NeutronLoadBalancerPoolMember getNeutronLoadBalancerPoolMember(String uuid) {
133 for (NeutronLoadBalancerPoolMember member : loadBalancerPoolMembers) {
134 if (uuid.equals(member.getID())) {
141 public void setLoadBalancerPoolMembers(List<NeutronLoadBalancerPoolMember> loadBalancerPoolMembers) {
142 this.loadBalancerPoolMembers = loadBalancerPoolMembers;
145 public void addLoadBalancerPoolMember(NeutronLoadBalancerPoolMember loadBalancerPoolMember) {
146 this.loadBalancerPoolMembers.add(loadBalancerPoolMember);
149 public void removeLoadBalancerPoolMember(NeutronLoadBalancerPoolMember loadBalancerPoolMember) {
150 this.loadBalancerPoolMembers.remove(loadBalancerPoolMember);
153 public NeutronLoadBalancerPool extractFields(List<String> fields) {
154 NeutronLoadBalancerPool ans = new NeutronLoadBalancerPool();
155 for (String s : fields) {
156 extractField(s, ans);
157 if (s.equals("protocol")) {
158 ans.setLoadBalancerPoolProtocol(this.getLoadBalancerPoolProtocol());
160 if (s.equals("lb_algorithm")) {
161 ans.setLoadBalancerPoolLbAlgorithm(this.getLoadBalancerPoolLbAlgorithm());
163 if (s.equals("healthmonitor_id")) {
164 ans.setLoadBalancerPoolHealthMonitorID(this.getLoadBalancerPoolHealthMonitorID());
166 if (s.equals("admin_state_up")) {
167 ans.setLoadBalancerPoolAdminStateIsUp(loadBalancerPoolAdminStateIsUp);
169 if (s.equals("members")) {
170 ans.setLoadBalancerPoolMembers(getLoadBalancerPoolMembers());
177 public String toString() {
178 return "NeutronLoadBalancerPool{" + "id='" + uuid + '\'' + ", tenantID='" + tenantID + '\'' + ", name='"
179 + name + '\'' + ", protocol=" + loadBalancerPoolProtocol + '\'' + ", lbAlgorithm='"
180 + loadBalancerPoolLbAlgorithm + '\'' + ", healthmonitorID=" + loadBalancerPoolHealthMonitorID
181 + ", adminStateUp=" + loadBalancerPoolAdminStateIsUp + '}';
182 // todo: add loadBalancerPoolMembers as joined string