)]}'
{"nova/api/openstack/placement/handlers/allocation.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"880a254e62a7022095720b3bc1ff0938e764ccce","unresolved":false,"context_lines":[{"line_number":85,"context_line":"# Update the allocation schema to achieve symmetry with the representation"},{"line_number":86,"context_line":"# used when GET /allocations/{consumer_uuid} is called."},{"line_number":87,"context_line":"# TODO(cdent): Starting from explicit, can refactor to remove duplication"},{"line_number":88,"context_line":"# with other schema later if needed."},{"line_number":89,"context_line":"ALLOCATION_SCHEMA_V1_11 \u003d {"},{"line_number":90,"context_line":"    \"type\": \"object\","},{"line_number":91,"context_line":"    \"properties\": {"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4b6375_0486f6dc","line":88,"updated":"2017-10-27 15:42:16.000000000","message":"I actually prefer the explicit here for the schema definition.","commit_id":"cdcb5ad122040970b0e85e9d3e75a0f16e0ea3b6"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"880a254e62a7022095720b3bc1ff0938e764ccce","unresolved":false,"context_lines":[{"line_number":108,"context_line":"                            \"patternProperties\": {"},{"line_number":109,"context_line":"                                \"^[0-9A-Z_]+$\": {"},{"line_number":110,"context_line":"                                    \"type\": \"integer\","},{"line_number":111,"context_line":"                                    \"minimum\": 1,"},{"line_number":112,"context_line":"                                }"},{"line_number":113,"context_line":"                            },"},{"line_number":114,"context_line":"                            \"additionalProperties\": False"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4b6375_e4d87af1","line":111,"updated":"2017-10-27 15:42:16.000000000","message":"For the \"allow 0-valued allocations to indicate a deletion of a particular resource from a set of allocations\" thing, I presume we\u0027ll have another microversion bump that relaxes this constraint, yes?","commit_id":"cdcb5ad122040970b0e85e9d3e75a0f16e0ea3b6"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"013511aa981418184464f0d42006e1bd0f82023b","unresolved":false,"context_lines":[{"line_number":108,"context_line":"                            \"patternProperties\": {"},{"line_number":109,"context_line":"                                \"^[0-9A-Z_]+$\": {"},{"line_number":110,"context_line":"                                    \"type\": \"integer\","},{"line_number":111,"context_line":"                                    \"minimum\": 1,"},{"line_number":112,"context_line":"                                }"},{"line_number":113,"context_line":"                            },"},{"line_number":114,"context_line":"                            \"additionalProperties\": False"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4b6375_caf4678a","line":111,"in_reply_to":"3f4b6375_2758d4f8","updated":"2017-10-27 16:46:18.000000000","message":"yup, I see it now, thanks.","commit_id":"cdcb5ad122040970b0e85e9d3e75a0f16e0ea3b6"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"2745239569a37f856bf76b1ceba7d0831c807fbe","unresolved":false,"context_lines":[{"line_number":108,"context_line":"                            \"patternProperties\": {"},{"line_number":109,"context_line":"                                \"^[0-9A-Z_]+$\": {"},{"line_number":110,"context_line":"                                    \"type\": \"integer\","},{"line_number":111,"context_line":"                                    \"minimum\": 1,"},{"line_number":112,"context_line":"                                }"},{"line_number":113,"context_line":"                            },"},{"line_number":114,"context_line":"                            \"additionalProperties\": False"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4b6375_2758d4f8","line":111,"in_reply_to":"3f4b6375_e4d87af1","updated":"2017-10-27 16:09:15.000000000","message":"yeah, in the POST changes it changes minProperties on allocations to 0","commit_id":"cdcb5ad122040970b0e85e9d3e75a0f16e0ea3b6"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"880a254e62a7022095720b3bc1ff0938e764ccce","unresolved":false,"context_lines":[{"line_number":188,"context_line":"                    \u0027VCPU\u0027: 3"},{"line_number":189,"context_line":"                }"},{"line_number":190,"context_line":"            }"},{"line_number":191,"context_line":"        }"},{"line_number":192,"context_line":"    }"},{"line_number":193,"context_line":"    \"\"\""},{"line_number":194,"context_line":"    return _allocations_dict(allocations,"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4b6375_043ef6d9","line":191,"updated":"2017-10-27 15:42:16.000000000","message":"please update the docstring representation above to have the project_id and user_id fields (with a comment about only 1.11+)","commit_id":"cdcb5ad122040970b0e85e9d3e75a0f16e0ea3b6"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"2745239569a37f856bf76b1ceba7d0831c807fbe","unresolved":false,"context_lines":[{"line_number":188,"context_line":"                    \u0027VCPU\u0027: 3"},{"line_number":189,"context_line":"                }"},{"line_number":190,"context_line":"            }"},{"line_number":191,"context_line":"        }"},{"line_number":192,"context_line":"    }"},{"line_number":193,"context_line":"    \"\"\""},{"line_number":194,"context_line":"    return _allocations_dict(allocations,"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4b6375_c7ca206d","line":191,"in_reply_to":"3f4b6375_043ef6d9","updated":"2017-10-27 16:09:15.000000000","message":"aye","commit_id":"cdcb5ad122040970b0e85e9d3e75a0f16e0ea3b6"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"a01077089834c8f6134c2206372f3ff6091e45a9","unresolved":false,"context_lines":[{"line_number":188,"context_line":"                    \u0027VCPU\u0027: 3"},{"line_number":189,"context_line":"                }"},{"line_number":190,"context_line":"            }"},{"line_number":191,"context_line":"        }"},{"line_number":192,"context_line":"    }"},{"line_number":193,"context_line":"    \"\"\""},{"line_number":194,"context_line":"    return _allocations_dict(allocations,"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4b6375_f0e49e3e","line":191,"in_reply_to":"3f4b6375_c7ca206d","updated":"2017-10-29 11:00:52.000000000","message":"Done","commit_id":"cdcb5ad122040970b0e85e9d3e75a0f16e0ea3b6"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"880a254e62a7022095720b3bc1ff0938e764ccce","unresolved":false,"context_lines":[{"line_number":213,"context_line":"              \u0027DISK_GB\u0027: 6,"},{"line_number":214,"context_line":"              \u0027VCPU\u0027: 3"},{"line_number":215,"context_line":"           }"},{"line_number":216,"context_line":"       }"},{"line_number":217,"context_line":"    }"},{"line_number":218,"context_line":"    \"\"\""},{"line_number":219,"context_line":"    return _allocations_dict(allocations, lambda x: x.consumer_id,"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4b6375_441d0e72","line":216,"updated":"2017-10-27 15:42:16.000000000","message":"Did we want to add project_id and user_id information to the response from `GET /resource_provider/{uuid}/allocations` as well? Seems it would be good to be consistent and just provide the project_id and user_id for both allocations representations?","commit_id":"cdcb5ad122040970b0e85e9d3e75a0f16e0ea3b6"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"2745239569a37f856bf76b1ceba7d0831c807fbe","unresolved":false,"context_lines":[{"line_number":213,"context_line":"              \u0027DISK_GB\u0027: 6,"},{"line_number":214,"context_line":"              \u0027VCPU\u0027: 3"},{"line_number":215,"context_line":"           }"},{"line_number":216,"context_line":"       }"},{"line_number":217,"context_line":"    }"},{"line_number":218,"context_line":"    \"\"\""},{"line_number":219,"context_line":"    return _allocations_dict(allocations, lambda x: x.consumer_id,"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4b6375_c7390040","line":216,"in_reply_to":"3f4b6375_441d0e72","updated":"2017-10-27 16:09:15.000000000","message":"I asked about that either on earlier reviews or maybe in IRC and we (matt and dan as I recall) chose to put it off to some other time, not least because while there is symmetry in shape here: allocations[$uuid][\u0027resources\u0027] the uuid is something different and the project_id and user_id have to go on the level of the uuid, not on the level of allocations as they do on the PUT and GET.\n\nSo I hope that we can continue to put it off until there is demand?","commit_id":"cdcb5ad122040970b0e85e9d3e75a0f16e0ea3b6"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"013511aa981418184464f0d42006e1bd0f82023b","unresolved":false,"context_lines":[{"line_number":213,"context_line":"              \u0027DISK_GB\u0027: 6,"},{"line_number":214,"context_line":"              \u0027VCPU\u0027: 3"},{"line_number":215,"context_line":"           }"},{"line_number":216,"context_line":"       }"},{"line_number":217,"context_line":"    }"},{"line_number":218,"context_line":"    \"\"\""},{"line_number":219,"context_line":"    return _allocations_dict(allocations, lambda x: x.consumer_id,"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4b6375_ea3cc331","line":216,"in_reply_to":"3f4b6375_c7390040","updated":"2017-10-27 16:46:18.000000000","message":"aye, yeah, that does make sense. OK, I\u0027m good with doing that (if at all) on a later patch.","commit_id":"cdcb5ad122040970b0e85e9d3e75a0f16e0ea3b6"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"2d8ebb07293477be83622af6c4799e76c37c3d59","unresolved":false,"context_lines":[{"line_number":188,"context_line":"                }"},{"line_number":189,"context_line":"            }"},{"line_number":190,"context_line":"        },"},{"line_number":191,"context_line":"        # project_id and user_id are added with microverion 1.12"},{"line_number":192,"context_line":"        \u0027project_id\u0027: PROJECT_ID,"},{"line_number":193,"context_line":"        \u0027user_id\u0027: USER_ID"},{"line_number":194,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f4b6375_c502f109","line":191,"updated":"2017-10-30 14:18:29.000000000","message":"thx for updating this docstring.","commit_id":"18c9442def5833fdfa26b5b1b11e30f0a5cb53a8"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"a25fff86c448dec64f3332957993e8cefde43a15","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        \"allocations\": {"},{"line_number":92,"context_line":"            \"type\": \"object\","},{"line_number":93,"context_line":"            \"minProperties\": 1,"},{"line_number":94,"context_line":"            # resource provider id"},{"line_number":95,"context_line":"            \"patternProperties\": {"},{"line_number":96,"context_line":"                \"^[0-9a-fA-F-]{36}$\": {"},{"line_number":97,"context_line":"                    \"type\": \"object\","}],"source_content_type":"text/x-python","patch_set":16,"id":"ff82abbf_f2675bb6","line":94,"range":{"start_line":94,"start_character":32,"end_line":94,"end_character":34},"updated":"2017-11-28 07:05:11.000000000","message":"s/id/uuid/","commit_id":"808323e0c53ae5459c5ca453b744f7a4e2d3a445"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"f25dfd16d937d08439e974400e5deaef3fb93ad0","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        \"allocations\": {"},{"line_number":92,"context_line":"            \"type\": \"object\","},{"line_number":93,"context_line":"            \"minProperties\": 1,"},{"line_number":94,"context_line":"            # resource provider id"},{"line_number":95,"context_line":"            \"patternProperties\": {"},{"line_number":96,"context_line":"                \"^[0-9a-fA-F-]{36}$\": {"},{"line_number":97,"context_line":"                    \"type\": \"object\","}],"source_content_type":"text/x-python","patch_set":16,"id":"ff82abbf_feb721f4","line":94,"range":{"start_line":94,"start_character":32,"end_line":94,"end_character":34},"in_reply_to":"ff82abbf_f2675bb6","updated":"2017-11-28 12:23:19.000000000","message":"Done","commit_id":"808323e0c53ae5459c5ca453b744f7a4e2d3a445"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"a25fff86c448dec64f3332957993e8cefde43a15","unresolved":false,"context_lines":[{"line_number":93,"context_line":"            \"minProperties\": 1,"},{"line_number":94,"context_line":"            # resource provider id"},{"line_number":95,"context_line":"            \"patternProperties\": {"},{"line_number":96,"context_line":"                \"^[0-9a-fA-F-]{36}$\": {"},{"line_number":97,"context_line":"                    \"type\": \"object\","},{"line_number":98,"context_line":"                    \"properties\": {"},{"line_number":99,"context_line":"                        # generation is optional"}],"source_content_type":"text/x-python","patch_set":16,"id":"ff82abbf_520c07eb","line":96,"range":{"start_line":96,"start_character":17,"end_line":96,"end_character":35},"updated":"2017-11-28 07:05:11.000000000","message":"Put it somewhere as a common variable?","commit_id":"808323e0c53ae5459c5ca453b744f7a4e2d3a445"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"a25fff86c448dec64f3332957993e8cefde43a15","unresolved":false,"context_lines":[{"line_number":105,"context_line":"                            \"minProperties\": 1,"},{"line_number":106,"context_line":"                            # resource class"},{"line_number":107,"context_line":"                            \"patternProperties\": {"},{"line_number":108,"context_line":"                                \"^[0-9A-Z_]+$\": {"},{"line_number":109,"context_line":"                                    \"type\": \"integer\","},{"line_number":110,"context_line":"                                    \"minimum\": 1,"},{"line_number":111,"context_line":"                                }"}],"source_content_type":"text/x-python","patch_set":16,"id":"ff82abbf_12faffbb","line":108,"range":{"start_line":108,"start_character":33,"end_line":108,"end_character":45},"updated":"2017-11-28 07:05:11.000000000","message":"This is the pattern of the resource class, we also should put it at somewhere as common variable.","commit_id":"808323e0c53ae5459c5ca453b744f7a4e2d3a445"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"a25fff86c448dec64f3332957993e8cefde43a15","unresolved":false,"context_lines":[{"line_number":119,"context_line":"            },"},{"line_number":120,"context_line":"            \"additionalProperties\": False"},{"line_number":121,"context_line":"        },"},{"line_number":122,"context_line":"        \"project_id\": {"},{"line_number":123,"context_line":"            \"type\": \"string\","},{"line_number":124,"context_line":"            \"minLength\": 1,"},{"line_number":125,"context_line":"            \"maxLength\": 255"},{"line_number":126,"context_line":"        },"},{"line_number":127,"context_line":"        \"user_id\": {"},{"line_number":128,"context_line":"            \"type\": \"string\","},{"line_number":129,"context_line":"            \"minLength\": 1,"},{"line_number":130,"context_line":"            \"maxLength\": 255"},{"line_number":131,"context_line":"        }"},{"line_number":132,"context_line":"    },"},{"line_number":133,"context_line":"    \"required\": ["},{"line_number":134,"context_line":"        \"allocations\","}],"source_content_type":"text/x-python","patch_set":16,"id":"ff82abbf_b2955335","line":131,"range":{"start_line":122,"start_character":8,"end_line":131,"end_character":9},"updated":"2017-11-28 07:05:11.000000000","message":"also duplicated with line 77","commit_id":"808323e0c53ae5459c5ca453b744f7a4e2d3a445"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"a25fff86c448dec64f3332957993e8cefde43a15","unresolved":false,"context_lines":[{"line_number":300,"context_line":"    allocation_objects \u003d []"},{"line_number":301,"context_line":"    for resource_provider_uuid, allocation in allocation_data.items():"},{"line_number":302,"context_line":"        try:"},{"line_number":303,"context_line":"            resource_provider \u003d rp_obj.ResourceProvider.get_by_uuid("},{"line_number":304,"context_line":"                context, resource_provider_uuid)"},{"line_number":305,"context_line":"        except exception.NotFound:"},{"line_number":306,"context_line":"            raise webob.exc.HTTPBadRequest("},{"line_number":307,"context_line":"                _(\"Allocation for resource provider \u0027%(rp_uuid)s\u0027 \""}],"source_content_type":"text/x-python","patch_set":16,"id":"ff82abbf_92de0f0f","line":304,"range":{"start_line":303,"start_character":12,"end_line":304,"end_character":48},"updated":"2017-11-28 07:05:11.000000000","message":"So we just ignore the generation which is passed in?","commit_id":"808323e0c53ae5459c5ca453b744f7a4e2d3a445"}],"nova/api/openstack/placement/handlers/allocation_candidate.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"69d107b20bff877a244aa026aa83d26ae5d14210","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        },"},{"line_number":72,"context_line":"        ..."},{"line_number":73,"context_line":"    ]"},{"line_number":74,"context_line":"\"\"\""},{"line_number":75,"context_line":"    results \u003d []"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    for ar in alloc_reqs:"}],"source_content_type":"text/x-python","patch_set":15,"id":"ff82abbf_8f2196b7","line":74,"range":{"start_line":74,"start_character":1,"end_line":74,"end_character":3},"updated":"2017-11-21 14:44:03.000000000","message":"indent, Mr. Dent.","commit_id":"6a7fd97d502db675cd8b171d99ffa137243cb8d7"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"722089eef4153e7c54bfae61be7df38ef02f8c68","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        },"},{"line_number":72,"context_line":"        ..."},{"line_number":73,"context_line":"    ]"},{"line_number":74,"context_line":"\"\"\""},{"line_number":75,"context_line":"    results \u003d []"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    for ar in alloc_reqs:"}],"source_content_type":"text/x-python","patch_set":15,"id":"ff82abbf_c1da0ae8","line":74,"range":{"start_line":74,"start_character":1,"end_line":74,"end_character":3},"in_reply_to":"ff82abbf_8f2196b7","updated":"2017-11-21 19:39:43.000000000","message":"mlargh! pep8 should help me with this sort of thing...","commit_id":"6a7fd97d502db675cd8b171d99ffa137243cb8d7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e0cb5f3da38f02ee878e5eebd13c25c8891ca0fa","unresolved":false,"context_lines":[{"line_number":89,"context_line":"    \"\"\"Turn supplied list of AllocationRequest objects into a list of dicts of"},{"line_number":90,"context_line":"    resources involved in the allocation request. The returned results is"},{"line_number":91,"context_line":"    intended to be able to be used as the body of a PUT"},{"line_number":92,"context_line":"    /allocations/{consumer_uuid} HTTP request, so therefore we return a list of"},{"line_number":93,"context_line":"    JSON objects that looks like the following:"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    ["}],"source_content_type":"text/x-python","patch_set":16,"id":"ff82abbf_2e37b04f","line":92,"updated":"2017-11-27 16:36:14.000000000","message":"prior to microversion 1.12","commit_id":"808323e0c53ae5459c5ca453b744f7a4e2d3a445"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"f25dfd16d937d08439e974400e5deaef3fb93ad0","unresolved":false,"context_lines":[{"line_number":89,"context_line":"    \"\"\"Turn supplied list of AllocationRequest objects into a list of dicts of"},{"line_number":90,"context_line":"    resources involved in the allocation request. The returned results is"},{"line_number":91,"context_line":"    intended to be able to be used as the body of a PUT"},{"line_number":92,"context_line":"    /allocations/{consumer_uuid} HTTP request, so therefore we return a list of"},{"line_number":93,"context_line":"    JSON objects that looks like the following:"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    ["}],"source_content_type":"text/x-python","patch_set":16,"id":"ff82abbf_1ebf65d1","line":92,"in_reply_to":"ff82abbf_2e37b04f","updated":"2017-11-28 12:23:19.000000000","message":"Done","commit_id":"808323e0c53ae5459c5ca453b744f7a4e2d3a445"}],"nova/api/openstack/placement/microversion.py":[{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"70e07d302c43b9be4c7523f4356be1004cd6d222","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    \u00271.11\u0027,  # Adds \u0027allocations\u0027 link to the GET /resource_providers response"},{"line_number":52,"context_line":"    \u00271.12\u0027,  # Add project_id and user_id to GET /allocations/{consumer_uuid}"},{"line_number":53,"context_line":"             # and PUT to /allocations/{consumer_uuid} in the same dict form"},{"line_number":54,"context_line":"             # as GET"},{"line_number":55,"context_line":"]"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"ff82abbf_d532685e","line":54,"updated":"2017-11-26 23:01:52.000000000","message":"If we should be as verbose as possible about microversion, it is good to mention the change in /allocation_candidates here, too.","commit_id":"808323e0c53ae5459c5ca453b744f7a4e2d3a445"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"f25dfd16d937d08439e974400e5deaef3fb93ad0","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    \u00271.11\u0027,  # Adds \u0027allocations\u0027 link to the GET /resource_providers response"},{"line_number":52,"context_line":"    \u00271.12\u0027,  # Add project_id and user_id to GET /allocations/{consumer_uuid}"},{"line_number":53,"context_line":"             # and PUT to /allocations/{consumer_uuid} in the same dict form"},{"line_number":54,"context_line":"             # as GET"},{"line_number":55,"context_line":"]"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"ff82abbf_1ed68529","line":54,"in_reply_to":"ff82abbf_d532685e","updated":"2017-11-28 12:23:19.000000000","message":"Done","commit_id":"808323e0c53ae5459c5ca453b744f7a4e2d3a445"}],"nova/api/openstack/placement/rest_api_version_history.rst":[{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"f1ef35e7feb90bc6a8b849f44f793e268fd90398","unresolved":false,"context_lines":[{"line_number":157,"context_line":"----------------------------------------------------"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"In version 1.11 the request body of a ``PUT /allocations/{consumer_uuid}``"},{"line_number":160,"context_line":"is expected to have an `object` for the ``alocations`` property, not as"},{"line_number":161,"context_line":"`array` as with earlier microversions. This puts the request body more in"},{"line_number":162,"context_line":"alignment with the structure of the ``GET /allocations/{consumer_uuid}``"},{"line_number":163,"context_line":"response body."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f4e5783_13218eb5","line":160,"updated":"2017-10-10 11:59:48.000000000","message":"typo: allocations","commit_id":"296848ebb42fb2b9c3eeb57ff345edcfc8c6151e"}],"nova/tests/functional/api/openstack/placement/gabbits/allocation-bad-class.yaml":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"69d107b20bff877a244aa026aa83d26ae5d14210","unresolved":false,"context_lines":[{"line_number":9,"context_line":"        content-type: application/json"},{"line_number":10,"context_line":"        # Using \u003c\u003d 1.11 allows the PUT /allocations/{uuid} below"},{"line_number":11,"context_line":"        # to work with the older request form."},{"line_number":12,"context_line":"        openStack-api-version: placement 1.11"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"tests:"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":15,"id":"ff82abbf_6a12005b","line":12,"range":{"start_line":12,"start_character":12,"end_line":12,"end_character":13},"updated":"2017-11-21 14:44:03.000000000","message":"s","commit_id":"6a7fd97d502db675cd8b171d99ffa137243cb8d7"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"722089eef4153e7c54bfae61be7df38ef02f8c68","unresolved":false,"context_lines":[{"line_number":9,"context_line":"        content-type: application/json"},{"line_number":10,"context_line":"        # Using \u003c\u003d 1.11 allows the PUT /allocations/{uuid} below"},{"line_number":11,"context_line":"        # to work with the older request form."},{"line_number":12,"context_line":"        openStack-api-version: placement 1.11"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"tests:"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":15,"id":"ff82abbf_61c3feee","line":12,"range":{"start_line":12,"start_character":12,"end_line":12,"end_character":13},"in_reply_to":"ff82abbf_6a12005b","updated":"2017-11-21 19:39:43.000000000","message":"good eYe","commit_id":"6a7fd97d502db675cd8b171d99ffa137243cb8d7"}],"nova/tests/functional/api/openstack/placement/gabbits/allocations-1-12.yaml":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"69d107b20bff877a244aa026aa83d26ae5d14210","unresolved":false,"context_lines":[{"line_number":6,"context_line":"        x-auth-token: admin"},{"line_number":7,"context_line":"        accept: application/json"},{"line_number":8,"context_line":"        content-type: application/json"},{"line_number":9,"context_line":"        OpenStack-API-Version: placement 1.12"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"tests:"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":15,"id":"ff82abbf_ca26acb8","line":9,"range":{"start_line":9,"start_character":8,"end_line":9,"end_character":29},"updated":"2017-11-21 14:44:03.000000000","message":"lowercase","commit_id":"6a7fd97d502db675cd8b171d99ffa137243cb8d7"}],"nova/tests/functional/api/openstack/placement/gabbits/resource-class-in-use.yaml":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"69d107b20bff877a244aa026aa83d26ae5d14210","unresolved":false,"context_lines":[{"line_number":11,"context_line":"        content-type: application/json"},{"line_number":12,"context_line":"        # We need version 1.11 as the PUT /allocations below is"},{"line_number":13,"context_line":"        # using the \u003c 1.12 data format."},{"line_number":14,"context_line":"        openStack-api-version: placement 1.11"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"tests:"},{"line_number":17,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":15,"id":"ff82abbf_ea4cd077","line":14,"range":{"start_line":14,"start_character":12,"end_line":14,"end_character":13},"updated":"2017-11-21 14:44:03.000000000","message":"s","commit_id":"6a7fd97d502db675cd8b171d99ffa137243cb8d7"}],"placement-api-ref/source/allocations.inc":[{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"9e1972e67060e0f985abcebbf0a3c5cf31fca341","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":".. rest_parameters:: parameters.yaml"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"  - consumer_uuid: consumer_uuid"},{"line_number":68,"context_line":"  - allocations: allocations_dict"},{"line_number":69,"context_line":"  - resources: resources"},{"line_number":70,"context_line":"  - project_id: project_id_body"},{"line_number":71,"context_line":"  - user_id: user_id_body"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Request example (microversions 1.12 - )"},{"line_number":74,"context_line":"---------------------------------------"}],"source_content_type":"text/x-c++src","patch_set":11,"id":"1f485f77_f3893726","line":71,"range":{"start_line":67,"start_character":0,"end_line":71,"end_character":25},"updated":"2017-11-13 03:03:37.000000000","message":"\u0027generation\u0027 parameter can be added with a description quoted from the spec; \u0027generation is optional and if present will be ignored. It is allowed to preserve symmetry\u0027 (with GET response).","commit_id":"7e351470e6252e40192828390bfcece5dcf95161"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"939c44d8b7d10a3255cd78f23f2569b25a4e96b4","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":".. rest_parameters:: parameters.yaml"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"  - consumer_uuid: consumer_uuid"},{"line_number":68,"context_line":"  - allocations: allocations_dict"},{"line_number":69,"context_line":"  - resources: resources"},{"line_number":70,"context_line":"  - project_id: project_id_body"},{"line_number":71,"context_line":"  - user_id: user_id_body"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Request example (microversions 1.12 - )"},{"line_number":74,"context_line":"---------------------------------------"}],"source_content_type":"text/x-c++src","patch_set":11,"id":"1f485f77_9bc824a6","line":71,"range":{"start_line":67,"start_character":0,"end_line":71,"end_character":25},"in_reply_to":"1f485f77_f3893726","updated":"2017-11-19 07:58:52.000000000","message":"Done","commit_id":"7e351470e6252e40192828390bfcece5dcf95161"}],"placement-api-ref/source/parameters.yaml":[{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"f1ef35e7feb90bc6a8b849f44f793e268fd90398","unresolved":false,"context_lines":[{"line_number":140,"context_line":"  required: true"},{"line_number":141,"context_line":"  min_version: 1.11"},{"line_number":142,"context_line":"  description: \u003e"},{"line_number":143,"context_line":"    A dictionary of resource allocations keyed by resource provider uuuid."},{"line_number":144,"context_line":"capacity:"},{"line_number":145,"context_line":"  type: integer"},{"line_number":146,"context_line":"  in: body"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5f4e5783_130aae25","line":143,"updated":"2017-10-10 11:59:48.000000000","message":"typo: uuid","commit_id":"296848ebb42fb2b9c3eeb57ff345edcfc8c6151e"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"9e1972e67060e0f985abcebbf0a3c5cf31fca341","unresolved":false,"context_lines":[{"line_number":226,"context_line":"  required: true"},{"line_number":227,"context_line":"  description: \u003e"},{"line_number":228,"context_line":"    A dictionary of allocation records keyed by consumer uuid."},{"line_number":229,"context_line":"resource_provider_generation: \u0026resource_provider_generation"},{"line_number":230,"context_line":"  type: integer"},{"line_number":231,"context_line":"  in: body"},{"line_number":232,"context_line":"  required: true"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"1f485f77_d3519b10","line":229,"range":{"start_line":229,"start_character":30,"end_line":229,"end_character":59},"updated":"2017-11-13 03:03:37.000000000","message":"Not used anywhere. I guess you(@cdent?) were about to add the description of \u0027generation\u0027 parameter as I have just commented?","commit_id":"7e351470e6252e40192828390bfcece5dcf95161"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"939c44d8b7d10a3255cd78f23f2569b25a4e96b4","unresolved":false,"context_lines":[{"line_number":226,"context_line":"  required: true"},{"line_number":227,"context_line":"  description: \u003e"},{"line_number":228,"context_line":"    A dictionary of allocation records keyed by consumer uuid."},{"line_number":229,"context_line":"resource_provider_generation: \u0026resource_provider_generation"},{"line_number":230,"context_line":"  type: integer"},{"line_number":231,"context_line":"  in: body"},{"line_number":232,"context_line":"  required: true"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"1f485f77_7bc3288a","line":229,"range":{"start_line":229,"start_character":30,"end_line":229,"end_character":59},"in_reply_to":"1f485f77_d3519b10","updated":"2017-11-19 07:58:52.000000000","message":"Done","commit_id":"7e351470e6252e40192828390bfcece5dcf95161"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"8e9976ffdd3428430547a4caae2587b622f5cfe9","unresolved":false,"context_lines":[{"line_number":238,"context_line":"  required: false"},{"line_number":239,"context_line":"  description: \u003e"},{"line_number":240,"context_line":"    A consistent view marker that assists with the management of"},{"line_number":241,"context_line":"    concurrent resource provider updates. When optional the value"},{"line_number":242,"context_line":"    is ignored and present to preserve symmetry between read and"},{"line_number":243,"context_line":"    write representations."},{"line_number":244,"context_line":"resource_provider_links:"},{"line_number":245,"context_line":"  type: array"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"1f485f77_8201d86c","line":242,"range":{"start_line":241,"start_character":42,"end_line":242,"end_character":26},"updated":"2017-11-19 15:35:02.000000000","message":"This is confusing.  (I\u0027m reading this out of context, so maybe it makes sense in situ.)","commit_id":"e2e8175f04dd0328cfd132476e2f8edeea1d4ecb"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"672f4265a050ecf842fb8fc43325e033c2fa5a78","unresolved":false,"context_lines":[{"line_number":238,"context_line":"  required: false"},{"line_number":239,"context_line":"  description: \u003e"},{"line_number":240,"context_line":"    A consistent view marker that assists with the management of"},{"line_number":241,"context_line":"    concurrent resource provider updates. When optional the value"},{"line_number":242,"context_line":"    is ignored and present to preserve symmetry between read and"},{"line_number":243,"context_line":"    write representations."},{"line_number":244,"context_line":"resource_provider_links:"},{"line_number":245,"context_line":"  type: array"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"1f485f77_a5073e18","line":242,"range":{"start_line":241,"start_character":42,"end_line":242,"end_character":26},"in_reply_to":"1f485f77_8201d86c","updated":"2017-11-19 16:49:13.000000000","message":"It\u0027s a bit more clear in the rendered output where because \"required: false\" there\u0027s an \"optional\" in the same row as the description.\n\nBut maybe not clear enough?","commit_id":"e2e8175f04dd0328cfd132476e2f8edeea1d4ecb"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"00fe7e071b59f08812a89ce07f49afd25d4d42ab","unresolved":false,"context_lines":[{"line_number":238,"context_line":"  required: false"},{"line_number":239,"context_line":"  description: \u003e"},{"line_number":240,"context_line":"    A consistent view marker that assists with the management of"},{"line_number":241,"context_line":"    concurrent resource provider updates. When optional the value"},{"line_number":242,"context_line":"    is ignored and present to preserve symmetry between read and"},{"line_number":243,"context_line":"    write representations."},{"line_number":244,"context_line":"resource_provider_links:"},{"line_number":245,"context_line":"  type: array"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"1f485f77_a897133a","line":242,"range":{"start_line":241,"start_character":42,"end_line":242,"end_character":26},"in_reply_to":"1f485f77_a5073e18","updated":"2017-11-19 22:33:15.000000000","message":"I tried finding the rendered output earlier and did not succeed.  Can you help a guy out and put up a link?\n\nSo when the doc asks for `resource_provider_generation`, does it get the description text at L234-5?  And when it asks for `resource_provider_generation_optional` it gets this one?  If that\u0027s the case, can\u0027t you remove the \"When optional\" bit, since whenever this text shows up, it\u0027s always with the optional tag?\n\nAlso IMO \"ignored and present\" could use some punctuation to make it less weird.  \"The value is ignored; it is present to preserve symmetry...\"","commit_id":"e2e8175f04dd0328cfd132476e2f8edeea1d4ecb"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"616494b9855756395b76936501f8d565f6dea69d","unresolved":false,"context_lines":[{"line_number":238,"context_line":"  required: false"},{"line_number":239,"context_line":"  description: \u003e"},{"line_number":240,"context_line":"    A consistent view marker that assists with the management of"},{"line_number":241,"context_line":"    concurrent resource provider updates. When optional the value"},{"line_number":242,"context_line":"    is ignored and present to preserve symmetry between read and"},{"line_number":243,"context_line":"    write representations."},{"line_number":244,"context_line":"resource_provider_links:"},{"line_number":245,"context_line":"  type: array"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"ff82abbf_3156da08","line":242,"range":{"start_line":241,"start_character":42,"end_line":242,"end_character":26},"in_reply_to":"1f485f77_a897133a","updated":"2017-11-20 07:40:11.000000000","message":"Sorry, thought you knew where the rendered output was: http://logs.openstack.org/26/510626/12/check/build-placement-api-ref/8e73bf1/html/\n\nYou get there by clicking on the \u0027build-placement-api-ref\u0027 test results.\n\nYour description of what happens in correct. I added the \"When optional...\" sentence to try to explain what optional means (as in, why it is optional and why it doesn\u0027t break things if it is there or not there).\n\nYour punctuation suggestions are good. Will do.","commit_id":"e2e8175f04dd0328cfd132476e2f8edeea1d4ecb"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a36fd33f975f3eb49aafaec22841dc7ddf7b9059","unresolved":false,"context_lines":[{"line_number":238,"context_line":"  required: false"},{"line_number":239,"context_line":"  description: \u003e"},{"line_number":240,"context_line":"    A consistent view marker that assists with the management of"},{"line_number":241,"context_line":"    concurrent resource provider updates. When optional the value"},{"line_number":242,"context_line":"    is ignored and present to preserve symmetry between read and"},{"line_number":243,"context_line":"    write representations."},{"line_number":244,"context_line":"resource_provider_links:"},{"line_number":245,"context_line":"  type: array"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"ff82abbf_bd03980d","line":242,"range":{"start_line":241,"start_character":42,"end_line":242,"end_character":26},"in_reply_to":"ff82abbf_3156da08","updated":"2017-11-20 12:34:53.000000000","message":"Dah, sorry, I forgot the placement doc build was separate; kept trawling the compute docs and coming up empty.","commit_id":"e2e8175f04dd0328cfd132476e2f8edeea1d4ecb"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"9dce13d993e301b1ac1446a56608805912bcbecf","unresolved":false,"context_lines":[{"line_number":147,"context_line":"  type: object"},{"line_number":148,"context_line":"  in: body"},{"line_number":149,"context_line":"  required: true"},{"line_number":150,"context_line":"  min_version: 1.12"},{"line_number":151,"context_line":"  description: \u003e"},{"line_number":152,"context_line":"    A dictionary of resource allocations keyed by resource provider uuid."},{"line_number":153,"context_line":"capacity:"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"ff82abbf_5d5c977d","line":150,"range":{"start_line":150,"start_character":2,"end_line":150,"end_character":19},"updated":"2017-11-22 03:05:14.000000000","message":"Maybe it is not necessary.\nBecause it is used only in \"Request (microversions 1.12 - )\".","commit_id":"808323e0c53ae5459c5ca453b744f7a4e2d3a445"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"f25dfd16d937d08439e974400e5deaef3fb93ad0","unresolved":false,"context_lines":[{"line_number":147,"context_line":"  type: object"},{"line_number":148,"context_line":"  in: body"},{"line_number":149,"context_line":"  required: true"},{"line_number":150,"context_line":"  min_version: 1.12"},{"line_number":151,"context_line":"  description: \u003e"},{"line_number":152,"context_line":"    A dictionary of resource allocations keyed by resource provider uuid."},{"line_number":153,"context_line":"capacity:"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"ff82abbf_9efb75bf","line":150,"range":{"start_line":150,"start_character":2,"end_line":150,"end_character":19},"in_reply_to":"ff82abbf_5d5c977d","updated":"2017-11-28 12:23:19.000000000","message":"Done","commit_id":"808323e0c53ae5459c5ca453b744f7a4e2d3a445"}],"releasenotes/notes/bp-symmetric-allocations-6ff7b270c32dcb7d.yaml":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f6693d02dc95d1675d17ec8388c0a88560a93b7c","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    and `project_id` in the request body, these fields are added to the"},{"line_number":9,"context_line":"    `GET` response. In addition, the response body for"},{"line_number":10,"context_line":"    ``GET /allocation_candidates`` is updated so the allocations in the"},{"line_number":11,"context_line":"    ``alocation_requests`` object work with the new `PUT` format."}],"source_content_type":"text/x-yaml","patch_set":16,"id":"ff82abbf_4bea260f","line":11,"range":{"start_line":11,"start_character":6,"end_line":11,"end_character":15},"updated":"2017-11-27 15:43:36.000000000","message":"allocation","commit_id":"808323e0c53ae5459c5ca453b744f7a4e2d3a445"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"f25dfd16d937d08439e974400e5deaef3fb93ad0","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    and `project_id` in the request body, these fields are added to the"},{"line_number":9,"context_line":"    `GET` response. In addition, the response body for"},{"line_number":10,"context_line":"    ``GET /allocation_candidates`` is updated so the allocations in the"},{"line_number":11,"context_line":"    ``alocation_requests`` object work with the new `PUT` format."}],"source_content_type":"text/x-yaml","patch_set":16,"id":"ff82abbf_bef679d6","line":11,"range":{"start_line":11,"start_character":6,"end_line":11,"end_character":15},"in_reply_to":"ff82abbf_4bea260f","updated":"2017-11-28 12:23:19.000000000","message":"Done","commit_id":"808323e0c53ae5459c5ca453b744f7a4e2d3a445"}]}
