package org.zstack.compute.vm; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.zstack.core.db.DatabaseFacade; import org.zstack.header.vm.*; public class UserVmFactory implements VmInstanceFactory { private static final VmInstanceType type = new VmInstanceType(VmInstanceConstant.USER_VM_TYPE); @Autowired private DatabaseFacade dbf; @Override public VmInstanceType getType() { return type; } @Override @Transactional public VmInstanceVO createVmInstance(VmInstanceVO vo, CreateVmInstanceMsg msg) { vo.setType(type.toString()); dbf.getEntityManager().persist(vo); return vo; } @Override public VmInstance getVmInstance(VmInstanceVO vo) { return new VmInstanceBase(vo); } }