Search in sources :

Example 1 with Type

use of com.cloud.host.Host.Type in project cloudstack by apache.

the class ManagementServerImpl method searchForSystemVm.

@Override
public Pair<List<? extends VirtualMachine>, Integer> searchForSystemVm(final ListSystemVMsCmd cmd) {
    final String type = cmd.getSystemVmType();
    final Long zoneId = _accountMgr.checkAccessAndSpecifyAuthority(CallContext.current().getCallingAccount(), cmd.getZoneId());
    final Long id = cmd.getId();
    final String name = cmd.getSystemVmName();
    final String state = cmd.getState();
    final String keyword = cmd.getKeyword();
    final Long podId = cmd.getPodId();
    final Long hostId = cmd.getHostId();
    final Long storageId = cmd.getStorageId();
    final Filter searchFilter = new Filter(VMInstanceVO.class, "id", true, cmd.getStartIndex(), cmd.getPageSizeVal());
    final SearchBuilder<VMInstanceVO> sb = _vmInstanceDao.createSearchBuilder();
    sb.and("id", sb.entity().getId(), SearchCriteria.Op.EQ);
    sb.and("hostName", sb.entity().getHostName(), SearchCriteria.Op.LIKE);
    sb.and("state", sb.entity().getState(), SearchCriteria.Op.EQ);
    sb.and("dataCenterId", sb.entity().getDataCenterId(), SearchCriteria.Op.EQ);
    sb.and("podId", sb.entity().getPodIdToDeployIn(), SearchCriteria.Op.EQ);
    sb.and("hostId", sb.entity().getHostId(), SearchCriteria.Op.EQ);
    sb.and("type", sb.entity().getType(), SearchCriteria.Op.EQ);
    sb.and("nulltype", sb.entity().getType(), SearchCriteria.Op.IN);
    if (storageId != null) {
        StoragePoolVO storagePool = _primaryDataStoreDao.findById(storageId);
        if (storagePool.getPoolType() == Storage.StoragePoolType.DatastoreCluster) {
            final SearchBuilder<VolumeVO> volumeSearch = _volumeDao.createSearchBuilder();
            volumeSearch.and("poolId", volumeSearch.entity().getPoolId(), SearchCriteria.Op.IN);
            sb.join("volumeSearch", volumeSearch, sb.entity().getId(), volumeSearch.entity().getInstanceId(), JoinBuilder.JoinType.INNER);
        } else {
            final SearchBuilder<VolumeVO> volumeSearch = _volumeDao.createSearchBuilder();
            volumeSearch.and("poolId", volumeSearch.entity().getPoolId(), SearchCriteria.Op.EQ);
            sb.join("volumeSearch", volumeSearch, sb.entity().getId(), volumeSearch.entity().getInstanceId(), JoinBuilder.JoinType.INNER);
        }
    }
    final SearchCriteria<VMInstanceVO> sc = sb.create();
    if (keyword != null) {
        final SearchCriteria<VMInstanceVO> ssc = _vmInstanceDao.createSearchCriteria();
        ssc.addOr("hostName", SearchCriteria.Op.LIKE, "%" + keyword + "%");
        ssc.addOr("state", SearchCriteria.Op.LIKE, "%" + keyword + "%");
        sc.addAnd("hostName", SearchCriteria.Op.SC, ssc);
    }
    if (id != null) {
        sc.setParameters("id", id);
    }
    if (name != null) {
        sc.setParameters("hostName", name);
    }
    if (state != null) {
        sc.setParameters("state", state);
    }
    if (zoneId != null) {
        sc.setParameters("dataCenterId", zoneId);
    }
    if (podId != null) {
        sc.setParameters("podId", podId);
    }
    if (hostId != null) {
        sc.setParameters("hostId", hostId);
    }
    if (type != null) {
        sc.setParameters("type", type);
    } else {
        sc.setParameters("nulltype", VirtualMachine.Type.SecondaryStorageVm, VirtualMachine.Type.ConsoleProxy);
    }
    if (storageId != null) {
        StoragePoolVO storagePool = _primaryDataStoreDao.findById(storageId);
        if (storagePool.getPoolType() == Storage.StoragePoolType.DatastoreCluster) {
            List<StoragePoolVO> childDataStores = _primaryDataStoreDao.listChildStoragePoolsInDatastoreCluster(storageId);
            List<Long> childDatastoreIds = childDataStores.stream().map(mo -> mo.getId()).collect(Collectors.toList());
            sc.setJoinParameters("volumeSearch", "poolId", childDatastoreIds.toArray());
        } else {
            sc.setJoinParameters("volumeSearch", "poolId", storageId);
        }
    }
    final Pair<List<VMInstanceVO>, Integer> result = _vmInstanceDao.searchAndCount(sc, searchFilter);
    return new Pair<List<? extends VirtualMachine>, Integer>(result.first(), result.second());
}
Also used : DeleteVMGroupCmd(org.apache.cloudstack.api.command.user.vmgroup.DeleteVMGroupCmd) NetworkModel(com.cloud.network.NetworkModel) ListPodsByCmd(org.apache.cloudstack.api.command.admin.pod.ListPodsByCmd) HostDao(com.cloud.host.dao.HostDao) ListPhysicalNetworksCmd(org.apache.cloudstack.api.command.admin.network.ListPhysicalNetworksCmd) ListTemplatesCmd(org.apache.cloudstack.api.command.user.template.ListTemplatesCmd) SecretKeySpec(javax.crypto.spec.SecretKeySpec) CreateSSHKeyPairCmd(org.apache.cloudstack.api.command.user.ssh.CreateSSHKeyPairCmd) PodVlanMapDao(com.cloud.dc.dao.PodVlanMapDao) ListProjectAccountsCmd(org.apache.cloudstack.api.command.user.account.ListProjectAccountsCmd) DeleteEventsCmd(org.apache.cloudstack.api.command.user.event.DeleteEventsCmd) DeleteLoadBalancerRuleCmd(org.apache.cloudstack.api.command.user.loadbalancer.DeleteLoadBalancerRuleCmd) StringUtils(org.apache.commons.lang3.StringUtils) Base64(org.apache.commons.codec.binary.Base64) ReleaseDedicatedGuestVlanRangeCmd(org.apache.cloudstack.api.command.admin.network.ReleaseDedicatedGuestVlanRangeCmd) UpdateEgressFirewallRuleCmd(org.apache.cloudstack.api.command.user.firewall.UpdateEgressFirewallRuleCmd) ListVPCOfferingsCmd(org.apache.cloudstack.api.command.user.vpc.ListVPCOfferingsCmd) AddImageStoreCmd(org.apache.cloudstack.api.command.admin.storage.AddImageStoreCmd) MigrateSystemVMCmd(org.apache.cloudstack.api.command.admin.systemvm.MigrateSystemVMCmd) ListSslCertsCmd(org.apache.cloudstack.api.command.user.loadbalancer.ListSslCertsCmd) CreateVPCCmdByAdmin(org.apache.cloudstack.api.command.admin.vpc.CreateVPCCmdByAdmin) CreateUserCmd(org.apache.cloudstack.api.command.admin.user.CreateUserCmd) UpdateDiskOfferingCmd(org.apache.cloudstack.api.command.admin.offering.UpdateDiskOfferingCmd) ListHypervisorCapabilitiesCmd(org.apache.cloudstack.api.command.admin.config.ListHypervisorCapabilitiesCmd) GuestOSCategoryVO(com.cloud.storage.GuestOSCategoryVO) ListProjectInvitationsCmd(org.apache.cloudstack.api.command.user.project.ListProjectInvitationsCmd) CreateManagementNetworkIpRangeCmd(org.apache.cloudstack.api.command.admin.network.CreateManagementNetworkIpRangeCmd) ListNetworkACLListsCmd(org.apache.cloudstack.api.command.user.network.ListNetworkACLListsCmd) UpdateVolumeCmd(org.apache.cloudstack.api.command.user.volume.UpdateVolumeCmd) VolumeOrchestrationService(org.apache.cloudstack.engine.orchestration.service.VolumeOrchestrationService) UpdateGuestOsMappingCmd(org.apache.cloudstack.api.command.admin.guest.UpdateGuestOsMappingCmd) UpdateLBHealthCheckPolicyCmd(org.apache.cloudstack.api.command.user.loadbalancer.UpdateLBHealthCheckPolicyCmd) Network(com.cloud.network.Network) ReleaseHostReservationCmd(org.apache.cloudstack.api.command.admin.host.ReleaseHostReservationCmd) ListInternalLoadBalancerElementsCmd(org.apache.cloudstack.api.command.admin.internallb.ListInternalLoadBalancerElementsCmd) UpgradeRouterCmd(org.apache.cloudstack.api.command.admin.router.UpgradeRouterCmd) ApiDBUtils(com.cloud.api.ApiDBUtils) RemoveCertFromLoadBalancerCmd(org.apache.cloudstack.api.command.user.loadbalancer.RemoveCertFromLoadBalancerCmd) UpgradeVMCmdByAdmin(org.apache.cloudstack.api.command.admin.vm.UpgradeVMCmdByAdmin) QueryService(org.apache.cloudstack.query.QueryService) MigrateVPCCmd(org.apache.cloudstack.api.command.admin.network.MigrateVPCCmd) ListInternalLBVMsCmd(org.apache.cloudstack.api.command.admin.internallb.ListInternalLBVMsCmd) ExtractVolumeCmd(org.apache.cloudstack.api.command.user.volume.ExtractVolumeCmd) MarkDefaultZoneForAccountCmd(org.apache.cloudstack.api.command.admin.zone.MarkDefaultZoneForAccountCmd) Project(com.cloud.projects.Project) DeleteNetworkDeviceCmd(org.apache.cloudstack.api.command.admin.network.DeleteNetworkDeviceCmd) UpdateAutoScaleVmGroupCmd(org.apache.cloudstack.api.command.user.autoscale.UpdateAutoScaleVmGroupCmd) UpdateVMCmd(org.apache.cloudstack.api.command.user.vm.UpdateVMCmd) VolumeApiServiceImpl(com.cloud.storage.VolumeApiServiceImpl) ConfigureVirtualRouterElementCmd(org.apache.cloudstack.api.command.admin.router.ConfigureVirtualRouterElementCmd) ReplaceNetworkACLListCmd(org.apache.cloudstack.api.command.user.network.ReplaceNetworkACLListCmd) DisassociateIPAddrCmd(org.apache.cloudstack.api.command.user.address.DisassociateIPAddrCmd) CancelMaintenanceCmd(org.apache.cloudstack.api.command.admin.host.CancelMaintenanceCmd) ManagerBase(com.cloud.utils.component.ManagerBase) DeleteDomainCmd(org.apache.cloudstack.api.command.admin.domain.DeleteDomainCmd) SummedCapacity(com.cloud.capacity.dao.CapacityDaoImpl.SummedCapacity) CreatePhysicalNetworkCmd(org.apache.cloudstack.api.command.admin.network.CreatePhysicalNetworkCmd) DisableOutOfBandManagementForHostCmd(org.apache.cloudstack.api.command.admin.outofbandmanagement.DisableOutOfBandManagementForHostCmd) DomainVlanMapDao(com.cloud.dc.dao.DomainVlanMapDao) DeleteServiceOfferingCmd(org.apache.cloudstack.api.command.admin.offering.DeleteServiceOfferingCmd) ListPublicIpAddressesCmd(org.apache.cloudstack.api.command.user.address.ListPublicIpAddressesCmd) ResourceUnavailableException(com.cloud.exception.ResourceUnavailableException) AddGuestOsMappingCmd(org.apache.cloudstack.api.command.admin.guest.AddGuestOsMappingCmd) StopRouterCmd(org.apache.cloudstack.api.command.admin.router.StopRouterCmd) PrepareTemplateCmd(org.apache.cloudstack.api.command.admin.template.PrepareTemplateCmd) DeleteVlanIpRangeCmd(org.apache.cloudstack.api.command.admin.vlan.DeleteVlanIpRangeCmd) ClusterDao(com.cloud.dc.dao.ClusterDao) Calendar(java.util.Calendar) ArchiveAlertsCmd(org.apache.cloudstack.api.command.admin.resource.ArchiveAlertsCmd) VlanVO(com.cloud.dc.VlanVO) RemoveGuestOsMappingCmd(org.apache.cloudstack.api.command.admin.guest.RemoveGuestOsMappingCmd) DestroyVolumeCmdByAdmin(org.apache.cloudstack.api.command.admin.volume.DestroyVolumeCmdByAdmin) User(com.cloud.user.User) ScheduledExecutorService(java.util.concurrent.ScheduledExecutorService) ListPortForwardingRulesCmd(org.apache.cloudstack.api.command.user.firewall.ListPortForwardingRulesCmd) AssignCertToLoadBalancerCmd(org.apache.cloudstack.api.command.user.loadbalancer.AssignCertToLoadBalancerCmd) DeleteAlertsCmd(org.apache.cloudstack.api.command.admin.resource.DeleteAlertsCmd) AffinityGroupVMMapDao(org.apache.cloudstack.affinity.dao.AffinityGroupVMMapDao) CreateAccountCmd(org.apache.cloudstack.api.command.admin.account.CreateAccountCmd) ListAccountsCmdByAdmin(org.apache.cloudstack.api.command.admin.account.ListAccountsCmdByAdmin) ListZonesCmd(org.apache.cloudstack.api.command.user.zone.ListZonesCmd) UpdateRemoteAccessVpnCmd(org.apache.cloudstack.api.command.user.vpn.UpdateRemoteAccessVpnCmd) CreateCounterCmd(org.apache.cloudstack.api.command.admin.autoscale.CreateCounterCmd) UpdateAutoScaleVmProfileCmd(org.apache.cloudstack.api.command.user.autoscale.UpdateAutoScaleVmProfileCmd) DeleteLBStickinessPolicyCmd(org.apache.cloudstack.api.command.user.loadbalancer.DeleteLBStickinessPolicyCmd) HighAvailabilityManager(com.cloud.ha.HighAvailabilityManager) DeleteResourceIconCmd(org.apache.cloudstack.api.command.admin.resource.icon.DeleteResourceIconCmd) ListLBHealthCheckPoliciesCmd(org.apache.cloudstack.api.command.user.loadbalancer.ListLBHealthCheckPoliciesCmd) ListNetworkACLsCmd(org.apache.cloudstack.api.command.user.network.ListNetworkACLsCmd) CreateTagsCmd(org.apache.cloudstack.api.command.user.tag.CreateTagsCmd) RemoveNicFromVMCmdByAdmin(org.apache.cloudstack.api.command.admin.vm.RemoveNicFromVMCmdByAdmin) UserVmDao(com.cloud.vm.dao.UserVmDao) UpdatePodManagementNetworkIpRangeCmd(org.apache.cloudstack.api.command.admin.network.UpdatePodManagementNetworkIpRangeCmd) ListFirewallRulesCmd(org.apache.cloudstack.api.command.user.firewall.ListFirewallRulesCmd) DestroyVMCmd(org.apache.cloudstack.api.command.user.vm.DestroyVMCmd) GetVncPortCommand(com.cloud.agent.api.GetVncPortCommand) ExpungeVMCmd(org.apache.cloudstack.api.command.admin.vm.ExpungeVMCmd) GetUploadParamsForTemplateCmd(org.apache.cloudstack.api.command.user.template.GetUploadParamsForTemplateCmd) DB(com.cloud.utils.db.DB) ListSystemVMsCmd(org.apache.cloudstack.api.command.admin.systemvm.ListSystemVMsCmd) UpdateVpnGatewayCmd(org.apache.cloudstack.api.command.user.vpn.UpdateVpnGatewayCmd) ClusterManager(com.cloud.cluster.ClusterManager) DetachVolumeCmdByAdmin(org.apache.cloudstack.api.command.admin.volume.DetachVolumeCmdByAdmin) ListSecurityGroupsCmd(org.apache.cloudstack.api.command.user.securitygroup.ListSecurityGroupsCmd) UpdateClusterCmd(org.apache.cloudstack.api.command.admin.cluster.UpdateClusterCmd) UpdateTemplateCmd(org.apache.cloudstack.api.command.user.template.UpdateTemplateCmd) ListClustersCmd(org.apache.cloudstack.api.command.admin.cluster.ListClustersCmd) CreateVPCOfferingCmd(org.apache.cloudstack.api.command.admin.vpc.CreateVPCOfferingCmd) DeleteAutoScaleVmGroupCmd(org.apache.cloudstack.api.command.user.autoscale.DeleteAutoScaleVmGroupCmd) DeclareHostAsDegradedCmd(org.apache.cloudstack.api.command.admin.host.DeclareHostAsDegradedCmd) ConsoleProxyDao(com.cloud.vm.dao.ConsoleProxyDao) StartVMCmdByAdmin(org.apache.cloudstack.api.command.admin.vm.StartVMCmdByAdmin) ListTemplatePermissionsCmd(org.apache.cloudstack.api.command.user.template.ListTemplatePermissionsCmd) ConfigurationDao(org.apache.cloudstack.framework.config.dao.ConfigurationDao) AssociateIPAddrCmdByAdmin(org.apache.cloudstack.api.command.admin.address.AssociateIPAddrCmdByAdmin) CreateStaticRouteCmd(org.apache.cloudstack.api.command.user.vpc.CreateStaticRouteCmd) GuestOSHypervisor(com.cloud.storage.GuestOSHypervisor) ArchiveEventsCmd(org.apache.cloudstack.api.command.user.event.ArchiveEventsCmd) ListVpnCustomerGatewaysCmd(org.apache.cloudstack.api.command.user.vpn.ListVpnCustomerGatewaysCmd) UpdateResourceLimitCmd(org.apache.cloudstack.api.command.user.resource.UpdateResourceLimitCmd) UpdateVMGroupCmd(org.apache.cloudstack.api.command.user.vmgroup.UpdateVMGroupCmd) ReleasePodIpCmdByAdmin(org.apache.cloudstack.api.command.admin.address.ReleasePodIpCmdByAdmin) ListOvsElementsCmd(org.apache.cloudstack.api.command.admin.router.ListOvsElementsCmd) UpdateLoadBalancerRuleCmd(org.apache.cloudstack.api.command.user.loadbalancer.UpdateLoadBalancerRuleCmd) ListResourceIconCmd(org.apache.cloudstack.api.command.admin.resource.icon.ListResourceIconCmd) RemoveFromLoadBalancerRuleCmd(org.apache.cloudstack.api.command.user.loadbalancer.RemoveFromLoadBalancerRuleCmd) CreateIpForwardingRuleCmd(org.apache.cloudstack.api.command.user.nat.CreateIpForwardingRuleCmd) DestroyVolumeCmd(org.apache.cloudstack.api.command.user.volume.DestroyVolumeCmd) Cluster(com.cloud.org.Cluster) DeletePortableIpRangeCmd(org.apache.cloudstack.api.command.admin.region.DeletePortableIpRangeCmd) ConsoleProxyVO(com.cloud.vm.ConsoleProxyVO) GetCloudIdentifierCmd(org.apache.cloudstack.api.command.user.resource.GetCloudIdentifierCmd) DeleteTemplateCmd(org.apache.cloudstack.api.command.user.template.DeleteTemplateCmd) RegisterCmd(org.apache.cloudstack.api.command.admin.user.RegisterCmd) DeleteNetworkACLListCmd(org.apache.cloudstack.api.command.user.network.DeleteNetworkACLListCmd) ResourceObjectType(com.cloud.server.ResourceTag.ResourceObjectType) StartRollingMaintenanceCmd(org.apache.cloudstack.api.command.admin.resource.StartRollingMaintenanceCmd) DeploymentPlanningManager(com.cloud.deploy.DeploymentPlanningManager) ChangeOutOfBandManagementPasswordCmd(org.apache.cloudstack.api.command.admin.outofbandmanagement.ChangeOutOfBandManagementPasswordCmd) ListVlanIpRangesCmd(org.apache.cloudstack.api.command.admin.vlan.ListVlanIpRangesCmd) ListUsageTypesCmd(org.apache.cloudstack.api.command.admin.usage.ListUsageTypesCmd) UserVO(com.cloud.user.UserVO) CreateNetworkACLListCmd(org.apache.cloudstack.api.command.user.network.CreateNetworkACLListCmd) AddImageStoreS3CMD(org.apache.cloudstack.api.command.admin.storage.AddImageStoreS3CMD) AssignToLoadBalancerRuleCmd(org.apache.cloudstack.api.command.user.loadbalancer.AssignToLoadBalancerRuleCmd) IpAddress(com.cloud.network.IpAddress) ListIsosCmdByAdmin(org.apache.cloudstack.api.command.admin.iso.ListIsosCmdByAdmin) Pair(com.cloud.utils.Pair) Collectors(java.util.stream.Collectors) ListTrafficMonitorsCmd(org.apache.cloudstack.api.command.admin.usage.ListTrafficMonitorsCmd) Alert(com.cloud.alert.Alert) Objects(java.util.Objects) AttachIsoCmd(org.apache.cloudstack.api.command.user.iso.AttachIsoCmd) VolumeDataStoreVO(org.apache.cloudstack.storage.datastore.db.VolumeDataStoreVO) UpdateVMCmdByAdmin(org.apache.cloudstack.api.command.admin.vm.UpdateVMCmdByAdmin) ListNetworkIsolationMethodsCmd(org.apache.cloudstack.api.command.admin.network.ListNetworkIsolationMethodsCmd) UpdateSecurityGroupCmd(org.apache.cloudstack.api.command.user.securitygroup.UpdateSecurityGroupCmd) ImageStoreVO(org.apache.cloudstack.storage.datastore.db.ImageStoreVO) EnableOutOfBandManagementForClusterCmd(org.apache.cloudstack.api.command.admin.outofbandmanagement.EnableOutOfBandManagementForClusterCmd) VirtualMachineProfile(com.cloud.vm.VirtualMachineProfile) ListNetworkDeviceCmd(org.apache.cloudstack.api.command.admin.network.ListNetworkDeviceCmd) StoragePoolJoinDao(com.cloud.api.query.dao.StoragePoolJoinDao) DiskOfferingDao(com.cloud.storage.dao.DiskOfferingDao) ListPublicIpAddressesCmdByAdmin(org.apache.cloudstack.api.command.admin.address.ListPublicIpAddressesCmdByAdmin) RegisterTemplateCmd(org.apache.cloudstack.api.command.user.template.RegisterTemplateCmd) GetRouterHealthCheckResultsCmd(org.apache.cloudstack.api.command.admin.router.GetRouterHealthCheckResultsCmd) ScaleVMCmdByAdmin(org.apache.cloudstack.api.command.admin.vm.ScaleVMCmdByAdmin) CreateNetworkCmd(org.apache.cloudstack.api.command.user.network.CreateNetworkCmd) IPAddressVO(com.cloud.network.dao.IPAddressVO) AddNetworkServiceProviderCmd(org.apache.cloudstack.api.command.admin.network.AddNetworkServiceProviderCmd) VolumeDao(com.cloud.storage.dao.VolumeDao) DeleteNetworkServiceProviderCmd(org.apache.cloudstack.api.command.admin.network.DeleteNetworkServiceProviderCmd) DeleteAffinityGroupCmd(org.apache.cloudstack.api.command.user.affinitygroup.DeleteAffinityGroupCmd) IPAddressDao(com.cloud.network.dao.IPAddressDao) UploadResourceIconCmd(org.apache.cloudstack.api.command.admin.resource.icon.UploadResourceIconCmd) NamedThreadFactory(com.cloud.utils.concurrency.NamedThreadFactory) UpdateDefaultNicForVMCmd(org.apache.cloudstack.api.command.user.vm.UpdateDefaultNicForVMCmd) ConsoleProxyManager(com.cloud.consoleproxy.ConsoleProxyManager) QueryAsyncJobResultCmd(org.apache.cloudstack.api.command.user.job.QueryAsyncJobResultCmd) ResetVpnConnectionCmd(org.apache.cloudstack.api.command.user.vpn.ResetVpnConnectionCmd) ListAffinityGroupsCmd(org.apache.cloudstack.api.command.user.affinitygroup.ListAffinityGroupsCmd) AddNicToVMCmd(org.apache.cloudstack.api.command.user.vm.AddNicToVMCmd) ListRegionsCmd(org.apache.cloudstack.api.command.user.region.ListRegionsCmd) AcquirePodIpCmdByAdmin(org.apache.cloudstack.api.command.admin.address.AcquirePodIpCmdByAdmin) DisableOutOfBandManagementForZoneCmd(org.apache.cloudstack.api.command.admin.outofbandmanagement.DisableOutOfBandManagementForZoneCmd) CreateLBStickinessPolicyCmd(org.apache.cloudstack.api.command.user.loadbalancer.CreateLBStickinessPolicyCmd) ListGuestOsCategoriesCmd(org.apache.cloudstack.api.command.user.guest.ListGuestOsCategoriesCmd) EnableStaticNatCmd(org.apache.cloudstack.api.command.user.nat.EnableStaticNatCmd) SSHKeyPairDao(com.cloud.user.dao.SSHKeyPairDao) IssueOutOfBandManagementPowerActionCmd(org.apache.cloudstack.api.command.admin.outofbandmanagement.IssueOutOfBandManagementPowerActionCmd) AccountVlanMapDao(com.cloud.dc.dao.AccountVlanMapDao) AddUserToProjectCmd(org.apache.cloudstack.api.command.user.account.AddUserToProjectCmd) MigrateVMCmd(org.apache.cloudstack.api.command.admin.vm.MigrateVMCmd) SecondaryStorageVmManager(com.cloud.storage.secondary.SecondaryStorageVmManager) StopInternalLBVMCmd(org.apache.cloudstack.api.command.admin.internallb.StopInternalLBVMCmd) ResetVMPasswordCmdByAdmin(org.apache.cloudstack.api.command.admin.vm.ResetVMPasswordCmdByAdmin) StoragePoolVO(org.apache.cloudstack.storage.datastore.db.StoragePoolVO) CreateTemplateCmdByAdmin(org.apache.cloudstack.api.command.admin.template.CreateTemplateCmdByAdmin) StopVMCmdByAdmin(org.apache.cloudstack.api.command.admin.vm.StopVMCmdByAdmin) UpdateVPCOfferingCmd(org.apache.cloudstack.api.command.admin.vpc.UpdateVPCOfferingCmd) DpdkHelper(com.cloud.hypervisor.kvm.dpdk.DpdkHelper) HostTagsDao(com.cloud.host.dao.HostTagsDao) UserVmManager(com.cloud.vm.UserVmManager) ReleasePublicIpRangeCmd(org.apache.cloudstack.api.command.admin.vlan.ReleasePublicIpRangeCmd) Arrays(java.util.Arrays) CreateRemoteAccessVpnCmd(org.apache.cloudstack.api.command.user.vpn.CreateRemoteAccessVpnCmd) AlertDao(com.cloud.alert.dao.AlertDao) AddIpToVmNicCmd(org.apache.cloudstack.api.command.user.vm.AddIpToVmNicCmd) Transaction(com.cloud.utils.db.Transaction) CreatePortableIpRangeCmd(org.apache.cloudstack.api.command.admin.region.CreatePortableIpRangeCmd) HostAllocator(com.cloud.agent.manager.allocator.HostAllocator) AgentManager(com.cloud.agent.AgentManager) ServiceOfferingDetailsDao(com.cloud.service.dao.ServiceOfferingDetailsDao) CreateVMSnapshotCmd(org.apache.cloudstack.api.command.user.vmsnapshot.CreateVMSnapshotCmd) UpdateVPCCmdByAdmin(org.apache.cloudstack.api.command.admin.vpc.UpdateVPCCmdByAdmin) UpdateTrafficTypeCmd(org.apache.cloudstack.api.command.admin.usage.UpdateTrafficTypeCmd) Storage(com.cloud.storage.Storage) UpdateAccountCmd(org.apache.cloudstack.api.command.admin.account.UpdateAccountCmd) CreateVPCCmd(org.apache.cloudstack.api.command.user.vpc.CreateVPCCmd) CreateVpnConnectionCmd(org.apache.cloudstack.api.command.user.vpn.CreateVpnConnectionCmd) AuthorizeSecurityGroupEgressCmd(org.apache.cloudstack.api.command.user.securitygroup.AuthorizeSecurityGroupEgressCmd) AddAccountToProjectCmd(org.apache.cloudstack.api.command.user.account.AddAccountToProjectCmd) ListVolumesCmdByAdmin(org.apache.cloudstack.api.command.admin.volume.ListVolumesCmdByAdmin) ListVPCsCmd(org.apache.cloudstack.api.command.user.vpc.ListVPCsCmd) AddVpnUserCmd(org.apache.cloudstack.api.command.user.vpn.AddVpnUserCmd) CreateDiskOfferingCmd(org.apache.cloudstack.api.command.admin.offering.CreateDiskOfferingCmd) DiskProfile(com.cloud.vm.DiskProfile) DeleteSslCertCmd(org.apache.cloudstack.api.command.user.loadbalancer.DeleteSslCertCmd) StartRouterCmd(org.apache.cloudstack.api.command.admin.router.StartRouterCmd) KeystoreManager(org.apache.cloudstack.framework.security.keystore.KeystoreManager) UpdateNetworkOfferingCmd(org.apache.cloudstack.api.command.admin.network.UpdateNetworkOfferingCmd) Executors(java.util.concurrent.Executors) CreatePrivateGatewayCmd(org.apache.cloudstack.api.command.admin.vpc.CreatePrivateGatewayCmd) ListHypervisorsCmd(org.apache.cloudstack.api.command.user.resource.ListHypervisorsCmd) UpdateVpnCustomerGatewayCmd(org.apache.cloudstack.api.command.user.vpn.UpdateVpnCustomerGatewayCmd) UpdateAutoScalePolicyCmd(org.apache.cloudstack.api.command.user.autoscale.UpdateAutoScalePolicyCmd) ListTemplatePermissionsCmdByAdmin(org.apache.cloudstack.api.command.admin.template.ListTemplatePermissionsCmdByAdmin) LoadBalancerVO(com.cloud.network.dao.LoadBalancerVO) GuestOSDao(com.cloud.storage.dao.GuestOSDao) InsufficientAddressCapacityException(com.cloud.exception.InsufficientAddressCapacityException) AccountDao(com.cloud.user.dao.AccountDao) CreatePortForwardingRuleCmd(org.apache.cloudstack.api.command.user.firewall.CreatePortForwardingRuleCmd) IpAddressManager(com.cloud.network.IpAddressManager) PasswordGenerator(com.cloud.utils.PasswordGenerator) MigrateVirtualMachineWithVolumeCmd(org.apache.cloudstack.api.command.admin.vm.MigrateVirtualMachineWithVolumeCmd) DeleteProjectInvitationCmd(org.apache.cloudstack.api.command.user.project.DeleteProjectInvitationCmd) ListTagsCmd(org.apache.cloudstack.api.command.user.tag.ListTagsCmd) AddRegionCmd(org.apache.cloudstack.api.command.admin.region.AddRegionCmd) UpdateCloudToUseObjectStoreCmd(org.apache.cloudstack.api.command.admin.storage.UpdateCloudToUseObjectStoreCmd) UploadCustomCertificateCmd(org.apache.cloudstack.api.command.admin.resource.UploadCustomCertificateCmd) DeleteHostCmd(org.apache.cloudstack.api.command.admin.host.DeleteHostCmd) DeleteVpnConnectionCmd(org.apache.cloudstack.api.command.user.vpn.DeleteVpnConnectionCmd) DeletePoolCmd(org.apache.cloudstack.api.command.admin.storage.DeletePoolCmd) ArrayList(java.util.ArrayList) DeleteSnapshotCmd(org.apache.cloudstack.api.command.user.snapshot.DeleteSnapshotCmd) ListAutoScaleVmProfilesCmd(org.apache.cloudstack.api.command.user.autoscale.ListAutoScaleVmProfilesCmd) ListSnapshotPoliciesCmd(org.apache.cloudstack.api.command.user.snapshot.ListSnapshotPoliciesCmd) RegisterIsoCmd(org.apache.cloudstack.api.command.user.iso.RegisterIsoCmd) CloudRuntimeException(com.cloud.utils.exception.CloudRuntimeException) TemplateDataStoreVO(org.apache.cloudstack.storage.datastore.db.TemplateDataStoreVO) RebootSystemVmCmd(org.apache.cloudstack.api.command.admin.systemvm.RebootSystemVmCmd) GetUserCmd(org.apache.cloudstack.api.command.admin.user.GetUserCmd) RebootVMCmdByAdmin(org.apache.cloudstack.api.command.admin.vm.RebootVMCmdByAdmin) CreateProjectCmd(org.apache.cloudstack.api.command.user.project.CreateProjectCmd) RestartVPCCmd(org.apache.cloudstack.api.command.user.vpc.RestartVPCCmd) DeleteZoneCmd(org.apache.cloudstack.api.command.admin.zone.DeleteZoneCmd) EnableAccountCmd(org.apache.cloudstack.api.command.admin.account.EnableAccountCmd) UpdateNetworkServiceProviderCmd(org.apache.cloudstack.api.command.admin.network.UpdateNetworkServiceProviderCmd) RevertToVMSnapshotCmd(org.apache.cloudstack.api.command.user.vmsnapshot.RevertToVMSnapshotCmd) RevokeSecurityGroupIngressCmd(org.apache.cloudstack.api.command.user.securitygroup.RevokeSecurityGroupIngressCmd) VMInstanceDao(com.cloud.vm.dao.VMInstanceDao) ListStorageNetworkIpRangeCmd(org.apache.cloudstack.api.command.admin.network.ListStorageNetworkIpRangeCmd) GuestOSHypervisorDao(com.cloud.storage.dao.GuestOSHypervisorDao) ListGuestOsMappingCmd(org.apache.cloudstack.api.command.admin.guest.ListGuestOsMappingCmd) CreateSnapshotFromVMSnapshotCmd(org.apache.cloudstack.api.command.user.snapshot.CreateSnapshotFromVMSnapshotCmd) ScaleVMCmd(org.apache.cloudstack.api.command.user.vm.ScaleVMCmd) DeployVMCmdByAdmin(org.apache.cloudstack.api.command.admin.vm.DeployVMCmdByAdmin) ResetVMSSHKeyCmd(org.apache.cloudstack.api.command.user.vm.ResetVMSSHKeyCmd) ComponentLifecycle(com.cloud.utils.component.ComponentLifecycle) ListSupportedNetworkServicesCmd(org.apache.cloudstack.api.command.admin.network.ListSupportedNetworkServicesCmd) AttachVolumeCmdByAdmin(org.apache.cloudstack.api.command.admin.volume.AttachVolumeCmdByAdmin) DetachVolumeCmd(org.apache.cloudstack.api.command.user.volume.DetachVolumeCmd) ListLoadBalancerRulesCmd(org.apache.cloudstack.api.command.user.loadbalancer.ListLoadBalancerRulesCmd) ListVpnGatewaysCmd(org.apache.cloudstack.api.command.user.vpn.ListVpnGatewaysCmd) SSHKeysHelper(com.cloud.utils.ssh.SSHKeysHelper) CreateTemplateCmd(org.apache.cloudstack.api.command.user.template.CreateTemplateCmd) HostPodDao(com.cloud.dc.dao.HostPodDao) Host(com.cloud.host.Host) DeleteImageStoreCmd(org.apache.cloudstack.api.command.admin.storage.DeleteImageStoreCmd) ExcludeList(com.cloud.deploy.DeploymentPlanner.ExcludeList) CreateApplicationLoadBalancerCmd(org.apache.cloudstack.api.command.user.loadbalancer.CreateApplicationLoadBalancerCmd) DeleteVMSnapshotCmd(org.apache.cloudstack.api.command.user.vmsnapshot.DeleteVMSnapshotCmd) GuestOsDetailsDao(org.apache.cloudstack.resourcedetail.dao.GuestOsDetailsDao) DisableAutoScaleVmGroupCmd(org.apache.cloudstack.api.command.user.autoscale.DisableAutoScaleVmGroupCmd) ListConditionsCmd(org.apache.cloudstack.api.command.user.autoscale.ListConditionsCmd) AssignToGlobalLoadBalancerRuleCmd(org.apache.cloudstack.api.command.user.region.ha.gslb.AssignToGlobalLoadBalancerRuleCmd) RemoveNicFromVMCmd(org.apache.cloudstack.api.command.user.vm.RemoveNicFromVMCmd) DetachIsoCmdByAdmin(org.apache.cloudstack.api.command.admin.iso.DetachIsoCmdByAdmin) CreateSecondaryStagingStoreCmd(org.apache.cloudstack.api.command.admin.storage.CreateSecondaryStagingStoreCmd) UpdateVMAffinityGroupCmdByAdmin(org.apache.cloudstack.api.command.admin.affinitygroup.UpdateVMAffinityGroupCmdByAdmin) UpdateVMAffinityGroupCmd(org.apache.cloudstack.api.command.user.affinitygroup.UpdateVMAffinityGroupCmd) CreateVolumeCmd(org.apache.cloudstack.api.command.user.volume.CreateVolumeCmd) ListStorageProvidersCmd(org.apache.cloudstack.api.command.admin.storage.ListStorageProvidersCmd) ListSwiftsCmd(org.apache.cloudstack.api.command.admin.swift.ListSwiftsCmd) Filter(com.cloud.utils.db.Filter) DisableStaticNatCmd(org.apache.cloudstack.api.command.user.nat.DisableStaticNatCmd) RemoveRawUsageRecordsCmd(org.apache.cloudstack.api.command.admin.usage.RemoveRawUsageRecordsCmd) JoinBuilder(com.cloud.utils.db.JoinBuilder) ListVPCsCmdByAdmin(org.apache.cloudstack.api.command.admin.vpc.ListVPCsCmdByAdmin) ListAutoScaleVmGroupsCmd(org.apache.cloudstack.api.command.user.autoscale.ListAutoScaleVmGroupsCmd) AddResourceDetailCmd(org.apache.cloudstack.api.command.user.volume.AddResourceDetailCmd) ListTrafficTypeImplementorsCmd(org.apache.cloudstack.api.command.admin.usage.ListTrafficTypeImplementorsCmd) RecoverVolumeCmdByAdmin(org.apache.cloudstack.api.command.admin.volume.RecoverVolumeCmdByAdmin) SyncStoragePoolCmd(org.apache.cloudstack.api.command.admin.storage.SyncStoragePoolCmd) UpdateUserCmd(org.apache.cloudstack.api.command.admin.user.UpdateUserCmd) DeleteAccountFromProjectCmd(org.apache.cloudstack.api.command.user.account.DeleteAccountFromProjectCmd) TransactionCallbackNoReturn(com.cloud.utils.db.TransactionCallbackNoReturn) ManagedContextRunnable(org.apache.cloudstack.managed.context.ManagedContextRunnable) PrimaryDataStoreDao(org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao) ListResourceLimitsCmd(org.apache.cloudstack.api.command.user.resource.ListResourceLimitsCmd) Predicate(java.util.function.Predicate) DeleteVPCCmd(org.apache.cloudstack.api.command.user.vpc.DeleteVPCCmd) SSHKeyPair(com.cloud.user.SSHKeyPair) RevertSnapshotCmd(org.apache.cloudstack.api.command.user.snapshot.RevertSnapshotCmd) DeleteTagsCmd(org.apache.cloudstack.api.command.user.tag.DeleteTagsCmd) CreateNetworkCmdByAdmin(org.apache.cloudstack.api.command.admin.network.CreateNetworkCmdByAdmin) ListVMsCmd(org.apache.cloudstack.api.command.user.vm.ListVMsCmd) DeletePhysicalNetworkCmd(org.apache.cloudstack.api.command.admin.network.DeletePhysicalNetworkCmd) UpdateHostPasswordCmd(org.apache.cloudstack.api.command.admin.host.UpdateHostPasswordCmd) ListVpnConnectionsCmd(org.apache.cloudstack.api.command.user.vpn.ListVpnConnectionsCmd) VirtualMachineProfileImpl(com.cloud.vm.VirtualMachineProfileImpl) PodVlanMapVO(com.cloud.dc.PodVlanMapVO) List(java.util.List) MigrateVolumeCmdByAdmin(org.apache.cloudstack.api.command.admin.volume.MigrateVolumeCmdByAdmin) NetworkDomainVO(com.cloud.network.dao.NetworkDomainVO) RestoreVMCmdByAdmin(org.apache.cloudstack.api.command.admin.vm.RestoreVMCmdByAdmin) DeleteLBHealthCheckPolicyCmd(org.apache.cloudstack.api.command.user.loadbalancer.DeleteLBHealthCheckPolicyCmd) DeleteClusterCmd(org.apache.cloudstack.api.command.admin.cluster.DeleteClusterCmd) ListEventsCmd(org.apache.cloudstack.api.command.user.event.ListEventsCmd) NetworkDomainDao(com.cloud.network.dao.NetworkDomainDao) DeleteIsoCmd(org.apache.cloudstack.api.command.user.iso.DeleteIsoCmd) DeletePrivateGatewayCmd(org.apache.cloudstack.api.command.admin.vpc.DeletePrivateGatewayCmd) DeleteTrafficTypeCmd(org.apache.cloudstack.api.command.admin.usage.DeleteTrafficTypeCmd) ConfigureOutOfBandManagementCmd(org.apache.cloudstack.api.command.admin.outofbandmanagement.ConfigureOutOfBandManagementCmd) StartVMCmd(org.apache.cloudstack.api.command.user.vm.StartVMCmd) EventVO(com.cloud.event.EventVO) ListEgressFirewallRulesCmd(org.apache.cloudstack.api.command.user.firewall.ListEgressFirewallRulesCmd) ListRemoteAccessVpnsCmd(org.apache.cloudstack.api.command.user.vpn.ListRemoteAccessVpnsCmd) NetworkDao(com.cloud.network.dao.NetworkDao) ListNetworkOfferingsCmd(org.apache.cloudstack.api.command.user.network.ListNetworkOfferingsCmd) EventTypes(com.cloud.event.EventTypes) CreateNetworkOfferingCmd(org.apache.cloudstack.api.command.admin.network.CreateNetworkOfferingCmd) GuestOSVO(com.cloud.storage.GuestOSVO) UpdateProjectInvitationCmd(org.apache.cloudstack.api.command.user.project.UpdateProjectInvitationCmd) UpdateSnapshotPolicyCmd(org.apache.cloudstack.api.command.user.snapshot.UpdateSnapshotPolicyCmd) Configurable(org.apache.cloudstack.framework.config.Configurable) ListAsyncJobsCmd(org.apache.cloudstack.api.command.user.job.ListAsyncJobsCmd) VlanType(com.cloud.dc.Vlan.VlanType) UpdateDefaultNicForVMCmdByAdmin(org.apache.cloudstack.api.command.admin.vm.UpdateDefaultNicForVMCmdByAdmin) UserAuthenticator(com.cloud.server.auth.UserAuthenticator) ListGuestOsCmd(org.apache.cloudstack.api.command.user.guest.ListGuestOsCmd) UpgradeRouterTemplateCmd(org.apache.cloudstack.api.command.admin.router.UpgradeRouterTemplateCmd) AccountVlanMapVO(com.cloud.dc.AccountVlanMapVO) CopyTemplateCmdByAdmin(org.apache.cloudstack.api.command.admin.template.CopyTemplateCmdByAdmin) AnnotationService(org.apache.cloudstack.annotation.AnnotationService) UpdateStorageNetworkIpRangeCmd(org.apache.cloudstack.api.command.admin.network.UpdateStorageNetworkIpRangeCmd) SSHKeyPairVO(com.cloud.user.SSHKeyPairVO) FindHostsForMigrationCmd(org.apache.cloudstack.api.command.admin.host.FindHostsForMigrationCmd) ListGlobalLoadBalancerRuleCmd(org.apache.cloudstack.api.command.user.region.ha.gslb.ListGlobalLoadBalancerRuleCmd) Hypervisor(com.cloud.hypervisor.Hypervisor) AddHostCmd(org.apache.cloudstack.api.command.admin.host.AddHostCmd) CreateVirtualRouterElementCmd(org.apache.cloudstack.api.command.admin.router.CreateVirtualRouterElementCmd) RecoverVolumeCmd(org.apache.cloudstack.api.command.user.volume.RecoverVolumeCmd) DeletePodCmd(org.apache.cloudstack.api.command.admin.pod.DeletePodCmd) PreparePrimaryStorageForMaintenanceCmd(org.apache.cloudstack.api.command.admin.storage.PreparePrimaryStorageForMaintenanceCmd) TimeUnit(java.util.concurrent.TimeUnit) ListStaticRoutesCmd(org.apache.cloudstack.api.command.user.vpc.ListStaticRoutesCmd) HostPodVO(com.cloud.dc.HostPodVO) UserVmVO(com.cloud.vm.UserVmVO) SuspendProjectCmd(org.apache.cloudstack.api.command.user.project.SuspendProjectCmd) Ternary(com.cloud.utils.Ternary) Configuration(org.apache.cloudstack.config.Configuration) VpcDao(com.cloud.network.vpc.dao.VpcDao) RecoverVMCmd(org.apache.cloudstack.api.command.admin.vm.RecoverVMCmd) Volume(com.cloud.storage.Volume) ManagementServerException(com.cloud.exception.ManagementServerException) GenerateUsageRecordsCmd(org.apache.cloudstack.api.command.admin.usage.GenerateUsageRecordsCmd) VolumeVO(com.cloud.storage.VolumeVO) ListNetworksCmd(org.apache.cloudstack.api.command.user.network.ListNetworksCmd) UpgradeSystemVMCmd(org.apache.cloudstack.api.command.admin.systemvm.UpgradeSystemVMCmd) AccountService(com.cloud.user.AccountService) CreateDomainCmd(org.apache.cloudstack.api.command.admin.domain.CreateDomainCmd) ArchiveSnapshotCmd(org.apache.cloudstack.api.command.user.snapshot.ArchiveSnapshotCmd) ResetVMPasswordCmd(org.apache.cloudstack.api.command.user.vm.ResetVMPasswordCmd) UpdateVlanIpRangeCmd(org.apache.cloudstack.api.command.admin.vlan.UpdateVlanIpRangeCmd) UpdateCfgCmd(org.apache.cloudstack.api.command.admin.config.UpdateCfgCmd) CancelPrimaryStorageMaintenanceCmd(org.apache.cloudstack.api.command.admin.storage.CancelPrimaryStorageMaintenanceCmd) StartSystemVMCmd(org.apache.cloudstack.api.command.admin.systemvm.StartSystemVMCmd) Pod(com.cloud.dc.Pod) GetVMUserDataCmd(org.apache.cloudstack.api.command.admin.vm.GetVMUserDataCmd) ListProjectResourcesCriteria(com.cloud.projects.Project.ListProjectResourcesCriteria) ListNetworkServiceProvidersCmd(org.apache.cloudstack.api.command.admin.network.ListNetworkServiceProvidersCmd) TemplateDataStoreDao(org.apache.cloudstack.storage.datastore.db.TemplateDataStoreDao) ListIsosCmd(org.apache.cloudstack.api.command.user.iso.ListIsosCmd) ListCapacityCmd(org.apache.cloudstack.api.command.admin.resource.ListCapacityCmd) AddNetworkDeviceCmd(org.apache.cloudstack.api.command.admin.network.AddNetworkDeviceCmd) ListCountersCmd(org.apache.cloudstack.api.command.user.autoscale.ListCountersCmd) AttachVolumeCmd(org.apache.cloudstack.api.command.user.volume.AttachVolumeCmd) AssociateIPAddrCmd(org.apache.cloudstack.api.command.user.address.AssociateIPAddrCmd) Map(java.util.Map) ResizeVolumeCmd(org.apache.cloudstack.api.command.user.volume.ResizeVolumeCmd) VlanDao(com.cloud.dc.dao.VlanDao) AuthorizeSecurityGroupIngressCmd(org.apache.cloudstack.api.command.user.securitygroup.AuthorizeSecurityGroupIngressCmd) ListStorageTagsCmd(org.apache.cloudstack.api.command.admin.storage.ListStorageTagsCmd) MoveUserCmd(org.apache.cloudstack.api.command.admin.user.MoveUserCmd) DeleteSecurityGroupCmd(org.apache.cloudstack.api.command.user.securitygroup.DeleteSecurityGroupCmd) StoragePoolAllocator(org.apache.cloudstack.engine.subsystem.api.storage.StoragePoolAllocator) ListZonesCmdByAdmin(org.apache.cloudstack.api.command.admin.zone.ListZonesCmdByAdmin) CopyIsoCmd(org.apache.cloudstack.api.command.user.iso.CopyIsoCmd) TransactionStatus(com.cloud.utils.db.TransactionStatus) DeploymentPlanner(com.cloud.deploy.DeploymentPlanner) UpdateLBStickinessPolicyCmd(org.apache.cloudstack.api.command.user.loadbalancer.UpdateLBStickinessPolicyCmd) ListVirtualRouterElementsCmd(org.apache.cloudstack.api.command.admin.router.ListVirtualRouterElementsCmd) DedicatePublicIpRangeCmd(org.apache.cloudstack.api.command.admin.vlan.DedicatePublicIpRangeCmd) GetVncPortAnswer(com.cloud.agent.api.GetVncPortAnswer) ProjectManager(com.cloud.projects.ProjectManager) ResourceTagVO(com.cloud.tags.ResourceTagVO) DomainVlanMapVO(com.cloud.dc.DomainVlanMapVO) ServiceOfferingVO(com.cloud.service.ServiceOfferingVO) GuestOS(com.cloud.storage.GuestOS) UpdateIsoCmd(org.apache.cloudstack.api.command.user.iso.UpdateIsoCmd) ScaleSystemVMCmd(org.apache.cloudstack.api.command.admin.systemvm.ScaleSystemVMCmd) ListSnapshotsCmd(org.apache.cloudstack.api.command.user.snapshot.ListSnapshotsCmd) CreateSecurityGroupCmd(org.apache.cloudstack.api.command.user.securitygroup.CreateSecurityGroupCmd) CreateFirewallRuleCmd(org.apache.cloudstack.api.command.user.firewall.CreateFirewallRuleCmd) UpdateVolumeCmdByAdmin(org.apache.cloudstack.api.command.admin.volume.UpdateVolumeCmdByAdmin) AddTrafficTypeCmd(org.apache.cloudstack.api.command.admin.usage.AddTrafficTypeCmd) AssignVMCmd(org.apache.cloudstack.api.command.admin.vm.AssignVMCmd) DataCenterVO(com.cloud.dc.DataCenterVO) RemoveVpnUserCmd(org.apache.cloudstack.api.command.user.vpn.RemoveVpnUserCmd) CreateZoneCmd(org.apache.cloudstack.api.command.admin.zone.CreateZoneCmd) EnableOutOfBandManagementForHostCmd(org.apache.cloudstack.api.command.admin.outofbandmanagement.EnableOutOfBandManagementForHostCmd) ListPortableIpRangesCmd(org.apache.cloudstack.api.command.admin.region.ListPortableIpRangesCmd) AlertVO(com.cloud.alert.AlertVO) ListAlertsCmd(org.apache.cloudstack.api.command.admin.resource.ListAlertsCmd) CreateLBHealthCheckPolicyCmd(org.apache.cloudstack.api.command.user.loadbalancer.CreateLBHealthCheckPolicyCmd) CreatePodCmd(org.apache.cloudstack.api.command.admin.pod.CreatePodCmd) UpdateRegionCmd(org.apache.cloudstack.api.command.admin.region.UpdateRegionCmd) UserDao(com.cloud.user.dao.UserDao) SearchCriteria(com.cloud.utils.db.SearchCriteria) ListLBStickinessPoliciesCmd(org.apache.cloudstack.api.command.user.loadbalancer.ListLBStickinessPoliciesCmd) SecondaryStorageVmVO(com.cloud.vm.SecondaryStorageVmVO) ClusterVO(com.cloud.dc.ClusterVO) GetUploadParamsForIsoCmd(org.apache.cloudstack.api.command.user.iso.GetUploadParamsForIsoCmd) InstanceGroupDao(com.cloud.vm.dao.InstanceGroupDao) UpdateStoragePoolCmd(org.apache.cloudstack.api.command.admin.storage.UpdateStoragePoolCmd) VirtualMachineMigrationException(com.cloud.exception.VirtualMachineMigrationException) InstanceGroupVO(com.cloud.vm.InstanceGroupVO) ListUsersCmd(org.apache.cloudstack.api.command.admin.user.ListUsersCmd) DedicateGuestVlanRangeCmd(org.apache.cloudstack.api.command.admin.network.DedicateGuestVlanRangeCmd) Vlan(com.cloud.dc.Vlan) DeleteVPCOfferingCmd(org.apache.cloudstack.api.command.admin.vpc.DeleteVPCOfferingCmd) DeleteFirewallRuleCmd(org.apache.cloudstack.api.command.user.firewall.DeleteFirewallRuleCmd) UpdateDomainCmd(org.apache.cloudstack.api.command.admin.domain.UpdateDomainCmd) DestroyVMCmdByAdmin(org.apache.cloudstack.api.command.admin.vm.DestroyVMCmdByAdmin) CreateInternalLoadBalancerElementCmd(org.apache.cloudstack.api.command.admin.internallb.CreateInternalLoadBalancerElementCmd) UpdatePhysicalNetworkCmd(org.apache.cloudstack.api.command.admin.network.UpdatePhysicalNetworkCmd) Field(java.lang.reflect.Field) DeleteStaticRouteCmd(org.apache.cloudstack.api.command.user.vpc.DeleteStaticRouteCmd) CreateAutoScalePolicyCmd(org.apache.cloudstack.api.command.user.autoscale.CreateAutoScalePolicyCmd) ControlledEntity(org.apache.cloudstack.acl.ControlledEntity) ListDiskOfferingsCmd(org.apache.cloudstack.api.command.user.offering.ListDiskOfferingsCmd) AddSwiftCmd(org.apache.cloudstack.api.command.admin.swift.AddSwiftCmd) ListDetailOptionsCmd(org.apache.cloudstack.api.command.user.resource.ListDetailOptionsCmd) CapacityDao(com.cloud.capacity.dao.CapacityDao) GlobalLock(com.cloud.utils.db.GlobalLock) ListAffinityGroupTypesCmd(org.apache.cloudstack.api.command.user.affinitygroup.ListAffinityGroupTypesCmd) ListVMsCmdByAdmin(org.apache.cloudstack.api.command.admin.vm.ListVMsCmdByAdmin) UpdateVpnConnectionCmd(org.apache.cloudstack.api.command.user.vpn.UpdateVpnConnectionCmd) RegisterSSHKeyPairCmd(org.apache.cloudstack.api.command.user.ssh.RegisterSSHKeyPairCmd) CreateEgressFirewallRuleCmd(org.apache.cloudstack.api.command.user.firewall.CreateEgressFirewallRuleCmd) CreateVlanIpRangeCmd(org.apache.cloudstack.api.command.admin.vlan.CreateVlanIpRangeCmd) StorageManager(com.cloud.storage.StorageManager) AnnotationDao(org.apache.cloudstack.annotation.dao.AnnotationDao) ListMgmtsCmd(org.apache.cloudstack.api.command.admin.management.ListMgmtsCmd) Date(java.util.Date) DeleteSSHKeyPairCmd(org.apache.cloudstack.api.command.user.ssh.DeleteSSHKeyPairCmd) UploadTemplateDirectDownloadCertificateCmd(org.apache.cloudstack.api.command.admin.direct.download.UploadTemplateDirectDownloadCertificateCmd) NetworkAccountVO(com.cloud.network.dao.NetworkAccountVO) StoragePool(com.cloud.storage.StoragePool) AlertManager(com.cloud.alert.AlertManager) ConfigDepot(org.apache.cloudstack.framework.config.ConfigDepot) RemoveRegionCmd(org.apache.cloudstack.api.command.admin.region.RemoveRegionCmd) ListNicsCmd(org.apache.cloudstack.api.command.user.vm.ListNicsCmd) ResetCfgCmd(org.apache.cloudstack.api.command.admin.config.ResetCfgCmd) GuestOSCategoryDao(com.cloud.storage.dao.GuestOSCategoryDao) ApiServiceConfiguration(org.apache.cloudstack.config.ApiServiceConfiguration) CreateSnapshotCmd(org.apache.cloudstack.api.command.user.snapshot.CreateSnapshotCmd) DeleteNetworkCmd(org.apache.cloudstack.api.command.user.network.DeleteNetworkCmd) CreateVMGroupCmd(org.apache.cloudstack.api.command.user.vmgroup.CreateVMGroupCmd) DeleteAccountCmd(org.apache.cloudstack.api.command.admin.account.DeleteAccountCmd) ConsoleProxyInfo(com.cloud.info.ConsoleProxyInfo) Config(com.cloud.configuration.Config) ExtractIsoCmd(org.apache.cloudstack.api.command.user.iso.ExtractIsoCmd) AllocationState(com.cloud.org.Grouping.AllocationState) DeleteStorageNetworkIpRangeCmd(org.apache.cloudstack.api.command.admin.network.DeleteStorageNetworkIpRangeCmd) VMInstanceVO(com.cloud.vm.VMInstanceVO) UpdateGlobalLoadBalancerRuleCmd(org.apache.cloudstack.api.command.user.region.ha.gslb.UpdateGlobalLoadBalancerRuleCmd) Capacity(com.cloud.capacity.Capacity) TimeZone(java.util.TimeZone) State(com.cloud.vm.VirtualMachine.State) DeleteManagementNetworkIpRangeCmd(org.apache.cloudstack.api.command.admin.network.DeleteManagementNetworkIpRangeCmd) DeleteCounterCmd(org.apache.cloudstack.api.command.admin.autoscale.DeleteCounterCmd) GetUploadParamsForVolumeCmd(org.apache.cloudstack.api.command.user.volume.GetUploadParamsForVolumeCmd) CopyIsoCmdByAdmin(org.apache.cloudstack.api.command.admin.iso.CopyIsoCmdByAdmin) HostTagVO(com.cloud.host.HostTagVO) UUID(java.util.UUID) DeleteUserFromProjectCmd(org.apache.cloudstack.api.command.user.account.DeleteUserFromProjectCmd) ListPrivateGatewaysCmd(org.apache.cloudstack.api.command.user.vpc.ListPrivateGatewaysCmd) DeleteEgressFirewallRuleCmd(org.apache.cloudstack.api.command.user.firewall.DeleteEgressFirewallRuleCmd) CreateNetworkACLCmd(org.apache.cloudstack.api.command.user.network.CreateNetworkACLCmd) EnableOutOfBandManagementForZoneCmd(org.apache.cloudstack.api.command.admin.outofbandmanagement.EnableOutOfBandManagementForZoneCmd) DeleteVpnGatewayCmd(org.apache.cloudstack.api.command.user.vpn.DeleteVpnGatewayCmd) DiskOfferingVO(com.cloud.storage.DiskOfferingVO) VirtualMachineManager(com.cloud.vm.VirtualMachineManager) StartInternalLBVMCmd(org.apache.cloudstack.api.command.admin.internallb.StartInternalLBVMCmd) ListVMSnapshotCmd(org.apache.cloudstack.api.command.user.vmsnapshot.ListVMSnapshotCmd) NetUtils(com.cloud.utils.net.NetUtils) CancelHostAsDegradedCmd(org.apache.cloudstack.api.command.admin.host.CancelHostAsDegradedCmd) ExtractTemplateCmd(org.apache.cloudstack.api.command.user.template.ExtractTemplateCmd) ListApplicationLoadBalancersCmd(org.apache.cloudstack.api.command.user.loadbalancer.ListApplicationLoadBalancersCmd) VirtualMachine(com.cloud.vm.VirtualMachine) ListDomainsCmdByAdmin(org.apache.cloudstack.api.command.admin.domain.ListDomainsCmdByAdmin) DataCenterDeployment(com.cloud.deploy.DataCenterDeployment) ActivateProjectCmd(org.apache.cloudstack.api.command.user.project.ActivateProjectCmd) DBEncryptionUtil(com.cloud.utils.crypt.DBEncryptionUtil) ListNetworksCmdByAdmin(org.apache.cloudstack.api.command.admin.network.ListNetworksCmdByAdmin) RebootRouterCmd(org.apache.cloudstack.api.command.admin.router.RebootRouterCmd) JoinType(com.cloud.utils.db.JoinBuilder.JoinType) Inject(javax.inject.Inject) DisableAccountCmd(org.apache.cloudstack.api.command.admin.account.DisableAccountCmd) UpdateImageStoreCmd(org.apache.cloudstack.api.command.admin.storage.UpdateImageStoreCmd) ConfigKey(org.apache.cloudstack.framework.config.ConfigKey) ListIsoPermissionsCmd(org.apache.cloudstack.api.command.user.iso.ListIsoPermissionsCmd) CreateVpnCustomerGatewayCmd(org.apache.cloudstack.api.command.user.vpn.CreateVpnCustomerGatewayCmd) ListImageStoresCmd(org.apache.cloudstack.api.command.admin.storage.ListImageStoresCmd) DisableOutOfBandManagementForClusterCmd(org.apache.cloudstack.api.command.admin.outofbandmanagement.DisableOutOfBandManagementForClusterCmd) CapacityVO(com.cloud.capacity.CapacityVO) AddSecondaryStorageCmd(org.apache.cloudstack.api.command.admin.host.AddSecondaryStorageCmd) ManagementServerNode(org.apache.cloudstack.utils.identity.ManagementServerNode) UpdateStorageCapabilitiesCmd(org.apache.cloudstack.api.command.admin.storage.UpdateStorageCapabilitiesCmd) PermissionDeniedException(com.cloud.exception.PermissionDeniedException) HostVO(com.cloud.host.HostVO) UpdateNetworkACLListCmd(org.apache.cloudstack.api.command.user.network.UpdateNetworkACLListCmd) RestartNetworkCmd(org.apache.cloudstack.api.command.user.network.RestartNetworkCmd) LockUserCmd(org.apache.cloudstack.api.command.admin.user.LockUserCmd) CreateLoadBalancerRuleCmd(org.apache.cloudstack.api.command.user.loadbalancer.CreateLoadBalancerRuleCmd) DetailVO(com.cloud.host.DetailVO) CreateConditionCmd(org.apache.cloudstack.api.command.user.autoscale.CreateConditionCmd) UpdateApplicationLoadBalancerCmd(org.apache.cloudstack.api.command.user.loadbalancer.UpdateApplicationLoadBalancerCmd) ApiConstants(org.apache.cloudstack.api.ApiConstants) HostDetailsDao(com.cloud.host.dao.HostDetailsDao) AddGuestOsCmd(org.apache.cloudstack.api.command.admin.guest.AddGuestOsCmd) ListDeploymentPlannersCmd(org.apache.cloudstack.api.command.admin.config.ListDeploymentPlannersCmd) NetworkAccountDao(com.cloud.network.dao.NetworkAccountDao) ListUsageRecordsCmd(org.apache.cloudstack.api.command.admin.usage.ListUsageRecordsCmd) CreateAutoScaleVmGroupCmd(org.apache.cloudstack.api.command.user.autoscale.CreateAutoScaleVmGroupCmd) ListHostsCmd(org.apache.cloudstack.api.command.admin.host.ListHostsCmd) HypervisorCapabilitiesVO(com.cloud.hypervisor.HypervisorCapabilitiesVO) Comparator(java.util.Comparator) ListTrafficTypesCmd(org.apache.cloudstack.api.command.admin.usage.ListTrafficTypesCmd) ConfigurationVO(org.apache.cloudstack.framework.config.impl.ConfigurationVO) UpdateFirewallRuleCmd(org.apache.cloudstack.api.command.user.firewall.UpdateFirewallRuleCmd) UpdateVmNicIpCmd(org.apache.cloudstack.api.command.user.vm.UpdateVmNicIpCmd) CreateVolumeCmdByAdmin(org.apache.cloudstack.api.command.admin.volume.CreateVolumeCmdByAdmin) DeleteAutoScalePolicyCmd(org.apache.cloudstack.api.command.user.autoscale.DeleteAutoScalePolicyCmd) DeletePortForwardingRuleCmd(org.apache.cloudstack.api.command.user.firewall.DeletePortForwardingRuleCmd) UpdateNetworkCmd(org.apache.cloudstack.api.command.user.network.UpdateNetworkCmd) ServiceOfferingDao(com.cloud.service.dao.ServiceOfferingDao) ConsoleProxyManagementState(com.cloud.consoleproxy.ConsoleProxyManagementState) ImageStoreDao(org.apache.cloudstack.storage.datastore.db.ImageStoreDao) CleanVMReservationsCmd(org.apache.cloudstack.api.command.admin.resource.CleanVMReservationsCmd) DeleteConditionCmd(org.apache.cloudstack.api.command.user.autoscale.DeleteConditionCmd) CallContext(org.apache.cloudstack.context.CallContext) CreateAutoScaleVmProfileCmd(org.apache.cloudstack.api.command.user.autoscale.CreateAutoScaleVmProfileCmd) RemoveResourceDetailCmd(org.apache.cloudstack.api.command.user.volume.RemoveResourceDetailCmd) CreateAffinityGroupCmd(org.apache.cloudstack.api.command.user.affinitygroup.CreateAffinityGroupCmd) ResourceManager(com.cloud.resource.ResourceManager) DeleteNetworkACLCmd(org.apache.cloudstack.api.command.user.network.DeleteNetworkACLCmd) Set(java.util.Set) Mac(javax.crypto.Mac) ScopeType(com.cloud.storage.ScopeType) UpdateZoneCmd(org.apache.cloudstack.api.command.admin.zone.UpdateZoneCmd) ListSSHKeyPairsCmd(org.apache.cloudstack.api.command.user.ssh.ListSSHKeyPairsCmd) UpgradeVMCmd(org.apache.cloudstack.api.command.user.vm.UpgradeVMCmd) VolumeDataStoreDao(org.apache.cloudstack.storage.datastore.db.VolumeDataStoreDao) OperationTimedoutException(com.cloud.exception.OperationTimedoutException) GuestOSHypervisorVO(com.cloud.storage.GuestOSHypervisorVO) ListDedicatedGuestVlanRangesCmd(org.apache.cloudstack.api.command.admin.network.ListDedicatedGuestVlanRangesCmd) ListAccountsCmd(org.apache.cloudstack.api.command.user.account.ListAccountsCmd) MigrateVolumeCmd(org.apache.cloudstack.api.command.user.volume.MigrateVolumeCmd) DeleteIpForwardingRuleCmd(org.apache.cloudstack.api.command.user.nat.DeleteIpForwardingRuleCmd) StoragePoolJoinVO(com.cloud.api.query.vo.StoragePoolJoinVO) DeleteTrafficMonitorCmd(org.apache.cloudstack.api.command.admin.usage.DeleteTrafficMonitorCmd) RemoveFromGlobalLoadBalancerRuleCmd(org.apache.cloudstack.api.command.user.region.ha.gslb.RemoveFromGlobalLoadBalancerRuleCmd) ListDomainChildrenCmd(org.apache.cloudstack.api.command.admin.domain.ListDomainChildrenCmd) ResizeVolumeCmdByAdmin(org.apache.cloudstack.api.command.admin.volume.ResizeVolumeCmdByAdmin) UpdateTemplatePermissionsCmd(org.apache.cloudstack.api.command.user.template.UpdateTemplatePermissionsCmd) ListEventTypesCmd(org.apache.cloudstack.api.command.user.event.ListEventTypesCmd) DisableUserCmd(org.apache.cloudstack.api.command.admin.user.DisableUserCmd) HypervisorCapabilitiesDao(com.cloud.hypervisor.dao.HypervisorCapabilitiesDao) ListCapabilitiesCmd(org.apache.cloudstack.api.command.user.config.ListCapabilitiesCmd) DeleteApplicationLoadBalancerCmd(org.apache.cloudstack.api.command.user.loadbalancer.DeleteApplicationLoadBalancerCmd) DeleteSnapshotPoliciesCmd(org.apache.cloudstack.api.command.user.snapshot.DeleteSnapshotPoliciesCmd) NumbersUtil(com.cloud.utils.NumbersUtil) DeleteVpnCustomerGatewayCmd(org.apache.cloudstack.api.command.user.vpn.DeleteVpnCustomerGatewayCmd) ListIpForwardingRulesCmd(org.apache.cloudstack.api.command.user.nat.ListIpForwardingRulesCmd) EventDao(com.cloud.event.dao.EventDao) UpdateResourceCountCmd(org.apache.cloudstack.api.command.user.resource.UpdateResourceCountCmd) CreateStorageNetworkIpRangeCmd(org.apache.cloudstack.api.command.admin.network.CreateStorageNetworkIpRangeCmd) CreateGlobalLoadBalancerRuleCmd(org.apache.cloudstack.api.command.user.region.ha.gslb.CreateGlobalLoadBalancerRuleCmd) DeleteNetworkOfferingCmd(org.apache.cloudstack.api.command.admin.network.DeleteNetworkOfferingCmd) ListLoadBalancerRuleInstancesCmdByAdmin(org.apache.cloudstack.api.command.admin.loadbalancer.ListLoadBalancerRuleInstancesCmdByAdmin) ListLoadBalancerRuleInstancesCmd(org.apache.cloudstack.api.command.user.loadbalancer.ListLoadBalancerRuleInstancesCmd) StopVMCmd(org.apache.cloudstack.api.command.user.vm.StopVMCmd) UpdateVPCCmd(org.apache.cloudstack.api.command.user.vpc.UpdateVPCCmd) DeleteVolumeCmd(org.apache.cloudstack.api.command.user.volume.DeleteVolumeCmd) UserVmDetailVO(com.cloud.vm.UserVmDetailVO) HypervisorCapabilities(com.cloud.hypervisor.HypervisorCapabilities) ConfigurationManagerImpl(com.cloud.configuration.ConfigurationManagerImpl) HypervisorType(com.cloud.hypervisor.Hypervisor.HypervisorType) DeleteGlobalLoadBalancerRuleCmd(org.apache.cloudstack.api.command.user.region.ha.gslb.DeleteGlobalLoadBalancerRuleCmd) UploadVolumeCmd(org.apache.cloudstack.api.command.user.volume.UploadVolumeCmd) RevokeSecurityGroupEgressCmd(org.apache.cloudstack.api.command.user.securitygroup.RevokeSecurityGroupEgressCmd) ResourceTagDao(com.cloud.tags.dao.ResourceTagDao) EnableAutoScaleVmGroupCmd(org.apache.cloudstack.api.command.user.autoscale.EnableAutoScaleVmGroupCmd) AddClusterCmd(org.apache.cloudstack.api.command.admin.cluster.AddClusterCmd) StopSystemVmCmd(org.apache.cloudstack.api.command.admin.systemvm.StopSystemVmCmd) GenerateAlertCmd(org.apache.cloudstack.api.command.admin.alert.GenerateAlertCmd) DeleteAutoScaleVmProfileCmd(org.apache.cloudstack.api.command.user.autoscale.DeleteAutoScaleVmProfileCmd) ActionEvent(com.cloud.event.ActionEvent) AccountManager(com.cloud.user.AccountManager) ListResourceDetailsCmd(org.apache.cloudstack.api.command.user.volume.ListResourceDetailsCmd) ConfigureInternalLoadBalancerElementCmd(org.apache.cloudstack.api.command.admin.internallb.ConfigureInternalLoadBalancerElementCmd) ListServiceOfferingsCmd(org.apache.cloudstack.api.command.user.offering.ListServiceOfferingsCmd) UpdatePortForwardingRuleCmd(org.apache.cloudstack.api.command.user.firewall.UpdatePortForwardingRuleCmd) ListDomainsCmd(org.apache.cloudstack.api.command.admin.domain.ListDomainsCmd) ActionEventUtils(com.cloud.event.ActionEventUtils) TemplateManager(com.cloud.template.TemplateManager) UpdateNetworkACLItemCmd(org.apache.cloudstack.api.command.user.network.UpdateNetworkACLItemCmd) StoragePoolStatus(com.cloud.storage.StoragePoolStatus) AttachIsoCmdByAdmin(org.apache.cloudstack.api.command.admin.iso.AttachIsoCmdByAdmin) DeleteUserCmd(org.apache.cloudstack.api.command.admin.user.DeleteUserCmd) GuestOsCategory(com.cloud.storage.GuestOsCategory) UpdatePodCmd(org.apache.cloudstack.api.command.admin.pod.UpdatePodCmd) ResetVMSSHKeyCmdByAdmin(org.apache.cloudstack.api.command.admin.vm.ResetVMSSHKeyCmdByAdmin) InvalidParameterValueException(com.cloud.exception.InvalidParameterValueException) Logger(org.apache.log4j.Logger) UploadVolumeCmdByAdmin(org.apache.cloudstack.api.command.admin.volume.UploadVolumeCmdByAdmin) FindStoragePoolsForMigrationCmd(org.apache.cloudstack.api.command.admin.storage.FindStoragePoolsForMigrationCmd) RevokeTemplateDirectDownloadCertificateCmd(org.apache.cloudstack.api.command.admin.direct.download.RevokeTemplateDirectDownloadCertificateCmd) ListStoragePoolsCmd(org.apache.cloudstack.api.command.admin.storage.ListStoragePoolsCmd) RegisterTemplateCmdByAdmin(org.apache.cloudstack.api.command.admin.template.RegisterTemplateCmdByAdmin) CopyTemplateCmd(org.apache.cloudstack.api.command.user.template.CopyTemplateCmd) DomainDao(com.cloud.domain.dao.DomainDao) UpdateHypervisorCapabilitiesCmd(org.apache.cloudstack.api.command.admin.config.UpdateHypervisorCapabilitiesCmd) UpdateGuestOsCmd(org.apache.cloudstack.api.command.admin.guest.UpdateGuestOsCmd) DeleteSecondaryStagingStoreCmd(org.apache.cloudstack.api.command.admin.storage.DeleteSecondaryStagingStoreCmd) GetUserKeysCmd(org.apache.cloudstack.api.command.admin.user.GetUserKeysCmd) RevertToVMSnapshotCmdByAdmin(org.apache.cloudstack.api.command.admin.vmsnapshot.RevertToVMSnapshotCmdByAdmin) ListVolumesCmd(org.apache.cloudstack.api.command.user.volume.ListVolumesCmd) LoadBalancerDao(com.cloud.network.dao.LoadBalancerDao) Account(com.cloud.user.Account) MoveNetworkAclItemCmd(org.apache.cloudstack.api.command.user.network.MoveNetworkAclItemCmd) DeleteRemoteAccessVpnCmd(org.apache.cloudstack.api.command.user.vpn.DeleteRemoteAccessVpnCmd) MacAddress(com.cloud.utils.net.MacAddress) ListVpnUsersCmd(org.apache.cloudstack.api.command.user.vpn.ListVpnUsersCmd) CreateServiceOfferingCmd(org.apache.cloudstack.api.command.admin.offering.CreateServiceOfferingCmd) ListRoutersCmd(org.apache.cloudstack.api.command.admin.router.ListRoutersCmd) CreateSnapshotPolicyCmd(org.apache.cloudstack.api.command.user.snapshot.CreateSnapshotPolicyCmd) AffinityGroupProcessor(org.apache.cloudstack.affinity.AffinityGroupProcessor) DetachIsoCmd(org.apache.cloudstack.api.command.user.iso.DetachIsoCmd) ListHostTagsCmd(org.apache.cloudstack.api.command.admin.host.ListHostTagsCmd) DataCenterDao(com.cloud.dc.dao.DataCenterDao) ListProjectsCmd(org.apache.cloudstack.api.command.user.project.ListProjectsCmd) ConcurrentOperationException(com.cloud.exception.ConcurrentOperationException) RegisterIsoCmdByAdmin(org.apache.cloudstack.api.command.admin.iso.RegisterIsoCmdByAdmin) Optional(java.util.Optional) UpdateIsoPermissionsCmd(org.apache.cloudstack.api.command.user.iso.UpdateIsoPermissionsCmd) GetVMPasswordCmd(org.apache.cloudstack.api.command.user.vm.GetVMPasswordCmd) EnableUserCmd(org.apache.cloudstack.api.command.admin.user.EnableUserCmd) DeleteDiskOfferingCmd(org.apache.cloudstack.api.command.admin.offering.DeleteDiskOfferingCmd) CreateStoragePoolCmd(org.apache.cloudstack.api.command.admin.storage.CreateStoragePoolCmd) SearchBuilder(com.cloud.utils.db.SearchBuilder) UpdateIPAddrCmd(org.apache.cloudstack.api.command.user.address.UpdateIPAddrCmd) HashMap(java.util.HashMap) PrepareForMaintenanceCmd(org.apache.cloudstack.api.command.admin.host.PrepareForMaintenanceCmd) ConfigurationException(javax.naming.ConfigurationException) UpdateServiceOfferingCmd(org.apache.cloudstack.api.command.admin.offering.UpdateServiceOfferingCmd) ListIsoPermissionsCmdByAdmin(org.apache.cloudstack.api.command.admin.iso.ListIsoPermissionsCmdByAdmin) RebootVMCmd(org.apache.cloudstack.api.command.user.vm.RebootVMCmd) RestoreVMCmd(org.apache.cloudstack.api.command.user.vm.RestoreVMCmd) CollectionUtils(org.apache.commons.collections.CollectionUtils) AddNicToVMCmdByAdmin(org.apache.cloudstack.api.command.admin.vm.AddNicToVMCmdByAdmin) UserVmDetailsDao(com.cloud.vm.dao.UserVmDetailsDao) NetworkVO(com.cloud.network.dao.NetworkVO) UploadSslCertCmd(org.apache.cloudstack.api.command.user.loadbalancer.UploadSslCertCmd) LockAccountCmd(org.apache.cloudstack.api.command.admin.account.LockAccountCmd) UpdateHostCmd(org.apache.cloudstack.api.command.admin.host.UpdateHostCmd) ListSecondaryStagingStoresCmd(org.apache.cloudstack.api.command.admin.storage.ListSecondaryStagingStoresCmd) DeleteProjectCmd(org.apache.cloudstack.api.command.user.project.DeleteProjectCmd) UpdateProjectCmd(org.apache.cloudstack.api.command.user.project.UpdateProjectCmd) DestroyRouterCmd(org.apache.cloudstack.api.command.admin.router.DestroyRouterCmd) ListAutoScalePoliciesCmd(org.apache.cloudstack.api.command.user.autoscale.ListAutoScalePoliciesCmd) GPU(com.cloud.gpu.GPU) Iterator(java.util.Iterator) Type(com.cloud.host.Host.Type) DestroySystemVmCmd(org.apache.cloudstack.api.command.admin.systemvm.DestroySystemVmCmd) ChangeOfferingForVolumeCmd(org.apache.cloudstack.api.command.user.volume.ChangeOfferingForVolumeCmd) RemoveIpFromVmNicCmd(org.apache.cloudstack.api.command.user.vm.RemoveIpFromVmNicCmd) CreateVpnGatewayCmd(org.apache.cloudstack.api.command.user.vpn.CreateVpnGatewayCmd) RemoveGuestOsCmd(org.apache.cloudstack.api.command.admin.guest.RemoveGuestOsCmd) ReconnectHostCmd(org.apache.cloudstack.api.command.admin.host.ReconnectHostCmd) DeployVMCmd(org.apache.cloudstack.api.command.user.vm.DeployVMCmd) ConfigureOvsElementCmd(org.apache.cloudstack.api.command.admin.router.ConfigureOvsElementCmd) SecondaryStorageVmDao(com.cloud.vm.dao.SecondaryStorageVmDao) MigrateSecondaryStorageDataCmd(org.apache.cloudstack.api.command.admin.storage.MigrateSecondaryStorageDataCmd) ListVMGroupsCmd(org.apache.cloudstack.api.command.user.vmgroup.ListVMGroupsCmd) DomainVO(com.cloud.domain.DomainVO) ListCfgsByCmd(org.apache.cloudstack.api.command.admin.config.ListCfgsByCmd) ListTemplatesCmdByAdmin(org.apache.cloudstack.api.command.admin.template.ListTemplatesCmdByAdmin) Collections(java.util.Collections) MigrateNetworkCmd(org.apache.cloudstack.api.command.admin.network.MigrateNetworkCmd) UpdateNetworkCmdByAdmin(org.apache.cloudstack.api.command.admin.network.UpdateNetworkCmdByAdmin) AddTrafficMonitorCmd(org.apache.cloudstack.api.command.admin.usage.AddTrafficMonitorCmd) VMInstanceVO(com.cloud.vm.VMInstanceVO) VolumeVO(com.cloud.storage.VolumeVO) Filter(com.cloud.utils.db.Filter) StoragePoolVO(org.apache.cloudstack.storage.datastore.db.StoragePoolVO) ArrayList(java.util.ArrayList) ExcludeList(com.cloud.deploy.DeploymentPlanner.ExcludeList) List(java.util.List) Pair(com.cloud.utils.Pair) SSHKeyPair(com.cloud.user.SSHKeyPair)

Example 2 with Type

use of com.cloud.host.Host.Type in project cosmic by MissionCriticalCloud.

the class ManagementServerImpl method listHostsForMigrationOfVM.

@Override
public Ternary<Pair<List<? extends Host>, Integer>, List<? extends Host>, Map<Host, Boolean>> listHostsForMigrationOfVM(final Long vmId, final Long startIndex, final Long pageSize, final String keyword) {
    final Account caller = getCaller();
    if (!_accountMgr.isRootAdmin(caller.getId())) {
        if (s_logger.isDebugEnabled()) {
            s_logger.debug("Caller is not a root admin, permission denied to migrate the VM");
        }
        throw new PermissionDeniedException("No permission to migrate VM, Only Root Admin can migrate a VM!");
    }
    final VMInstanceVO vm = _vmInstanceDao.findById(vmId);
    if (vm == null) {
        final InvalidParameterValueException ex = new InvalidParameterValueException("Unable to find the VM with given id");
        throw ex;
    }
    if (vm.getState() != State.Running) {
        if (s_logger.isDebugEnabled()) {
            s_logger.debug("VM is not running, cannot migrate the vm" + vm);
        }
        final InvalidParameterValueException ex = new InvalidParameterValueException("VM is not Running, cannot " + "migrate the vm with specified id");
        ex.addProxyObject(vm.getUuid(), "vmId");
        throw ex;
    }
    if (_serviceOfferingDetailsDao.findDetail(vm.getServiceOfferingId(), GPU.Keys.pciDevice.toString()) != null) {
        s_logger.info(" Live Migration of GPU enabled VM : " + vm.getInstanceName() + " is not supported");
        // Return empty list.
        return new Ternary<>(new Pair<>(new ArrayList<HostVO>(), new Integer(0)), new ArrayList<>(), new HashMap<>());
    }
    if (!vm.getHypervisorType().equals(HypervisorType.XenServer) && !vm.getHypervisorType().equals(HypervisorType.KVM)) {
        if (s_logger.isDebugEnabled()) {
            s_logger.debug(vm + " is not XenServer/KVM, cannot migrate this VM.");
        }
        throw new InvalidParameterValueException("Unsupported Hypervisor Type for VM migration, we support " + "XenServer/KVM only");
    }
    final long srcHostId = vm.getHostId();
    final Host srcHost = _hostDao.findById(srcHostId);
    if (srcHost == null) {
        if (s_logger.isDebugEnabled()) {
            s_logger.debug("Unable to find the host with id: " + srcHostId + " of this VM:" + vm);
        }
        final InvalidParameterValueException ex = new InvalidParameterValueException("Unable to find the host (with specified id) of VM with specified id");
        ex.addProxyObject(String.valueOf(srcHostId), "hostId");
        ex.addProxyObject(vm.getUuid(), "vmId");
        throw ex;
    }
    // Check if the vm can be migrated with storage.
    boolean canMigrateWithStorage = false;
    if (vm.getType() == VirtualMachine.Type.User) {
        final HypervisorCapabilitiesVO capabilities = _hypervisorCapabilitiesDao.findByHypervisorTypeAndVersion(srcHost.getHypervisorType(), srcHost.getHypervisorVersion());
        if (capabilities != null) {
            canMigrateWithStorage = capabilities.isStorageMotionSupported();
        }
    }
    // Check if the vm is using any disks on local storage.
    final VirtualMachineProfile vmProfile = new VirtualMachineProfileImpl(vm, null, _offeringDao.findById(vm.getId(), vm.getServiceOfferingId()), null, null);
    final List<VolumeVO> volumes = _volumeDao.findCreatedByInstance(vmProfile.getId());
    boolean usesLocal = false;
    for (final VolumeVO volume : volumes) {
        final DiskOfferingVO diskOffering = _diskOfferingDao.findById(volume.getDiskOfferingId());
        final DiskProfile diskProfile = new DiskProfile(volume, diskOffering, vmProfile.getHypervisorType());
        if (diskProfile.useLocalStorage()) {
            usesLocal = true;
            break;
        }
    }
    if (!canMigrateWithStorage && usesLocal) {
        throw new InvalidParameterValueException("Unsupported operation, VM uses Local storage, cannot migrate");
    }
    final Type hostType = srcHost.getType();
    final Pair<List<HostVO>, Integer> allHostsPair;
    final List<HostVO> allHosts;
    final Map<Host, Boolean> requiresStorageMotion = new HashMap<>();
    final DataCenterDeployment plan;
    if (canMigrateWithStorage) {
        allHostsPair = searchForServers(startIndex, pageSize, null, hostType, null, srcHost.getDataCenterId(), null, null, null, keyword, null, null, srcHost.getHypervisorType(), srcHost.getHypervisorVersion());
        allHosts = allHostsPair.first();
        allHosts.remove(srcHost);
        for (final VolumeVO volume : volumes) {
            final Long volClusterId = _poolDao.findById(volume.getPoolId()).getClusterId();
            // only check for volume which are not in zone wide primary store, as only those may require storage motion
            if (volClusterId != null) {
                for (final Iterator<HostVO> iterator = allHosts.iterator(); iterator.hasNext(); ) {
                    final Host host = iterator.next();
                    if (!host.getClusterId().equals(volClusterId) || usesLocal) {
                        if (hasSuitablePoolsForVolume(volume, host, vmProfile)) {
                            requiresStorageMotion.put(host, true);
                        } else {
                            iterator.remove();
                        }
                    }
                }
            }
        }
        plan = new DataCenterDeployment(srcHost.getDataCenterId(), null, null, null, null, null);
    } else {
        final Long cluster = srcHost.getClusterId();
        if (s_logger.isDebugEnabled()) {
            s_logger.debug("Searching for all hosts in cluster " + cluster + " for migrating VM " + vm);
        }
        allHostsPair = searchForServers(startIndex, pageSize, null, hostType, null, null, null, cluster, null, keyword, null, null, null, null);
        // Filter out the current host.
        allHosts = allHostsPair.first();
        allHosts.remove(srcHost);
        plan = new DataCenterDeployment(srcHost.getDataCenterId(), srcHost.getPodId(), srcHost.getClusterId(), null, null, null);
    }
    final Pair<List<? extends Host>, Integer> otherHosts = new Pair<>(allHosts, new Integer(allHosts.size()));
    List<Host> suitableHosts = new ArrayList<>();
    final ExcludeList excludes = new ExcludeList();
    excludes.addHost(srcHostId);
    // call affinitygroup chain
    final long vmGroupCount = _affinityGroupVMMapDao.countAffinityGroupsForVm(vm.getId());
    if (vmGroupCount > 0) {
        for (final AffinityGroupProcessor processor : _affinityProcessors) {
            processor.process(vmProfile, plan, excludes);
        }
    }
    final Account account = vmProfile.getOwner();
    for (final HostVO host : allHosts) {
        final DedicatedResourceVO dedicatedResourceVO = dedicatedResourceDao.findByHostId(host.getId());
        if (dedicatedResourceVO != null && dedicatedResourceVO.getDomainId() != account.getDomainId()) {
            final Domain domain = _domainDao.findById(dedicatedResourceVO.getDomainId());
            if (domain != null) {
                s_logger.debug("Host " + host.getName() + " is dedicated to domain " + domain.getName() + " so not suitable for migration for VM " + vmProfile.getInstanceName());
            }
            excludes.addHost(host.getId());
        }
    }
    for (final HostAllocator allocator : hostAllocators) {
        if (canMigrateWithStorage) {
            suitableHosts = allocator.allocateTo(vmProfile, plan, Host.Type.Routing, excludes, allHosts, HostAllocator.RETURN_UPTO_ALL, false);
        } else {
            suitableHosts = allocator.allocateTo(vmProfile, plan, Host.Type.Routing, excludes, HostAllocator.RETURN_UPTO_ALL, false);
        }
        if (suitableHosts != null && !suitableHosts.isEmpty()) {
            break;
        }
    }
    if (s_logger.isDebugEnabled()) {
        if (suitableHosts.isEmpty()) {
            s_logger.debug("No suitable hosts found");
        } else {
            s_logger.debug("Hosts having capacity and suitable for migration: " + suitableHosts);
        }
    }
    return new Ternary<>(otherHosts, suitableHosts, requiresStorageMotion);
}
Also used : HypervisorCapabilitiesVO(com.cloud.hypervisor.HypervisorCapabilitiesVO) Account(com.cloud.user.Account) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) HostAllocator(com.cloud.agent.manager.allocator.HostAllocator) VolumeVO(com.cloud.storage.VolumeVO) InvalidParameterValueException(com.cloud.utils.exception.InvalidParameterValueException) DiskOfferingVO(com.cloud.storage.DiskOfferingVO) ArrayList(java.util.ArrayList) ExcludeList(com.cloud.deploy.DeploymentPlanner.ExcludeList) List(java.util.List) AffinityGroupProcessor(com.cloud.affinity.AffinityGroupProcessor) Pair(com.cloud.utils.Pair) SSHKeyPair(com.cloud.user.SSHKeyPair) ExcludeList(com.cloud.deploy.DeploymentPlanner.ExcludeList) DataCenterDeployment(com.cloud.deploy.DataCenterDeployment) Ternary(com.cloud.utils.Ternary) VirtualMachineProfileImpl(com.cloud.vm.VirtualMachineProfileImpl) VMInstanceVO(com.cloud.vm.VMInstanceVO) Host(com.cloud.host.Host) DiskProfile(com.cloud.vm.DiskProfile) HostVO(com.cloud.host.HostVO) ResourceObjectType(com.cloud.server.ResourceTag.ResourceObjectType) VlanType(com.cloud.dc.Vlan.VlanType) JoinType(com.cloud.utils.db.JoinBuilder.JoinType) HypervisorType(com.cloud.hypervisor.Hypervisor.HypervisorType) Type(com.cloud.host.Host.Type) PermissionDeniedException(com.cloud.exception.PermissionDeniedException) VirtualMachineProfile(com.cloud.vm.VirtualMachineProfile) DedicatedResourceVO(com.cloud.dc.DedicatedResourceVO) Domain(com.cloud.domain.Domain)

Example 3 with Type

use of com.cloud.host.Host.Type in project cloudstack by apache.

the class ManagementServerImpl method listHostsForMigrationOfVM.

@Override
public Ternary<Pair<List<? extends Host>, Integer>, List<? extends Host>, Map<Host, Boolean>> listHostsForMigrationOfVM(final Long vmId, final Long startIndex, final Long pageSize, final String keyword) {
    final Account caller = getCaller();
    if (!_accountMgr.isRootAdmin(caller.getId())) {
        if (s_logger.isDebugEnabled()) {
            s_logger.debug("Caller is not a root admin, permission denied to migrate the VM");
        }
        throw new PermissionDeniedException("No permission to migrate VM, Only Root Admin can migrate a VM!");
    }
    final VMInstanceVO vm = _vmInstanceDao.findById(vmId);
    if (vm == null) {
        final InvalidParameterValueException ex = new InvalidParameterValueException("Unable to find the VM with given id");
        throw ex;
    }
    if (vm.getState() != State.Running) {
        if (s_logger.isDebugEnabled()) {
            s_logger.debug("VM is not running, cannot migrate the vm" + vm);
        }
        final InvalidParameterValueException ex = new InvalidParameterValueException("VM is not Running, cannot " + "migrate the vm with specified id");
        ex.addProxyObject(vm.getUuid(), "vmId");
        throw ex;
    }
    UserVmDetailVO userVmDetailVO = _UserVmDetailsDao.findDetail(vm.getId(), ApiConstants.BootType.UEFI.toString());
    if (userVmDetailVO != null) {
        s_logger.info(" Live Migration of UEFI enabled VM : " + vm.getInstanceName() + " is not supported");
        if ("legacy".equalsIgnoreCase(userVmDetailVO.getValue()) || "secure".equalsIgnoreCase(userVmDetailVO.getValue())) {
            // Return empty list.
            return new Ternary<Pair<List<? extends Host>, Integer>, List<? extends Host>, Map<Host, Boolean>>(new Pair<List<? extends Host>, Integer>(new ArrayList<HostVO>(), new Integer(0)), new ArrayList<Host>(), new HashMap<Host, Boolean>());
        }
    }
    if (_serviceOfferingDetailsDao.findDetail(vm.getServiceOfferingId(), GPU.Keys.pciDevice.toString()) != null) {
        s_logger.info(" Live Migration of GPU enabled VM : " + vm.getInstanceName() + " is not supported");
        // Return empty list.
        return new Ternary<Pair<List<? extends Host>, Integer>, List<? extends Host>, Map<Host, Boolean>>(new Pair<List<? extends Host>, Integer>(new ArrayList<HostVO>(), new Integer(0)), new ArrayList<Host>(), new HashMap<Host, Boolean>());
    }
    if (!vm.getHypervisorType().equals(HypervisorType.XenServer) && !vm.getHypervisorType().equals(HypervisorType.VMware) && !vm.getHypervisorType().equals(HypervisorType.KVM) && !vm.getHypervisorType().equals(HypervisorType.Ovm) && !vm.getHypervisorType().equals(HypervisorType.Hyperv) && !vm.getHypervisorType().equals(HypervisorType.LXC) && !vm.getHypervisorType().equals(HypervisorType.Simulator) && !vm.getHypervisorType().equals(HypervisorType.Ovm3)) {
        if (s_logger.isDebugEnabled()) {
            s_logger.debug(vm + " is not XenServer/VMware/KVM/Ovm/Hyperv/Ovm3, cannot migrate this VM.");
        }
        throw new InvalidParameterValueException("Unsupported Hypervisor Type for VM migration, we support " + "XenServer/VMware/KVM/Ovm/Hyperv/Ovm3 only");
    }
    if (vm.getType().equals(VirtualMachine.Type.User) && vm.getHypervisorType().equals(HypervisorType.LXC)) {
        throw new InvalidParameterValueException("Unsupported Hypervisor Type for User VM migration, we support XenServer/VMware/KVM/Ovm/Hyperv/Ovm3 only");
    }
    final long srcHostId = vm.getHostId();
    final Host srcHost = _hostDao.findById(srcHostId);
    if (srcHost == null) {
        if (s_logger.isDebugEnabled()) {
            s_logger.debug("Unable to find the host with id: " + srcHostId + " of this VM:" + vm);
        }
        final InvalidParameterValueException ex = new InvalidParameterValueException("Unable to find the host (with specified id) of VM with specified id");
        ex.addProxyObject(String.valueOf(srcHostId), "hostId");
        ex.addProxyObject(vm.getUuid(), "vmId");
        throw ex;
    }
    String srcHostVersion = srcHost.getHypervisorVersion();
    if (HypervisorType.KVM.equals(srcHost.getHypervisorType()) && srcHostVersion == null) {
        srcHostVersion = "";
    }
    // Check if the vm can be migrated with storage.
    boolean canMigrateWithStorage = false;
    if (VirtualMachine.Type.User.equals(vm.getType()) || HypervisorType.VMware.equals(vm.getHypervisorType())) {
        canMigrateWithStorage = _hypervisorCapabilitiesDao.isStorageMotionSupported(srcHost.getHypervisorType(), srcHostVersion);
    }
    // Check if the vm is using any disks on local storage.
    final VirtualMachineProfile vmProfile = new VirtualMachineProfileImpl(vm, null, _offeringDao.findById(vm.getId(), vm.getServiceOfferingId()), null, null);
    final List<VolumeVO> volumes = _volumeDao.findCreatedByInstance(vmProfile.getId());
    boolean usesLocal = false;
    for (final VolumeVO volume : volumes) {
        final DiskOfferingVO diskOffering = _diskOfferingDao.findById(volume.getDiskOfferingId());
        final DiskProfile diskProfile = new DiskProfile(volume, diskOffering, vmProfile.getHypervisorType());
        if (diskProfile.useLocalStorage()) {
            usesLocal = true;
            break;
        }
    }
    if (!canMigrateWithStorage && usesLocal) {
        throw new InvalidParameterValueException("Unsupported operation, VM uses Local storage, cannot migrate");
    }
    final Type hostType = srcHost.getType();
    Pair<List<HostVO>, Integer> allHostsPair = null;
    List<HostVO> allHosts = null;
    List<HostVO> hostsForMigrationWithStorage = null;
    final Map<Host, Boolean> requiresStorageMotion = new HashMap<Host, Boolean>();
    DataCenterDeployment plan = null;
    if (canMigrateWithStorage) {
        Long podId = !VirtualMachine.Type.User.equals(vm.getType()) ? srcHost.getPodId() : null;
        allHostsPair = searchForServers(startIndex, pageSize, null, hostType, null, srcHost.getDataCenterId(), podId, null, null, keyword, null, null, srcHost.getHypervisorType(), null, srcHost.getId());
        allHosts = allHostsPair.first();
        hostsForMigrationWithStorage = new ArrayList<>(allHosts);
        for (final VolumeVO volume : volumes) {
            StoragePool storagePool = _poolDao.findById(volume.getPoolId());
            Long volClusterId = storagePool.getClusterId();
            for (Iterator<HostVO> iterator = hostsForMigrationWithStorage.iterator(); iterator.hasNext(); ) {
                final Host host = iterator.next();
                String hostVersion = host.getHypervisorVersion();
                if (HypervisorType.KVM.equals(host.getHypervisorType()) && hostVersion == null) {
                    hostVersion = "";
                }
                if (volClusterId != null) {
                    if (storagePool.isLocal() || !host.getClusterId().equals(volClusterId) || usesLocal) {
                        if (storagePool.isManaged()) {
                            // At the time being, we do not support storage migration of a volume from managed storage unless the managed storage
                            // is at the zone level and the source and target storage pool is the same.
                            // If the source and target storage pool is the same and it is managed, then we still have to perform a storage migration
                            // because we need to create a new target volume and copy the contents of the source volume into it before deleting the
                            // source volume.
                            iterator.remove();
                        } else {
                            boolean hostSupportsStorageMigration = (srcHostVersion != null && srcHostVersion.equals(hostVersion)) || _hypervisorCapabilitiesDao.isStorageMotionSupported(host.getHypervisorType(), hostVersion);
                            if (hostSupportsStorageMigration && hasSuitablePoolsForVolume(volume, host, vmProfile)) {
                                requiresStorageMotion.put(host, true);
                            } else {
                                iterator.remove();
                            }
                        }
                    }
                } else {
                    if (storagePool.isManaged()) {
                        if (srcHost.getClusterId() != host.getClusterId()) {
                            if (storagePool.getPoolType() == Storage.StoragePoolType.PowerFlex) {
                                // Simply, changing volume access to host should work: grant access on dest host and revoke access on source host
                                continue;
                            }
                            // If the volume's storage pool is managed and at the zone level, then we still have to perform a storage migration
                            // because we need to create a new target volume and copy the contents of the source volume into it before deleting
                            // the source volume.
                            requiresStorageMotion.put(host, true);
                        }
                    }
                }
            }
        }
        plan = new DataCenterDeployment(srcHost.getDataCenterId(), podId, null, null, null, null);
    } else {
        final Long cluster = srcHost.getClusterId();
        if (s_logger.isDebugEnabled()) {
            s_logger.debug("Searching for all hosts in cluster " + cluster + " for migrating VM " + vm);
        }
        allHostsPair = searchForServers(startIndex, pageSize, null, hostType, null, null, null, cluster, null, keyword, null, null, null, null, srcHost.getId());
        allHosts = allHostsPair.first();
        plan = new DataCenterDeployment(srcHost.getDataCenterId(), srcHost.getPodId(), srcHost.getClusterId(), null, null, null);
    }
    final Pair<List<? extends Host>, Integer> otherHosts = new Pair<List<? extends Host>, Integer>(allHosts, allHostsPair.second());
    List<Host> suitableHosts = new ArrayList<Host>();
    final ExcludeList excludes = new ExcludeList();
    excludes.addHost(srcHostId);
    if (dpdkHelper.isVMDpdkEnabled(vm.getId())) {
        excludeNonDPDKEnabledHosts(plan, excludes);
    }
    // call affinitygroup chain
    final long vmGroupCount = _affinityGroupVMMapDao.countAffinityGroupsForVm(vm.getId());
    if (vmGroupCount > 0) {
        for (final AffinityGroupProcessor processor : _affinityProcessors) {
            processor.process(vmProfile, plan, excludes);
        }
    }
    if (vm.getType() == VirtualMachine.Type.User || vm.getType() == VirtualMachine.Type.DomainRouter) {
        final DataCenterVO dc = _dcDao.findById(srcHost.getDataCenterId());
        _dpMgr.checkForNonDedicatedResources(vmProfile, dc, excludes);
    }
    for (final HostAllocator allocator : hostAllocators) {
        if (canMigrateWithStorage) {
            suitableHosts = allocator.allocateTo(vmProfile, plan, Host.Type.Routing, excludes, hostsForMigrationWithStorage, HostAllocator.RETURN_UPTO_ALL, false);
        } else {
            suitableHosts = allocator.allocateTo(vmProfile, plan, Host.Type.Routing, excludes, HostAllocator.RETURN_UPTO_ALL, false);
        }
        if (suitableHosts != null && !suitableHosts.isEmpty()) {
            break;
        }
    }
    if (s_logger.isDebugEnabled()) {
        if (suitableHosts.isEmpty()) {
            s_logger.debug("No suitable hosts found");
        } else {
            s_logger.debug("Hosts having capacity and suitable for migration: " + suitableHosts);
        }
    }
    return new Ternary<Pair<List<? extends Host>, Integer>, List<? extends Host>, Map<Host, Boolean>>(otherHosts, suitableHosts, requiresStorageMotion);
}
Also used : Account(com.cloud.user.Account) StoragePool(com.cloud.storage.StoragePool) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) HostAllocator(com.cloud.agent.manager.allocator.HostAllocator) VolumeVO(com.cloud.storage.VolumeVO) InvalidParameterValueException(com.cloud.exception.InvalidParameterValueException) DiskOfferingVO(com.cloud.storage.DiskOfferingVO) ArrayList(java.util.ArrayList) ExcludeList(com.cloud.deploy.DeploymentPlanner.ExcludeList) List(java.util.List) AffinityGroupProcessor(org.apache.cloudstack.affinity.AffinityGroupProcessor) Pair(com.cloud.utils.Pair) SSHKeyPair(com.cloud.user.SSHKeyPair) ExcludeList(com.cloud.deploy.DeploymentPlanner.ExcludeList) DataCenterVO(com.cloud.dc.DataCenterVO) DataCenterDeployment(com.cloud.deploy.DataCenterDeployment) Ternary(com.cloud.utils.Ternary) VirtualMachineProfileImpl(com.cloud.vm.VirtualMachineProfileImpl) VMInstanceVO(com.cloud.vm.VMInstanceVO) Host(com.cloud.host.Host) DiskProfile(com.cloud.vm.DiskProfile) HostVO(com.cloud.host.HostVO) UserVmDetailVO(com.cloud.vm.UserVmDetailVO) ResourceObjectType(com.cloud.server.ResourceTag.ResourceObjectType) VlanType(com.cloud.dc.Vlan.VlanType) JoinType(com.cloud.utils.db.JoinBuilder.JoinType) ScopeType(com.cloud.storage.ScopeType) HypervisorType(com.cloud.hypervisor.Hypervisor.HypervisorType) Type(com.cloud.host.Host.Type) PermissionDeniedException(com.cloud.exception.PermissionDeniedException) VirtualMachineProfile(com.cloud.vm.VirtualMachineProfile)

Aggregations

HostAllocator (com.cloud.agent.manager.allocator.HostAllocator)3 VlanType (com.cloud.dc.Vlan.VlanType)3 DataCenterDeployment (com.cloud.deploy.DataCenterDeployment)3 ExcludeList (com.cloud.deploy.DeploymentPlanner.ExcludeList)3 PermissionDeniedException (com.cloud.exception.PermissionDeniedException)3 Host (com.cloud.host.Host)3 Type (com.cloud.host.Host.Type)3 HostVO (com.cloud.host.HostVO)3 HypervisorType (com.cloud.hypervisor.Hypervisor.HypervisorType)3 ResourceObjectType (com.cloud.server.ResourceTag.ResourceObjectType)3 DiskOfferingVO (com.cloud.storage.DiskOfferingVO)3 VolumeVO (com.cloud.storage.VolumeVO)3 Account (com.cloud.user.Account)3 SSHKeyPair (com.cloud.user.SSHKeyPair)3 Pair (com.cloud.utils.Pair)3 Ternary (com.cloud.utils.Ternary)3 JoinType (com.cloud.utils.db.JoinBuilder.JoinType)3 DiskProfile (com.cloud.vm.DiskProfile)3 VMInstanceVO (com.cloud.vm.VMInstanceVO)3 VirtualMachineProfile (com.cloud.vm.VirtualMachineProfile)3