com.jelastic.api.system.persistence.OsNode Maven / Gradle / Ivy
The newest version!
/*Server class MD5: e51631e6c7df09407342ce6cf1af16c3*/
package com.jelastic.api.system.persistence;
import com.jelastic.api.data.po.VType;
import com.jelastic.api.core.orm.dao.AbstractEntity;
import com.jelastic.api.system.service.utils.NodeStatus;
import java.io.Serializable;
import java.io.Serializable;
import java.util.stream.Collectors;
import java.util.*;
/**
* @name Jelastic API Client
* @version 8.11.2
* @copyright Jelastic, Inc.
*/
public class OsNode extends AbstractEntity implements Serializable {
public static final String OS_NODE_COLUMN = "osNode";
public static final String OS_NODE_ID = "osNodeId";
public static final String ENV_ID = "envId";
public static final String ENV_NAME = "envName";
public static final String IP_ADDRESS = "idAddress";
public static final String V_TYPE = "vType";
public static final String BANDWIDTH_LIMIT = "bandwidthLimit";
public static final String SOFT_NODES = "softNodes";
public static final String CTID = "ctid";
public static final String OS_NODE_STATUS = "status";
public static final String VM_MEMORY = "vmMemory";
public static final String VM_VCPU = "vmVCpu";
public OsNode() {
this.createdOn = new Date();
}
public OsNode(String envId, String name, HardwareNode hardNode) {
this.envId = envId;
this.name = name;
this.hardNode = hardNode;
this.createdOn = new Date();
}
private String name;
private IpAddress ipAddress;
private String envId;
private String oldEnvId;
private HardwareNode hardNode;
private Credential sshCredential;
private int sshPort = 22;
private int chanks = 1;
private boolean canMigrate = true;
private Set softNodes = new HashSet<>();
private boolean isDeleted;
private Set endpoints = new HashSet<>();
private List extIpAddresses = new ArrayList<>();
private Set crossNetworkIpAddresses = new HashSet<>();
private Date createdOn;
private ExtIpAddress primaryIpv6;
private ExtIpAddress primaryIpv4;
public Health health;
public VType vType = VType.CT;
private Date deletedOn;
private int status = NodeStatus.UNKNOWN.getValue();
private boolean isProtected = false;
private Integer vmMemory;
private Integer vmVCpu;
private Integer ctid;
private Integer bandwidthLimit;
public Integer getCtId() {
return ctid != null ? ctid : getId();
}
public String getUUIDForMigration() {
return this.vType == VType.VM ? this.envId : String.valueOf(this.getCtId());
}
public List getExtIpAddresses() {
return extIpAddresses;
}
public Set getCrossNetworkIpAddresses() {
return crossNetworkIpAddresses;
}
public void setCrossNetworkIpAddresses(Set crossNetworkIpAddresses) {
this.crossNetworkIpAddresses = crossNetworkIpAddresses;
}
public void setPrimary(ExtIpAddress primary) {
setPrimaryByType(primary.getType(), primary);
}
public void setPrimaryByType(IpType type, ExtIpAddress primary) {
if (IpType.IPV6 == type) {
setPrimaryIpv6(primary);
} else {
setPrimaryIpv4(primary);
}
}
public Set getIsolationAddresses() {
Set ips = new HashSet<>();
if (ipAddress == null) {
return Collections.emptySet();
}
ips.add(ipAddress.getIpAddress());
return ips;
}
public Set getIsolatedCrossAddresses() {
if (crossNetworkIpAddresses == null) {
return Collections.emptySet();
}
return crossNetworkIpAddresses.stream().map(CrossNetworkIpAddress::getIpAddress).collect(Collectors.toSet());
}
public Health getHealth() {
return health;
}
public void setHealth(Health health) {
this.health = health;
}
public ExtIpAddress getPrimaryIPByType(IpType type) {
return type == IpType.IPV6 ? primaryIpv6 : primaryIpv4;
}
public ExtIpAddress getPrimaryIpv6() {
return primaryIpv6;
}
public void setPrimaryIpv6(ExtIpAddress primaryIpv6) {
this.primaryIpv6 = primaryIpv6;
}
public ExtIpAddress getPrimaryIpv4() {
return primaryIpv4;
}
public void setPrimaryIpv4(ExtIpAddress primaryIpv4) {
this.primaryIpv4 = primaryIpv4;
}
public boolean isCanMigrate() {
return canMigrate;
}
public void setCanMigrate(boolean canMigrate) {
this.canMigrate = canMigrate;
}
public int getChanks() {
return chanks;
}
public void setChanks(int chanks) {
this.chanks = chanks;
}
public int getSshPort() {
return sshPort;
}
public void setSshPort(int sshPort) {
this.sshPort = sshPort;
}
public String getEnvId() {
return envId;
}
public void setEnvId(String envId) {
this.envId = envId;
}
public HardwareNode getHardNode() {
return hardNode;
}
public void setHardNode(HardwareNode hardNode) {
this.hardNode = hardNode;
}
public IpAddress getIpAddress() {
return ipAddress;
}
public void setIpAddress(IpAddress ipAddress) {
this.ipAddress = ipAddress;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Credential getSshCredential() {
return sshCredential;
}
public void setSshCredential(Credential sshCredential) {
this.sshCredential = sshCredential;
}
public Set getSoftNodes() {
return softNodes;
}
public String getOldEnvId() {
return oldEnvId;
}
public void setOldEnvId(String oldEnvId) {
this.oldEnvId = oldEnvId;
}
public SoftwareNode getSoftNode() {
Iterator iterator = softNodes.iterator();
return iterator.hasNext() ? iterator.next() : null;
}
public void setSoftNodes(Set softNodes) {
this.softNodes = softNodes;
}
public boolean isDeleted() {
return isDeleted;
}
public void setDeleted(boolean isDeleted) {
this.isDeleted = isDeleted;
}
public Date getDeletedOn() {
return deletedOn;
}
public void setDeletedOn(Date deletedOn) {
this.deletedOn = deletedOn;
}
public List getAllExtIpAddresses() {
return extIpAddresses;
}
public List getExtIpV6Addresses() {
return getExtIpAddressesByType(IpType.IPV6);
}
public List getExtIpV4Addresses() {
return getExtIpAddressesByType(IpType.IPV4);
}
public List getExtIpAddressesByType(IpType type) {
List ips = new ArrayList<>();
ExtIpAddress primary = getPrimaryIPByType(type);
for (ExtIpAddress ip : extIpAddresses) {
if (ip.getType() != type) {
continue;
}
if (primary != null && primary.getId() == ip.getId()) {
ips.add(0, ip);
} else {
ips.add(ip);
}
}
return ips;
}
public ExtIpAddress getFirstExtIpAddressByType(IpType type) {
for (ExtIpAddress ip : extIpAddresses) {
if (ip.getType() != type) {
continue;
}
return ip;
}
return null;
}
public void setExtIpAddresses(List extIpAddresses) {
this.extIpAddresses = extIpAddresses;
}
public Set getEndpoints() {
return endpoints;
}
public void setEndpoints(Set endpoints) {
this.endpoints = endpoints;
}
public boolean hasPrivateAddress() {
return ipAddress != null;
}
public boolean isExtPreffered() {
if (!extIpAddresses.isEmpty()) {
return true;
}
return false;
}
public VType getvType() {
return vType;
}
public void setvType(VType vType) {
this.vType = vType;
}
public String getPreferedIpAddress() {
if (!extIpAddresses.isEmpty()) {
return extIpAddresses.get(0).getIpAddress();
}
return ipAddress.getIpAddress();
}
public String getLocalAddressIfPossible() {
if (ipAddress != null) {
return ipAddress.getIpAddress();
}
if (!extIpAddresses.isEmpty()) {
return extIpAddresses.get(0).getIpAddress();
}
return null;
}
public ExtIpAddress getExtIpAddress() {
if (!extIpAddresses.isEmpty()) {
return extIpAddresses.get(0);
}
return null;
}
public Integer getVmMemory() {
return vmMemory;
}
public void setVmMemory(Integer vmMemory) {
this.vmMemory = vmMemory;
}
public Integer getVmVCpu() {
return vmVCpu;
}
public void setVmVCpu(Integer vmVCpu) {
this.vmVCpu = vmVCpu;
}
public Date getCreatedOn() {
return createdOn;
}
public void setCreatedOn(Date createdOn) {
this.createdOn = createdOn;
}
public String getHostname() {
return getHostname(null);
}
public String getHostname(String defaultValue) {
if (this.getIpAddress() != null) {
return this.getIpAddress().getIpAddress();
} else if (this.getPrimaryIpv4() != null) {
return this.getPrimaryIpv4().getIpAddress();
} else if (this.getPrimaryIpv6() != null) {
return this.getPrimaryIpv6().getIpAddress();
}
return defaultValue;
}
public List getIpV4Addresses() {
List values = new ArrayList<>();
if (this.getIpAddress() != null) {
values.add(this.getIpAddress().getIpAddress());
}
if (!this.getAllExtIpAddresses().isEmpty()) {
values.addAll(this.getExtIpV4Addresses().stream().map(ExtIpAddress::getIpAddress).collect(Collectors.toList()));
}
return values;
}
public Optional getRegionUniqueName() {
return Optional.ofNullable(getHardNode()).map(HardwareNode::getHardwareNodeGroup).map(HardwareNodeGroup::getRegion).map(Region::getUniqueName);
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public void setNodeStatus(NodeStatus status) {
this.status = status.getValue();
}
public void setCtid(Integer ctid) {
this.ctid = ctid;
}
public HWType getRequiredHWType() {
return this.getvType() == VType.VM ? HWType.BARE_METAL : null;
}
public int getBandwidthLimit() {
return bandwidthLimit;
}
public void setBandwidthLimit(int bandwidthLimit) {
this.bandwidthLimit = bandwidthLimit;
}
public boolean isProtected() {
return isProtected;
}
public void setProtected(boolean aProtected) {
isProtected = aProtected;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy