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>