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 final class NeutronLoadBalancerPool extends NeutronBaseAttributes<NeutronLoadBalancerPool>
40 implements Serializable {
41 private static final long serialVersionUID = 1L;
43 @XmlElement(name = "protocol")
44 String loadBalancerPoolProtocol;
46 @XmlElement(name = "lb_algorithm")
47 String loadBalancerPoolLbAlgorithm;
49 @XmlElement(name = "healthmonitor_id")
50 String neutronLoadBalancerPoolHealthMonitorID;
52 @XmlElement(defaultValue = "true", name = "admin_state_up")
53 Boolean loadBalancerPoolAdminStateIsUp;
55 @XmlElement(name = "listeners")
56 List<Neutron_ID> loadBalancerPoolListeners;
58 @XmlElement(name = "session_persistence")
59 NeutronLoadBalancer_SessionPersistence loadBalancerPoolSessionPersistence;
61 @XmlElement(name = "members")
62 List<NeutronLoadBalancerPoolMember> loadBalancerPoolMembers;
64 public NeutronLoadBalancerPool() {
65 loadBalancerPoolMembers = new ArrayList<>();
68 public String getLoadBalancerPoolProtocol() {
69 return loadBalancerPoolProtocol;
72 public void setLoadBalancerPoolProtocol(String loadBalancerPoolProtocol) {
73 this.loadBalancerPoolProtocol = loadBalancerPoolProtocol;
76 public String getLoadBalancerPoolLbAlgorithm() {
77 return loadBalancerPoolLbAlgorithm;
80 public void setLoadBalancerPoolLbAlgorithm(String loadBalancerPoolLbAlgorithm) {
81 this.loadBalancerPoolLbAlgorithm = loadBalancerPoolLbAlgorithm;
84 public String getNeutronLoadBalancerPoolHealthMonitorID() {
85 return neutronLoadBalancerPoolHealthMonitorID;
88 public void setNeutronLoadBalancerPoolHealthMonitorID(String neutronLoadBalancerPoolHealthMonitorID) {
89 this.neutronLoadBalancerPoolHealthMonitorID = neutronLoadBalancerPoolHealthMonitorID;
92 public Boolean getLoadBalancerPoolAdminIsStateIsUp() {
93 return loadBalancerPoolAdminStateIsUp;
96 public void setLoadBalancerPoolAdminStateIsUp(Boolean loadBalancerPoolAdminStateIsUp) {
97 this.loadBalancerPoolAdminStateIsUp = loadBalancerPoolAdminStateIsUp;
100 public NeutronLoadBalancer_SessionPersistence getLoadBalancerPoolSessionPersistence() {
101 return loadBalancerPoolSessionPersistence;
104 public void setLoadBalancerSessionPersistence(
105 NeutronLoadBalancer_SessionPersistence loadBalancerPoolSessionPersistence) {
106 this.loadBalancerPoolSessionPersistence = loadBalancerPoolSessionPersistence;
109 public List<Neutron_ID> getLoadBalancerPoolListeners() {
110 return loadBalancerPoolListeners;
113 public void setLoadBalancerPoolListeners(List<Neutron_ID> loadBalancerPoolListeners) {
114 this.loadBalancerPoolListeners = loadBalancerPoolListeners;
117 public List<NeutronLoadBalancerPoolMember> getLoadBalancerPoolMembers() {
119 * Update the pool_id of the member to that this.id
121 List<NeutronLoadBalancerPoolMember> answer = new ArrayList<>();
122 if (loadBalancerPoolMembers != null) {
123 for (NeutronLoadBalancerPoolMember member : loadBalancerPoolMembers) {
124 member.setPoolID(uuid);
131 public NeutronLoadBalancerPoolMember getNeutronLoadBalancerPoolMember(String uuid) {
132 for (NeutronLoadBalancerPoolMember member : loadBalancerPoolMembers) {
133 if (uuid.equals(member.getID())) {
140 public void setLoadBalancerPoolMembers(List<NeutronLoadBalancerPoolMember> loadBalancerPoolMembers) {
141 this.loadBalancerPoolMembers = loadBalancerPoolMembers;
144 public void addLoadBalancerPoolMember(NeutronLoadBalancerPoolMember loadBalancerPoolMember) {
145 this.loadBalancerPoolMembers.add(loadBalancerPoolMember);
148 public void removeLoadBalancerPoolMember(NeutronLoadBalancerPoolMember loadBalancerPoolMember) {
149 this.loadBalancerPoolMembers.remove(loadBalancerPoolMember);
152 public NeutronLoadBalancerPool extractFields(List<String> fields) {
153 NeutronLoadBalancerPool ans = new NeutronLoadBalancerPool();
154 for (String s : fields) {
155 extractField(s, ans);
156 if (s.equals("protocol")) {
157 ans.setLoadBalancerPoolProtocol(this.getLoadBalancerPoolProtocol());
159 if (s.equals("lb_algorithm")) {
160 ans.setLoadBalancerPoolLbAlgorithm(this.getLoadBalancerPoolLbAlgorithm());
162 if (s.equals("healthmonitor_id")) {
163 ans.setNeutronLoadBalancerPoolHealthMonitorID(this.getNeutronLoadBalancerPoolHealthMonitorID());
165 if (s.equals("admin_state_up")) {
166 ans.setLoadBalancerPoolAdminStateIsUp(loadBalancerPoolAdminStateIsUp);
168 if (s.equals("members")) {
169 ans.setLoadBalancerPoolMembers(getLoadBalancerPoolMembers());
176 public String toString() {
177 return "NeutronLoadBalancerPool{" + "id='" + uuid + '\'' + ", tenantID='" + tenantID + '\'' + ", name='"
178 + name + '\'' + ", protocol=" + loadBalancerPoolProtocol + '\'' + ", lbAlgorithm='"
179 + loadBalancerPoolLbAlgorithm + '\'' + ", healthmonitorID=" + neutronLoadBalancerPoolHealthMonitorID
180 + ", adminStateUp=" + loadBalancerPoolAdminStateIsUp + '}';
181 // todo: add loadBalancerPoolMembers as joined string