/**
* 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.business.hibernate.pojohb.virtualappliance;
// Generated 16-oct-2008 16:52:14 by Hibernate Tools 3.2.1.GA
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.abiquo.abiserver.business.hibernate.pojohb.IPojoHB;
import com.abiquo.abiserver.business.hibernate.pojohb.infrastructure.DatastoreHB;
import com.abiquo.abiserver.business.hibernate.pojohb.infrastructure.HypervisorHB;
import com.abiquo.abiserver.business.hibernate.pojohb.infrastructure.StateEnum;
import com.abiquo.abiserver.business.hibernate.pojohb.user.EnterpriseHB;
import com.abiquo.abiserver.business.hibernate.pojohb.user.UserHB;
import com.abiquo.abiserver.business.hibernate.pojohb.virtualhardware.ResourceAllocationSettingData;
import com.abiquo.abiserver.business.hibernate.pojohb.virtualhardware.ResourceManagementHB;
import com.abiquo.abiserver.business.hibernate.pojohb.virtualimage.VirtualImageConversionsHB;
import com.abiquo.abiserver.business.hibernate.pojohb.virtualimage.VirtualimageHB;
import com.abiquo.abiserver.pojo.infrastructure.State;
import com.abiquo.abiserver.pojo.infrastructure.VirtualMachine;
/**
* Virtualmachine generated by hbm2java
*/
public class VirtualmachineHB implements java.io.Serializable, IPojoHB<VirtualMachine>
{
private final static Logger logger = LoggerFactory.getLogger(VirtualmachineHB.class);
private static final long serialVersionUID = 8024546400260681298L;
/**
* 0 - if The virtualMachine is not created and managed by abiCloud
*/
public final static int NOT_MANAGED_VM = 0;
/**
* 1 - if The virtualMachine is created and managed by abiCloud
*/
public final static int MANAGED_VM = 1;
private Integer idVm;
private HypervisorHB hypervisor;
private StateEnum state;
private StateEnum subState;
private VirtualimageHB image;
private String uuid;
private String name;
private String description;
private Integer ram;
private Integer cpu;
private Long hd;
private Integer vdrpPort;
private String vdrpIp;
private int highDisponibility;
private VirtualImageConversionsHB conversion;
private final List<ResourceAllocationSettingData> rasds =
new ArrayList<ResourceAllocationSettingData>();
private Set<ResourceManagementHB> resman = new HashSet<ResourceManagementHB>();
private int idType;
private UserHB userHB;
private EnterpriseHB enterpriseHB;
private DatastoreHB datastore;
private String password;
public VirtualmachineHB()
{
}
public Integer getIdVm()
{
return idVm;
}
public void setIdVm(final Integer idVm)
{
this.idVm = idVm;
}
public StateEnum getState()
{
return state;
}
public void setState(final StateEnum state)
{
this.state = state;
}
public StateEnum getSubState()
{
return subState;
}
public void setSubState(final StateEnum subState)
{
this.subState = subState;
}
public String getUuid()
{
return uuid;
}
public void setUuid(final String uuid)
{
this.uuid = uuid;
}
public String getName()
{
return name;
}
public List<ResourceAllocationSettingData> getRasds()
{
// Cleaning the list
rasds.clear();
Set<ResourceManagementHB> resMans = getResman();
for (ResourceManagementHB resMan : resMans)
{
if (resMan.checkResourceCoherency())
{
rasds.add(resMan.getRasd());
}
else
{
logger.error("concurrency is false");
}
}
return rasds;
}
public void setName(String name)
{
if (!name.startsWith("ABQ_") && !(state == StateEnum.ON || state == StateEnum.LOCKED)
&& isManaged())
{
name = "ABQ_" + name;
}
this.name = name;
}
public String getDescription()
{
return description;
}
public void setDescription(final String description)
{
this.description = description;
}
public Integer getRam()
{
return ram;
}
public void setRam(final Integer ram)
{
this.ram = ram;
}
public Integer getCpu()
{
return cpu;
}
public void setCpu(final Integer cpu)
{
this.cpu = cpu;
}
public Long getHd()
{
return hd;
}
public void setHd(final Long hd)
{
this.hd = hd;
}
public Integer getVdrpPort()
{
return vdrpPort;
}
public void setVdrpPort(final Integer vdrpPort)
{
this.vdrpPort = vdrpPort;
}
public String getVdrpIp()
{
return vdrpIp;
}
public void setVdrpIp(final String vdrpIp)
{
this.vdrpIp = vdrpIp;
}
public int getHighDisponibility()
{
return highDisponibility;
}
public void setHighDisponibility(final int highDisponibility)
{
this.highDisponibility = highDisponibility;
}
public Set<ResourceManagementHB> getResman()
{
return resman;
}
public void setResman(final Set<ResourceManagementHB> resman)
{
this.resman = resman;
}
public VirtualimageHB getImage()
{
return image;
}
public void setImage(final VirtualimageHB image)
{
this.image = image;
}
public HypervisorHB getHypervisor()
{
return hypervisor;
}
public void setHypervisor(final HypervisorHB hypervisor)
{
this.hypervisor = hypervisor;
}
public int getIdType()
{
return idType;
}
public void setIdType(final int idType)
{
this.idType = idType;
}
public UserHB getUserHB()
{
return userHB;
}
public void setUserHB(final UserHB userHB)
{
this.userHB = userHB;
}
public EnterpriseHB getEnterpriseHB()
{
return enterpriseHB;
}
public void setEnterpriseHB(final EnterpriseHB enterpriseHB)
{
this.enterpriseHB = enterpriseHB;
}
@Override
public VirtualMachine toPojo()
{
VirtualMachine virtualMachine = new VirtualMachine();
virtualMachine.setId(idVm);
virtualMachine.setName(name);
if (hypervisor == null)
{
virtualMachine.setAssignedTo(null);
}
else
{
virtualMachine.setAssignedTo(hypervisor.toPojo());
}
if (conversion == null)
{
virtualMachine.setConversion(null);
}
else
{
virtualMachine.setConversion(conversion.toPojo());
}
virtualMachine.setVirtualImage(image == null ? null : image.toPojo());
virtualMachine.setUUID(uuid);
virtualMachine.setDescription(description);
virtualMachine.setRam(ram);
virtualMachine.setCpu(cpu);
virtualMachine.setHd(hd);
virtualMachine.setVdrpIP(vdrpIp);
virtualMachine.setVdrpPort(vdrpPort);
virtualMachine.setState(new State(state));
virtualMachine.setSubState(new State(subState == null ? StateEnum.UNKNOWN : subState));
virtualMachine.setHighDisponibility(highDisponibility == 1 ? true : false);
virtualMachine.setUser(userHB == null ? null : userHB.toPojo());
virtualMachine.setEnterprise(enterpriseHB == null ? null : enterpriseHB.toPojo());
virtualMachine.setIdType(idType);
virtualMachine.setDatastore(datastore == null ? null : datastore.toPojo());
virtualMachine.setPassword(password);
return virtualMachine;
}
/**
* @return the conversions
*/
public VirtualImageConversionsHB getConversion()
{
return conversion;
}
/**
* @param conversions the conversions to set
*/
public void setConversion(final VirtualImageConversionsHB conversion)
{
this.conversion = conversion;
}
/**
* Utility method to check if the virtual machine is managed by abicloud
*
* @return true if it's managed, false otherwise
*/
public boolean isManaged()
{
return getImage() != null && getImage().getRepository() != null;
}
public void setDatastore(final DatastoreHB datastore)
{
this.datastore = datastore;
}
public DatastoreHB getDatastore()
{
return datastore;
}
public String getPassword()
{
return password;
}
public void setPassword(final String password)
{
this.password = password;
}
}