package de.codecentric.jenkins.dashboard.api.environments; import java.util.Date; import java.util.List; import java.util.logging.Logger; import org.apache.commons.lang.builder.ToStringBuilder; import com.amazonaws.services.ec2.model.InstanceState; import de.codecentric.jenkins.dashboard.DashboardView; import de.codecentric.jenkins.dashboard.Messages; /** * Detailed server environment information. These information are displayed on * the dashboard view. * * @author marcel.birkner * */ public class ServerEnvironment { private final static Logger LOGGER = Logger.getLogger(ServerEnvironment.class.getName()); private String instanceId; private String environmentTag; private String instanceType; private String version; private String publicIpAddress; private String urlPrefix; private String urlPostfix; private Date launchTime; private InstanceState state; private List<EnvironmentTag> tags; private ENVIRONMENT_TYPES type; public enum ENVIRONMENT_TYPES { TEST, PRODUCTION, STAGING, JENKINS } public ServerEnvironment(String instanceId, String instanceType) { this.instanceId = instanceId; this.instanceType = instanceType; this.type = ENVIRONMENT_TYPES.TEST; } public String getEnvironmentTag() { return environmentTag; } public void setEnvironmentTag(String environmentTag) { this.environmentTag = environmentTag; } public String getInstanceType() { return instanceType; } public void setInstanceType(String instanceType) { this.instanceType = instanceType; } public String getVersion() { return version; } public void setVersion(String version) { this.version = version; } public List<EnvironmentTag> getTags() { return tags; } public void setTags(List<EnvironmentTag> tags) { this.tags = tags; } public String getInstanceId() { return instanceId; } public void setInstanceId(String instanceId) { this.instanceId = instanceId; } public ENVIRONMENT_TYPES getType() { return type; } public void setType(ENVIRONMENT_TYPES type) { this.type = type; } public InstanceState getState() { return state; } public void setState(InstanceState state) { this.state = state; } public Date getLaunchTime() { return launchTime; } public void setLaunchTime(Date launchTime) { this.launchTime = launchTime; } public String getPublicIpAddress() { if (state.getName().equalsIgnoreCase("running")) { return publicIpAddress; } return Messages.ServerEnvironment_serverNotRunning(); } public String getWebAppLink() { LOGGER.info("WebAppLink " + state.getName()); if (state.getName().equalsIgnoreCase("running")) { return urlPrefix + publicIpAddress + urlPostfix; } return Messages.ServerEnvironment_serverNotRunning(); } public String displayWebAppLink() { if (state.getName().equalsIgnoreCase("running")) { return "true"; } return "false"; } public void setPublicIpAddress(String publicIpAddress) { this.publicIpAddress = publicIpAddress; } public String getUrlPrefix() { return urlPrefix; } public void setUrlPrefix(String urlPrefix) { this.urlPrefix = urlPrefix; } public String getUrlPostfix() { return urlPostfix; } public void setUrlPostfix(String urlPostfix) { this.urlPostfix = urlPostfix; } @Override public String toString() { return ToStringBuilder.reflectionToString(this); } }