/** * 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.server.core.cloud; import java.util.Collection; 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.cloud.stateful.DiskStatefulConversion; import com.abiquo.server.core.cloud.stateful.DiskStatefulConversionDAO; import com.abiquo.server.core.cloud.stateful.NodeVirtualImageStatefulConversion; import com.abiquo.server.core.cloud.stateful.NodeVirtualImageStatefulConversionDAO; import com.abiquo.server.core.cloud.stateful.VirtualApplianceStatefulConversion; import com.abiquo.server.core.cloud.stateful.VirtualApplianceStatefulConversionDAO; 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 VirtualApplianceStatefulConversionDAO vAppStatefulConversionDao; @Autowired private NodeVirtualImageStatefulConversionDAO nodeVirtualImageStatefulConversioDao; @Autowired private DiskStatefulConversionDAO diskStatefulConversionDao; @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.vAppStatefulConversionDao = new VirtualApplianceStatefulConversionDAO(em); this.nodeVirtualImageStatefulConversioDao = new NodeVirtualImageStatefulConversionDAO(em); this.diskStatefulConversionDao = new DiskStatefulConversionDAO(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.findById(id); } public void updateVirtualAppliance(final VirtualAppliance virtualAppliance) { this.virtualApplianceDao.flush(); } public VirtualApplianceStatefulConversion findConversionById(final Integer id) { return vAppStatefulConversionDao.findById(id); } public NodeVirtualImageStatefulConversion findNodeVirtualImageStatefulConversionById( final Integer id) { return nodeVirtualImageStatefulConversioDao.findById(id); } public Collection<NodeVirtualImageStatefulConversion> findNodeVirtualImageStatefulConversionsByVirtualImageConversion( final VirtualImageConversion virtualImageConversion) { return nodeVirtualImageStatefulConversioDao .findByVirtualImageConversion(virtualImageConversion); } public DiskStatefulConversion insertDiskStatefulConversion(final DiskStatefulConversion dsc) { diskStatefulConversionDao.persist(dsc); diskStatefulConversionDao.flush(); return dsc; } public void updateNodeVirtualImageStatefulConversion( final NodeVirtualImageStatefulConversion nvisc) { nodeVirtualImageStatefulConversioDao.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 Collection<NodeVirtualImageStatefulConversion> findNodeVirtualImageConversionByVirtualAppliance( final VirtualAppliance virtualAppliance) { return nodeVirtualImageStatefulConversioDao.findByVirtualAppliance(virtualAppliance); } public Collection<NodeVirtualImageStatefulConversion> findNodeVirtualImageConversionByVirtualApplianceStatefulConversion( final VirtualApplianceStatefulConversion virtualApplianceStategulConversion) { return nodeVirtualImageStatefulConversioDao .findByVirtualApplianceStatefulConversion(virtualApplianceStategulConversion); } public void deleteDiskStatefulConversion(final DiskStatefulConversion diskStatefulConversion) { diskStatefulConversionDao.remove(diskStatefulConversion); } public DiskStatefulConversion findDiskStatefulConversionById(final Integer id) { return diskStatefulConversionDao.findById(id); } public void deleteVirtualImageConversion(final VirtualImageConversion virtualImageConversion) { virtualImageConversionDao.remove(virtualImageConversion); } public void deleteNodeVirtualImageStatefulConversion( final NodeVirtualImageStatefulConversion nodeVirtualImageStatefulConversion) { nodeVirtualImageStatefulConversioDao.remove(nodeVirtualImageStatefulConversion); } public void deleteVirtualApplianceStatefulConversion( final VirtualApplianceStatefulConversion virtualApplianceStatefulConversion) { vAppStatefulConversionDao.remove(virtualApplianceStatefulConversion); } 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); } }