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:
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 class NeutronLoadBalancerPool extends NeutronObject<NeutronLoadBalancerPool>
40 implements Serializable, INeutronObject<NeutronLoadBalancerPool> {
41 private static final long serialVersionUID = 1L;
43 @XmlElement(name = "name")
44 String loadBalancerPoolName;
46 @XmlElement(name = "protocol")
47 String loadBalancerPoolProtocol;
49 @XmlElement(name = "lb_algorithm")
50 String loadBalancerPoolLbAlgorithm;
52 @XmlElement(name = "healthmonitor_id")
53 String neutronLoadBalancerPoolHealthMonitorID;
55 @XmlElement(defaultValue = "true", name = "admin_state_up")
56 Boolean loadBalancerPoolAdminStateIsUp;
58 @XmlElement(name = "listeners")
59 List<Neutron_ID> loadBalancerPoolListeners;
61 @XmlElement(name = "session_persistence")
62 NeutronLoadBalancer_SessionPersistence loadBalancerPoolSessionPersistence;
64 @XmlElement(name = "members")
65 List<NeutronLoadBalancerPoolMember> loadBalancerPoolMembers;
67 public NeutronLoadBalancerPool() {
68 loadBalancerPoolMembers = new ArrayList<>();
71 public String getLoadBalancerPoolName() {
72 return loadBalancerPoolName;
75 public void setLoadBalancerPoolName(String loadBalancerPoolName) {
76 this.loadBalancerPoolName = loadBalancerPoolName;
79 public String getLoadBalancerPoolProtocol() {
80 return loadBalancerPoolProtocol;
83 public void setLoadBalancerPoolProtocol(String loadBalancerPoolProtocol) {
84 this.loadBalancerPoolProtocol = loadBalancerPoolProtocol;
87 public String getLoadBalancerPoolLbAlgorithm() {
88 return loadBalancerPoolLbAlgorithm;
91 public void setLoadBalancerPoolLbAlgorithm(String loadBalancerPoolLbAlgorithm) {
92 this.loadBalancerPoolLbAlgorithm = loadBalancerPoolLbAlgorithm;
95 public String getNeutronLoadBalancerPoolHealthMonitorID() {
96 return neutronLoadBalancerPoolHealthMonitorID;
99 public void setNeutronLoadBalancerPoolHealthMonitorID(String neutronLoadBalancerPoolHealthMonitorID) {
100 this.neutronLoadBalancerPoolHealthMonitorID = neutronLoadBalancerPoolHealthMonitorID;
103 public Boolean getLoadBalancerPoolAdminIsStateIsUp() {
104 return loadBalancerPoolAdminStateIsUp;
107 public void setLoadBalancerPoolAdminStateIsUp(Boolean loadBalancerPoolAdminStateIsUp) {
108 this.loadBalancerPoolAdminStateIsUp = loadBalancerPoolAdminStateIsUp;
111 public NeutronLoadBalancer_SessionPersistence getLoadBalancerPoolSessionPersistence() {
112 return loadBalancerPoolSessionPersistence;
115 public void setLoadBalancerSessionPersistence(
116 NeutronLoadBalancer_SessionPersistence loadBalancerPoolSessionPersistence) {
117 this.loadBalancerPoolSessionPersistence = loadBalancerPoolSessionPersistence;
120 public List<Neutron_ID> getLoadBalancerPoolListeners() {
121 return loadBalancerPoolListeners;
124 public void setLoadBalancerPoolListeners(List<Neutron_ID> loadBalancerPoolListeners) {
125 this.loadBalancerPoolListeners = loadBalancerPoolListeners;
128 public List<NeutronLoadBalancerPoolMember> getLoadBalancerPoolMembers() {
130 * Update the pool_id of the member to that this.id
132 List<NeutronLoadBalancerPoolMember> answer = new ArrayList<>();
133 if (loadBalancerPoolMembers != null) {
134 for (NeutronLoadBalancerPoolMember member : loadBalancerPoolMembers) {
135 member.setPoolID(uuid);
142 public NeutronLoadBalancerPoolMember getNeutronLoadBalancerPoolMember(String uuid) {
143 for (NeutronLoadBalancerPoolMember member : loadBalancerPoolMembers) {
144 if (uuid.equals(member.getID())) {
151 public void setLoadBalancerPoolMembers(List<NeutronLoadBalancerPoolMember> loadBalancerPoolMembers) {
152 this.loadBalancerPoolMembers = loadBalancerPoolMembers;
155 public void addLoadBalancerPoolMember(NeutronLoadBalancerPoolMember loadBalancerPoolMember) {
156 this.loadBalancerPoolMembers.add(loadBalancerPoolMember);
159 public void removeLoadBalancerPoolMember(NeutronLoadBalancerPoolMember loadBalancerPoolMember) {
160 this.loadBalancerPoolMembers.remove(loadBalancerPoolMember);
163 public NeutronLoadBalancerPool extractFields(List<String> fields) {
164 NeutronLoadBalancerPool ans = new NeutronLoadBalancerPool();
165 for (String s : fields) {
166 if (s.equals("id")) {
167 ans.setID(this.getID());
169 if (s.equals("tenant_id")) {
170 ans.setTenantID(this.getTenantID());
172 if (s.equals("name")) {
173 ans.setLoadBalancerPoolName(this.getLoadBalancerPoolName());
175 if (s.equals("protocol")) {
176 ans.setLoadBalancerPoolProtocol(this.getLoadBalancerPoolProtocol());
178 if (s.equals("lb_algorithm")) {
179 ans.setLoadBalancerPoolLbAlgorithm(this.getLoadBalancerPoolLbAlgorithm());
181 if (s.equals("healthmonitor_id")) {
182 ans.setNeutronLoadBalancerPoolHealthMonitorID(this.getNeutronLoadBalancerPoolHealthMonitorID());
184 if (s.equals("admin_state_up")) {
185 ans.setLoadBalancerPoolAdminStateIsUp(loadBalancerPoolAdminStateIsUp);
187 if (s.equals("members")) {
188 ans.setLoadBalancerPoolMembers(getLoadBalancerPoolMembers());
195 public String toString() {
196 return "NeutronLoadBalancerPool{" + "id='" + uuid + '\'' + ", tenantID='" + tenantID + '\'' + ", name='"
197 + loadBalancerPoolName + '\'' + ", protocol=" + loadBalancerPoolProtocol + '\'' + ", lbAlgorithm='"
198 + loadBalancerPoolLbAlgorithm + '\'' + ", healthmonitorID=" + neutronLoadBalancerPoolHealthMonitorID
199 + ", adminStateUp=" + loadBalancerPoolAdminStateIsUp + '}';
200 // todo: add loadBalancerPoolMembers as joined string