package org.ovirt.engine.core.bll;
import org.jboss.ejb3.annotation.Depends;
import org.jboss.ejb3.annotation.Management;
import org.jboss.ejb3.annotation.Service;
import org.ovirt.engine.core.bll.storage.StoragePoolStatusHandler;
import org.ovirt.engine.core.common.backendinterfaces.IResourceManager;
import org.ovirt.engine.core.common.config.Config;
import org.ovirt.engine.core.common.config.ConfigValues;
import org.ovirt.engine.core.compat.LogCompat;
import org.ovirt.engine.core.compat.LogFactoryCompat;
import org.ovirt.engine.core.utils.ejb.BeanProxyType;
import org.ovirt.engine.core.utils.ejb.BeanType;
import org.ovirt.engine.core.utils.ejb.EjbUtils;
/**
* The following bean is created in order to initialize and start all related vdsms schedulers
* in the system after all beans finished initialization
*/
@Service
@Management(InitBackendServicesOnStartup.class)
@Depends({"jboss.j2ee:ear=engine.ear,jar=engine-bll.jar,name=Backend,service=EJB3", "jboss.j2ee:ear=engine.ear,jar=engine-vdsbroker.jar,name=VdsBroker,service=EJB3"})
public class InitBackendServicesOnStartupBean implements InitBackendServicesOnStartup{
private static LogCompat log = LogFactoryCompat.getLog(InitBackendServicesOnStartupBean.class);
/**
* This method is called upon the bean creation as part
* of the management Service bean lifecycle.
*/
public void create() {
log.infoFormat("InitResourceManager: {0}", new java.util.Date());
IResourceManager manager = EjbUtils.findBean(BeanType.VDS_BROKER, BeanProxyType.LOCAL);
manager.setup();
AsyncTaskManager.getInstance().InitAsyncTaskManager();
log.infoFormat("AsyncTaskManager: {0}", new java.util.Date());
if (Config.<Boolean> GetValue(ConfigValues.EnableVdsLoadBalancing)) {
VdsLoadBalancer.EnableLoadBalancer();
}
log.infoFormat("VdsLoadBalancer: {0}", new java.util.Date());
TimeLeasedVmPoolManager.getInstance();
log.infoFormat("TimeLeasedVmPoolManager: {0}", new java.util.Date());
MacPoolManager.getInstance().initialize();
log.infoFormat("MacPoolManager: {0}", new java.util.Date());
StoragePoolStatusHandler.Init();
}
}