Wido den Hollander created CLOUDSTACK-1054: ----------------------------------------------
Summary: ListDomains does not list all domains when the name is specified Key: CLOUDSTACK-1054 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-1054 Project: CloudStack Issue Type: Bug Security Level: Public (Anyone can view this level - this is the default.) Components: API Affects Versions: 4.0.0, 4.0.1, 4.1.0 Reporter: Wido den Hollander Priority: Minor Fix For: Future The documentation for listDomains says that you can list all domains by specifying the 'name'. id: List domain by domain ID. name: List domain by domain name. When doing this however you don't get the expected result. I turned on MySQL debugging and it showed me this query: SELECT domain.id, domain.parent, domain.name, domain.owner, domain.path, domain.level, domain.removed, domain.child_count, domain.next_child_seq, domain.state, domain.network_domain, domain.uuid FROM domain WHERE domain.id = 1 AND domain.name LIKE _binary'%pcextreme%' AND domain.state = 'Active' AND domain.removed IS NULL ORDER BY domain.id ASC LIMIT 0, 500 What I noticed is 'domain.id = 1'. I haven't specified an ID and still it is set? Going into the code (DomainManagerImpl) I found: Long domainId = cmd.getId(); boolean listAll = cmd.listAll(); boolean isRecursive = false; if (domainId != null) { Domain domain = getDomain(domainId); if (domain == null) { throw new InvalidParameterValueException("Domain id=" + domainId + " doesn't exist"); } _accountMgr.checkAccess(caller, domain); } else { domainId = caller.getDomainId(); if (listAll) { isRecursive = true; } } So if domainId is not specified it is automatically set to the ID of the domain I'm in? Since I'm admin my ID is set to 1. This is odd behaviour since I want the domain specified by the name, not by my ID. I understand that this is a security flaw if every user can query for every domain, but it is kind of weird. The description for the 'name' argument isn't clear either. The code does: name LIKE '%<name>%' so it is actually a wildcard search which the documentation does not say. I'm thinking about checking if the user is an admin and if that is the case not setting the domainId to the domain where the user is in. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira