All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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