)]}'
{"placement/errors.py":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"06179da3c4aca39875fb734ce6aa4df45c9768e7","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    \u0027placement.resource_provider.cannot_delete_parent\u0027)"},{"line_number":48,"context_line":"RESOURCE_PROVIDER_NOT_FOUND \u003d \u0027placement.resource_provider.not_found\u0027"},{"line_number":49,"context_line":"ILLEGAL_DUPLICATE_QUERYPARAM \u003d \u0027placement.query.duplicate_key\u0027"},{"line_number":50,"context_line":"NOT_SUPPORTED_AT_MICROVERSION \u003d \u0027placement.query.not_supported_at_microversion\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_4ab7dc87","line":50,"updated":"2019-06-20 21:50:21.000000000","message":"I guess I can imagine ways in which placement.{query,body,whatever}.not_supported_at_microversion can be distinctly meaningful.\n\nBut if you are going to have those, then you also need the constant on the lhs to be distinct.","commit_id":"a669d5912db349573f56f6005d02aa2a20da371e"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"b1c4f5ca423515e031486f23aab024b42cc814c8","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    \u0027placement.resource_provider.cannot_delete_parent\u0027)"},{"line_number":48,"context_line":"RESOURCE_PROVIDER_NOT_FOUND \u003d \u0027placement.resource_provider.not_found\u0027"},{"line_number":49,"context_line":"ILLEGAL_DUPLICATE_QUERYPARAM \u003d \u0027placement.query.duplicate_key\u0027"},{"line_number":50,"context_line":"NOT_SUPPORTED_AT_MICROVERSION \u003d \u0027placement.query.not_supported_at_microversion\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_e067d1b6","line":50,"in_reply_to":"9fb8cfa7_0d0d7e3d","updated":"2019-06-20 23:02:57.000000000","message":"Right, your second paragraph is the subtext of my first: maybe just get rid of \u0027query.\u0027, would that be workable?","commit_id":"a669d5912db349573f56f6005d02aa2a20da371e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"34e9c54b46fd4cd1b09709c4f57fc5313050e5b4","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    \u0027placement.resource_provider.cannot_delete_parent\u0027)"},{"line_number":48,"context_line":"RESOURCE_PROVIDER_NOT_FOUND \u003d \u0027placement.resource_provider.not_found\u0027"},{"line_number":49,"context_line":"ILLEGAL_DUPLICATE_QUERYPARAM \u003d \u0027placement.query.duplicate_key\u0027"},{"line_number":50,"context_line":"NOT_SUPPORTED_AT_MICROVERSION \u003d \u0027placement.query.not_supported_at_microversion\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_0d0d7e3d","line":50,"in_reply_to":"9fb8cfa7_4ab7dc87","updated":"2019-06-20 22:43:51.000000000","message":"Yeah, I guess, if we were to have a route that accepted both queryparams and body payload? Is that a thing?\n\nOtherwise if it\u0027s one or the other then you know based on which operation you got the error on.\n\nNo harm in renaming the const though.","commit_id":"a669d5912db349573f56f6005d02aa2a20da371e"}],"placement/lib.py":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"06179da3c4aca39875fb734ce6aa4df45c9768e7","unresolved":false,"context_lines":[{"line_number":287,"context_line":"    \"\"\""},{"line_number":288,"context_line":"    def __init__(self, limit\u003dNone, group_policy\u003dNone,"},{"line_number":289,"context_line":"                 anchor_required_traits\u003dNone, anchor_forbidden_traits\u003dNone,"},{"line_number":290,"context_line":"                 anchor_required_aggs\u003dNone, anchor_forbidden_aggs\u003dNone):"},{"line_number":291,"context_line":"        \"\"\"Create a RequestWideParams."},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"        :param limit: An integer, N, representing the maximum number of"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_2a7148df","line":290,"updated":"2019-06-20 21:50:21.000000000","message":"I\u0027m increasingly confused (but it might be the late hour) by why it is anchor here and root on the outside.","commit_id":"a669d5912db349573f56f6005d02aa2a20da371e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"34e9c54b46fd4cd1b09709c4f57fc5313050e5b4","unresolved":false,"context_lines":[{"line_number":287,"context_line":"    \"\"\""},{"line_number":288,"context_line":"    def __init__(self, limit\u003dNone, group_policy\u003dNone,"},{"line_number":289,"context_line":"                 anchor_required_traits\u003dNone, anchor_forbidden_traits\u003dNone,"},{"line_number":290,"context_line":"                 anchor_required_aggs\u003dNone, anchor_forbidden_aggs\u003dNone):"},{"line_number":291,"context_line":"        \"\"\"Create a RequestWideParams."},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"        :param limit: An integer, N, representing the maximum number of"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_ed010a08","line":290,"in_reply_to":"9fb8cfa7_2a7148df","updated":"2019-06-20 22:43:51.000000000","message":"Maybe I\u0027m assuming too much, but from the outside, a query parameter with \"root\" in the key doesn\u0027t seem like it could be talking about a sharing root. Whereas from inside the code, we definitely do (and definitely need to) make that distinction. No?","commit_id":"a669d5912db349573f56f6005d02aa2a20da371e"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"b1c4f5ca423515e031486f23aab024b42cc814c8","unresolved":false,"context_lines":[{"line_number":287,"context_line":"    \"\"\""},{"line_number":288,"context_line":"    def __init__(self, limit\u003dNone, group_policy\u003dNone,"},{"line_number":289,"context_line":"                 anchor_required_traits\u003dNone, anchor_forbidden_traits\u003dNone,"},{"line_number":290,"context_line":"                 anchor_required_aggs\u003dNone, anchor_forbidden_aggs\u003dNone):"},{"line_number":291,"context_line":"        \"\"\"Create a RequestWideParams."},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"        :param limit: An integer, N, representing the maximum number of"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_a030f99f","line":290,"in_reply_to":"9fb8cfa7_ed010a08","updated":"2019-06-20 23:02:57.000000000","message":"Are the query parameters wrong?","commit_id":"a669d5912db349573f56f6005d02aa2a20da371e"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"06179da3c4aca39875fb734ce6aa4df45c9768e7","unresolved":false,"context_lines":[{"line_number":314,"context_line":"        \"\"\""},{"line_number":315,"context_line":"        self.limit \u003d limit"},{"line_number":316,"context_line":"        self.group_policy \u003d group_policy"},{"line_number":317,"context_line":"        # TODO(efried): Make a dict or namedtuple out of these four?"},{"line_number":318,"context_line":"        self.anchor_required_traits \u003d anchor_required_traits"},{"line_number":319,"context_line":"        self.anchor_forbidden_traits \u003d anchor_forbidden_traits"},{"line_number":320,"context_line":"        self.anchor_required_aggs \u003d anchor_required_aggs"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_0a5fa441","line":317,"updated":"2019-06-20 21:50:21.000000000","message":"I don\u0027t perceive much win in that.","commit_id":"a669d5912db349573f56f6005d02aa2a20da371e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"34e9c54b46fd4cd1b09709c4f57fc5313050e5b4","unresolved":false,"context_lines":[{"line_number":314,"context_line":"        \"\"\""},{"line_number":315,"context_line":"        self.limit \u003d limit"},{"line_number":316,"context_line":"        self.group_policy \u003d group_policy"},{"line_number":317,"context_line":"        # TODO(efried): Make a dict or namedtuple out of these four?"},{"line_number":318,"context_line":"        self.anchor_required_traits \u003d anchor_required_traits"},{"line_number":319,"context_line":"        self.anchor_forbidden_traits \u003d anchor_forbidden_traits"},{"line_number":320,"context_line":"        self.anchor_required_aggs \u003d anchor_required_aggs"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_600be123","line":317,"in_reply_to":"9fb8cfa7_0a5fa441","updated":"2019-06-20 22:43:51.000000000","message":"Ack, will drop the comment.","commit_id":"a669d5912db349573f56f6005d02aa2a20da371e"}]}
