package org.zstack.image; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.zstack.core.db.DatabaseFacade; import org.zstack.header.image.*; import org.zstack.header.volume.VolumeFormat; public class DefaultImageFactory implements ImageFactory { static final ImageType type = new ImageType(ImageConstant.ZSTACK_IMAGE_TYPE); public static final VolumeFormat ISO_FORMAT = new VolumeFormat(ImageConstant.ISO_FORMAT_STRING, null); @Autowired private DatabaseFacade dbf; @Override public ImageType getType() { return type; } @Override @Transactional public ImageVO createImage(ImageVO vo, APIAddImageMsg msg) { dbf.getEntityManager().persist(vo); dbf.getEntityManager().flush(); dbf.getEntityManager().refresh(vo); return vo; } @Override public Image getImage(ImageVO vo) { return new ImageBase(vo); } }