Hi Folks,<br><br>In the review comments of my project-specific-flavor blueprint patch, <a href="https://review.openstack.org/#/c/11270/">https://review.openstack.org/#/c/11270/</a><br>Kevin raised a question about response value for public flavor access list. And I'd like to posted here for discussion.<br>

<br class="Apple-interchange-newline">Sorry for the following long description area, just to illustrate the background here. <div>Please scroll down and you'll see the question at the end of this email. <br><br>Quick Background<br>

--<br>Project specific flavor is meant to give a flavor management choice that, some flavor (non-public) types are only accessible for some projects, instead of globally visible. And this flavor access list is manageable through this API and corresponding nova client bindings.<div>

<br></div><div>Quick Demo<div>--</div><div><font face="courier new, monospace"># Adding a new private flavor, and it is not accessible by default</font></div><div><span style="font-family:'courier new',monospace">stack@precise64:~$ </span><font face="courier new, monospace">nova flavor-create --is_public false m1.special 801 512 0 1</font></div>

<div><font face="courier new, monospace">stack@precise64:~$ nova flavor-list</font>
</div><div><div><font face="courier new, monospace">+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+</font></div><div><font face="courier new, monospace">| ID | Name      | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public |</font></div>

<div><font face="courier new, monospace">+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+</font></div><div><font face="courier new, monospace">| 1  | m1.tiny   | 512       | 0    | 0         |      | 1     | 1.0         | True      |</font></div>

<div><font face="courier new, monospace">| 2  | m1.small  | 2048      | 20   | 0         |      | 1     | 1.0         | True      |</font></div><div><font face="courier new, monospace">| 3  | m1.medium | 4096      | 40   | 0         |      | 2     | 1.0         | True      |</font></div>

<div><font face="courier new, monospace">| 4  | m1.large  | 8192      | 80   | 0         |      | 4     | 1.0         | True      |</font></div><div><font face="courier new, monospace">| 5  | m1.xlarge | 16384     | 160  | 0         |      | 8     | 1.0         | True      |</font></div>

<div><font face="courier new, monospace">+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+</font></div></div><div><font face="courier new, monospace"><br></font></div><div># Adding the current project to flavor 801's access list<br>

<span style="font-family:'courier new',monospace">stack@precise64:~</span><font face="courier new, monospace">$ nova flavor-access-add 801 55ea56479a6a48d699acb7afe22f00f7<br>+-----------+----------------------------------+<br>

| Flavor_ID | Tenant_ID                        |<br>+-----------+----------------------------------+<br>| 801       | 55ea56479a6a48d699acb7afe22f00f7 |<br>+-----------+----------------------------------+</font><br><font face="courier new, monospace"><br>

# Then this flavor (801) is accessible from this project.<br></font><span style="font-family:'courier new',monospace">stack@precise64:~</span><font face="courier new, monospace">$ nova flavor-list<br>+-----+------------+-----------+------+-----------+------+-------+-------------+-----------+<br>

| ID  | Name       | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public |<br>+-----+------------+-----------+------+-----------+------+-------+-------------+-----------+<br>| 1   | m1.tiny    | 512       | 0    | 0         |      | 1     | 1.0         | True      |<br>

| 2   | m1.small   | 2048      | 20   | 0         |      | 1     | 1.0         | True      |<br>| 3   | m1.medium  | 4096      | 40   | 0         |      | 2     | 1.0         | True      |<br>| 4   | m1.large   | 8192      | 80   | 0         |      | 4     | 1.0         | True      |<br>

| 5   | m1.xlarge  | 16384     | 160  | 0         |      | 8     | 1.0         | True      |<br>| 801 | m1.special | 512       | 0    | 0         |      | 1     | 1.0         | False     |<br>+-----+------------+-----------+------+-----------+------+-------+-------------+-----------+<br>

<br># Retrieve flavor 801 access information<br></font><span style="font-family:'courier new',monospace">stack@precise64:~</span><font face="courier new, monospace">$ nova flavor-access-list --flavor 801<br>+-----------+----------------------------------+<br>

| Flavor_ID | Tenant_ID                        |<br>+-----------+----------------------------------+<br>| 801       | 55ea56479a6a48d699acb7afe22f00f7 |<br>+-----------+----------------------------------+<br><br></font><span style="font-family:'courier new',monospace"># Retrieve public flavor access information</span> <font face="courier new, monospace"><br>

</font><span style="font-family:'courier new',monospace">stack@precise64:~</span><font face="courier new, monospace">$ nova flavor-access-list --flavor 1<br>+-----------+-------------+<br>| Flavor_ID | Tenant_ID   |<br>

+-----------+-------------+<br>| 1         | ALL TENANTS |<br>+-----------+-------------+</font><br><br>Question<br>--<br>For the default public flavor types, is this "ALL TENANTS" an acceptable solution?  It was intended to provide a human readable message for public flaovrs. And, to differentiate from a non-public flavor with no project access configured.<br>

<br>Any better way to approach? Or, just leave it as it is? </div><div><br></div><div>Best Regards,<br>--<br>Qiu Yu<br><a href="http://www.unicell.info">http://www.unicell.info</a></div></div></div>