package org.openstack.atlas.service.domain.usage.entities;
import org.openstack.atlas.service.domain.events.UsageEvent;
import javax.persistence.*;
import java.io.Serializable;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
@javax.persistence.Entity
@Table(name = "lb_host_usage")
public class LoadBalancerHostUsage extends BigIntEntity implements Serializable {
private final static long serialVersionUID = 532512316L;
@Column(name = "account_id")
private int accountId = 0;
@Column(name = "loadbalancer_id")
private int loadbalancerId = 0;
@Column(name = "host_id")
private int hostId = 0;
@Column(name = "bandwidth_out")
private long outgoingTransfer = 0L;
@Column(name = "bandwidth_in")
private long incomingTransfer = 0L;
@Column(name = "bandwidth_out_ssl")
private long outgoingTransferSsl = 0L;
@Column(name = "bandwidth_in_ssl")
private long incomingTransferSsl = 0L;
@Column(name = "concurrent_connections")
private long concurrentConnections = 0;
@Column(name = "concurrent_connections_ssl")
private long concurrentConnectionsSsl = 0;
@Column(name = "poll_time")
private Calendar pollTime = Calendar.getInstance();
@Column(name = "tags_bitmask")
private int tagsBitmask = 0;
@Column(name = "num_vips")
private int numVips = 1;
@Enumerated(EnumType.STRING)
@Column(name = "event_type")
private UsageEvent eventType = null;
public LoadBalancerHostUsage(){
}
public LoadBalancerHostUsage(int accountId, int loadbalancerId, int hostId, long outgoingTransfer,
long incomingTransfer, long outgoingTransferSsl, long incomingTransferSsl,
long concurrentConnections, long concurrentConnectionsSsl, int numVips,
int tagsBitmask, Calendar pollTime, UsageEvent eventType){
this.accountId = accountId;
this.loadbalancerId = loadbalancerId;
this.hostId = hostId;
this.outgoingTransfer = outgoingTransfer;
this.incomingTransfer =incomingTransfer;
this.outgoingTransferSsl = outgoingTransferSsl;
this.incomingTransferSsl = incomingTransferSsl;
this.concurrentConnections = concurrentConnections;
this.concurrentConnectionsSsl = concurrentConnectionsSsl;
this.numVips = numVips;
this.tagsBitmask = tagsBitmask;
this.pollTime = pollTime;
this.eventType = eventType;
}
public int getAccountId() {
return accountId;
}
public void setAccountId(int accountId) {
this.accountId = accountId;
}
public int getLoadbalancerId() {
return loadbalancerId;
}
public void setLoadbalancerId(int loadbalancerId) {
this.loadbalancerId = loadbalancerId;
}
public long getOutgoingTransfer() {
return outgoingTransfer;
}
public void setOutgoingTransfer(long outgoingTransfer) {
this.outgoingTransfer = outgoingTransfer;
}
public long getIncomingTransfer() {
return incomingTransfer;
}
public void setIncomingTransfer(long incomingTransfer) {
this.incomingTransfer = incomingTransfer;
}
public long getOutgoingTransferSsl() {
return outgoingTransferSsl;
}
public void setOutgoingTransferSsl(long outgoingTransferSsl) {
this.outgoingTransferSsl = outgoingTransferSsl;
}
public long getIncomingTransferSsl() {
return incomingTransferSsl;
}
public void setIncomingTransferSsl(long incomingTransferSsl) {
this.incomingTransferSsl = incomingTransferSsl;
}
public long getConcurrentConnections() {
return concurrentConnections;
}
public void setConcurrentConnections(long concurrentConnections) {
this.concurrentConnections = concurrentConnections;
}
public long getConcurrentConnectionsSsl() {
return concurrentConnectionsSsl;
}
public void setConcurrentConnectionsSsl(long concurrentConnectionsSsl) {
this.concurrentConnectionsSsl = concurrentConnectionsSsl;
}
public Calendar getPollTime() {
return pollTime;
}
public void setPollTime(Calendar pollTime) {
this.pollTime = pollTime;
}
public int getTagsBitmask() {
return tagsBitmask;
}
public void setTagsBitmask(int tagsBitmask) {
this.tagsBitmask = tagsBitmask;
}
public UsageEvent getEventType() {
return eventType;
}
public void setEventType(UsageEvent eventType) {
this.eventType = eventType;
}
public int getNumVips() {
return numVips;
}
public void setNumVips(int numVips) {
this.numVips = numVips;
}
public int getHostId() {
return hostId;
}
public void setHostId(int hostId) {
this.hostId = hostId;
}
public String toString(){
StringBuilder sb = new StringBuilder();
sb.append("{ ");
sb.append("account_id: ").append(accountId).append(", loadbalancer_id: ").append(loadbalancerId).append(", host_id: ").append(hostId);
sb.append(", bandwidth_out: ").append(outgoingTransfer).append(", bandwidth_in: ").append(incomingTransfer).append(", bandwidth_in_ssl: ");
sb.append(incomingTransferSsl).append(", bandwdith_out_ssl: ").append(outgoingTransferSsl).append(", concurrent_connections: ");
sb.append(concurrentConnections).append(", concurrent_connections_ssl: ").append(concurrentConnectionsSsl).append(", poll_time: ");
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String pollTimeStr = formatter.format(pollTime.getTime());
sb.append(pollTimeStr).append(", tags_bitmask: ").append(tagsBitmask).append(", num_vips: ").append(numVips);
sb.append(", event_type: ").append(eventType);
sb.append(" }\n");
return sb.toString();
}
}