package com.urbancode.terraform.tasks.rackspace;
import org.apache.log4j.Logger;
import com.urbancode.x2o.tasks.SubTask;
public class LoadBalancerNodeTask extends SubTask {
//**********************************************************************************************
// CLASS
//**********************************************************************************************
static private final Logger log = Logger.getLogger(LoadBalancerNodeTask.class);
//**********************************************************************************************
// INSTANCE
//**********************************************************************************************
private EnvironmentTaskRackspace env;
private String address;
private String port;
private String condition = "ENABLED";
private String serverName = null;
private boolean nameHasSuffix = false;
private final String ipType;
//----------------------------------------------------------------------------------------------
public LoadBalancerNodeTask(EnvironmentTaskRackspace env, String ipType) {
super();
this.env = env;
this.ipType = ipType;
}
//----------------------------------------------------------------------------------------------
public String getAddress() {
return address;
}
//----------------------------------------------------------------------------------------------
public String getPort() {
return port;
}
//----------------------------------------------------------------------------------------------
public String getCondition() {
return condition;
}
//----------------------------------------------------------------------------------------------
public String getServerName() {
return serverName;
}
//----------------------------------------------------------------------------------------------
public void setAddress(String address) {
this.address = address;
}
//----------------------------------------------------------------------------------------------
public void setPort(String port) {
this.port = port;
}
//----------------------------------------------------------------------------------------------
public void setCondition(String condition) {
this.condition = condition;
}
//----------------------------------------------------------------------------------------------
public void setServerName(String serverName) {
this.serverName = serverName;
}
//----------------------------------------------------------------------------------------------
public void setNameHasSuffix(boolean nameHasSuffix) {
this.nameHasSuffix = nameHasSuffix;
}
//----------------------------------------------------------------------------------------------
@Override
public void create() throws Exception {
if (serverName != null) {
if (nameHasSuffix) {
serverName = serverName + "-" + env.fetchSuffix();
}
if (ipType.equalsIgnoreCase("private")) {
address = env.fetchContext().resolve("${" + serverName + "-private-ip" + "}");
}
else if (ipType.equalsIgnoreCase("public")) {
address = env.fetchContext().resolve("${" + serverName + "-public-ip" + "}");
}
}
}
//----------------------------------------------------------------------------------------------
@Override
public void destroy() throws Exception {
// Load balancer nodes are deleted when the load balancer is deleted
}
}