package org.ovirt.engine.core.common.businessentities;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import org.ovirt.engine.core.common.businessentities.storage.StorageType;
import org.ovirt.engine.core.common.utils.ToStringBuilder;
import org.ovirt.engine.core.compat.Guid;
public class StorageServerConnections implements BusinessEntity<String> {
private static final long serialVersionUID = 5444293590307760809L;
public static final String DEFAULT_TPGT = "1";
public StorageServerConnections() {
storageType = StorageType.UNKNOWN;
}
public StorageServerConnections(String connection,
String id,
String iqn,
String password,
StorageType storageType,
String userName,
String port,
String portal,
String vfsType,
String mountOptions,
NfsVersion nfsVersion,
Short nfsRetrans,
Short nfsTimeo,
Guid glusterVolumeId) {
setConnection(connection);
setId(id);
setIqn(iqn);
setPassword(password);
setStorageType(storageType);
setUserName(userName);
setPort(port);
setPortal(portal);
setVfsType(vfsType);
setMountOptions(mountOptions);
setNfsVersion(nfsVersion);
setNfsRetrans(nfsRetrans);
setNfsTimeo(nfsTimeo);
setGlusterVolumeId(glusterVolumeId);
}
public StorageServerConnections(String connection,
String id,
String iqn,
String password,
StorageType storageType,
String userName,
String port,
String portal) {
this(connection, id, iqn, password, storageType, userName, port, portal, null, null, null, null, null, null);
}
private String connection;
public String getConnection() {
return this.connection;
}
public void setConnection(String value) {
this.connection = value;
}
private String id;
public String getId() {
return this.id;
}
public void setId(String value) {
this.id = value;
}
// TODO this field needs to be made unique in the database
private String iqn;
public String getIqn() {
return this.iqn;
}
public void setIqn(String value) {
this.iqn = getStringValueToSet(value);
}
private String port;
public String getPort() {
return this.port;
}
public void setPort(String value) {
this.port = getStringValueToSet(value);
}
private String portal = DEFAULT_TPGT;
public String getPortal() {
return this.portal;
}
public void setPortal(String value) {
this.portal = getStringValueToSet(value);
}
private String password;
public String getPassword() {
return this.password;
}
public void setPassword(String value) {
this.password = getStringValueToSet(value);
}
private StorageType storageType;
public StorageType getStorageType() {
return this.storageType;
}
public void setStorageType(StorageType value) {
this.storageType = value;
}
private String username;
public String getUserName() {
return this.username;
}
public void setUserName(String value) {
this.username = getStringValueToSet(value);
}
private String mountOptions;
public void setMountOptions(String mountOptions) {
this.mountOptions = mountOptions;
}
public String getMountOptions() {
return mountOptions;
}
private String vfsType;
public void setVfsType(String vfsType) {
this.vfsType = vfsType;
}
public String getVfsType() {
return vfsType;
}
private NfsVersion nfsVersion;
public NfsVersion getNfsVersion() {
return nfsVersion;
}
public void setNfsVersion(NfsVersion nfsVersion) {
this.nfsVersion = nfsVersion;
}
@Min(value = 1, message = "VALIDATION_STORAGE_CONNECTION_NFS_TIMEO")
@Max(value = 6000, message = "VALIDATION_STORAGE_CONNECTION_NFS_TIMEO")
private Short nfsTimeo;
public Short getNfsTimeo() {
return nfsTimeo;
}
public void setNfsTimeo(Short nfsTimeo) {
this.nfsTimeo = nfsTimeo;
}
@Min(value = 0, message = "VALIDATION_STORAGE_CONNECTION_NFS_RETRANS")
@Max(value = Short.MAX_VALUE, message = "VALIDATION_STORAGE_CONNECTION_NFS_RETRANS")
private Short nfsRetrans;
private String iface;
public String getIface() {
return iface;
}
public void setIface(String iface) {
this.iface = iface;
}
private String netIfaceName;
public String getNetIfaceName() {
return netIfaceName;
}
public void setNetIfaceName(String netIfaceName) {
this.netIfaceName = netIfaceName;
}
private Guid glusterVolumeId;
public Guid getGlusterVolumeId() {
return glusterVolumeId;
}
public void setGlusterVolumeId(Guid glusterVolumeId) {
this.glusterVolumeId = glusterVolumeId;
}
@Override
public boolean equals(Object obj) {
boolean returnValue = super.equals(obj);
if (!returnValue && obj != null && obj instanceof StorageServerConnections) {
returnValue =
getId() != null && !getId().isEmpty() && getId().equals(((StorageServerConnections) obj).getId());
}
return returnValue;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
return result;
}
public static StorageServerConnections copyOf(StorageServerConnections ssc) {
// using the constructor since all fields do not need deep copy (string
// is immutable, and storageType and nfsVersion are enums
return new StorageServerConnections(ssc.connection,
ssc.id,
ssc.iqn,
ssc.password,
ssc.storageType,
ssc.username,
ssc.port,
ssc.portal,
ssc.vfsType,
ssc.mountOptions,
ssc.nfsVersion,
ssc.nfsRetrans,
ssc.nfsTimeo,
ssc.glusterVolumeId);
}
@Override
public String toString() {
return ToStringBuilder.forInstance(this)
.append("id", getId())
.append("connection", getConnection())
.append("iqn", getIqn())
.append("vfsType", getVfsType())
.append("mountOptions", getMountOptions())
.append("nfsVersion", getNfsVersion())
.append("nfsRetrans", getNfsRetrans())
.append("nfsTimeo", getNfsTimeo())
.append("iface", getIface())
.append("netIfaceName", getNetIfaceName())
.build();
}
public Short getNfsRetrans() {
return nfsRetrans;
}
public void setNfsRetrans(Short nfsRetrans) {
this.nfsRetrans = nfsRetrans;
}
private static String getStringValueToSet(String value) {
if (value != null && value.isEmpty()) {
return null;
}
return value;
}
}