)]}'
{"nova/api/openstack/placement/handlers/inventory.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5eac9f57ca9fc9910e7acdaa1344dba4110a13d0","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        \"resource_provider_generation\": {"},{"line_number":32,"context_line":"            \"type\": \"integer\""},{"line_number":33,"context_line":"        },"},{"line_number":34,"context_line":"        \"total\": {"},{"line_number":35,"context_line":"            \"type\": \"integer\","},{"line_number":36,"context_line":"            \"maximum\": db.MAX_INT"},{"line_number":37,"context_line":"        },"},{"line_number":38,"context_line":"        \"reserved\": {"},{"line_number":39,"context_line":"            \"type\": \"integer\","},{"line_number":40,"context_line":"            \"maximum\": db.MAX_INT"},{"line_number":41,"context_line":"        },"},{"line_number":42,"context_line":"        \"min_unit\": {"},{"line_number":43,"context_line":"            \"type\": \"integer\","},{"line_number":44,"context_line":"            \"maximum\": db.MAX_INT,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a30ddce_75314a0b","line":41,"range":{"start_line":34,"start_character":0,"end_line":41,"end_character":10},"updated":"2017-03-07 18:10:41.000000000","message":"Don\u0027t we want a minimum of 0 here?","commit_id":"5bf85203fc7bb87f27e268d5c89f6a4a2c47e440"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"58b1686249fe23c5ddf220eb5889be22f1876fb1","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        \"resource_provider_generation\": {"},{"line_number":32,"context_line":"            \"type\": \"integer\""},{"line_number":33,"context_line":"        },"},{"line_number":34,"context_line":"        \"total\": {"},{"line_number":35,"context_line":"            \"type\": \"integer\","},{"line_number":36,"context_line":"            \"maximum\": db.MAX_INT"},{"line_number":37,"context_line":"        },"},{"line_number":38,"context_line":"        \"reserved\": {"},{"line_number":39,"context_line":"            \"type\": \"integer\","},{"line_number":40,"context_line":"            \"maximum\": db.MAX_INT"},{"line_number":41,"context_line":"        },"},{"line_number":42,"context_line":"        \"min_unit\": {"},{"line_number":43,"context_line":"            \"type\": \"integer\","},{"line_number":44,"context_line":"            \"maximum\": db.MAX_INT,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a1ff146_db821752","line":41,"range":{"start_line":34,"start_character":0,"end_line":41,"end_character":10},"in_reply_to":"3a1ff146_6f1c0514","updated":"2017-03-15 20:06:28.000000000","message":"What about a minimum of 0 for reserved? That would read more consistently, no?","commit_id":"5bf85203fc7bb87f27e268d5c89f6a4a2c47e440"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"4539ac698bf825641b839ccbc1b2583325d81cc2","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        \"resource_provider_generation\": {"},{"line_number":32,"context_line":"            \"type\": \"integer\""},{"line_number":33,"context_line":"        },"},{"line_number":34,"context_line":"        \"total\": {"},{"line_number":35,"context_line":"            \"type\": \"integer\","},{"line_number":36,"context_line":"            \"maximum\": db.MAX_INT"},{"line_number":37,"context_line":"        },"},{"line_number":38,"context_line":"        \"reserved\": {"},{"line_number":39,"context_line":"            \"type\": \"integer\","},{"line_number":40,"context_line":"            \"maximum\": db.MAX_INT"},{"line_number":41,"context_line":"        },"},{"line_number":42,"context_line":"        \"min_unit\": {"},{"line_number":43,"context_line":"            \"type\": \"integer\","},{"line_number":44,"context_line":"            \"maximum\": db.MAX_INT,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a1ff146_6f1c0514","line":41,"range":{"start_line":34,"start_character":0,"end_line":41,"end_character":10},"in_reply_to":"3a1ff146_af199d7b","updated":"2017-03-15 18:36:45.000000000","message":"right, minimum needed for total, not reserved","commit_id":"5bf85203fc7bb87f27e268d5c89f6a4a2c47e440"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"aaa0cdcc18ed814d2bb5eb17fc0ae42ab125b3a2","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        \"resource_provider_generation\": {"},{"line_number":32,"context_line":"            \"type\": \"integer\""},{"line_number":33,"context_line":"        },"},{"line_number":34,"context_line":"        \"total\": {"},{"line_number":35,"context_line":"            \"type\": \"integer\","},{"line_number":36,"context_line":"            \"maximum\": db.MAX_INT"},{"line_number":37,"context_line":"        },"},{"line_number":38,"context_line":"        \"reserved\": {"},{"line_number":39,"context_line":"            \"type\": \"integer\","},{"line_number":40,"context_line":"            \"maximum\": db.MAX_INT"},{"line_number":41,"context_line":"        },"},{"line_number":42,"context_line":"        \"min_unit\": {"},{"line_number":43,"context_line":"            \"type\": \"integer\","},{"line_number":44,"context_line":"            \"maximum\": db.MAX_INT,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a1ff146_af199d7b","line":41,"range":{"start_line":34,"start_character":0,"end_line":41,"end_character":10},"in_reply_to":"9a30ddce_75314a0b","updated":"2017-03-15 18:25:33.000000000","message":"Probably for total, but reserved can be 0.","commit_id":"5bf85203fc7bb87f27e268d5c89f6a4a2c47e440"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"059d9fe5e8ae476d3c0f4ba225a2bb46ebe4357a","unresolved":false,"context_lines":[{"line_number":108,"context_line":"INVENTORY_DEFAULTS \u003d {"},{"line_number":109,"context_line":"    \u0027reserved\u0027: 0,"},{"line_number":110,"context_line":"    \u0027min_unit\u0027: 1,"},{"line_number":111,"context_line":"    \u0027max_unit\u0027: db.MAX_INT,"},{"line_number":112,"context_line":"    \u0027step_size\u0027: 1,"},{"line_number":113,"context_line":"    \u0027allocation_ratio\u0027: 1.0"},{"line_number":114,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a1ff146_2f804d46","line":111,"updated":"2017-03-15 18:30:11.000000000","message":"I\u0027m not sure about this, given custom resource classes from Ironic:\n\nhttps://review.openstack.org/#/c/441544/7/nova/virt/ironic/driver.py@659\n\nI mean, this is a default, I get that, so I guess it\u0027s not an issue really as long as the request is explicit, but it almost seems better to not have defaults and make the client be explicit. That gets especially messy because only \u0027total\u0027 is required.","commit_id":"5bf85203fc7bb87f27e268d5c89f6a4a2c47e440"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1748b3e52a801da49e0465113e1242d9d02d7455","unresolved":false,"context_lines":[{"line_number":108,"context_line":"INVENTORY_DEFAULTS \u003d {"},{"line_number":109,"context_line":"    \u0027reserved\u0027: 0,"},{"line_number":110,"context_line":"    \u0027min_unit\u0027: 1,"},{"line_number":111,"context_line":"    \u0027max_unit\u0027: db.MAX_INT,"},{"line_number":112,"context_line":"    \u0027step_size\u0027: 1,"},{"line_number":113,"context_line":"    \u0027allocation_ratio\u0027: 1.0"},{"line_number":114,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a1ff146_6f916552","line":111,"in_reply_to":"3a1ff146_2f804d46","updated":"2017-03-15 18:36:21.000000000","message":"As noted in IRC, if we make min_unit at least 1, then max_unit of 0 as a default doesn\u0027t make sense. And if default step size is 1 and total is max of maxint, then with the max total and defaults, you can have a single unit of maxint for the inventory on this provider. However, since max_unit is optional, what if I\u0027m a lazy client and create an inventory record with total\u003d1024 but don\u0027t set max_unit, then someone can request an allocation of 2048, for example, right, which is going to be wrong - where does that fail?","commit_id":"5bf85203fc7bb87f27e268d5c89f6a4a2c47e440"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"4539ac698bf825641b839ccbc1b2583325d81cc2","unresolved":false,"context_lines":[{"line_number":108,"context_line":"INVENTORY_DEFAULTS \u003d {"},{"line_number":109,"context_line":"    \u0027reserved\u0027: 0,"},{"line_number":110,"context_line":"    \u0027min_unit\u0027: 1,"},{"line_number":111,"context_line":"    \u0027max_unit\u0027: db.MAX_INT,"},{"line_number":112,"context_line":"    \u0027step_size\u0027: 1,"},{"line_number":113,"context_line":"    \u0027allocation_ratio\u0027: 1.0"},{"line_number":114,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a1ff146_afed1df1","line":111,"in_reply_to":"3a1ff146_2f804d46","updated":"2017-03-15 18:36:45.000000000","message":"Yeah, I\u0027m cool changing the default values here to something that makes more sense.","commit_id":"5bf85203fc7bb87f27e268d5c89f6a4a2c47e440"}],"nova/tests/functional/api/openstack/placement/gabbits/inventory.yaml":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"e328a7f28f5abf1c771a6ade1bc36d55b621c349","unresolved":false,"context_lines":[{"line_number":69,"context_line":"      content-type: application/json"},{"line_number":70,"context_line":"  data:"},{"line_number":71,"context_line":"      resource_class: DISK_GB"},{"line_number":72,"context_line":"      total: -1"},{"line_number":73,"context_line":"  status: 400"},{"line_number":74,"context_line":"  response_strings:"},{"line_number":75,"context_line":"      - Bad inventory DISK_GB for resource provider $ENVIRON[\u0027RP_UUID\u0027]"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"1a430d35_720c1295","line":72,"updated":"2017-02-03 17:29:27.000000000","message":"not zero here despite \"name\"","commit_id":"5c2925894b4f2127d95f55ecdf1db1e414aaf04a"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"a3565a527427765a12adc35795adc2af3bb09944","unresolved":false,"context_lines":[{"line_number":69,"context_line":"      content-type: application/json"},{"line_number":70,"context_line":"  data:"},{"line_number":71,"context_line":"      resource_class: DISK_GB"},{"line_number":72,"context_line":"      total: -1"},{"line_number":73,"context_line":"  status: 400"},{"line_number":74,"context_line":"  response_strings:"},{"line_number":75,"context_line":"      - Bad inventory DISK_GB for resource provider $ENVIRON[\u0027RP_UUID\u0027]"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"1a430d35_35dd1415","line":72,"in_reply_to":"1a430d35_720c1295","updated":"2017-02-03 17:52:13.000000000","message":"death by copy/paste","commit_id":"5c2925894b4f2127d95f55ecdf1db1e414aaf04a"}]}
