package org.zstack.network.l3;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.zstack.core.cloudbus.CloudBus;
import org.zstack.core.db.DatabaseFacade;
import org.zstack.header.network.l3.*;
import org.zstack.utils.Utils;
import org.zstack.utils.data.FieldPrinter;
import org.zstack.utils.logging.CLogger;
public class L3BasicNetworkFactory implements L3NetworkFactory {
private static final CLogger logger = Utils.getLogger(L3BasicNetworkFactory.class);
private static final FieldPrinter printer = Utils.getFieldPrinter();
private static final L3NetworkType type = new L3NetworkType(L3NetworkConstant.L3_BASIC_NETWORK_TYPE);
@Autowired
private DatabaseFacade dbf;
@Autowired
private CloudBus bus;
@Override
public L3NetworkType getType() {
return type;
}
@Override
@Transactional
public L3NetworkInventory createL3Network(L3NetworkVO l3vo, APICreateL3NetworkMsg msg) {
l3vo.setType(type.toString());
dbf.getEntityManager().persist(l3vo);
dbf.getEntityManager().flush();
dbf.getEntityManager().refresh(l3vo);
return L3NetworkInventory.valueOf(l3vo);
}
@Override
public L3Network getL3Network(L3NetworkVO vo) {
return new L3BasicNetwork(vo);
}
}