package org.zstack.configuration;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.zstack.core.db.DatabaseFacade;
import org.zstack.header.configuration.*;
public class UserVmInstanceOfferingFactory implements InstanceOfferingFactory {
static final InstanceOfferingType type = new InstanceOfferingType(ConfigurationConstant.USER_VM_INSTANCE_OFFERING_TYPE);
@Autowired
private DatabaseFacade dbf;
@Override
public InstanceOfferingType getInstanceOfferingType() {
return type;
}
@Override
@Transactional
public InstanceOfferingInventory createInstanceOffering(InstanceOfferingVO vo, APICreateInstanceOfferingMsg msg) {
dbf.getEntityManager().persist(vo);
dbf.getEntityManager().flush();
dbf.getEntityManager().refresh(vo);
return InstanceOfferingInventory.valueOf(vo);
}
@Override
public InstanceOffering getInstanceOffering(InstanceOfferingVO vo) {
return new InstanceOfferingBase(vo);
}
}