com.abiquo.abiserver.pojo.infrastructure.PhysicalMachine.java Source code

Java tutorial

Introduction

Here is the source code for com.abiquo.abiserver.pojo.infrastructure.PhysicalMachine.java

Source

/**
 * Abiquo community edition
 * cloud management application for hybrid clouds
 * Copyright (C) 2008-2010 - Abiquo Holdings S.L.
 *
 * This application is free software; you can redistribute it and/or
 * modify it under the terms of the GNU LESSER GENERAL PUBLIC
 * LICENSE as published by the Free Software Foundation under
 * version 3 of the License
 *
 * This software is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * LESSER GENERAL PUBLIC LICENSE v.3 for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 * Boston, MA 02111-1307, USA.
 */

package com.abiquo.abiserver.pojo.infrastructure;

import java.util.HashSet;
import java.util.Set;

import org.apache.commons.lang.StringUtils;

import com.abiquo.abiserver.business.hibernate.pojohb.infrastructure.DatastoreHB;
import com.abiquo.abiserver.business.hibernate.pojohb.infrastructure.PhysicalmachineHB;
import com.abiquo.abiserver.pojo.IPojo;
import com.abiquo.server.core.infrastructure.DatastoreDto;
import com.abiquo.server.core.infrastructure.MachineDto;

public class PhysicalMachine extends InfrastructureElement implements IPojo<PhysicalmachineHB> {

    /* ------------- Public atributes ------------- */
    private DataCenter dataCenter;

    private Rack rack;

    private String description;

    private int ram;

    private int cpu;

    private long hd;

    private int ramUsed;

    private int cpuUsed;

    private long hdUsed;

    /**
     * This parameter identifies the state of the physicalMachine. 0 - Stopped 1 - Not Provisioned 2
     * - Not managed 3 - Managed 4 - Halted
     */
    private int idState;

    private String vswitchName;

    private String initiatorIQN;

    private Set<Datastore> datastores;

    private Integer idEnterprise;

    private HyperVisor hypervisor;

    private String ipmiIp;

    private Integer ipmiPort;

    private String ipmiUser;

    private String ipmiPassword;

    public PhysicalMachine() {
        super();

        dataCenter = new DataCenter();

        description = "";
        ram = 0;
        cpu = 0;
        hd = 0;

        ramUsed = 0;
        cpuUsed = 0;
        hdUsed = 0;
        setVswitchName("");
        idEnterprise = null;
        ipmiIp = null;
        ipmiPort = null;
        ipmiUser = null;
        ipmiPassword = null;
    }

    public DataCenter getDataCenter() {
        return dataCenter;
    }

    public void setDataCenter(final DataCenter dataCenter) {
        this.dataCenter = dataCenter;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(final String description) {
        this.description = description;
    }

    public int getRam() {
        return ram;
    }

    public void setRam(final int ram) {
        this.ram = ram;
    }

    public int getCpu() {
        return cpu;
    }

    public void setCpu(final int cpu) {
        this.cpu = cpu;
    }

    public long getHd() {
        return hd;
    }

    public void setHd(final long hd) {
        this.hd = hd;
    }

    // used
    public int getRamUsed() {
        return ramUsed;
    }

    public void setRamUsed(final int ram) {
        ramUsed = ram;
    }

    public int getCpuUsed() {
        return cpuUsed;
    }

    public void setCpuUsed(final int cpu) {
        cpuUsed = cpu;
    }

    public long getHdUsed() {
        return hdUsed;
    }

    public void setHdUsed(final long hd) {
        hdUsed = hd;
    }

    public int getIdState() {
        return idState;
    }

    public void setIdState(final int idState) {
        this.idState = idState;
    }

    /**
     * @param vswitchName the vswitchName to set
     */
    public void setVswitchName(final String vswitchName) {
        this.vswitchName = vswitchName;
    }

    /**
     * @return the vswitchName
     */
    public String getVswitchName() {
        return vswitchName;
    }

    /**
     * @return the initiatorIQN
     */
    public String getInitiatorIQN() {
        return initiatorIQN;
    }

    /**
     * @param initiatorIQN, the new initiatorIQN to set
     */
    public void setInitiatorIQN(final String initiatorIQN) {
        this.initiatorIQN = initiatorIQN;
    }

    /**
     * @param datastores the datastores to set
     */
    public void setDatastores(final Set<Datastore> datastores) {
        this.datastores = datastores;
    }

    /**
     * @return the datastores
     */
    public Set<Datastore> getDatastores() {
        return datastores;
    }

    public void setIdEnterprise(final Integer idEnterprise) {
        this.idEnterprise = idEnterprise;
    }

    public Integer getIdEnterprise() {
        return idEnterprise;
    }

    public String getIpmiIp() {
        return ipmiIp;
    }

    public void setIpmiIp(final String ipmiIp) {
        this.ipmiIp = ipmiIp;
    }

    public Integer getIpmiPort() {
        return ipmiPort;
    }

    public void setIpmiPort(final Integer ipmiPort) {
        this.ipmiPort = ipmiPort;
    }

    public String getIpmiUser() {
        return ipmiUser;
    }

    public void setIpmiUser(final String ipmiUser) {
        this.ipmiUser = ipmiUser;
    }

    public String getIpmiPassword() {
        return ipmiPassword;
    }

    public void setIpmiPassword(final String ipmiPassword) {
        this.ipmiPassword = ipmiPassword;
    }

    public HyperVisor getHypervisor() {
        return hypervisor;
    }

    public void setHypervisor(final HyperVisor hypervisor) {
        this.hypervisor = hypervisor;
    }

    @Override
    public PhysicalmachineHB toPojoHB() {
        PhysicalmachineHB physicalMachineHB = new PhysicalmachineHB();

        physicalMachineHB.setDataCenter(getDataCenter().toPojoHB());

        physicalMachineHB.setIdPhysicalMachine(getId());
        physicalMachineHB.setName(StringUtils.substring(getName(), 0, 255)); // a fully qualified
        // domain name (FQDN)
        // is 255 octets -
        // where any one label
        // can be 63 octets
        // long at most (RFC
        // 2181)
        physicalMachineHB.setDescription(getDescription());
        physicalMachineHB.setCpu(getCpu());
        physicalMachineHB.setCpuUsed(getCpuUsed());
        physicalMachineHB.setRam(getRam());
        physicalMachineHB.setRamUsed(getRamUsed());
        Rack rack = (Rack) getAssignedTo();
        physicalMachineHB.setRack(rack.toPojoHB());
        physicalMachineHB.setIdState(getIdState());
        physicalMachineHB.setVswitchName(vswitchName);
        physicalMachineHB.setInitiatorIQN(initiatorIQN);
        physicalMachineHB.setIpmiIp(ipmiIp);
        physicalMachineHB.setIpmiPort(ipmiPort);
        physicalMachineHB.setIpmiUser(ipmiUser);
        physicalMachineHB.setIpmiPassword(ipmiPassword);
        Set<DatastoreHB> datastoresHB = new HashSet<DatastoreHB>();
        if (datastores != null) {
            for (Datastore datastore : datastores) {
                datastoresHB.add(datastore.toPojoHB());
            }
        }
        physicalMachineHB.setDatastoresHB(datastoresHB);
        if (idEnterprise != null) {
            physicalMachineHB.setIdEnterprise(idEnterprise.intValue() != 0 ? idEnterprise : null);
        }

        if (hypervisor != null) {
            physicalMachineHB.setHypervisor(hypervisor.toPojoHB(physicalMachineHB));
        }

        return physicalMachineHB;
    }

    public Rack getRack() {
        return rack;
    }

    public void setRack(final Rack rack) {
        this.rack = rack;
    }

    public static PhysicalMachine create(final MachineDto dto, final DataCenter datacenter, final Rack rack) {
        PhysicalMachine physicalMachine = new PhysicalMachine();

        physicalMachine.setDataCenter(datacenter);
        physicalMachine.setCpu(dto.getVirtualCpuCores());
        physicalMachine.setCpuUsed(dto.getVirtualCpusUsed());
        physicalMachine.setDescription(dto.getDescription());
        physicalMachine.setId(dto.getId());
        physicalMachine.setName(dto.getName());
        physicalMachine.setAssignedTo(rack);
        physicalMachine.setRam(dto.getVirtualRamInMb());
        physicalMachine.setRamUsed(dto.getVirtualRamUsedInMb());
        physicalMachine.setIdState(dto.getState().ordinal());
        physicalMachine.setVswitchName(dto.getVirtualSwitch());
        physicalMachine.setIpmiIp(dto.getIpmiIP());
        physicalMachine.setIpmiPort(dto.getIpmiPort());
        physicalMachine.setIpmiUser(dto.getIpmiUser());
        physicalMachine.setIpmiPassword(dto.getIpmiPassword());

        // FIXME: where is initiatorIQN?
        // physicalMachine.setInitiatorIQN(dto.get);

        return physicalMachine;
    }

    public static PhysicalMachine create(final MachineDto dto, final Rack rack) {
        PhysicalMachine physicalMachine = new PhysicalMachine();

        // physicalMachine.setDataCenter(datacenter);
        physicalMachine.setCpu(dto.getVirtualCpuCores());
        physicalMachine.setCpuUsed(dto.getVirtualCpusUsed());
        physicalMachine.setDescription(dto.getDescription());
        physicalMachine.setId(dto.getId());
        physicalMachine.setName(dto.getName());
        physicalMachine.setAssignedTo(rack);
        physicalMachine.setRam(dto.getVirtualRamInMb());
        physicalMachine.setRamUsed(dto.getVirtualRamUsedInMb());
        physicalMachine.setIdState(dto.getState().ordinal());
        physicalMachine.setVswitchName(dto.getVirtualSwitch());
        physicalMachine.setIpmiIp(dto.getIpmiIP());
        physicalMachine.setIpmiPort(dto.getIpmiPort());
        physicalMachine.setIpmiUser(dto.getIpmiUser());
        physicalMachine.setIpmiPassword(dto.getIpmiPassword());

        // FIXME: where is initiatorIQN?
        // physicalMachine.setInitiatorIQN(dto.get);

        return physicalMachine;
    }

    public void completeInfo(final MachineDto dto) {
        HyperVisor h = new HyperVisor();
        h.setIp(dto.getIp());
        h.setIpService(dto.getIpService());
        if (dto.getType() != null) {
            h.setType(new HyperVisorType(dto.getType()));
        }
        h.setUser(dto.getUser());
        h.setPassword(dto.getPassword());
        if (dto.getPort() != null) {
            h.setPort(dto.getPort());
        }
        h.setId(dto.getId());
        h.setName(dto.getName());
        this.setHypervisor(h);

        if (dto.getDatastores() != null && !dto.getDatastores().getCollection().isEmpty()) {
            this.setDatastores(new HashSet<Datastore>());

            for (DatastoreDto dataDto : dto.getDatastores().getCollection()) {
                Datastore datastore = new Datastore();
                datastore.setDatastoreUUID(dataDto.getDatastoreUUID());
                datastore.setDirectory(dataDto.getDirectory());
                datastore.setEnabled(dataDto.isEnabled());
                datastore.setId(dataDto.getId());
                datastore.setName(dataDto.getName());
                datastore.setSize(dataDto.getSize());
                datastore.setUsedSize(dataDto.getUsedSize());
                datastore.setUUID(dataDto.getRootPath());

                this.getDatastores().add(datastore);
            }
        }
    }

}