blob: 69b9e4d2beb03e6a4d16c6c4dceadd46c78dedf1 [file] [log] [blame]
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
%BOOK_ENTITIES;
]>
<!-- Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<section id="change-to-behavior-of-list-commands">
<title>Change to Behavior of List Commands</title>
<para>There was a major change in how our List* API commands work in CloudStack 3.0 compared to
2.2.x. The rules below apply only for managed resources – those that belong to an account,
domain, or project. They are irrelevant for the List* commands displaying unmanaged (system)
resources, such as hosts, clusters, and external network resources.</para>
<para>When no parameters are passed in to the call, the caller sees only resources owned by the
caller (even when the caller is the administrator). Previously, the administrator saw everyone
else's resources by default.</para>
<para>When accountName and domainId are passed in:</para>
<itemizedlist>
<listitem>
<para>The caller sees the resources dedicated to the account specified.</para>
</listitem>
<listitem>
<para>If the call is executed by a regular user, the user is authorized to specify only the
user's own account and domainId.</para>
</listitem>
<listitem>
<para>If the caller is a domain administrator, CloudStack performs an authorization check to
see whether the caller is permitted to view resources for the given account and
domainId.</para>
</listitem>
</itemizedlist>
<para>When projectId is passed in, only resources belonging to that project are listed.</para>
<para>When domainId is passed in, the call returns only resources belonging to the domain
specified. To see the resources of subdomains, use the parameter isRecursive=true. Again, the
regular user can see only resources owned by that user, the root administrator can list
anything, and a domain administrator is authorized to see only resources of the administrator's
own domain and subdomains.</para>
<para>To see all resources the caller is authorized to see, except for Project resources, use the
parameter listAll=true.</para>
<para>To see all Project resources the caller is authorized to see, use the parameter
projectId=-1.</para>
<para>There is one API command that doesn't fall under the rules above completely: the
listTemplates command. This command has its own flags defining the list rules:</para>
<informaltable frame="all">
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colname="c1"/>
<colspec colname="c2"/>
<thead>
<row>
<entry><para>listTemplates Flag</para></entry>
<entry><para>Description</para></entry>
</row>
</thead>
<tbody>
<row>
<entry><para>featured</para></entry>
<entry><para>Returns templates that have been marked as featured and
public.</para></entry>
</row>
<row>
<entry><para>self</para></entry>
<entry><para>Returns templates that have been registered or created by the calling
user.</para></entry>
</row>
<row>
<entry><para>selfexecutable</para></entry>
<entry><para>Same as self, but only returns templates that are ready to be deployed
with.</para></entry>
</row>
<row>
<entry><para>sharedexecutable</para></entry>
<entry><para>Ready templates that have been granted to the calling user by another
user.</para></entry>
</row>
<row>
<entry><para>executable</para></entry>
<entry><para>Templates that are owned by the calling user, or public templates, that can
be used to deploy a new VM.</para></entry>
</row>
<row>
<entry><para>community</para></entry>
<entry><para>Returns templates that have been marked as public but not
featured.</para></entry>
</row>
<row>
<entry><para>all</para></entry>
<entry><para>Returns all templates (only usable by admins).</para></entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>The &PRODUCT; UI on a general view will display all resources that the logged-in user is
authorized to see, except for project resources. To see the project resources, select the
project view.</para>
</section>