When a flavor has resource extra_specs disabling all standard fields, nova tries to make a request to the placements API with no resources
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Opinion
|
Wishlist
|
Unassigned |
Bug Description
When a flavor is defined like:
+------
| Field | Value |
+------
| OS-FLV-
| OS-FLV-
| access_project_ids | None |
| disk | 0 |
| id | 2f41a9c0-
| name | test2 |
| os-flavor-
| properties | resources:
| ram | 256 |
| rxtx_factor | 1.0 |
| swap | |
| vcpus | 1 |
+------
Then it will disable all the standard resources, and pop them from the resources dictionary here:
the resources dictionary is then empty but nova still tries to use it to make a request to the placements API. This results in a error message like:
ERROR nova.scheduler.
Aug 03 12:40:11 qa-cld-m1-neo4 nova-scheduler[
Aug 03 12:40:11 qa-cld-m1-neo4 nova-scheduler[
Aug 03 12:40:11 qa-cld-m1-neo4 nova-scheduler[
Aug 03 12:40:11 qa-cld-m1-neo4 nova-scheduler[
Aug 03 12:40:11 qa-cld-m1-neo4 nova-scheduler[
Aug 03 12:40:11 qa-cld-m1-neo4 nova-scheduler[
Aug 03 12:40:11 qa-cld-m1-neo4 nova-scheduler[
Aug 03 12:40:11 qa-cld-m1-neo4 nova-scheduler[
Aug 03 12:40:11 qa-cld-m1-neo4 nova-scheduler[
Nova should catch the case when the flavor has removed all filters and provide a more useful error message to indicate what the operator as done wrong.
So, this really seems like going out of the way to break the system. A better error message would be fine if it was submitted, but this is very unlikely to hit in the real world.