mirror of https://github.com/apache/cloudstack.git
Removed orchestration from relying on cloud-server
This commit is contained in:
parent
813321b42d
commit
6bf9de596e
|
|
@ -0,0 +1,91 @@
|
|||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the
|
||||
// "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
package org.apache.cloudstack.config;
|
||||
|
||||
/**
|
||||
* ConfigKey supplants the original Config.java. It is just a class
|
||||
* declaration where others can declare their config variables.
|
||||
*
|
||||
* TODO: This class should be moved to a framework project where the gathering
|
||||
* of these configuration keys should be done by a config server. I
|
||||
* don't have time yet to do this. Ask me about it if you want to work
|
||||
* in this area. Right now, we'll just work with the actual names.
|
||||
*/
|
||||
public class ConfigKey<T> {
|
||||
|
||||
private final String _category;
|
||||
|
||||
public String category() {
|
||||
return _category;
|
||||
}
|
||||
|
||||
public Class<?> component() {
|
||||
return _componentClass;
|
||||
}
|
||||
|
||||
public Class<T> type() {
|
||||
return _type;
|
||||
}
|
||||
|
||||
public String key() {
|
||||
return _name;
|
||||
}
|
||||
|
||||
public String defaultValue() {
|
||||
return _defaultValue;
|
||||
}
|
||||
|
||||
public String description() {
|
||||
return _description;
|
||||
}
|
||||
|
||||
public String range() {
|
||||
return _range;
|
||||
}
|
||||
|
||||
public String scope() {
|
||||
return _scope;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return _name;
|
||||
}
|
||||
|
||||
private final Class<?> _componentClass;
|
||||
private final Class<T> _type;
|
||||
private final String _name;
|
||||
private final String _defaultValue;
|
||||
private final String _description;
|
||||
private final String _range;
|
||||
private final String _scope; // Parameter can be at different levels (Zone/cluster/pool/account), by default every parameter is at global
|
||||
|
||||
public ConfigKey(Class<T> type, String name, String category, Class<?> componentClass, String defaultValue, String description, String range, String scope) {
|
||||
_category = category;
|
||||
_componentClass = componentClass;
|
||||
_type = type;
|
||||
_name = name;
|
||||
_defaultValue = defaultValue;
|
||||
_description = description;
|
||||
_range = range;
|
||||
_scope = scope;
|
||||
}
|
||||
|
||||
public ConfigKey(Class<T> type, String name, String category, Class<?> componentClass, String defaultValue, String description, String range) {
|
||||
this(type, name, category, componentClass, defaultValue, description, range, null);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the
|
||||
// "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
package org.apache.cloudstack.config;
|
||||
|
||||
/**
|
||||
* ConfigRepo is a repository of configurations.
|
||||
*
|
||||
*/
|
||||
public interface ConfigRepo {
|
||||
<T> ConfigValue<T> get(ConfigKey<T> key);
|
||||
|
||||
}
|
||||
|
|
@ -14,26 +14,31 @@
|
|||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
package com.cloud.configuration;
|
||||
package org.apache.cloudstack.config;
|
||||
|
||||
import com.cloud.configuration.ConfigurationVO;
|
||||
import com.cloud.configuration.dao.ConfigurationDao;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
|
||||
// This class returns the config value in a class. We can later enhance this
|
||||
// class to get auto-updated by the database.
|
||||
/**
|
||||
* This is a match set to ConfigKey.
|
||||
*
|
||||
* TODO: When we create a framework project for configuration, this should be
|
||||
* moved there.
|
||||
*/
|
||||
public class ConfigValue<T> {
|
||||
|
||||
Config _config;
|
||||
ConfigKey<T> _config;
|
||||
ConfigurationDao _dao;
|
||||
Number _multiplier;
|
||||
|
||||
protected ConfigValue(ConfigurationDao dao, Config config) {
|
||||
public ConfigValue(ConfigurationDao dao, ConfigKey<T> config) {
|
||||
_dao = dao;
|
||||
_config = config;
|
||||
_multiplier = 1;
|
||||
}
|
||||
|
||||
public Config getConfig() {
|
||||
public ConfigKey<T> getConfigKey() {
|
||||
return _config;
|
||||
}
|
||||
|
||||
|
|
@ -45,9 +50,9 @@ public class ConfigValue<T> {
|
|||
@SuppressWarnings("unchecked")
|
||||
public T value() {
|
||||
ConfigurationVO vo = _dao.findByName(_config.key());
|
||||
String value = vo != null ? vo.getValue() : _config.getDefaultValue();
|
||||
String value = vo != null ? vo.getValue() : _config.defaultValue();
|
||||
|
||||
Class<?> type = _config.getType();
|
||||
Class<T> type = _config.type();
|
||||
if (type.isAssignableFrom(Boolean.class)) {
|
||||
return (T)Boolean.valueOf(value);
|
||||
} else if (type.isAssignableFrom(Integer.class)) {
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the
|
||||
// "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
package org.apache.cloudstack.engine.config;
|
||||
|
||||
import org.apache.cloudstack.config.ConfigKey;
|
||||
import org.apache.cloudstack.engine.service.api.OrchestrationService;
|
||||
|
||||
public interface Configs {
|
||||
|
||||
public static final ConfigKey<Integer> StartRetry = new ConfigKey<Integer>(
|
||||
Integer.class, "start.retry", "Advanced", OrchestrationService.class, "10", "Number of times to retry create and start commands", null);
|
||||
public static final ConfigKey<Long> VmOpWaitInterval = new ConfigKey<Long>(
|
||||
Long.class, "vm.op.wait.interval", "Advanced", OrchestrationService.class, "120", "Time (in seconds) to wait before checking if a previous operation has succeeded",
|
||||
null);
|
||||
public static final ConfigKey<Integer> VmOpLockStateRetry = new ConfigKey<Integer>(
|
||||
Integer.class, "vm.op.lock.state.retry", "Advanced", OrchestrationService.class, "5", "Times to retry locking the state of a VM for operations", "-1 means try forever");
|
||||
public static final ConfigKey<Long> VmOpCleanupInterval = new ConfigKey<Long>(
|
||||
Long.class, "vm.op.cleanup.interval", "Advanced", OrchestrationService.class, "86400", "Interval to run the thread that cleans up the vm operations (in seconds)",
|
||||
"Seconds");
|
||||
public static final ConfigKey<Long> VmOpCleanupWait = new ConfigKey<Long>(
|
||||
Long.class, "vm.op.cleanup.wait", "Advanced", OrchestrationService.class, "3600", "Time (in seconds) to wait before cleanuping up any vm work items", "Seconds");
|
||||
public static final ConfigKey<Integer> VmOpCancelInterval = new ConfigKey<Integer>(
|
||||
Integer.class, "vm.op.cancel.interval", "Advanced", OrchestrationService.class, "3600", "Time (in seconds) to wait before cancelling a operation", "Seconds");
|
||||
|
||||
public static final ConfigKey<Integer> Wait = new ConfigKey<Integer>(
|
||||
Integer.class, "wait", "Advanced", OrchestrationService.class, "1800", "Time in seconds to wait for control commands to return", null);
|
||||
public static final ConfigKey<Boolean> VmDestroyForcestop = new ConfigKey<Boolean>(
|
||||
Boolean.class, "vm.destroy.forcestop", "Advanced", OrchestrationService.class, "false", "On destroy, force-stop takes this value ", null);
|
||||
|
||||
}
|
||||
|
|
@ -48,11 +48,6 @@
|
|||
<artifactId>cloud-utils</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloud-server</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<build>
|
||||
<plugins>
|
||||
|
|
|
|||
|
|
@ -29,11 +29,15 @@ import javax.naming.ConfigurationException;
|
|||
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import org.apache.cloudstack.config.ConfigRepo;
|
||||
import org.apache.cloudstack.config.ConfigValue;
|
||||
import org.apache.cloudstack.engine.cloud.entity.VMEntityVO;
|
||||
import org.apache.cloudstack.engine.cloud.entity.api.VirtualMachineEntity;
|
||||
import org.apache.cloudstack.engine.cloud.entity.api.VirtualMachineEntityImpl;
|
||||
import org.apache.cloudstack.engine.config.Configs;
|
||||
import org.apache.cloudstack.engine.subsystem.api.storage.StorageOrchestrator;
|
||||
import org.apache.cloudstack.network.NetworkOrchestrator;
|
||||
import org.apache.cloudstack.vm.jobs.VmWorkJobDao;
|
||||
|
||||
import com.cloud.agent.AgentManager;
|
||||
import com.cloud.agent.Listener;
|
||||
|
|
@ -43,9 +47,6 @@ import com.cloud.agent.api.Answer;
|
|||
import com.cloud.agent.api.Command;
|
||||
import com.cloud.agent.api.StartupCommand;
|
||||
import com.cloud.cluster.ManagementServerNode;
|
||||
import com.cloud.configuration.Config;
|
||||
import com.cloud.configuration.ConfigValue;
|
||||
import com.cloud.configuration.ConfigurationManager;
|
||||
import com.cloud.dao.EntityManager;
|
||||
import com.cloud.deploy.DeploymentPlan;
|
||||
import com.cloud.domain.dao.DomainDao;
|
||||
|
|
@ -70,12 +71,10 @@ import com.cloud.utils.component.ComponentContext;
|
|||
import com.cloud.utils.component.ManagerBase;
|
||||
import com.cloud.utils.concurrency.NamedThreadFactory;
|
||||
import com.cloud.vm.NicProfile;
|
||||
import com.cloud.vm.ReservationContextImpl;
|
||||
import com.cloud.vm.UserVmVO;
|
||||
import com.cloud.vm.VMInstanceVO;
|
||||
import com.cloud.vm.VirtualMachineManager;
|
||||
import com.cloud.vm.VirtualMachineProfileImpl;
|
||||
import com.cloud.vm.VmWorkJobDao;
|
||||
|
||||
/**
|
||||
* VirtualMachineOrchestrator orchestrates virtual machine operations.
|
||||
|
|
@ -86,7 +85,7 @@ public class VirtualMachineOrchestrator extends ManagerBase {
|
|||
@Inject
|
||||
EntityManager _entityMgr;
|
||||
@Inject
|
||||
ConfigurationManager _configMgr;
|
||||
ConfigRepo _configRepo;
|
||||
@Inject
|
||||
NetworkOrchestrator _networkOrchestrator;
|
||||
@Inject
|
||||
|
|
@ -99,7 +98,7 @@ public class VirtualMachineOrchestrator extends ManagerBase {
|
|||
VirtualMachineManager _itMgr;
|
||||
|
||||
protected ConfigValue<Integer> _retry;
|
||||
protected ConfigValue<Long> _cancelWait;
|
||||
protected ConfigValue<Integer> _cancelWait;
|
||||
protected ConfigValue<Long> _cleanupWait;
|
||||
protected ConfigValue<Long> _cleanupInterval;
|
||||
protected ConfigValue<Long> _opWaitInterval;
|
||||
|
|
@ -280,16 +279,15 @@ public class VirtualMachineOrchestrator extends ManagerBase {
|
|||
public boolean configure(String name, Map<String, Object> params) throws ConfigurationException {
|
||||
super.configure(name, params);
|
||||
|
||||
_retry = _configMgr.getConfig(Config.StartRetry, Integer.class);
|
||||
_retry = _configRepo.get(Configs.StartRetry);
|
||||
|
||||
|
||||
_cancelWait = _configMgr.getConfig(Config.VmOpCancelInterval, Long.class);
|
||||
_cleanupWait = _configMgr.getConfig(Config.VmOpCleanupWait, Long.class);
|
||||
_cleanupInterval = _configMgr.getConfig(Config.VmOpCleanupInterval, Long.class).setMultiplier(1000);
|
||||
_opWaitInterval = _configMgr.getConfig(Config.VmOpWaitInterval, Long.class).setMultiplier(1000);
|
||||
_lockStateRetry = _configMgr.getConfig(Config.VmOpLockStateRetry, Integer.class);
|
||||
_operationTimeout = _configMgr.getConfig(Config.Wait, Integer.class).setMultiplier(2);
|
||||
_forceStop = _configMgr.getConfig(Config.VmDestroyForcestop, Boolean.class);
|
||||
_cancelWait = _configRepo.get(Configs.VmOpCancelInterval);
|
||||
_cleanupWait = _configRepo.get(Configs.VmOpCleanupWait);
|
||||
_cleanupInterval = _configRepo.get(Configs.VmOpCleanupInterval).setMultiplier(1000);
|
||||
_opWaitInterval = _configRepo.get(Configs.VmOpWaitInterval).setMultiplier(1000);
|
||||
_lockStateRetry = _configRepo.get(Configs.VmOpLockStateRetry);
|
||||
_operationTimeout = _configRepo.get(Configs.Wait).setMultiplier(2);
|
||||
_forceStop = _configRepo.get(Configs.VmDestroyForcestop);
|
||||
|
||||
_nodeId = ManagementServerNode.getManagementServerId();
|
||||
|
||||
|
|
@ -297,7 +295,7 @@ public class VirtualMachineOrchestrator extends ManagerBase {
|
|||
|
||||
_executor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("Vm-Operations-Cleanup"));
|
||||
|
||||
ReservationContextImpl.setComponents(_userDao, _domainDao, _accountDao);
|
||||
// ReservationContextImpl.setComponents(_userDao, _domainDao, _accountDao);
|
||||
VirtualMachineProfileImpl.setComponents(_offeringDao, _templateDao, _accountDao);
|
||||
VirtualMachineEntityImpl2.init(_entityMgr, this, _networkOrchestrator, _storageOrchestrator);
|
||||
|
||||
|
|
|
|||
|
|
@ -33,6 +33,11 @@
|
|||
<artifactId>cloud-engine-api</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloud-framework-jobs</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<build>
|
||||
<defaultGoal>install</defaultGoal>
|
||||
|
|
|
|||
|
|
@ -14,13 +14,16 @@
|
|||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
package com.cloud.vm;
|
||||
package org.apache.cloudstack.vm.jobs;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.cloudstack.vm.jobs.VmWorkJobVO.Step;
|
||||
|
||||
import com.cloud.utils.db.GenericDao;
|
||||
import com.cloud.vm.VmWorkJobVO.Step;
|
||||
import com.cloud.vm.VirtualMachine;
|
||||
import com.cloud.vm.VirtualMachine.Type;
|
||||
|
||||
public interface VmWorkJobDao extends GenericDao<VmWorkJobVO, Long> {
|
||||
VmWorkJobVO findPendingWorkJob(VirtualMachine.Type type, long instanceId);
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
package com.cloud.vm;
|
||||
package org.apache.cloudstack.vm.jobs;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
|
@ -22,6 +22,7 @@ import java.util.List;
|
|||
import javax.annotation.PostConstruct;
|
||||
|
||||
import org.apache.cloudstack.framework.jobs.AsyncJobConstants;
|
||||
import org.apache.cloudstack.vm.jobs.VmWorkJobVO.Step;
|
||||
|
||||
import com.cloud.utils.DateUtil;
|
||||
import com.cloud.utils.db.Filter;
|
||||
|
|
@ -29,7 +30,8 @@ import com.cloud.utils.db.GenericDaoBase;
|
|||
import com.cloud.utils.db.SearchBuilder;
|
||||
import com.cloud.utils.db.SearchCriteria;
|
||||
import com.cloud.utils.db.SearchCriteria.Op;
|
||||
import com.cloud.vm.VmWorkJobVO.Step;
|
||||
import com.cloud.vm.VirtualMachine;
|
||||
import com.cloud.vm.VirtualMachine.Type;
|
||||
|
||||
public class VmWorkJobDaoImpl extends GenericDaoBase<VmWorkJobVO, Long> implements VmWorkJobDao {
|
||||
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
package com.cloud.vm;
|
||||
package org.apache.cloudstack.vm.jobs;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.DiscriminatorValue;
|
||||
|
|
@ -26,6 +26,9 @@ import javax.persistence.Table;
|
|||
|
||||
import org.apache.cloudstack.framework.jobs.AsyncJobVO;
|
||||
|
||||
import com.cloud.vm.VirtualMachine;
|
||||
import com.cloud.vm.VirtualMachine.Type;
|
||||
|
||||
|
||||
@Entity
|
||||
@Table(name="vm_work_job")
|
||||
|
|
@ -32,11 +32,8 @@ import com.cloud.agent.StartupCommandProcessor;
|
|||
import com.cloud.agent.api.Answer;
|
||||
import com.cloud.agent.api.Command;
|
||||
import com.cloud.agent.api.SetupCommand;
|
||||
import com.cloud.agent.api.StartupCommand;
|
||||
import com.cloud.agent.manager.AgentAttache;
|
||||
import com.cloud.agent.manager.Commands;
|
||||
import com.cloud.exception.AgentUnavailableException;
|
||||
import com.cloud.exception.ConnectionException;
|
||||
import com.cloud.exception.OperationTimedoutException;
|
||||
import com.cloud.host.HostEnvironment;
|
||||
import com.cloud.host.HostVO;
|
||||
|
|
@ -49,7 +46,7 @@ import com.cloud.utils.component.ManagerBase;
|
|||
|
||||
public class DirectAgentManagerSimpleImpl extends ManagerBase implements AgentManager {
|
||||
private static final Logger logger = Logger.getLogger(DirectAgentManagerSimpleImpl.class);
|
||||
private Map<Long, ServerResource> hostResourcesMap = new HashMap<Long, ServerResource>();
|
||||
private final Map<Long, ServerResource> hostResourcesMap = new HashMap<Long, ServerResource>();
|
||||
@Inject
|
||||
HostDao hostDao;
|
||||
@Override
|
||||
|
|
@ -192,24 +189,12 @@ public class DirectAgentManagerSimpleImpl extends ManagerBase implements AgentMa
|
|||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AgentAttache handleDirectConnectAgent(HostVO host, StartupCommand[] cmds, ServerResource resource, boolean forRebalance) throws ConnectionException {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean agentStatusTransitTo(HostVO host, Event e, long msId) {
|
||||
// TODO Auto-generated method stub
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AgentAttache findAttache(long hostId) {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void disconnectWithoutInvestigation(long hostId, Event event) {
|
||||
// TODO Auto-generated method stub
|
||||
|
|
|
|||
|
|
@ -242,6 +242,4 @@ public interface ConfigurationManager extends ConfigurationService, Manager {
|
|||
* @return
|
||||
*/
|
||||
String cleanupTags(String tags);
|
||||
|
||||
<T> ConfigValue<T> getConfig(Config config, Class<T> clazz);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -65,6 +65,9 @@ import org.apache.cloudstack.api.command.admin.zone.CreateZoneCmd;
|
|||
import org.apache.cloudstack.api.command.admin.zone.DeleteZoneCmd;
|
||||
import org.apache.cloudstack.api.command.admin.zone.UpdateZoneCmd;
|
||||
import org.apache.cloudstack.api.command.user.network.ListNetworkOfferingsCmd;
|
||||
import org.apache.cloudstack.config.ConfigKey;
|
||||
import org.apache.cloudstack.config.ConfigRepo;
|
||||
import org.apache.cloudstack.config.ConfigValue;
|
||||
import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
|
||||
import org.apache.cloudstack.storage.datastore.db.StoragePoolDetailVO;
|
||||
import org.apache.cloudstack.storage.datastore.db.StoragePoolDetailsDao;
|
||||
|
|
@ -187,7 +190,7 @@ import com.cloud.vm.dao.NicDao;
|
|||
import edu.emory.mathcs.backport.java.util.Arrays;
|
||||
|
||||
@Local(value = { ConfigurationManager.class, ConfigurationService.class })
|
||||
public class ConfigurationManagerImpl extends ManagerBase implements ConfigurationManager, ConfigurationService {
|
||||
public class ConfigurationManagerImpl extends ManagerBase implements ConfigurationManager, ConfigurationService, ConfigRepo {
|
||||
public static final Logger s_logger = Logger.getLogger(ConfigurationManagerImpl.class.getName());
|
||||
|
||||
@Inject
|
||||
|
|
@ -4485,7 +4488,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
|
|||
}
|
||||
|
||||
@Override
|
||||
public <T> ConfigValue<T> getConfig(Config config, Class<T> clazz) {
|
||||
public <T> ConfigValue<T> get(ConfigKey<T> config) {
|
||||
return new ConfigValue<T>(_configDao, config);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,6 +44,9 @@ import org.apache.cloudstack.framework.messagebus.MessageBus;
|
|||
import org.apache.cloudstack.messagebus.TopicConstants;
|
||||
import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
|
||||
import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
|
||||
import org.apache.cloudstack.vm.jobs.VmWorkJobDao;
|
||||
import org.apache.cloudstack.vm.jobs.VmWorkJobVO;
|
||||
import org.apache.cloudstack.vm.jobs.VmWorkJobVO.Step;
|
||||
|
||||
import com.cloud.agent.AgentManager;
|
||||
import com.cloud.agent.AgentManager.OnError;
|
||||
|
|
@ -167,7 +170,6 @@ import com.cloud.utils.fsm.StateMachine2;
|
|||
import com.cloud.vm.VirtualMachine.Event;
|
||||
import com.cloud.vm.VirtualMachine.PowerState;
|
||||
import com.cloud.vm.VirtualMachine.State;
|
||||
import com.cloud.vm.VmWorkJobVO.Step;
|
||||
import com.cloud.vm.dao.NicDao;
|
||||
import com.cloud.vm.dao.UserVmDao;
|
||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
||||
|
|
|
|||
|
|
@ -30,6 +30,8 @@ import org.apache.cloudstack.framework.jobs.AsyncJob;
|
|||
import org.apache.cloudstack.framework.jobs.AsyncJobDispatcher;
|
||||
import org.apache.cloudstack.framework.jobs.AsyncJobJoinMapVO;
|
||||
import org.apache.cloudstack.framework.jobs.dao.AsyncJobJoinMapDao;
|
||||
import org.apache.cloudstack.vm.jobs.VmWorkJobDao;
|
||||
import org.apache.cloudstack.vm.jobs.VmWorkJobVO;
|
||||
|
||||
import com.cloud.api.ApiSerializerHelper;
|
||||
import com.cloud.user.AccountVO;
|
||||
|
|
|
|||
|
|
@ -46,11 +46,13 @@ import com.cloud.utils.LogUtils;
|
|||
import com.cloud.utils.Predicate;
|
||||
import com.cloud.utils.component.ComponentContext;
|
||||
import com.cloud.utils.db.Transaction;
|
||||
import com.cloud.vm.VmWorkJobVO.Step;
|
||||
import com.google.gson.Gson;
|
||||
|
||||
import org.apache.cloudstack.framework.jobs.AsyncJobManager;
|
||||
import org.apache.cloudstack.framework.jobs.AsyncJobVO;
|
||||
import org.apache.cloudstack.vm.jobs.VmWorkJobDao;
|
||||
import org.apache.cloudstack.vm.jobs.VmWorkJobVO;
|
||||
import org.apache.cloudstack.vm.jobs.VmWorkJobVO.Step;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration(locations="classpath:/VmWorkTestContext.xml")
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ import javax.inject.Inject;
|
|||
import org.apache.cloudstack.framework.jobs.AsyncJob;
|
||||
import org.apache.cloudstack.framework.jobs.AsyncJobDispatcher;
|
||||
import org.apache.cloudstack.framework.jobs.AsyncJobManager;
|
||||
import org.apache.cloudstack.vm.jobs.VmWorkJobVO;
|
||||
|
||||
import com.cloud.api.ApiSerializerHelper;
|
||||
import com.cloud.async.AsyncJobExecutionContext;
|
||||
|
|
|
|||
|
|
@ -33,6 +33,8 @@ import org.apache.cloudstack.framework.jobs.dao.SyncQueueDao;
|
|||
import org.apache.cloudstack.framework.jobs.dao.SyncQueueDaoImpl;
|
||||
import org.apache.cloudstack.framework.jobs.dao.SyncQueueItemDao;
|
||||
import org.apache.cloudstack.framework.jobs.dao.SyncQueueItemDaoImpl;
|
||||
import org.apache.cloudstack.vm.jobs.VmWorkJobDao;
|
||||
import org.apache.cloudstack.vm.jobs.VmWorkJobDaoImpl;
|
||||
|
||||
import com.cloud.api.ApiDispatcher;
|
||||
import com.cloud.cluster.ClusterManager;
|
||||
|
|
|
|||
|
|
@ -29,13 +29,14 @@ import org.junit.runner.RunWith;
|
|||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import org.apache.cloudstack.vm.jobs.VmWorkJobDao;
|
||||
import org.apache.cloudstack.vm.jobs.VmWorkJobVO;
|
||||
|
||||
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
||||
import com.cloud.utils.db.Transaction;
|
||||
import com.cloud.vm.UserVmVO;
|
||||
import com.cloud.vm.VMInstanceVO;
|
||||
import com.cloud.vm.VirtualMachine;
|
||||
import com.cloud.vm.VmWorkJobDao;
|
||||
import com.cloud.vm.VmWorkJobVO;
|
||||
|
||||
import junit.framework.Assert;
|
||||
import junit.framework.TestCase;
|
||||
|
|
|
|||
|
|
@ -20,6 +20,9 @@ import org.mockito.Mockito;
|
|||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
import org.apache.cloudstack.vm.jobs.VmWorkJobDao;
|
||||
import org.apache.cloudstack.vm.jobs.VmWorkJobDaoImpl;
|
||||
|
||||
import com.cloud.cluster.agentlb.dao.HostTransferMapDao;
|
||||
import com.cloud.cluster.agentlb.dao.HostTransferMapDaoImpl;
|
||||
import com.cloud.dc.dao.ClusterDao;
|
||||
|
|
@ -30,8 +33,6 @@ import com.cloud.host.dao.HostDaoImpl;
|
|||
import com.cloud.host.dao.HostDetailsDao;
|
||||
import com.cloud.host.dao.HostTagsDao;
|
||||
import com.cloud.tags.dao.ResourceTagDao;
|
||||
import com.cloud.vm.VmWorkJobDao;
|
||||
import com.cloud.vm.VmWorkJobDaoImpl;
|
||||
|
||||
@Configuration
|
||||
public class VmDaoTestConfiguration {
|
||||
|
|
|
|||
|
|
@ -48,8 +48,6 @@ import org.apache.cloudstack.api.command.admin.zone.DeleteZoneCmd;
|
|||
import org.apache.cloudstack.api.command.admin.zone.UpdateZoneCmd;
|
||||
import org.apache.cloudstack.api.command.user.network.ListNetworkOfferingsCmd;
|
||||
|
||||
import com.cloud.configuration.Config;
|
||||
import com.cloud.configuration.ConfigValue;
|
||||
import com.cloud.configuration.Configuration;
|
||||
import com.cloud.configuration.ConfigurationManager;
|
||||
import com.cloud.configuration.ConfigurationService;
|
||||
|
|
@ -633,10 +631,4 @@ public class MockConfigurationManagerImpl extends ManagerBase implements Configu
|
|||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> ConfigValue<T> getConfig(Config config, Class<T> clazz) {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue