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:
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)
40 public class NeutronLoadBalancerPool extends NeutronObject implements Serializable, INeutronObject {
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<NeutronLoadBalancerPoolMember>();
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(NeutronLoadBalancer_SessionPersistence loadBalancerPoolSessionPersistence) {
116 this.loadBalancerPoolSessionPersistence = loadBalancerPoolSessionPersistence;
119 public List<Neutron_ID> getLoadBalancerPoolListeners() {
120 return loadBalancerPoolListeners;
123 public void setLoadBalancerPoolListeners(List<Neutron_ID> loadBalancerPoolListeners) {
124 this.loadBalancerPoolListeners = loadBalancerPoolListeners;
127 public List<NeutronLoadBalancerPoolMember> getLoadBalancerPoolMembers() {
129 * Update the pool_id of the member to that this.id
131 List<NeutronLoadBalancerPoolMember> answer = new ArrayList<NeutronLoadBalancerPoolMember>();
132 if (loadBalancerPoolMembers != null) {
133 for (NeutronLoadBalancerPoolMember member: loadBalancerPoolMembers) {
134 member.setPoolID(uuid);
141 public NeutronLoadBalancerPoolMember getNeutronLoadBalancerPoolMember(String uuid) {
142 for (NeutronLoadBalancerPoolMember member: loadBalancerPoolMembers) {
143 if (uuid.equals(member.getID())) {
150 public void setLoadBalancerPoolMembers(List<NeutronLoadBalancerPoolMember> loadBalancerPoolMembers) {
151 this.loadBalancerPoolMembers = loadBalancerPoolMembers;
154 public void addLoadBalancerPoolMember(NeutronLoadBalancerPoolMember loadBalancerPoolMember) {
155 this.loadBalancerPoolMembers.add(loadBalancerPoolMember);
158 public void removeLoadBalancerPoolMember(NeutronLoadBalancerPoolMember loadBalancerPoolMember) {
159 this.loadBalancerPoolMembers.remove(loadBalancerPoolMember);
162 public NeutronLoadBalancerPool extractFields(List<String> fields) {
163 NeutronLoadBalancerPool ans = new NeutronLoadBalancerPool();
164 for (String s: fields) {
165 if (s.equals("id")) {
166 ans.setID(this.getID());
168 if (s.equals("tenant_id")) {
169 ans.setTenantID(this.getTenantID());
171 if (s.equals("name")) {
172 ans.setLoadBalancerPoolName(this.getLoadBalancerPoolName());
174 if(s.equals("protocol")) {
175 ans.setLoadBalancerPoolProtocol(this.getLoadBalancerPoolProtocol());
177 if (s.equals("lb_algorithm")) {
178 ans.setLoadBalancerPoolLbAlgorithm(this.getLoadBalancerPoolLbAlgorithm());
180 if (s.equals("healthmonitor_id")) {
181 ans.setNeutronLoadBalancerPoolHealthMonitorID(this.getNeutronLoadBalancerPoolHealthMonitorID());
183 if (s.equals("admin_state_up")) {
184 ans.setLoadBalancerPoolAdminStateIsUp(loadBalancerPoolAdminStateIsUp);
186 if (s.equals("members")) {
187 ans.setLoadBalancerPoolMembers(getLoadBalancerPoolMembers());
194 public String toString() {
195 return "NeutronLoadBalancerPool{" +
196 "id='" + uuid + '\'' +
197 ", tenantID='" + tenantID + '\'' +
198 ", name='" + loadBalancerPoolName + '\'' +
199 ", protocol=" + loadBalancerPoolProtocol +'\''+
200 ", lbAlgorithm='" + loadBalancerPoolLbAlgorithm + '\'' +
201 ", healthmonitorID=" + neutronLoadBalancerPoolHealthMonitorID +
202 ", adminStateUp=" + loadBalancerPoolAdminStateIsUp +
203 // todo: add loadBalancerPoolMembers as joined string