/**
* Copyright (C) 2008 - Abiquo Holdings S.L. All rights reserved.
*
* Please see /opt/abiquo/tomcat/webapps/legal/ on Abiquo server
* or contact contact@abiquo.com for licensing information.
*/
package com.abiquo.server.core.cloud;
import java.util.List;
import javax.persistence.EntityManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import com.abiquo.model.enumerator.DiskFormatType;
import com.abiquo.server.core.appslibrary.VirtualImageConversion;
import com.abiquo.server.core.appslibrary.VirtualImageConversionDAO;
import com.abiquo.server.core.appslibrary.VirtualMachineTemplate;
import com.abiquo.server.core.common.DefaultRepBase;
import com.abiquo.server.core.enterprise.Enterprise;
import com.abiquo.server.core.enterprise.User;
import com.abiquo.server.core.util.FilterOptions;
@Repository
public class VirtualApplianceRep extends DefaultRepBase
{
@Autowired
private VirtualApplianceDAO virtualApplianceDao;
@Autowired
private NodeVirtualImageDAO nodeVirtualImageDao;
@Autowired
private VirtualImageConversionDAO virtualImageConversionDao;
public VirtualApplianceRep()
{
}
public VirtualApplianceRep(final EntityManager em)
{
this.entityManager = em;
this.virtualApplianceDao = new VirtualApplianceDAO(em);
this.nodeVirtualImageDao = new NodeVirtualImageDAO(em);
this.virtualImageConversionDao = new VirtualImageConversionDAO(em);
}
public VirtualAppliance findVirtualApplianceByVirtualMachine(final VirtualMachine virtualMachine)
{
return nodeVirtualImageDao.findVirtualAppliance(virtualMachine);
}
public List<VirtualAppliance> findVirtualAppliancesByEnterprise(final Enterprise ent,
final FilterOptions filterOptions, final User user)
{
return virtualApplianceDao.findByEnterprise(ent, filterOptions, user);
}
public List<VirtualAppliance> findVirtualAppliancesByEnterpriseAndDatacenter(
final Integer entId, final Integer dcId)
{
return virtualApplianceDao.findByEnterpriseAndDatacenter(entId, dcId);
}
/**
* @param user, only users with restricted VDCs
*/
public List<VirtualAppliance> findVirtualAppliancesByEnterpriseAndDatacenter(
final Integer entId, final Integer dcId, final User user)
{
return virtualApplianceDao.findByEnterpriseAndDatacenter(entId, dcId, user);
}
public VirtualAppliance findById(final Integer id)
{
return virtualApplianceDao.get(id);
}
public void updateVirtualAppliance(final VirtualAppliance virtualAppliance)
{
this.virtualApplianceDao.flush();
}
public VirtualImageConversion findVirtualImageConversionById(final Integer id)
{
return virtualImageConversionDao.findById(id);
}
public boolean isVirtualImageConverted(final VirtualMachineTemplate vImage,
final DiskFormatType format)
{
return virtualImageConversionDao.isVirtualImageConverted(vImage.getId(), format);
}
public void updateVirtualImageConversion(final VirtualImageConversion vic)
{
virtualImageConversionDao.flush();
}
public void deleteVirtualImageConversion(final VirtualImageConversion virtualImageConversion)
{
virtualImageConversionDao.remove(virtualImageConversion);
}
public NodeVirtualImage findNodeVirtualImageById(final Integer id)
{
return nodeVirtualImageDao.findById(id);
}
public void updateNodeVirtualImage(final NodeVirtualImage nodeVirtualImage)
{
nodeVirtualImageDao.flush();
}
public void deleteVirtualAppliance(final VirtualAppliance virtualAppliance)
{
virtualApplianceDao.remove(virtualAppliance);
}
public String getDatacenterUUIDByVirtualImageConversionID(final Integer idVirtualImageConversion)
{
return virtualImageConversionDao
.getDatacenterUUIDByVirtualImageConversionID(idVirtualImageConversion);
}
public void persist(final VirtualAppliance vapp)
{
virtualApplianceDao.persist(vapp);
}
}