I reproduct the bug.
firstly, close api_rate_limit.

use the command below to create 2000 flavor.
$ for i in {1..2000}; do nova flavor-create f-$i $i 1024 20 1 ;done;

then I use novaclient to list all flavor
$ time nova flavor-list

+------+---------+-----------+------+-----------+------+-------+-------------+-----------+-------------+
| ID   | Name    | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | 
Is_Public | extra_specs |
+------+---------+-----------+------+-----------+------+-------+-------------+-----------+-------------+
| 1    | m1.tiny | 512       | 0    | 0         |      | 1     | 1.0         | 
True      | {}          |
| 10   | f-10    | 1024      | 20   | 0         |      | 1     | 1.0         | 
True      | {}          |
| 100  | f-100   | 1024      | 20   | 0         |      | 1     | 1.0         | 
True      | {}          |
| 1000 | f-1000  | 1024      | 20   | 0         |      | 1     | 1.0         | 
True      | {}          |
| 1001 | f-1001  | 1024      | 20   | 0         |      | 1     | 1.0         | 
True      | {}          |
| 1002 | f-1002  | 1024      | 20   | 0         |      | 1     | 1.0         | 
True      | {}          |
| 1003 | f-1003  | 1024      | 20   | 0         |      | 1     | 1.0         | 
True      | {}          |
| 1004 | f-1004  | 1024      | 20   | 0         |      | 1     | 1.0         | 
True      | {}          |
| 1005 | f-1005  | 1024      | 20   | 0         |      | 1     | 1.0         | 
True      | {}          |
| 1006 | f-1006  | 1024      | 20   | 0         |      | 1     | 1.0         | 
True      | {}          |
| 1007 | f-1007  | 1024      | 20   | 0         |      | 1     | 1.0         | 
True      | {}          |
| 1008 | f-1008  | 1024      | 20   | 0         |      | 1     | 1.0         | 
True      | {}          |
| 1009 | f-1009  | 1024      | 20   | 0         |      | 1     | 1.0         | 
True      | {}          |
| 101  | f-101   | 1024      | 20   | 0         |      | 1     | 1.0         | 
True      | {}          |
| 1010 | f-1010  | 1024      | 20   | 0         |      | 1     | 1.0         | 
True      | {}          |
| 1011 | f-1011  | 1024      | 20   | 0         |      | 1     | 1.0         | 
True      | {}          |
| 1012 | f-1012  | 1024      | 20   | 0         |      | 1     | 1.0         | 
True      | {}          |
| 1013 | f-1013  | 1024      | 20   | 0         |      | 1     | 1.0         | 
True      | {}          |
| 1014 | f-1014  | 1024      | 20   | 0         |      | 1     | 1.0         | 
True      | {}          |
......
| 1886 | f-1886  | 1024      | 20   | 0         |      | 1     | 1.0         | 
True      | {}          |
| 1887 | f-1887  | 1024      | 20   | 0         |      | 1     | 1.0         | 
True      | {}          |
| 1888 | f-1888  | 1024      | 20   | 0         |      | 1     | 1.0         | 
True      | {}          |
| 1889 | f-1889  | 1024      | 20   | 0         |      | 1     | 1.0         | 
True      | {}          |
| 189  | f-189   | 1024      | 20   | 0         |      | 1     | 1.0         | 
True      | {}          |
| 1890 | f-1890  | 1024      | 20   | 0         |      | 1     | 1.0         | 
True      | {}          |
| 1891 | f-1891  | 1024      | 20   | 0         |      | 1     | 1.0         | 
True      | {}          |
| 1892 | f-1892  | 1024      | 20   | 0         |      | 1     | 1.0         | 
True      | {}          |
| 1893 | f-1893  | 1024      | 20   | 0         |      | 1     | 1.0         | 
True      | {}          |
| 1894 | f-1894  | 1024      | 20   | 0         |      | 1     | 1.0         | 
True      | {}          |
| 1895 | f-1895  | 1024      | 20   | 0         |      | 1     | 1.0         | 
True      | {}          |
| 1896 | f-1896  | 1024      | 20   | 0         |      | 1     | 1.0         | 
True      | {}          |
| 1897 | f-1897  | 1024      | 20   | 0         |      | 1     | 1.0         | 
True      | {}          |
| 1898 | f-1898  | 1024      | 20   | 0         |      | 1     | 1.0         | 
True      | {}          |
| 1899 | f-1899  | 1024      | 20   | 0         |      | 1     | 1.0         | 
True      | {}          |
+------+---------+-----------+------+-----------+------+-------+-------------+-----------+-------------+

real    2m11.275s
user    0m3.280s
sys     0m0.456s

Because novaclient need to get each flavor's extra_specs detail, in fact
it make thousands of request to nova-api. which make the command very
slow.

If I just hit the REST API by
$ time http get localhost:8774/v2/33027e9bc0914bc88414bae31c6ecc9f/flavors 
....
        {
            "id": "1899", 
            "links": [
                {
                    "href": 
"http://localhost:8774/v2/33027e9bc0914bc88414bae31c6ecc9f/flavors/1899";, 
                    "rel": "self"
                }, 
                {
                    "href": 
"http://localhost:8774/33027e9bc0914bc88414bae31c6ecc9f/flavors/1899";, 
                    "rel": "bookmark"
                }
            ], 
            "name": "f-1899"
        }
    ]
}

real    0m2.777s
user    0m1.608s
sys     0m0.192s

The response time is fine, but the response flavors is not complete(
just to f-1899) neither.


** Also affects: python-novaclient
   Importance: Undecided
       Status: New

** Changed in: nova
       Status: New => Confirmed

** Changed in: python-novaclient
       Status: New => Confirmed

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1166455

Title:
  nova flavor-list only shows 1000 flavors

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1166455/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to