mirror of https://github.com/apache/cloudstack.git
Put command classes under Spring injection framework
This commit is contained in:
parent
a2dab60236
commit
df684261cf
|
|
@ -25,6 +25,8 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import org.apache.cloudstack.query.QueryService;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
|
|
@ -109,84 +111,43 @@ public abstract class BaseCmd {
|
|||
@Parameter(name = "response", type = CommandType.STRING)
|
||||
private String responseType;
|
||||
|
||||
public static ConfigurationService _configService;
|
||||
public static AccountService _accountService;
|
||||
public static UserVmService _userVmService;
|
||||
public static ManagementService _mgr;
|
||||
public static StorageService _storageService;
|
||||
public static ResourceService _resourceService;
|
||||
public static NetworkService _networkService;
|
||||
public static TemplateService _templateService;
|
||||
public static SecurityGroupService _securityGroupService;
|
||||
public static SnapshotService _snapshotService;
|
||||
public static ConsoleProxyService _consoleProxyService;
|
||||
public static VpcVirtualNetworkApplianceService _routerService;
|
||||
public static ResponseGenerator _responseGenerator;
|
||||
public static EntityManager _entityMgr;
|
||||
public static RulesService _rulesService;
|
||||
public static AutoScaleService _autoScaleService;
|
||||
public static LoadBalancingRulesService _lbService;
|
||||
public static RemoteAccessVpnService _ravService;
|
||||
public static BareMetalVmService _bareMetalVmService;
|
||||
public static ProjectService _projectService;
|
||||
public static FirewallService _firewallService;
|
||||
public static DomainService _domainService;
|
||||
public static ResourceLimitService _resourceLimitService;
|
||||
public static IdentityService _identityService;
|
||||
public static StorageNetworkService _storageNetworkService;
|
||||
public static TaggedResourceService _taggedResourceService;
|
||||
public static VpcService _vpcService;
|
||||
public static NetworkACLService _networkACLService;
|
||||
public static Site2SiteVpnService _s2sVpnService;
|
||||
@Inject public ConfigurationService _configService;
|
||||
@Inject public AccountService _accountService;
|
||||
@Inject public UserVmService _userVmService;
|
||||
@Inject public ManagementService _mgr;
|
||||
@Inject public StorageService _storageService;
|
||||
@Inject public ResourceService _resourceService;
|
||||
@Inject public NetworkService _networkService;
|
||||
@Inject public TemplateService _templateService;
|
||||
@Inject public SecurityGroupService _securityGroupService;
|
||||
@Inject public SnapshotService _snapshotService;
|
||||
@Inject public ConsoleProxyService _consoleProxyService;
|
||||
@Inject public VpcVirtualNetworkApplianceService _routerService;
|
||||
@Inject public ResponseGenerator _responseGenerator;
|
||||
@Inject public EntityManager _entityMgr;
|
||||
@Inject public RulesService _rulesService;
|
||||
@Inject public AutoScaleService _autoScaleService;
|
||||
@Inject public LoadBalancingRulesService _lbService;
|
||||
@Inject public RemoteAccessVpnService _ravService;
|
||||
@Inject public BareMetalVmService _bareMetalVmService;
|
||||
@Inject public ProjectService _projectService;
|
||||
@Inject public FirewallService _firewallService;
|
||||
@Inject public DomainService _domainService;
|
||||
@Inject public ResourceLimitService _resourceLimitService;
|
||||
@Inject public IdentityService _identityService;
|
||||
@Inject public StorageNetworkService _storageNetworkService;
|
||||
@Inject public TaggedResourceService _taggedResourceService;
|
||||
@Inject public VpcService _vpcService;
|
||||
@Inject public NetworkACLService _networkACLService;
|
||||
@Inject public Site2SiteVpnService _s2sVpnService;
|
||||
|
||||
public static QueryService _queryService;
|
||||
|
||||
public static void setComponents(ResponseGenerator generator) {
|
||||
_mgr = ComponentContext.getComponent(ManagementService.class);
|
||||
_accountService = ComponentContext.getComponent(AccountService.class);
|
||||
_configService = ComponentContext.getComponent(ConfigurationService.class);
|
||||
|
||||
_userVmService = ComponentContext.getComponent(UserVmService.class);
|
||||
|
||||
// TODO, ugly and will change soon
|
||||
//
|
||||
Map<String, UserVmService> svmServices = ComponentContext.getComponentsOfType(UserVmService.class);
|
||||
_userVmService = svmServices.get("BareMetalVmManagerImpl");
|
||||
|
||||
_storageService = ComponentContext.getComponent(StorageService.class);
|
||||
_resourceService = ComponentContext.getComponent(ResourceService.class);
|
||||
|
||||
_networkService = ComponentContext.getComponent(NetworkService.class);
|
||||
_templateService = ComponentContext.getComponent(TemplateService.class);
|
||||
|
||||
// TODO, will change to looking for primary component
|
||||
// ugly binding to a specific implementation
|
||||
Map<String, SecurityGroupService> _sgServices = ComponentContext.getComponentsOfType(SecurityGroupService.class);
|
||||
_securityGroupService = _sgServices.get("SecurityGroupManagerImpl2");
|
||||
|
||||
_snapshotService = ComponentContext.getComponent(SnapshotService.class);
|
||||
_consoleProxyService = ComponentContext.getComponent(ConsoleProxyService.class);
|
||||
_routerService = ComponentContext.getComponent(VpcVirtualNetworkApplianceService.class);
|
||||
_entityMgr = ComponentContext.getComponent(EntityManager.class);
|
||||
_rulesService = ComponentContext.getComponent(RulesService.class);
|
||||
_lbService = ComponentContext.getComponent(LoadBalancingRulesService.class);
|
||||
_ravService = ComponentContext.getComponent(RemoteAccessVpnService.class);
|
||||
_responseGenerator = generator;
|
||||
_bareMetalVmService = ComponentContext.getComponent(BareMetalVmService.class);
|
||||
_projectService = ComponentContext.getComponent(ProjectService.class);
|
||||
_firewallService = ComponentContext.getComponent(FirewallService.class);
|
||||
_domainService = ComponentContext.getComponent(DomainService.class);
|
||||
_resourceLimitService = ComponentContext.getComponent(ResourceLimitService.class);
|
||||
_identityService = ComponentContext.getComponent(IdentityService.class);
|
||||
_storageNetworkService = ComponentContext.getComponent(StorageNetworkService.class);
|
||||
_taggedResourceService = ComponentContext.getComponent(TaggedResourceService.class);
|
||||
_vpcService = ComponentContext.getComponent(VpcService.class);
|
||||
_networkACLService = ComponentContext.getComponent(NetworkACLService.class);
|
||||
_s2sVpnService = ComponentContext.getComponent(Site2SiteVpnService.class);
|
||||
}
|
||||
@Inject public QueryService _queryService;
|
||||
|
||||
public abstract void execute() throws ResourceUnavailableException, InsufficientCapacityException, ServerApiException, ConcurrentOperationException, ResourceAllocationException, NetworkRuleConflictException;
|
||||
|
||||
public void configure() {
|
||||
}
|
||||
|
||||
public String getResponseType() {
|
||||
if (responseType == null) {
|
||||
return RESPONSE_TYPE_XML;
|
||||
|
|
|
|||
|
|
@ -42,6 +42,9 @@ public abstract class BaseListCmd extends BaseCmd {
|
|||
// ///////////////// Accessors ///////////////////////
|
||||
// ///////////////////////////////////////////////////
|
||||
|
||||
public BaseListCmd() {
|
||||
}
|
||||
|
||||
public String getKeyword() {
|
||||
return keyword;
|
||||
}
|
||||
|
|
@ -62,10 +65,14 @@ public abstract class BaseListCmd extends BaseCmd {
|
|||
return pageSize;
|
||||
}
|
||||
|
||||
public static void configure() {
|
||||
if (_configService.getDefaultPageSize().longValue() != PAGESIZE_UNLIMITED) {
|
||||
MAX_PAGESIZE = _configService.getDefaultPageSize();
|
||||
}
|
||||
public void configure() {
|
||||
if(MAX_PAGESIZE == null) {
|
||||
if (_configService.getDefaultPageSize().longValue() != PAGESIZE_UNLIMITED) {
|
||||
MAX_PAGESIZE = _configService.getDefaultPageSize();
|
||||
} else {
|
||||
MAX_PAGESIZE = PAGESIZE_UNLIMITED;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -42,7 +42,6 @@ import com.cloud.utils.db.GenericDao;
|
|||
import com.cloud.utils.db.StateMachine;
|
||||
import com.cloud.utils.fsm.FiniteStateObject;
|
||||
import com.cloud.vm.VirtualMachine.State;
|
||||
import org.apache.cloudstack.api.InternalIdentity;
|
||||
|
||||
@Entity
|
||||
@Table(name="vm_instance")
|
||||
|
|
@ -144,12 +143,6 @@ public class VMInstanceVO implements VirtualMachine, FiniteStateObject<State, Vi
|
|||
@Enumerated(value=EnumType.STRING)
|
||||
protected HypervisorType hypervisorType;
|
||||
|
||||
@Column(name="ram")
|
||||
protected long ram;
|
||||
|
||||
@Column(name="cpu")
|
||||
protected int cpu;
|
||||
|
||||
@Column(name="tags")
|
||||
protected String tags;
|
||||
|
||||
|
|
|
|||
|
|
@ -18,8 +18,11 @@
|
|||
*/
|
||||
package org.apache.cloudstack.storage.snapshot.db;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.cloud.utils.db.GenericDaoBase;
|
||||
|
||||
@Component
|
||||
public class SnapshotDao2Impl extends GenericDaoBase<SnapshotVO, Long> implements SnapshotDao2 {
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ import java.util.HashMap;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.naming.ConfigurationException;
|
||||
|
||||
import org.apache.cloudstack.storage.datastore.DataStoreStatus;
|
||||
|
|
@ -49,7 +50,7 @@ public class PrimaryDataStoreDaoImpl extends GenericDaoBase<PrimaryDataStoreVO,
|
|||
protected final SearchBuilder<PrimaryDataStoreVO> DeleteLvmSearch;
|
||||
protected final GenericSearchBuilder<PrimaryDataStoreVO, Long> StatusCountSearch;
|
||||
|
||||
protected final PrimaryDataStoreDetailsDao _detailsDao = null;
|
||||
@Inject protected PrimaryDataStoreDetailsDao _detailsDao;
|
||||
|
||||
private final String DetailsSqlPrefix = "SELECT storage_pool.* from storage_pool LEFT JOIN storage_pool_details ON storage_pool.id = storage_pool_details.pool_id WHERE storage_pool.removed is null and storage_pool.data_center_id = ? and (storage_pool.pod_id = ? or storage_pool.pod_id is null) and (";
|
||||
private final String DetailsSqlSuffix = ") GROUP BY storage_pool_details.pool_id HAVING COUNT(storage_pool_details.name) >= ?";
|
||||
|
|
@ -95,8 +96,6 @@ public class PrimaryDataStoreDaoImpl extends GenericDaoBase<PrimaryDataStoreVO,
|
|||
StatusCountSearch.and("status", StatusCountSearch.entity().getStatus(), SearchCriteria.Op.IN);
|
||||
StatusCountSearch.select(null, Func.COUNT, null);
|
||||
StatusCountSearch.done();
|
||||
|
||||
// _detailsDao = ComponentInject.inject(PrimaryDataStoreDetailsDaoImpl.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -132,6 +132,8 @@ import org.apache.cloudstack.api.response.VpnUsersResponse;
|
|||
import org.apache.cloudstack.api.response.ZoneResponse;
|
||||
|
||||
import org.apache.cloudstack.api.response.S3Response;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.cloud.async.AsyncJob;
|
||||
import com.cloud.capacity.Capacity;
|
||||
import com.cloud.capacity.CapacityVO;
|
||||
|
|
@ -240,6 +242,7 @@ import com.cloud.vm.NicProfile;
|
|||
import com.cloud.vm.VirtualMachine;
|
||||
import com.cloud.vm.VirtualMachine.Type;
|
||||
|
||||
@Component
|
||||
public class ApiResponseHelper implements ResponseGenerator {
|
||||
|
||||
public final Logger s_logger = Logger.getLogger(ApiResponseHelper.class);
|
||||
|
|
|
|||
|
|
@ -132,6 +132,7 @@ import com.cloud.utils.Pair;
|
|||
import com.cloud.utils.NumbersUtil;
|
||||
import com.cloud.utils.ReflectUtil;
|
||||
import com.cloud.utils.StringUtils;
|
||||
import com.cloud.utils.component.ComponentContext;
|
||||
import com.cloud.utils.component.PluggableService;
|
||||
import com.cloud.utils.concurrency.NamedThreadFactory;
|
||||
import com.cloud.utils.db.SearchCriteria;
|
||||
|
|
@ -179,9 +180,6 @@ public class ApiServer implements HttpRequestHandler {
|
|||
}
|
||||
|
||||
public void init() {
|
||||
BaseCmd.setComponents(new ApiResponseHelper());
|
||||
BaseListCmd.configure();
|
||||
|
||||
_systemAccount = _accountMgr.getSystemAccount();
|
||||
_systemUser = _accountMgr.getSystemUser();
|
||||
|
||||
|
|
@ -346,6 +344,8 @@ public class ApiServer implements HttpRequestHandler {
|
|||
Class<?> cmdClass = getCmdClass(command[0]);
|
||||
if (cmdClass != null) {
|
||||
BaseCmd cmdObj = (BaseCmd) cmdClass.newInstance();
|
||||
cmdObj = ComponentContext.inject(cmdObj);
|
||||
cmdObj.configure();
|
||||
cmdObj.setFullUrlParams(paramMap);
|
||||
cmdObj.setResponseType(responseType);
|
||||
// This is where the command is either serialized, or directly dispatched
|
||||
|
|
|
|||
Loading…
Reference in New Issue