Search in sources :

Example 16 with Filter

use of com.cloud.utils.db.Filter in project cloudstack by apache.

the class RemoteAccessVpnManagerImpl method searchForVpnUsers.

@Override
public Pair<List<? extends VpnUser>, Integer> searchForVpnUsers(ListVpnUsersCmd cmd) {
    String username = cmd.getUsername();
    Long id = cmd.getId();
    String keyword = cmd.getKeyword();
    Account caller = CallContext.current().getCallingAccount();
    List<Long> permittedAccounts = new ArrayList<Long>();
    Ternary<Long, Boolean, ListProjectResourcesCriteria> domainIdRecursiveListProject = new Ternary<Long, Boolean, ListProjectResourcesCriteria>(cmd.getDomainId(), cmd.isRecursive(), null);
    _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false);
    Long domainId = domainIdRecursiveListProject.first();
    Boolean isRecursive = domainIdRecursiveListProject.second();
    ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third();
    Filter searchFilter = new Filter(VpnUserVO.class, "username", true, cmd.getStartIndex(), cmd.getPageSizeVal());
    SearchBuilder<VpnUserVO> sb = _vpnUsersDao.createSearchBuilder();
    _accountMgr.buildACLSearchBuilder(sb, domainId, isRecursive, permittedAccounts, listProjectResourcesCriteria);
    sb.and("id", sb.entity().getId(), SearchCriteria.Op.EQ);
    sb.and("username", sb.entity().getUsername(), SearchCriteria.Op.EQ);
    sb.and("keyword", sb.entity().getUsername(), SearchCriteria.Op.LIKE);
    sb.and("state", sb.entity().getState(), Op.IN);
    SearchCriteria<VpnUserVO> sc = sb.create();
    _accountMgr.buildACLSearchCriteria(sc, domainId, isRecursive, permittedAccounts, listProjectResourcesCriteria);
    //list only active users
    sc.setParameters("state", State.Active, State.Add);
    if (keyword != null) {
        sc.setParameters("keyword", "%" + keyword + "%");
    }
    if (id != null) {
        sc.setParameters("id", id);
    }
    if (username != null) {
        sc.setParameters("username", username);
    }
    Pair<List<VpnUserVO>, Integer> result = _vpnUsersDao.searchAndCount(sc, searchFilter);
    return new Pair<List<? extends VpnUser>, Integer>(result.first(), result.second());
}
Also used : Account(com.cloud.user.Account) Ternary(com.cloud.utils.Ternary) VpnUserVO(com.cloud.network.VpnUserVO) ArrayList(java.util.ArrayList) ListProjectResourcesCriteria(com.cloud.projects.Project.ListProjectResourcesCriteria) Filter(com.cloud.utils.db.Filter) List(java.util.List) ArrayList(java.util.ArrayList) Pair(com.cloud.utils.Pair)

Example 17 with Filter

use of com.cloud.utils.db.Filter in project cloudstack by apache.

the class VMTemplateDaoImpl method listAllSystemVMTemplates.

@Override
public List<VMTemplateVO> listAllSystemVMTemplates() {
    SearchCriteria<VMTemplateVO> sc = tmpltTypeSearch.create();
    sc.setParameters("templateType", Storage.TemplateType.SYSTEM);
    Filter filter = new Filter(VMTemplateVO.class, "id", false, null, null);
    return listBy(sc, filter);
}
Also used : Filter(com.cloud.utils.db.Filter) VMTemplateVO(com.cloud.storage.VMTemplateVO)

Example 18 with Filter

use of com.cloud.utils.db.Filter in project cloudstack by apache.

the class VMTemplateDaoImpl method findSystemVMReadyTemplate.

@Override
public VMTemplateVO findSystemVMReadyTemplate(long zoneId, HypervisorType hypervisorType) {
    SearchCriteria<VMTemplateVO> sc = readySystemTemplateSearch.create();
    sc.setParameters("templateType", Storage.TemplateType.SYSTEM);
    sc.setParameters("state", VirtualMachineTemplate.State.Active);
    sc.setJoinParameters("tmplHyper", "type", Host.Type.Routing);
    sc.setJoinParameters("tmplHyper", "zoneId", zoneId);
    sc.setJoinParameters("vmTemplateJoinTemplateStoreRef", "downloadState", VMTemplateStorageResourceAssoc.Status.DOWNLOADED);
    // order by descending order of id
    List<VMTemplateVO> tmplts = listBy(sc, new Filter(VMTemplateVO.class, "id", false, null, null));
    if (tmplts.size() > 0) {
        if (hypervisorType == HypervisorType.Any) {
            return tmplts.get(0);
        }
        for (VMTemplateVO tmplt : tmplts) {
            if (tmplt.getHypervisorType() == hypervisorType) {
                return tmplt;
            }
        }
    }
    return null;
}
Also used : Filter(com.cloud.utils.db.Filter) VMTemplateVO(com.cloud.storage.VMTemplateVO)

Example 19 with Filter

use of com.cloud.utils.db.Filter in project cloudstack by apache.

the class VMTemplateDaoImpl method findRoutingTemplate.

@Override
public VMTemplateVO findRoutingTemplate(HypervisorType hType, String templateName) {
    SearchCriteria<VMTemplateVO> sc = tmpltTypeHyperSearch2.create();
    sc.setParameters("templateType", TemplateType.ROUTING);
    sc.setParameters("hypervisorType", hType);
    if (templateName != null) {
        sc.setParameters("templateName", templateName);
    }
    // order by descending order of id and select the first (this is going
    // to be the latest)
    List<VMTemplateVO> tmplts = listBy(sc, new Filter(VMTemplateVO.class, "id", false, null, 1l));
    if (tmplts.size() > 0) {
        return tmplts.get(0);
    } else {
        sc = tmpltTypeHyperSearch2.create();
        sc.setParameters("templateType", TemplateType.SYSTEM);
        sc.setParameters("hypervisorType", hType);
        if (templateName != null) {
            sc.setParameters("templateName", templateName);
        }
        // order by descending order of id and select the first (this is going
        // to be the latest)
        tmplts = listBy(sc, new Filter(VMTemplateVO.class, "id", false, null, 1l));
        if (tmplts.size() > 0) {
            return tmplts.get(0);
        } else {
            return null;
        }
    }
}
Also used : Filter(com.cloud.utils.db.Filter) VMTemplateVO(com.cloud.storage.VMTemplateVO)

Example 20 with Filter

use of com.cloud.utils.db.Filter in project cloudstack by apache.

the class NetworkServiceImpl method listDedicatedGuestVlanRanges.

@Override
public Pair<List<? extends GuestVlan>, Integer> listDedicatedGuestVlanRanges(ListDedicatedGuestVlanRangesCmd cmd) {
    Long id = cmd.getId();
    String accountName = cmd.getAccountName();
    Long domainId = cmd.getDomainId();
    Long projectId = cmd.getProjectId();
    String guestVlanRange = cmd.getGuestVlanRange();
    Long physicalNetworkId = cmd.getPhysicalNetworkId();
    Long zoneId = cmd.getZoneId();
    Long accountId = null;
    if (accountName != null && domainId != null) {
        if (projectId != null) {
            throw new InvalidParameterValueException("Account and projectId can't be specified together");
        }
        Account account = _accountDao.findActiveAccount(accountName, domainId);
        if (account == null) {
            InvalidParameterValueException ex = new InvalidParameterValueException("Unable to find account " + accountName);
            DomainVO domain = ApiDBUtils.findDomainById(domainId);
            String domainUuid = domainId.toString();
            if (domain != null) {
                domainUuid = domain.getUuid();
            }
            ex.addProxyObject(domainUuid, "domainId");
            throw ex;
        } else {
            accountId = account.getId();
        }
    }
    // set project information
    if (projectId != null) {
        Project project = _projectMgr.getProject(projectId);
        if (project == null) {
            InvalidParameterValueException ex = new InvalidParameterValueException("Unable to find project by id " + projectId);
            ex.addProxyObject(projectId.toString(), "projectId");
            throw ex;
        }
        accountId = project.getProjectAccountId();
    }
    SearchBuilder<AccountGuestVlanMapVO> sb = _accountGuestVlanMapDao.createSearchBuilder();
    sb.and("id", sb.entity().getId(), SearchCriteria.Op.EQ);
    sb.and("accountId", sb.entity().getAccountId(), SearchCriteria.Op.EQ);
    sb.and("guestVlanRange", sb.entity().getGuestVlanRange(), SearchCriteria.Op.EQ);
    sb.and("physicalNetworkId", sb.entity().getPhysicalNetworkId(), SearchCriteria.Op.EQ);
    if (zoneId != null) {
        SearchBuilder<PhysicalNetworkVO> physicalnetworkSearch = _physicalNetworkDao.createSearchBuilder();
        physicalnetworkSearch.and("zoneId", physicalnetworkSearch.entity().getDataCenterId(), SearchCriteria.Op.EQ);
        sb.join("physicalnetworkSearch", physicalnetworkSearch, sb.entity().getPhysicalNetworkId(), physicalnetworkSearch.entity().getId(), JoinBuilder.JoinType.INNER);
    }
    SearchCriteria<AccountGuestVlanMapVO> sc = sb.create();
    if (id != null) {
        sc.setParameters("id", id);
    }
    if (accountId != null) {
        sc.setParameters("accountId", accountId);
    }
    if (guestVlanRange != null) {
        sc.setParameters("guestVlanRange", guestVlanRange);
    }
    if (physicalNetworkId != null) {
        sc.setParameters("physicalNetworkId", physicalNetworkId);
    }
    if (zoneId != null) {
        sc.setJoinParameters("physicalnetworkSearch", "zoneId", zoneId);
    }
    Filter searchFilter = new Filter(AccountGuestVlanMapVO.class, "id", true, cmd.getStartIndex(), cmd.getPageSizeVal());
    Pair<List<AccountGuestVlanMapVO>, Integer> result = _accountGuestVlanMapDao.searchAndCount(sc, searchFilter);
    return new Pair<List<? extends GuestVlan>, Integer>(result.first(), result.second());
}
Also used : Account(com.cloud.user.Account) AccountGuestVlanMapVO(com.cloud.network.dao.AccountGuestVlanMapVO) NetworkDomainVO(com.cloud.network.dao.NetworkDomainVO) DomainVO(com.cloud.domain.DomainVO) Project(com.cloud.projects.Project) InvalidParameterValueException(com.cloud.exception.InvalidParameterValueException) Filter(com.cloud.utils.db.Filter) PhysicalNetworkVO(com.cloud.network.dao.PhysicalNetworkVO) ArrayList(java.util.ArrayList) List(java.util.List) Pair(com.cloud.utils.Pair)

Aggregations

Filter (com.cloud.utils.db.Filter)114 ArrayList (java.util.ArrayList)68 List (java.util.List)64 Pair (com.cloud.utils.Pair)58 Account (com.cloud.user.Account)46 InvalidParameterValueException (com.cloud.exception.InvalidParameterValueException)33 ListProjectResourcesCriteria (com.cloud.projects.Project.ListProjectResourcesCriteria)30 Ternary (com.cloud.utils.Ternary)30 TemplateFilter (com.cloud.template.VirtualMachineTemplate.TemplateFilter)27 DomainVO (com.cloud.domain.DomainVO)13 ExcludeList (com.cloud.deploy.DeploymentPlanner.ExcludeList)12 SSHKeyPair (com.cloud.user.SSHKeyPair)12 ResourceTagVO (com.cloud.tags.ResourceTagVO)11 Date (java.util.Date)10 PermissionDeniedException (com.cloud.exception.PermissionDeniedException)9 IPAddressVO (com.cloud.network.dao.IPAddressVO)8 VMTemplateVO (com.cloud.storage.VMTemplateVO)5 SearchCriteria (com.cloud.utils.db.SearchCriteria)5 CloudRuntimeException (com.cloud.utils.exception.CloudRuntimeException)5 CloudAuthenticationException (com.cloud.exception.CloudAuthenticationException)4