package com.sequenceiq.cloudbreak.domain;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import com.sequenceiq.cloudbreak.api.model.Status;
@Entity
@NamedQueries({
@NamedQuery(
name = "CloudbreakEvent.cloudbreakEvents",
query = "SELECT cbe FROM CloudbreakEvent cbe "
+ "WHERE cbe.owner= :owner ORDER BY cbe.eventTimestamp ASC"),
@NamedQuery(
name = "CloudbreakEvent.cloudbreakEventsSince",
query = "SELECT cbe FROM CloudbreakEvent cbe "
+ "WHERE cbe.owner= :owner AND cbe.eventTimestamp > :since "
+ "ORDER BY cbe.eventTimestamp ASC"),
@NamedQuery(
name = "CloudbreakEvent.findCloudbreakEventsForStack",
query = "SELECT cbe FROM CloudbreakEvent cbe "
+ "WHERE cbe.stackId= :stackId")
})
@Table(name = "cloudbreakevent")
public class CloudbreakEvent implements ProvisionEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "cloudbreakevent_generator")
@SequenceGenerator(name = "cloudbreakevent_generator", sequenceName = "cloudbreakevent_id_seq", allocationSize = 1)
private Long id;
@Column(nullable = false)
private String eventType;
@Column(nullable = false)
private Date eventTimestamp;
@Column(length = 1000000, columnDefinition = "TEXT")
private String eventMessage;
@Column(nullable = false)
private String owner;
@Column(nullable = false)
private String account;
@Column(nullable = false)
private String cloud;
@Column(nullable = false)
private String region;
private String availabilityZone;
private String blueprintName;
private long blueprintId;
@Column(nullable = false)
private Long stackId;
@Column(nullable = false)
private String stackName;
private Long clusterId;
private String clusterName;
private String instanceGroup;
@Column(nullable = false)
@Enumerated(EnumType.STRING)
private Status stackStatus;
@Column(nullable = false)
private Integer nodeCount;
@Enumerated(EnumType.STRING)
private Status clusterStatus;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getEventType() {
return eventType;
}
public void setEventType(String eventType) {
this.eventType = eventType;
}
public Date getEventTimestamp() {
return eventTimestamp;
}
public void setEventTimestamp(Date eventTimestamp) {
this.eventTimestamp = eventTimestamp;
}
public String getEventMessage() {
return eventMessage;
}
public void setEventMessage(String eventMessage) {
this.eventMessage = eventMessage;
}
public String getOwner() {
return owner;
}
public void setOwner(String owner) {
this.owner = owner;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getCloud() {
return cloud;
}
public void setCloud(String cloud) {
this.cloud = cloud;
}
public String getRegion() {
return region;
}
public void setRegion(String region) {
this.region = region;
}
public String getBlueprintName() {
return blueprintName;
}
public void setBlueprintName(String blueprintName) {
this.blueprintName = blueprintName;
}
public long getBlueprintId() {
return blueprintId;
}
public void setBlueprintId(long blueprintId) {
this.blueprintId = blueprintId;
}
public Long getStackId() {
return stackId;
}
public void setStackId(Long stackId) {
this.stackId = stackId;
}
public Status getStackStatus() {
return stackStatus;
}
public void setStackStatus(Status stackStatus) {
this.stackStatus = stackStatus;
}
public String getStackName() {
return stackName;
}
public void setStackName(String stackName) {
this.stackName = stackName;
}
public void setNodeCount(Integer nodeCount) {
this.nodeCount = nodeCount;
}
public Integer getNodeCount() {
return nodeCount;
}
public String getInstanceGroup() {
return instanceGroup;
}
public void setInstanceGroup(String instanceGroup) {
this.instanceGroup = instanceGroup;
}
public Status getClusterStatus() {
return clusterStatus;
}
public void setClusterStatus(Status clusterStatus) {
this.clusterStatus = clusterStatus;
}
public String getAvailabilityZone() {
return availabilityZone;
}
public void setAvailabilityZone(String availabilityZone) {
this.availabilityZone = availabilityZone;
}
public Long getClusterId() {
return clusterId;
}
public void setClusterId(Long clusterId) {
this.clusterId = clusterId;
}
public String getClusterName() {
return clusterName;
}
public void setClusterName(String clusterName) {
this.clusterName = clusterName;
}
@Override
public String toString() {
final StringBuilder sb = new StringBuilder("CloudbreakEvent{");
sb.append("id=").append(id);
sb.append(", eventType='").append(eventType).append('\'');
sb.append(", eventTimestamp=").append(eventTimestamp);
sb.append(", eventMessage='").append(eventMessage).append('\'');
sb.append(", owner='").append(owner).append('\'');
sb.append(", account='").append(account).append('\'');
sb.append(", cloud='").append(cloud).append('\'');
sb.append(", region='").append(region).append('\'');
sb.append(", blueprintName='").append(blueprintName).append('\'');
sb.append(", instanceGroup='").append(instanceGroup).append('\'');
sb.append(", blueprintId=").append(blueprintId).append('\'');
sb.append(", stackId=").append(stackId).append('\'');
sb.append(", clusterId=").append(clusterId).append('\'');
sb.append(", clusterName=").append(clusterName);
sb.append('}');
return sb.toString();
}
}