package org.zstack.compute.cluster;
import org.springframework.beans.factory.annotation.Autowire;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Configurable;
import org.zstack.core.db.DatabaseFacade;
import org.zstack.header.cluster.*;
@Configurable(preConstruction = true, autowire = Autowire.BY_TYPE)
public class BaseClusterFactory implements ClusterFactory {
static final ClusterType type = new ClusterType(ClusterConstant.ZSTACK_CLUSTER_TYPE);
@Autowired
private DatabaseFacade dbf;
@Override
public ClusterType getType() {
return type;
}
@Override
public ClusterVO createCluster(ClusterVO vo, APICreateClusterMsg msg) {
vo.setType(type.toString());
vo = dbf.persistAndRefresh(vo);
return vo;
}
@Override
public Cluster getCluster(ClusterVO vo) {
return new ClusterBase(vo);
}
}