Solve Spring loading issues with a few Dao and Manager components

This commit is contained in:
Kelven Yang 2013-01-02 13:55:26 -08:00
parent 8f3789dab2
commit e2078ec6e4
14 changed files with 146 additions and 103 deletions

View File

@ -44,6 +44,7 @@ import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLEngine;
import org.apache.log4j.Logger;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Component;
import com.cloud.agent.AgentManager;
@ -90,6 +91,7 @@ import com.cloud.utils.nio.Link;
import com.cloud.utils.nio.Task;
@Component
@Primary
@Local(value = { AgentManager.class, ClusteredAgentRebalanceService.class })
public class ClusteredAgentManagerImpl extends AgentManagerImpl implements ClusterManagerListener, ClusteredAgentRebalanceService {
final static Logger s_logger = Logger.getLogger(ClusteredAgentManagerImpl.class);

View File

@ -45,6 +45,7 @@ import javax.inject.Inject;
import javax.naming.ConfigurationException;
import org.apache.log4j.Logger;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Component;
import com.cloud.agent.AgentManager;
@ -91,6 +92,7 @@ import com.cloud.utils.net.NetUtils;
import com.google.gson.Gson;
@Component
@Primary
@Local(value = { ClusterManager.class })
public class ClusterManagerImpl implements ClusterManager {
private static final Logger s_logger = Logger.getLogger(ClusterManagerImpl.class);

View File

@ -237,7 +237,7 @@ public class ConfigurationManagerImpl implements ConfigurationManager, Configura
VpcManager _vpcMgr;
// FIXME - why don't we have interface for DataCenterLinkLocalIpAddressDao?
protected static final DataCenterLinkLocalIpAddressDaoImpl _LinkLocalIpAllocDao = ComponentLocator.inject(DataCenterLinkLocalIpAddressDaoImpl.class);
@Inject protected DataCenterLinkLocalIpAddressDaoImpl _LinkLocalIpAllocDao;
private int _maxVolumeSizeInGb;
private long _defaultPageSize;

View File

@ -33,6 +33,7 @@ import javax.naming.ConfigurationException;
import javax.persistence.Table;
import org.apache.log4j.Logger;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Component;
import com.cloud.agent.AgentManager;
@ -172,6 +173,7 @@ import com.google.gson.GsonBuilder;
// because sooner or later, it will be driven into Running state
//
@Component
@Primary
@Local(value = { ConsoleProxyManager.class, ConsoleProxyService.class })
public class ConsoleProxyManagerImpl implements ConsoleProxyManager, ConsoleProxyService, Manager, AgentHook, VirtualMachineGuru<ConsoleProxyVO>, SystemVmLoadScanHandler<Long>, ResourceStateAdapter {
private static final Logger s_logger = Logger.getLogger(ConsoleProxyManagerImpl.class);

View File

@ -24,6 +24,7 @@ import javax.ejb.Local;
import javax.inject.Inject;
import javax.naming.ConfigurationException;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Component;
import com.cloud.alert.AlertManager;
@ -34,6 +35,7 @@ import com.cloud.utils.component.ComponentLocator;
import com.cloud.utils.db.Transaction;
@Component
@Primary
@Local(value={HighAvailabilityManager.class})
public class HighAvailabilityManagerExtImpl extends HighAvailabilityManagerImpl {

View File

@ -25,6 +25,7 @@ import java.util.List;
import java.util.Map;
import java.util.TimeZone;
import javax.annotation.PostConstruct;
import javax.ejb.Local;
import javax.inject.Inject;
import javax.persistence.TableGenerator;
@ -71,57 +72,60 @@ public class HostDaoImpl extends GenericDaoBase<HostVO, Long> implements HostDao
private static final Logger status_logger = Logger.getLogger(Status.class);
private static final Logger state_logger = Logger.getLogger(ResourceState.class);
protected final SearchBuilder<HostVO> TypePodDcStatusSearch;
protected SearchBuilder<HostVO> TypePodDcStatusSearch;
protected final SearchBuilder<HostVO> IdStatusSearch;
protected final SearchBuilder<HostVO> TypeDcSearch;
protected final SearchBuilder<HostVO> TypeDcStatusSearch;
protected final SearchBuilder<HostVO> TypeClusterStatusSearch;
protected final SearchBuilder<HostVO> MsStatusSearch;
protected final SearchBuilder<HostVO> DcPrivateIpAddressSearch;
protected final SearchBuilder<HostVO> DcStorageIpAddressSearch;
protected SearchBuilder<HostVO> IdStatusSearch;
protected SearchBuilder<HostVO> TypeDcSearch;
protected SearchBuilder<HostVO> TypeDcStatusSearch;
protected SearchBuilder<HostVO> TypeClusterStatusSearch;
protected SearchBuilder<HostVO> MsStatusSearch;
protected SearchBuilder<HostVO> DcPrivateIpAddressSearch;
protected SearchBuilder<HostVO> DcStorageIpAddressSearch;
protected final SearchBuilder<HostVO> GuidSearch;
protected final SearchBuilder<HostVO> DcSearch;
protected final SearchBuilder<HostVO> PodSearch;
protected final SearchBuilder<HostVO> TypeSearch;
protected final SearchBuilder<HostVO> StatusSearch;
protected final SearchBuilder<HostVO> ResourceStateSearch;
protected final SearchBuilder<HostVO> NameLikeSearch;
protected final SearchBuilder<HostVO> NameSearch;
protected final SearchBuilder<HostVO> SequenceSearch;
protected final SearchBuilder<HostVO> DirectlyConnectedSearch;
protected final SearchBuilder<HostVO> UnmanagedDirectConnectSearch;
protected final SearchBuilder<HostVO> UnmanagedApplianceSearch;
protected final SearchBuilder<HostVO> MaintenanceCountSearch;
protected final SearchBuilder<HostVO> ClusterStatusSearch;
protected final SearchBuilder<HostVO> TypeNameZoneSearch;
protected final SearchBuilder<HostVO> AvailHypevisorInZone;
protected SearchBuilder<HostVO> GuidSearch;
protected SearchBuilder<HostVO> DcSearch;
protected SearchBuilder<HostVO> PodSearch;
protected SearchBuilder<HostVO> TypeSearch;
protected SearchBuilder<HostVO> StatusSearch;
protected SearchBuilder<HostVO> ResourceStateSearch;
protected SearchBuilder<HostVO> NameLikeSearch;
protected SearchBuilder<HostVO> NameSearch;
protected SearchBuilder<HostVO> SequenceSearch;
protected SearchBuilder<HostVO> DirectlyConnectedSearch;
protected SearchBuilder<HostVO> UnmanagedDirectConnectSearch;
protected SearchBuilder<HostVO> UnmanagedApplianceSearch;
protected SearchBuilder<HostVO> MaintenanceCountSearch;
protected SearchBuilder<HostVO> ClusterStatusSearch;
protected SearchBuilder<HostVO> TypeNameZoneSearch;
protected SearchBuilder<HostVO> AvailHypevisorInZone;
protected final SearchBuilder<HostVO> DirectConnectSearch;
protected final SearchBuilder<HostVO> ManagedDirectConnectSearch;
protected final SearchBuilder<HostVO> ManagedRoutingServersSearch;
protected final SearchBuilder<HostVO> SecondaryStorageVMSearch;
protected SearchBuilder<HostVO> DirectConnectSearch;
protected SearchBuilder<HostVO> ManagedDirectConnectSearch;
protected SearchBuilder<HostVO> ManagedRoutingServersSearch;
protected SearchBuilder<HostVO> SecondaryStorageVMSearch;
protected final GenericSearchBuilder<HostVO, Long> HostsInStatusSearch;
protected final GenericSearchBuilder<HostVO, Long> CountRoutingByDc;
protected final SearchBuilder<HostTransferMapVO> HostTransferSearch;
protected GenericSearchBuilder<HostVO, Long> HostsInStatusSearch;
protected GenericSearchBuilder<HostVO, Long> CountRoutingByDc;
protected SearchBuilder<HostTransferMapVO> HostTransferSearch;
protected SearchBuilder<ClusterVO> ClusterManagedSearch;
protected final SearchBuilder<HostVO> RoutingSearch;
protected SearchBuilder<HostVO> RoutingSearch;
protected final Attribute _statusAttr;
protected final Attribute _resourceStateAttr;
protected final Attribute _msIdAttr;
protected final Attribute _pingTimeAttr;
protected Attribute _statusAttr;
protected Attribute _resourceStateAttr;
protected Attribute _msIdAttr;
protected Attribute _pingTimeAttr;
@Inject protected HostDetailsDaoImpl _detailsDao;
@Inject protected HostTagsDaoImpl _hostTagsDao;
@Inject protected HostTransferMapDaoImpl _hostTransferDao;
@Inject protected ClusterDaoImpl _clusterDao;
public HostDaoImpl() {
}
@PostConstruct
public void init() {
MaintenanceCountSearch = createSearchBuilder();
MaintenanceCountSearch.and("cluster", MaintenanceCountSearch.entity().getClusterId(), SearchCriteria.Op.EQ);

View File

@ -16,9 +16,12 @@
// under the License.
package com.cloud.network;
import org.springframework.stereotype.Component;
import com.cloud.utils.db.GenericDao;
import com.cloud.utils.db.GenericDaoBase;
@Component
public class NetworkAccountDaoImpl extends GenericDaoBase<NetworkAccountVO, Long> implements GenericDao<NetworkAccountVO, Long> {
public NetworkAccountDaoImpl() {
super();

View File

@ -21,6 +21,7 @@ import java.sql.ResultSet;
import java.util.Date;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.Local;
import javax.inject.Inject;
@ -52,19 +53,22 @@ import com.cloud.utils.net.Ip;
public class IPAddressDaoImpl extends GenericDaoBase<IPAddressVO, Long> implements IPAddressDao {
private static final Logger s_logger = Logger.getLogger(IPAddressDaoImpl.class);
protected final SearchBuilder<IPAddressVO> AllFieldsSearch;
protected final SearchBuilder<IPAddressVO> VlanDbIdSearchUnallocated;
protected final GenericSearchBuilder<IPAddressVO, Integer> AllIpCount;
protected final GenericSearchBuilder<IPAddressVO, Integer> AllocatedIpCount;
protected final GenericSearchBuilder<IPAddressVO, Integer> AllIpCountForDashboard;
protected final GenericSearchBuilder<IPAddressVO, Long> AllocatedIpCountForAccount;
protected SearchBuilder<IPAddressVO> AllFieldsSearch;
protected SearchBuilder<IPAddressVO> VlanDbIdSearchUnallocated;
protected GenericSearchBuilder<IPAddressVO, Integer> AllIpCount;
protected GenericSearchBuilder<IPAddressVO, Integer> AllocatedIpCount;
protected GenericSearchBuilder<IPAddressVO, Integer> AllIpCountForDashboard;
protected GenericSearchBuilder<IPAddressVO, Long> AllocatedIpCountForAccount;
@Inject protected VlanDaoImpl _vlanDao;
protected GenericSearchBuilder<IPAddressVO, Long> CountFreePublicIps;
@Inject ResourceTagsDaoImpl _tagsDao;
// make it public for JUnit test
public IPAddressDaoImpl() {
}
@PostConstruct
public void init() {
AllFieldsSearch = createSearchBuilder();
AllFieldsSearch.and("id", AllFieldsSearch.entity().getId(), Op.EQ);
AllFieldsSearch.and("dataCenterId", AllFieldsSearch.entity().getDataCenterId(), Op.EQ);

View File

@ -20,6 +20,7 @@ import java.util.List;
import java.util.Map;
import java.util.Random;
import javax.annotation.PostConstruct;
import javax.ejb.Local;
import javax.inject.Inject;
import javax.persistence.TableGenerator;
@ -62,20 +63,20 @@ import com.cloud.utils.net.NetUtils;
@Local(value = NetworkDao.class)
@DB(txn = false)
public class NetworkDaoImpl extends GenericDaoBase<NetworkVO, Long> implements NetworkDao {
final SearchBuilder<NetworkVO> AllFieldsSearch;
final SearchBuilder<NetworkVO> AccountSearch;
final SearchBuilder<NetworkVO> RelatedConfigSearch;
final SearchBuilder<NetworkVO> AccountNetworkSearch;
final SearchBuilder<NetworkVO> ZoneBroadcastUriSearch;
final SearchBuilder<NetworkVO> ZoneSecurityGroupSearch;
final GenericSearchBuilder<NetworkVO, Integer> CountBy;
final SearchBuilder<NetworkVO> PhysicalNetworkSearch;
final SearchBuilder<NetworkVO> SecurityGroupSearch;
final GenericSearchBuilder<NetworkVO, Long> NetworksRegularUserCanCreateSearch;
private final GenericSearchBuilder<NetworkVO, Integer> NetworksCount;
final SearchBuilder<NetworkVO> SourceNATSearch;
final GenericSearchBuilder<NetworkVO, Long> CountByZoneAndURI;
final GenericSearchBuilder<NetworkVO, Long> VpcNetworksCount;
SearchBuilder<NetworkVO> AllFieldsSearch;
SearchBuilder<NetworkVO> AccountSearch;
SearchBuilder<NetworkVO> RelatedConfigSearch;
SearchBuilder<NetworkVO> AccountNetworkSearch;
SearchBuilder<NetworkVO> ZoneBroadcastUriSearch;
SearchBuilder<NetworkVO> ZoneSecurityGroupSearch;
GenericSearchBuilder<NetworkVO, Integer> CountBy;
SearchBuilder<NetworkVO> PhysicalNetworkSearch;
SearchBuilder<NetworkVO> SecurityGroupSearch;
GenericSearchBuilder<NetworkVO, Long> NetworksRegularUserCanCreateSearch;
GenericSearchBuilder<NetworkVO, Integer> NetworksCount;
SearchBuilder<NetworkVO> SourceNATSearch;
GenericSearchBuilder<NetworkVO, Long> CountByZoneAndURI;
GenericSearchBuilder<NetworkVO, Long> VpcNetworksCount;
@Inject ResourceTagsDaoImpl _tagsDao;
@ -86,13 +87,15 @@ public class NetworkDaoImpl extends GenericDaoBase<NetworkVO, Long> implements N
@Inject NetworkOfferingDaoImpl _ntwkOffDao;
final TableGenerator _tgMacAddress;
TableGenerator _tgMacAddress;
Random _rand = new Random(System.currentTimeMillis());
long _prefix = 0x2;
protected NetworkDaoImpl() {
super();
public NetworkDaoImpl() {
}
@PostConstruct
protected void init() {
AllFieldsSearch = createSearchBuilder();
AllFieldsSearch.and("trafficType", AllFieldsSearch.entity().getTrafficType(), Op.EQ);
AllFieldsSearch.and("cidr", AllFieldsSearch.entity().getCidr(), Op.EQ);

View File

@ -18,6 +18,7 @@ package com.cloud.network.dao;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.Local;
import javax.inject.Inject;
@ -41,11 +42,15 @@ public class Site2SiteVpnConnectionDaoImpl extends GenericDaoBase<Site2SiteVpnCo
@Inject protected IPAddressDaoImpl _addrDao;
@Inject protected Site2SiteVpnGatewayDaoImpl _vpnGatewayDao;
private final SearchBuilder<Site2SiteVpnConnectionVO> AllFieldsSearch;
private final SearchBuilder<Site2SiteVpnConnectionVO> VpcSearch;
private final SearchBuilder<Site2SiteVpnGatewayVO> VpnGatewaySearch;
private SearchBuilder<Site2SiteVpnConnectionVO> AllFieldsSearch;
private SearchBuilder<Site2SiteVpnConnectionVO> VpcSearch;
private SearchBuilder<Site2SiteVpnGatewayVO> VpnGatewaySearch;
protected Site2SiteVpnConnectionDaoImpl() {
public Site2SiteVpnConnectionDaoImpl() {
}
@PostConstruct
protected void init() {
AllFieldsSearch = createSearchBuilder();
AllFieldsSearch.and("customerGatewayId", AllFieldsSearch.entity().getCustomerGatewayId(), SearchCriteria.Op.EQ);
AllFieldsSearch.and("vpnGatewayId", AllFieldsSearch.entity().getVpnGatewayId(), SearchCriteria.Op.EQ);

View File

@ -20,6 +20,7 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.Local;
import javax.inject.Inject;
@ -55,16 +56,16 @@ public class SnapshotDaoImpl extends GenericDaoBase<SnapshotVO, Long> implements
private static final String GET_SECHOST_ID = "SELECT sechost_id FROM snapshots where volume_id = ? AND backup_snap_id IS NOT NULL AND sechost_id IS NOT NULL LIMIT 1";
private static final String UPDATE_SECHOST_ID = "UPDATE snapshots SET sechost_id = ? WHERE data_center_id = ?";
private final SearchBuilder<SnapshotVO> VolumeIdSearch;
private final SearchBuilder<SnapshotVO> VolumeIdTypeSearch;
private final SearchBuilder<SnapshotVO> ParentIdSearch;
private final SearchBuilder<SnapshotVO> backupUuidSearch;
private final SearchBuilder<SnapshotVO> VolumeIdVersionSearch;
private final SearchBuilder<SnapshotVO> HostIdSearch;
private final SearchBuilder<SnapshotVO> AccountIdSearch;
private final SearchBuilder<SnapshotVO> InstanceIdSearch;
private final SearchBuilder<SnapshotVO> StatusSearch;
private final GenericSearchBuilder<SnapshotVO, Long> CountSnapshotsByAccount;
private SearchBuilder<SnapshotVO> VolumeIdSearch;
private SearchBuilder<SnapshotVO> VolumeIdTypeSearch;
private SearchBuilder<SnapshotVO> ParentIdSearch;
private SearchBuilder<SnapshotVO> backupUuidSearch;
private SearchBuilder<SnapshotVO> VolumeIdVersionSearch;
private SearchBuilder<SnapshotVO> HostIdSearch;
private SearchBuilder<SnapshotVO> AccountIdSearch;
private SearchBuilder<SnapshotVO> InstanceIdSearch;
private SearchBuilder<SnapshotVO> StatusSearch;
private GenericSearchBuilder<SnapshotVO, Long> CountSnapshotsByAccount;
@Inject ResourceTagsDaoImpl _tagsDao;
@Inject protected VMInstanceDaoImpl _instanceDao;
@ -141,7 +142,11 @@ public class SnapshotDaoImpl extends GenericDaoBase<SnapshotVO, Long> implements
return listBy(sc, filter);
}
protected SnapshotDaoImpl() {
public SnapshotDaoImpl() {
}
@PostConstruct
protected void init() {
VolumeIdSearch = createSearchBuilder();
VolumeIdSearch.and("volumeId", VolumeIdSearch.entity().getVolumeId(), SearchCriteria.Op.EQ);
VolumeIdSearch.done();

View File

@ -22,12 +22,14 @@ import java.util.Map;
import javax.ejb.Local;
import javax.naming.ConfigurationException;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Component;
import com.cloud.cluster.ClusterManagerListener;
import com.cloud.cluster.ManagementServerHostVO;
@Component
@Primary
@Local(value=VirtualMachineManager.class)
public class ClusteredVirtualMachineManagerImpl extends VirtualMachineManagerImpl implements ClusterManagerListener {

View File

@ -18,6 +18,7 @@ package com.cloud.vm.dao;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.Local;
import javax.inject.Inject;
@ -34,7 +35,6 @@ import com.cloud.offering.NetworkOffering;
import com.cloud.offerings.dao.NetworkOfferingDaoImpl;
import com.cloud.user.UserStatisticsVO;
import com.cloud.user.dao.UserStatisticsDaoImpl;
import com.cloud.utils.component.ComponentLocator;
import com.cloud.utils.db.DB;
import com.cloud.utils.db.GenericDaoBase;
import com.cloud.utils.db.JoinBuilder.JoinType;
@ -50,18 +50,22 @@ import com.cloud.vm.VirtualMachine.State;
@Local(value = { DomainRouterDao.class })
public class DomainRouterDaoImpl extends GenericDaoBase<DomainRouterVO, Long> implements DomainRouterDao {
protected final SearchBuilder<DomainRouterVO> AllFieldsSearch;
protected final SearchBuilder<DomainRouterVO> IdNetworkIdStatesSearch;
protected final SearchBuilder<DomainRouterVO> HostUpSearch;
protected final SearchBuilder<DomainRouterVO> StateNetworkTypeSearch;
protected final SearchBuilder<DomainRouterVO> OutsidePodSearch;
protected SearchBuilder<DomainRouterVO> AllFieldsSearch;
protected SearchBuilder<DomainRouterVO> IdNetworkIdStatesSearch;
protected SearchBuilder<DomainRouterVO> HostUpSearch;
protected SearchBuilder<DomainRouterVO> StateNetworkTypeSearch;
protected SearchBuilder<DomainRouterVO> OutsidePodSearch;
@Inject HostDaoImpl _hostsDao;
@Inject RouterNetworkDaoImpl _routerNetworkDao;
@Inject UserStatisticsDaoImpl _userStatsDao;
@Inject NetworkOfferingDaoImpl _offDao;
protected final SearchBuilder<DomainRouterVO> VpcSearch;
protected SearchBuilder<DomainRouterVO> VpcSearch;
protected DomainRouterDaoImpl() {
public DomainRouterDaoImpl() {
}
@PostConstruct
protected void init() {
AllFieldsSearch = createSearchBuilder();
AllFieldsSearch.and("dc", AllFieldsSearch.entity().getDataCenterIdToDeployIn(), Op.EQ);
AllFieldsSearch.and("account", AllFieldsSearch.entity().getAccountId(), Op.EQ);

View File

@ -26,6 +26,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.ejb.Local;
import javax.inject.Inject;
@ -65,20 +66,20 @@ public class VMInstanceDaoImpl extends GenericDaoBase<VMInstanceVO, Long> implem
public static final Logger s_logger = Logger.getLogger(VMInstanceDaoImpl.class);
protected final SearchBuilder<VMInstanceVO> VMClusterSearch;
protected final SearchBuilder<VMInstanceVO> LHVMClusterSearch;
protected final SearchBuilder<VMInstanceVO> IdStatesSearch;
protected final SearchBuilder<VMInstanceVO> AllFieldsSearch;
protected final SearchBuilder<VMInstanceVO> ZoneTemplateNonExpungedSearch;
protected final SearchBuilder<VMInstanceVO> NameLikeSearch;
protected final SearchBuilder<VMInstanceVO> StateChangeSearch;
protected final SearchBuilder<VMInstanceVO> TransitionSearch;
protected final SearchBuilder<VMInstanceVO> TypesSearch;
protected final SearchBuilder<VMInstanceVO> IdTypesSearch;
protected final SearchBuilder<VMInstanceVO> HostIdTypesSearch;
protected final SearchBuilder<VMInstanceVO> HostIdUpTypesSearch;
protected final SearchBuilder<VMInstanceVO> HostUpSearch;
protected final GenericSearchBuilder<VMInstanceVO, Long> CountVirtualRoutersByAccount;
protected SearchBuilder<VMInstanceVO> VMClusterSearch;
protected SearchBuilder<VMInstanceVO> LHVMClusterSearch;
protected SearchBuilder<VMInstanceVO> IdStatesSearch;
protected SearchBuilder<VMInstanceVO> AllFieldsSearch;
protected SearchBuilder<VMInstanceVO> ZoneTemplateNonExpungedSearch;
protected SearchBuilder<VMInstanceVO> NameLikeSearch;
protected SearchBuilder<VMInstanceVO> StateChangeSearch;
protected SearchBuilder<VMInstanceVO> TransitionSearch;
protected SearchBuilder<VMInstanceVO> TypesSearch;
protected SearchBuilder<VMInstanceVO> IdTypesSearch;
protected SearchBuilder<VMInstanceVO> HostIdTypesSearch;
protected SearchBuilder<VMInstanceVO> HostIdUpTypesSearch;
protected SearchBuilder<VMInstanceVO> HostUpSearch;
protected GenericSearchBuilder<VMInstanceVO, Long> CountVirtualRoutersByAccount;
protected GenericSearchBuilder<VMInstanceVO, Long> CountRunningByHost;
protected GenericSearchBuilder<VMInstanceVO, Long> CountRunningByAccount;
protected SearchBuilder<VMInstanceVO> NetworkTypeSearch;
@ -87,7 +88,7 @@ public class VMInstanceDaoImpl extends GenericDaoBase<VMInstanceVO, Long> implem
@Inject ResourceTagsDaoImpl _tagsDao;
@Inject NicDao _nicDao;
protected final Attribute _updateTimeAttr;
protected Attribute _updateTimeAttr;
private static final String ORDER_CLUSTERS_NUMBER_OF_VMS_FOR_ACCOUNT_PART1 =
"SELECT host.cluster_id, SUM(IF(vm.state='Running' AND vm.account_id = ?, 1, 0)) FROM `cloud`.`host` host LEFT JOIN `cloud`.`vm_instance` vm ON host.id = vm.host_id WHERE ";
@ -102,9 +103,13 @@ public class VMInstanceDaoImpl extends GenericDaoBase<VMInstanceVO, Long> implem
" AND host.pod_id = ? AND host.cluster_id = ? AND host.type = 'Routing' " +
" GROUP BY host.id ORDER BY 2 ASC ";
protected final HostDaoImpl _hostDao = ComponentLocator.inject(HostDaoImpl.class);
@Inject protected HostDaoImpl _hostDao;
protected VMInstanceDaoImpl() {
public VMInstanceDaoImpl() {
}
@PostConstruct
protected void init() {
IdStatesSearch = createSearchBuilder();
IdStatesSearch.and("id", IdStatesSearch.entity().getId(), Op.EQ);