)]}'
{"api-ref/source/v2/parameters.yaml":[{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"02393dd2bb25e1ce815324cd17bdc63c1cb41230","unresolved":false,"context_lines":[{"line_number":643,"context_line":"  in: body"},{"line_number":644,"context_line":"  required: true"},{"line_number":645,"context_line":"  type: string"},{"line_number":646,"context_line":"created_at_resource:"},{"line_number":647,"context_line":"  description: |"},{"line_number":648,"context_line":"    Time at which the resource has been created."},{"line_number":649,"context_line":"  in: body"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"1a95cdbc_82bae521","line":646,"updated":"2016-10-06 08:07:23.000000000","message":"i\u0027m not sure I understand how this works. Why is this adding \u0027created_at_resource\u0027 and what\u0027s \u0027created_at_1\u0027 above this? Are the keys meaningless externally and only used to cross reference between a particular resource and its fields?","commit_id":"402c3dd88f76ce4740ae4151b36d8987ec51d313"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"757bed1542bbad3184ee2678d0d5736b68fd6ffc","unresolved":false,"context_lines":[{"line_number":643,"context_line":"  in: body"},{"line_number":644,"context_line":"  required: true"},{"line_number":645,"context_line":"  type: string"},{"line_number":646,"context_line":"created_at_resource:"},{"line_number":647,"context_line":"  description: |"},{"line_number":648,"context_line":"    Time at which the resource has been created."},{"line_number":649,"context_line":"  in: body"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"1a95cdbc_c1912b54","line":646,"in_reply_to":"1a95cdbc_82bae521","updated":"2016-10-06 18:23:10.000000000","message":"uhm, I think I screwed up a rebase, I can reuse created_at/updated_at.","commit_id":"402c3dd88f76ce4740ae4151b36d8987ec51d313"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e588386ba76256d2f7918aa6362bf16b929bbeb7","unresolved":false,"context_lines":[{"line_number":643,"context_line":"  in: body"},{"line_number":644,"context_line":"  required: true"},{"line_number":645,"context_line":"  type: string"},{"line_number":646,"context_line":"created_at_resource:"},{"line_number":647,"context_line":"  description: |"},{"line_number":648,"context_line":"    Time at which the resource has been created."},{"line_number":649,"context_line":"  in: body"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"1a95cdbc_9797618f","line":646,"in_reply_to":"1a95cdbc_c1912b54","updated":"2016-10-06 18:27:47.000000000","message":"thing is, if I reuse created_at or created_at_1, the description used would show either Time at which port has been created or Time at which subnetpool has been created and that clearly is not right. Hence I introduced a generic one.","commit_id":"402c3dd88f76ce4740ae4151b36d8987ec51d313"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"02393dd2bb25e1ce815324cd17bdc63c1cb41230","unresolved":false,"context_lines":[{"line_number":645,"context_line":"  type: string"},{"line_number":646,"context_line":"created_at_resource:"},{"line_number":647,"context_line":"  description: |"},{"line_number":648,"context_line":"    Time at which the resource has been created."},{"line_number":649,"context_line":"  in: body"},{"line_number":650,"context_line":"  required: true"},{"line_number":651,"context_line":"  type: string"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"1a95cdbc_a2b52132","line":648,"updated":"2016-10-06 08:07:23.000000000","message":"Maybe a little more precise on the format? UTC ISO8601","commit_id":"402c3dd88f76ce4740ae4151b36d8987ec51d313"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"757bed1542bbad3184ee2678d0d5736b68fd6ffc","unresolved":false,"context_lines":[{"line_number":645,"context_line":"  type: string"},{"line_number":646,"context_line":"created_at_resource:"},{"line_number":647,"context_line":"  description: |"},{"line_number":648,"context_line":"    Time at which the resource has been created."},{"line_number":649,"context_line":"  in: body"},{"line_number":650,"context_line":"  required: true"},{"line_number":651,"context_line":"  type: string"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"1a95cdbc_a17dff1d","line":648,"in_reply_to":"1a95cdbc_a2b52132","updated":"2016-10-06 18:23:10.000000000","message":"well, I\u0027ll leave the ones I can use as they were.","commit_id":"402c3dd88f76ce4740ae4151b36d8987ec51d313"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"72faffee75752ec3a7b3962bdea3583c83bba31d","unresolved":false,"context_lines":[{"line_number":181,"context_line":"  in: path"},{"line_number":182,"context_line":"  required: false"},{"line_number":183,"context_line":"  type: string"},{"line_number":184,"context_line":"tenant_id-path:"},{"line_number":185,"context_line":"  description: |"},{"line_number":186,"context_line":"    The ID of the tenant."},{"line_number":187,"context_line":"  in: path"},{"line_number":188,"context_line":"  required: true"},{"line_number":189,"context_line":"  type: string"},{"line_number":190,"context_line":"trunk_id:"},{"line_number":191,"context_line":"  description: |"},{"line_number":192,"context_line":"    The ID of the trunk."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"fa6399be_000a0679","line":189,"range":{"start_line":184,"start_character":0,"end_line":189,"end_character":14},"updated":"2016-10-13 22:27:42.000000000","message":"This is not used.","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"83e0ed32650d57960968f0e775bb9aa6d9883608","unresolved":false,"context_lines":[{"line_number":181,"context_line":"  in: path"},{"line_number":182,"context_line":"  required: false"},{"line_number":183,"context_line":"  type: string"},{"line_number":184,"context_line":"tenant_id-path:"},{"line_number":185,"context_line":"  description: |"},{"line_number":186,"context_line":"    The ID of the tenant."},{"line_number":187,"context_line":"  in: path"},{"line_number":188,"context_line":"  required: true"},{"line_number":189,"context_line":"  type: string"},{"line_number":190,"context_line":"trunk_id:"},{"line_number":191,"context_line":"  description: |"},{"line_number":192,"context_line":"    The ID of the trunk."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"fa6399be_8cbc73bc","line":189,"range":{"start_line":184,"start_character":0,"end_line":189,"end_character":14},"in_reply_to":"fa6399be_000a0679","updated":"2016-10-14 15:51:38.000000000","message":"I\u0027m not sure I\u0027ve ever seen tenant_id in the path part of the request in a neutron request.","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e5ccea892455d84d8caa6193ca2ac6cda575d0cd","unresolved":false,"context_lines":[{"line_number":181,"context_line":"  in: path"},{"line_number":182,"context_line":"  required: false"},{"line_number":183,"context_line":"  type: string"},{"line_number":184,"context_line":"tenant_id-path:"},{"line_number":185,"context_line":"  description: |"},{"line_number":186,"context_line":"    The ID of the tenant."},{"line_number":187,"context_line":"  in: path"},{"line_number":188,"context_line":"  required: true"},{"line_number":189,"context_line":"  type: string"},{"line_number":190,"context_line":"trunk_id:"},{"line_number":191,"context_line":"  description: |"},{"line_number":192,"context_line":"    The ID of the trunk."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"fa6399be_12f879c2","line":189,"range":{"start_line":184,"start_character":0,"end_line":189,"end_character":14},"in_reply_to":"fa6399be_8cbc73bc","updated":"2016-10-14 16:57:11.000000000","message":"um, perhaps the effect of a bad rebase I\u0027ll kill it.","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"83e0ed32650d57960968f0e775bb9aa6d9883608","unresolved":false,"context_lines":[{"line_number":191,"context_line":"  description: |"},{"line_number":192,"context_line":"    The ID of the trunk."},{"line_number":193,"context_line":"  in: path"},{"line_number":194,"context_line":"  required: false"},{"line_number":195,"context_line":"  type: string"},{"line_number":196,"context_line":"vip_id_1:"},{"line_number":197,"context_line":"  description: |"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"fa6399be_a756b003","line":194,"range":{"start_line":194,"start_character":12,"end_line":194,"end_character":17},"updated":"2016-10-14 15:51:38.000000000","message":"I think everywhere trunk_id is allowed as a path parameter, it is required. So, I think this should be true.","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e5ccea892455d84d8caa6193ca2ac6cda575d0cd","unresolved":false,"context_lines":[{"line_number":191,"context_line":"  description: |"},{"line_number":192,"context_line":"    The ID of the trunk."},{"line_number":193,"context_line":"  in: path"},{"line_number":194,"context_line":"  required: false"},{"line_number":195,"context_line":"  type: string"},{"line_number":196,"context_line":"vip_id_1:"},{"line_number":197,"context_line":"  description: |"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"fa6399be_722ff53e","line":194,"range":{"start_line":194,"start_character":12,"end_line":194,"end_character":17},"in_reply_to":"fa6399be_a756b003","updated":"2016-10-14 16:57:11.000000000","message":"Done","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"}],"api-ref/source/v2/samples/trunks/trunk-add-subports-response.json":[{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"72faffee75752ec3a7b3962bdea3583c83bba31d","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    ],"},{"line_number":10,"context_line":"    \"name\": \"test\","},{"line_number":11,"context_line":"    \"admin_state_up\": true,"},{"line_number":12,"context_line":"    \"tenant_id\": \"145a14e4a64b49bf98baad8945dbd4f1\","},{"line_number":13,"context_line":"    \"created_at\": \"2016-10-05T22:31:37Z\","},{"line_number":14,"context_line":"    \"updated_at\": \"2016-10-05T22:52:04Z\","},{"line_number":15,"context_line":"    \"revision_number\": 2,"}],"source_content_type":"application/json","patch_set":11,"id":"fa6399be_959ada6c","line":12,"updated":"2016-10-13 22:27:42.000000000","message":"missing project_id","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e5ccea892455d84d8caa6193ca2ac6cda575d0cd","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    ],"},{"line_number":10,"context_line":"    \"name\": \"test\","},{"line_number":11,"context_line":"    \"admin_state_up\": true,"},{"line_number":12,"context_line":"    \"tenant_id\": \"145a14e4a64b49bf98baad8945dbd4f1\","},{"line_number":13,"context_line":"    \"created_at\": \"2016-10-05T22:31:37Z\","},{"line_number":14,"context_line":"    \"updated_at\": \"2016-10-05T22:52:04Z\","},{"line_number":15,"context_line":"    \"revision_number\": 2,"}],"source_content_type":"application/json","patch_set":11,"id":"fa6399be_92d9e959","line":12,"in_reply_to":"fa6399be_959ada6c","updated":"2016-10-14 16:57:11.000000000","message":"ah bollocks...that was a snap from when my system had the bug you fixed :)","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"}],"api-ref/source/v2/samples/trunks/trunk-details-show-response.json":[{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"72faffee75752ec3a7b3962bdea3583c83bba31d","unresolved":false,"context_lines":[{"line_number":6,"context_line":"        \"description\": \"\","},{"line_number":7,"context_line":"        \"admin_state_up\": true,"},{"line_number":8,"context_line":"        \"network_id\": \"1cf9e069-365f-4a78-8784-616bc12c4c5a\","},{"line_number":9,"context_line":"        \"tenant_id\": \"313be01bd0744cea86643c711c57012b\","},{"line_number":10,"context_line":"        \"extra_dhcp_opts\": [],"},{"line_number":11,"context_line":"        \"updated_at\": \"2016-10-05T20:05:14Z\","},{"line_number":12,"context_line":"        \"name\": \"test\","}],"source_content_type":"application/json","patch_set":11,"id":"fa6399be_001e865e","line":9,"updated":"2016-10-13 22:27:42.000000000","message":"In https://review.openstack.org/372857 I put project_id one line before tenant_id everywhere. It makes grepping easier.","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e5ccea892455d84d8caa6193ca2ac6cda575d0cd","unresolved":false,"context_lines":[{"line_number":6,"context_line":"        \"description\": \"\","},{"line_number":7,"context_line":"        \"admin_state_up\": true,"},{"line_number":8,"context_line":"        \"network_id\": \"1cf9e069-365f-4a78-8784-616bc12c4c5a\","},{"line_number":9,"context_line":"        \"tenant_id\": \"313be01bd0744cea86643c711c57012b\","},{"line_number":10,"context_line":"        \"extra_dhcp_opts\": [],"},{"line_number":11,"context_line":"        \"updated_at\": \"2016-10-05T20:05:14Z\","},{"line_number":12,"context_line":"        \"name\": \"test\","}],"source_content_type":"application/json","patch_set":11,"id":"fa6399be_72bd35d7","line":9,"in_reply_to":"fa6399be_001e865e","updated":"2016-10-14 16:57:11.000000000","message":"aye","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"}],"api-ref/source/v2/samples/trunks/trunk-remove-subports-response.json":[{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"72faffee75752ec3a7b3962bdea3583c83bba31d","unresolved":false,"context_lines":[{"line_number":3,"context_line":"    \"sub_ports\": [],"},{"line_number":4,"context_line":"    \"name\": \"test\","},{"line_number":5,"context_line":"    \"admin_state_up\": true,"},{"line_number":6,"context_line":"    \"tenant_id\": \"145a14e4a64b49bf98baad8945dbd4f1\","},{"line_number":7,"context_line":"    \"created_at\": \"2016-10-05T22:31:37Z\","},{"line_number":8,"context_line":"    \"updated_at\": \"2016-10-05T22:57:44Z\","},{"line_number":9,"context_line":"    \"revision_number\": 3,"}],"source_content_type":"application/json","patch_set":11,"id":"fa6399be_d5e372d7","line":6,"updated":"2016-10-13 22:27:42.000000000","message":"missing project_id","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"}],"api-ref/source/v2/samples/trunks/trunk-show-response.json":[{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"72faffee75752ec3a7b3962bdea3583c83bba31d","unresolved":false,"context_lines":[{"line_number":10,"context_line":"        ],"},{"line_number":11,"context_line":"        \"name\": \"foo\","},{"line_number":12,"context_line":"        \"admin_state_up\": true,"},{"line_number":13,"context_line":"        \"tenant_id\": \"145a14e4a64b49bf98baad8945dbd4f1\","},{"line_number":14,"context_line":"        \"created_at\": \"2016-10-05T22:31:37Z\","},{"line_number":15,"context_line":"        \"updated_at\": \"2016-10-05T23:28:17Z\","},{"line_number":16,"context_line":"        \"revision_number\": 9,"}],"source_content_type":"application/json","patch_set":11,"id":"fa6399be_35faee75","line":13,"updated":"2016-10-13 22:27:42.000000000","message":"missing project_id","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"}],"api-ref/source/v2/samples/trunks/trunk-update-response.json":[{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"72faffee75752ec3a7b3962bdea3583c83bba31d","unresolved":false,"context_lines":[{"line_number":10,"context_line":"        ],"},{"line_number":11,"context_line":"        \"name\": \"foo\","},{"line_number":12,"context_line":"        \"admin_state_up\": true,"},{"line_number":13,"context_line":"        \"tenant_id\": \"145a14e4a64b49bf98baad8945dbd4f1\","},{"line_number":14,"context_line":"        \"created_at\": \"2016-10-05T22:31:37Z\","},{"line_number":15,"context_line":"        \"updated_at\": \"2016-10-05T23:28:17Z\","},{"line_number":16,"context_line":"        \"revision_number\": 9,"}],"source_content_type":"application/json","patch_set":11,"id":"fa6399be_150faa88","line":13,"updated":"2016-10-13 22:27:42.000000000","message":"missing project_id","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"}],"api-ref/source/v2/samples/trunks/trunks-create-response.json":[{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"72faffee75752ec3a7b3962bdea3583c83bba31d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"        \"sub_ports\": [],"},{"line_number":5,"context_line":"        \"name\": \"test\","},{"line_number":6,"context_line":"        \"admin_state_up\": true,"},{"line_number":7,"context_line":"        \"tenant_id\": \"145a14e4a64b49bf98baad8945dbd4f1\","},{"line_number":8,"context_line":"        \"created_at\": \"2016-10-05T22:31:37Z\","},{"line_number":9,"context_line":"        \"updated_at\": \"2016-10-05T22:31:37Z\","},{"line_number":10,"context_line":"        \"revision_number\": 1,"}],"source_content_type":"application/json","patch_set":11,"id":"fa6399be_d57ff2dd","line":7,"updated":"2016-10-13 22:27:42.000000000","message":"missing project_id","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"}],"api-ref/source/v2/samples/trunks/trunks-list-response.json":[{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"72faffee75752ec3a7b3962bdea3583c83bba31d","unresolved":false,"context_lines":[{"line_number":5,"context_line":"            \"sub_ports\": [],"},{"line_number":6,"context_line":"            \"name\": \"test\","},{"line_number":7,"context_line":"            \"admin_state_up\": true,"},{"line_number":8,"context_line":"            \"tenant_id\": \"313be01bd0744cea86643c711c57012b\","},{"line_number":9,"context_line":"            \"created_at\": \"2016-10-05T20:11:16Z\","},{"line_number":10,"context_line":"            \"updated_at\": \"2016-10-05T20:11:16Z\","},{"line_number":11,"context_line":"            \"revision_number\": 1,"}],"source_content_type":"application/json","patch_set":11,"id":"fa6399be_757546f8","line":8,"updated":"2016-10-13 22:27:42.000000000","message":"missing project_id","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"}],"api-ref/source/v2/trunk-details.inc":[{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"83e0ed32650d57960968f0e775bb9aa6d9883608","unresolved":false,"context_lines":[{"line_number":1,"context_line":".. -*- rst -*-"},{"line_number":2,"context_line":".. needs:method_verification"},{"line_number":3,"context_line":".. needs:parameter_verification"},{"line_number":4,"context_line":".. needs:example_verification"},{"line_number":5,"context_line":".. needs:body_verification"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Trunk details extended attributes (ports)"}],"source_content_type":"text/x-c++src","patch_set":11,"id":"fa6399be_cc282b36","line":5,"range":{"start_line":2,"start_character":0,"end_line":5,"end_character":26},"updated":"2016-10-14 15:51:38.000000000","message":"Should we just verify all these before merge and remove these?","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e5ccea892455d84d8caa6193ca2ac6cda575d0cd","unresolved":false,"context_lines":[{"line_number":1,"context_line":".. -*- rst -*-"},{"line_number":2,"context_line":".. needs:method_verification"},{"line_number":3,"context_line":".. needs:parameter_verification"},{"line_number":4,"context_line":".. needs:example_verification"},{"line_number":5,"context_line":".. needs:body_verification"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Trunk details extended attributes (ports)"}],"source_content_type":"text/x-c++src","patch_set":11,"id":"fa6399be_72a455b9","line":5,"range":{"start_line":2,"start_character":0,"end_line":5,"end_character":26},"in_reply_to":"fa6399be_cc282b36","updated":"2016-10-14 16:57:11.000000000","message":"I forgot to remove them, of course I rock and these are not necessary!","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"83e0ed32650d57960968f0e775bb9aa6d9883608","unresolved":false,"context_lines":[{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"This extension attribute is available when showing a port resource"},{"line_number":12,"context_line":"that partecipates in a trunk as parent. It particular it contains"},{"line_number":13,"context_line":"the trunk ID and the array showing the details for the subports"},{"line_number":14,"context_line":"that belongs to the trunk: the port UUID, the segmentation type,"},{"line_number":15,"context_line":"the segmentation ID, and the MAC address."}],"source_content_type":"text/x-c++src","patch_set":11,"id":"fa6399be_0ce6a314","line":12,"range":{"start_line":12,"start_character":40,"end_line":12,"end_character":42},"updated":"2016-10-14 15:51:38.000000000","message":"*In","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"83e0ed32650d57960968f0e775bb9aa6d9883608","unresolved":false,"context_lines":[{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"This extension attribute is available when showing a port resource"},{"line_number":12,"context_line":"that partecipates in a trunk as parent. It particular it contains"},{"line_number":13,"context_line":"the trunk ID and the array showing the details for the subports"},{"line_number":14,"context_line":"that belongs to the trunk: the port UUID, the segmentation type,"},{"line_number":15,"context_line":"the segmentation ID, and the MAC address."}],"source_content_type":"text/x-c++src","patch_set":11,"id":"fa6399be_8cd9d359","line":12,"range":{"start_line":12,"start_character":5,"end_line":12,"end_character":17},"updated":"2016-10-14 15:51:38.000000000","message":"*participates","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e5ccea892455d84d8caa6193ca2ac6cda575d0cd","unresolved":false,"context_lines":[{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"This extension attribute is available when showing a port resource"},{"line_number":12,"context_line":"that partecipates in a trunk as parent. It particular it contains"},{"line_number":13,"context_line":"the trunk ID and the array showing the details for the subports"},{"line_number":14,"context_line":"that belongs to the trunk: the port UUID, the segmentation type,"},{"line_number":15,"context_line":"the segmentation ID, and the MAC address."}],"source_content_type":"text/x-c++src","patch_set":11,"id":"fa6399be_92a729bc","line":12,"range":{"start_line":12,"start_character":5,"end_line":12,"end_character":17},"in_reply_to":"fa6399be_8cd9d359","updated":"2016-10-14 16:57:11.000000000","message":"Done","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"558022260830408482b18683d876436f9b1bde26","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":".. rest_parameters:: parameters.yaml"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"   - trunk_details: trunk_details"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Response Example"},{"line_number":41,"context_line":"----------------"}],"source_content_type":"text/x-c++src","patch_set":14,"id":"fa6399be_f1c57c0a","line":38,"updated":"2016-10-17 22:35:14.000000000","message":"It is better to describe more detail of each attribute, but it can be improved later.","commit_id":"5508938b53b3d853a64d954609b92270db73af35"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"08e9f188806a0774d02f07545c70ccb4a1726fac","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":".. rest_parameters:: parameters.yaml"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"   - trunk_details: trunk_details"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Response Example"},{"line_number":41,"context_line":"----------------"}],"source_content_type":"text/x-c++src","patch_set":14,"id":"fa6399be_dd35e9a8","line":38,"in_reply_to":"fa6399be_f1c57c0a","updated":"2016-10-17 23:28:00.000000000","message":"I\u0027ll provide something in the form of comments.","commit_id":"5508938b53b3d853a64d954609b92270db73af35"}],"api-ref/source/v2/trunk.inc":[{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"02393dd2bb25e1ce815324cd17bdc63c1cb41230","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Trunk networking"},{"line_number":5,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"This extension can be used to funnel packets coming and going from/to multiple"},{"line_number":8,"context_line":"Neutron logical networks into/out of a single Neutron logical port. A trunk"},{"line_number":9,"context_line":"is modeled in Neutron as a collection of neutron logical ports. One port,"},{"line_number":10,"context_line":"called parent port, must be associated to a trunk and it is *the* port to"}],"source_content_type":"text/x-c++src","patch_set":4,"id":"1a95cdbc_c2822d52","line":7,"updated":"2016-10-06 08:07:23.000000000","message":"nit: suggest \u0027multiplex\u0027 instead of \u0027funnel\u0027","commit_id":"402c3dd88f76ce4740ae4151b36d8987ec51d313"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"757bed1542bbad3184ee2678d0d5736b68fd6ffc","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Trunk networking"},{"line_number":5,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"This extension can be used to funnel packets coming and going from/to multiple"},{"line_number":8,"context_line":"Neutron logical networks into/out of a single Neutron logical port. A trunk"},{"line_number":9,"context_line":"is modeled in Neutron as a collection of neutron logical ports. One port,"},{"line_number":10,"context_line":"called parent port, must be associated to a trunk and it is *the* port to"}],"source_content_type":"text/x-c++src","patch_set":4,"id":"1a95cdbc_3ccbd21f","line":7,"in_reply_to":"1a95cdbc_c2822d52","updated":"2016-10-06 18:23:10.000000000","message":"Done","commit_id":"402c3dd88f76ce4740ae4151b36d8987ec51d313"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"02393dd2bb25e1ce815324cd17bdc63c1cb41230","unresolved":false,"context_lines":[{"line_number":18,"context_line":"- **trunk**. A top level logical entity to model the group of Neutron"},{"line_number":19,"context_line":"  logical networks whose traffic flows throughout the trunk."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"- **sub_ports**. An association to a Neutron logical port with attributes"},{"line_number":22,"context_line":"  segmentation_id, and segmentation_type."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":4,"id":"1a95cdbc_e2856959","line":21,"updated":"2016-10-06 08:07:23.000000000","message":"should be singular \u0027sub_port\u0027 since the description is about the singular thing. Then maybe mention inside the trunk description that it contains a list of sub_ports.","commit_id":"402c3dd88f76ce4740ae4151b36d8987ec51d313"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"757bed1542bbad3184ee2678d0d5736b68fd6ffc","unresolved":false,"context_lines":[{"line_number":18,"context_line":"- **trunk**. A top level logical entity to model the group of Neutron"},{"line_number":19,"context_line":"  logical networks whose traffic flows throughout the trunk."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"- **sub_ports**. An association to a Neutron logical port with attributes"},{"line_number":22,"context_line":"  segmentation_id, and segmentation_type."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":4,"id":"1a95cdbc_9cdce6e5","line":21,"in_reply_to":"1a95cdbc_e2856959","updated":"2016-10-06 18:23:10.000000000","message":"Done","commit_id":"402c3dd88f76ce4740ae4151b36d8987ec51d313"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"02393dd2bb25e1ce815324cd17bdc63c1cb41230","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Normal response codes: 200"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Error response codes: 401"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Request"},{"line_number":54,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":4,"id":"1a95cdbc_027df56d","line":51,"updated":"2016-10-06 08:07:23.000000000","message":"What about the response code when the service plugin is disabled?","commit_id":"402c3dd88f76ce4740ae4151b36d8987ec51d313"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"757bed1542bbad3184ee2678d0d5736b68fd6ffc","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Normal response codes: 200"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Error response codes: 401"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Request"},{"line_number":54,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":4,"id":"1a95cdbc_7cec7a8f","line":51,"in_reply_to":"1a95cdbc_027df56d","updated":"2016-10-06 18:23:10.000000000","message":"404, ok.","commit_id":"402c3dd88f76ce4740ae4151b36d8987ec51d313"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"02393dd2bb25e1ce815324cd17bdc63c1cb41230","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"- ``401`` The operation is not authorized."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"- ``404`` The port UUID of any of the specified ports is not found."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"- ``409`` The operation returns this error code for one of these"},{"line_number":95,"context_line":"  reasons:"}],"source_content_type":"text/x-c++src","patch_set":4,"id":"1a95cdbc_22803146","line":92,"updated":"2016-10-06 08:07:23.000000000","message":"or the service plugin is disabled, right?","commit_id":"402c3dd88f76ce4740ae4151b36d8987ec51d313"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"757bed1542bbad3184ee2678d0d5736b68fd6ffc","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"- ``401`` The operation is not authorized."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"- ``404`` The port UUID of any of the specified ports is not found."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"- ``409`` The operation returns this error code for one of these"},{"line_number":95,"context_line":"  reasons:"}],"source_content_type":"text/x-c++src","patch_set":4,"id":"1a95cdbc_dcfd8e3b","line":92,"in_reply_to":"1a95cdbc_22803146","updated":"2016-10-06 18:23:10.000000000","message":"Done","commit_id":"402c3dd88f76ce4740ae4151b36d8987ec51d313"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"02393dd2bb25e1ce815324cd17bdc63c1cb41230","unresolved":false,"context_lines":[{"line_number":205,"context_line":""},{"line_number":206,"context_line":"::"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"   PUT /v2.0/trunks/{trunk_id}/remove_subports Accept: application/json"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"Normal response codes: 200"},{"line_number":211,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":4,"id":"1a95cdbc_4297fd8f","line":208,"updated":"2016-10-06 08:07:23.000000000","message":"Why do we put the accepted content type on the same line? Is that just what we do for other stuff?","commit_id":"402c3dd88f76ce4740ae4151b36d8987ec51d313"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"757bed1542bbad3184ee2678d0d5736b68fd6ffc","unresolved":false,"context_lines":[{"line_number":205,"context_line":""},{"line_number":206,"context_line":"::"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"   PUT /v2.0/trunks/{trunk_id}/remove_subports Accept: application/json"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"Normal response codes: 200"},{"line_number":211,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":4,"id":"1a95cdbc_fc8faac9","line":208,"in_reply_to":"1a95cdbc_4297fd8f","updated":"2016-10-06 18:23:10.000000000","message":"I followed the examples, let me double check","commit_id":"402c3dd88f76ce4740ae4151b36d8987ec51d313"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"507463c49f045a35e1aa0f4f28a82733db9996f6","unresolved":false,"context_lines":[{"line_number":36,"context_line":"Use the ``fields`` query parameter to control which fields are"},{"line_number":37,"context_line":"returned in the response body. Additionally, you can filter results"},{"line_number":38,"context_line":"by using query string parameters. For information, see `Filtering"},{"line_number":39,"context_line":"and Column Selection \u003chttps://wiki.openstack.org/wiki/Neutron/APIv2"},{"line_number":40,"context_line":"-specification#Filtering_and_Column_Selection\u003e`__."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Normal response codes: 200"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":10,"id":"fa6399be_fa1009ab","line":40,"range":{"start_line":39,"start_character":22,"end_line":40,"end_character":45},"updated":"2016-10-10 19:20:51.000000000","message":"Why are we referring to the wiki rather than the section within this API guide?","commit_id":"f917208c4f9f73dca12662e9743b3e8501b3eec2"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e1225e533ce6889116260b16be9279d5f249fd75","unresolved":false,"context_lines":[{"line_number":36,"context_line":"Use the ``fields`` query parameter to control which fields are"},{"line_number":37,"context_line":"returned in the response body. Additionally, you can filter results"},{"line_number":38,"context_line":"by using query string parameters. For information, see `Filtering"},{"line_number":39,"context_line":"and Column Selection \u003chttps://wiki.openstack.org/wiki/Neutron/APIv2"},{"line_number":40,"context_line":"-specification#Filtering_and_Column_Selection\u003e`__."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Normal response codes: 200"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":10,"id":"fa6399be_e340600a","line":40,"range":{"start_line":39,"start_character":22,"end_line":40,"end_character":45},"in_reply_to":"fa6399be_fa1009ab","updated":"2016-10-10 20:27:42.000000000","message":"I borrowed this from other APIs","commit_id":"f917208c4f9f73dca12662e9743b3e8501b3eec2"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"507463c49f045a35e1aa0f4f28a82733db9996f6","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Normal response codes: 200"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Error response codes: 401,404"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Response Parameters"},{"line_number":47,"context_line":"-------------------"}],"source_content_type":"text/x-c++src","patch_set":10,"id":"fa6399be_3a236107","line":44,"range":{"start_line":44,"start_character":25,"end_line":44,"end_character":26},"updated":"2016-10-10 19:20:51.000000000","message":"Nit: space after comma","commit_id":"f917208c4f9f73dca12662e9743b3e8501b3eec2"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"507463c49f045a35e1aa0f4f28a82733db9996f6","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Error response codes: 401,404"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Response Parameters"},{"line_number":47,"context_line":"-------------------"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":".. rest_parameters:: parameters.yaml"}],"source_content_type":"text/x-c++src","patch_set":10,"id":"fa6399be_1d13f75d","line":46,"range":{"start_line":46,"start_character":0,"end_line":46,"end_character":19},"updated":"2016-10-10 19:20:51.000000000","message":"It appears most responses that include a top-level object (e.g.  \u0027trunks\u0027) call that out in the response parameters.","commit_id":"f917208c4f9f73dca12662e9743b3e8501b3eec2"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"507463c49f045a35e1aa0f4f28a82733db9996f6","unresolved":false,"context_lines":[{"line_number":56,"context_line":"   - port_id: port_id_trunk"},{"line_number":57,"context_line":"   - revision_number: revision_number"},{"line_number":58,"context_line":"   - status: status_trunk"},{"line_number":59,"context_line":"   - tenant_id: tenant_id"},{"line_number":60,"context_line":"   - sub_ports: sub_ports"},{"line_number":61,"context_line":"   - updated_at: updated_at_resource"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":10,"id":"fa6399be_3a6a811b","line":59,"range":{"start_line":59,"start_character":5,"end_line":59,"end_character":25},"updated":"2016-10-10 19:20:51.000000000","message":"Should this be project_id?","commit_id":"f917208c4f9f73dca12662e9743b3e8501b3eec2"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"507463c49f045a35e1aa0f4f28a82733db9996f6","unresolved":false,"context_lines":[{"line_number":94,"context_line":"  - A system configuration prevents the operation from succeeding."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"Error response codes: 201,400,401,404,409"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Request"},{"line_number":100,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":10,"id":"fa6399be_9a78edfa","line":97,"range":{"start_line":97,"start_character":22,"end_line":97,"end_character":41},"updated":"2016-10-10 19:20:51.000000000","message":"Nit: spaces after commas","commit_id":"f917208c4f9f73dca12662e9743b3e8501b3eec2"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e1225e533ce6889116260b16be9279d5f249fd75","unresolved":false,"context_lines":[{"line_number":94,"context_line":"  - A system configuration prevents the operation from succeeding."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"Error response codes: 201,400,401,404,409"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Request"},{"line_number":100,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":10,"id":"fa6399be_c3099cdf","line":97,"range":{"start_line":97,"start_character":22,"end_line":97,"end_character":41},"in_reply_to":"fa6399be_9a78edfa","updated":"2016-10-10 20:27:42.000000000","message":"Looks like we need to do a massive sweep, as largely every other extension does the same (at least the ones I looked at).","commit_id":"f917208c4f9f73dca12662e9743b3e8501b3eec2"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"507463c49f045a35e1aa0f4f28a82733db9996f6","unresolved":false,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Normal response codes: 200"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Error response codes: 400,401,404,409"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Request"},{"line_number":145,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":10,"id":"fa6399be_fabac96d","line":142,"range":{"start_line":142,"start_character":22,"end_line":142,"end_character":37},"updated":"2016-10-10 19:20:51.000000000","message":"Nit: spaces after commas.","commit_id":"f917208c4f9f73dca12662e9743b3e8501b3eec2"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"507463c49f045a35e1aa0f4f28a82733db9996f6","unresolved":false,"context_lines":[{"line_number":149,"context_line":"   - trunk_id: trunk_id"},{"line_number":150,"context_line":"   - segmentation_id: segmentation_id"},{"line_number":151,"context_line":"   - segmentation_type: segmentation_type"},{"line_number":152,"context_line":"   - port_id: port_id"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"Request Example"},{"line_number":155,"context_line":"---------------"}],"source_content_type":"text/x-c++src","patch_set":10,"id":"fa6399be_9a49cd91","line":152,"range":{"start_line":152,"start_character":5,"end_line":152,"end_character":21},"updated":"2016-10-10 19:20:51.000000000","message":"This shows up as a \u0027in path\u0027 parameter. That doesn\u0027t appear to be your intention?","commit_id":"f917208c4f9f73dca12662e9743b3e8501b3eec2"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e1225e533ce6889116260b16be9279d5f249fd75","unresolved":false,"context_lines":[{"line_number":149,"context_line":"   - trunk_id: trunk_id"},{"line_number":150,"context_line":"   - segmentation_id: segmentation_id"},{"line_number":151,"context_line":"   - segmentation_type: segmentation_type"},{"line_number":152,"context_line":"   - port_id: port_id"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"Request Example"},{"line_number":155,"context_line":"---------------"}],"source_content_type":"text/x-c++src","patch_set":10,"id":"fa6399be_635530c5","line":152,"range":{"start_line":152,"start_character":5,"end_line":152,"end_character":21},"in_reply_to":"fa6399be_9a49cd91","updated":"2016-10-10 20:27:42.000000000","message":"I should probably use a different parameter.","commit_id":"f917208c4f9f73dca12662e9743b3e8501b3eec2"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"507463c49f045a35e1aa0f4f28a82733db9996f6","unresolved":false,"context_lines":[{"line_number":188,"context_line":""},{"line_number":189,"context_line":"Normal response codes: 200"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"Error response codes: 400,401,404,409"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"Request"},{"line_number":194,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":10,"id":"fa6399be_dab5057f","line":191,"range":{"start_line":191,"start_character":22,"end_line":191,"end_character":37},"updated":"2016-10-10 19:20:51.000000000","message":"Nit: spaces after commas.","commit_id":"f917208c4f9f73dca12662e9743b3e8501b3eec2"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"507463c49f045a35e1aa0f4f28a82733db9996f6","unresolved":false,"context_lines":[{"line_number":235,"context_line":""},{"line_number":236,"context_line":"Normal response codes: 200"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"Error response codes: 401,404"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"Request"},{"line_number":241,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":10,"id":"fa6399be_7a9079ed","line":238,"range":{"start_line":238,"start_character":25,"end_line":238,"end_character":26},"updated":"2016-10-10 19:20:51.000000000","message":"Nit: space after comma","commit_id":"f917208c4f9f73dca12662e9743b3e8501b3eec2"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"507463c49f045a35e1aa0f4f28a82733db9996f6","unresolved":false,"context_lines":[{"line_number":271,"context_line":""},{"line_number":272,"context_line":"Normal response codes: 200"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"Error response codes: 400,401,404,409"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"Request"},{"line_number":277,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":10,"id":"fa6399be_9a946de9","line":274,"range":{"start_line":274,"start_character":22,"end_line":274,"end_character":37},"updated":"2016-10-10 19:20:51.000000000","message":"Nit: spaces after comma?","commit_id":"f917208c4f9f73dca12662e9743b3e8501b3eec2"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"507463c49f045a35e1aa0f4f28a82733db9996f6","unresolved":false,"context_lines":[{"line_number":322,"context_line":""},{"line_number":323,"context_line":"Normal response codes: 204"},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"Error response codes: 401,404,409"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"Request"},{"line_number":328,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":10,"id":"fa6399be_9aed4d91","line":325,"range":{"start_line":325,"start_character":22,"end_line":325,"end_character":33},"updated":"2016-10-10 19:20:51.000000000","message":"Nit: spaces after commas","commit_id":"f917208c4f9f73dca12662e9743b3e8501b3eec2"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"507463c49f045a35e1aa0f4f28a82733db9996f6","unresolved":false,"context_lines":[{"line_number":347,"context_line":""},{"line_number":348,"context_line":"Normal response codes: 200"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"Error response codes: 404,401"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"Request"},{"line_number":353,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":10,"id":"fa6399be_dae7c5aa","line":350,"range":{"start_line":350,"start_character":22,"end_line":350,"end_character":29},"updated":"2016-10-10 19:20:51.000000000","message":"Nit: space after comma","commit_id":"f917208c4f9f73dca12662e9743b3e8501b3eec2"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"83e0ed32650d57960968f0e775bb9aa6d9883608","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Trunk networking"},{"line_number":5,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"This extension can be used to multiplex packets coming and going from/to multiple"},{"line_number":8,"context_line":"Neutron logical networks into/out of a single Neutron logical port. A trunk"},{"line_number":9,"context_line":"is modeled in Neutron as a collection of neutron logical ports. One port,"},{"line_number":10,"context_line":"called parent port, must be associated to a trunk and it is *the* port to"}],"source_content_type":"text/x-c++src","patch_set":11,"id":"fa6399be_47e23430","line":7,"range":{"start_line":7,"start_character":48,"end_line":7,"end_character":72},"updated":"2016-10-14 15:51:38.000000000","message":"You might consider \"coming from and going to\" but this is fine with me too.","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e5ccea892455d84d8caa6193ca2ac6cda575d0cd","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Trunk networking"},{"line_number":5,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"This extension can be used to multiplex packets coming and going from/to multiple"},{"line_number":8,"context_line":"Neutron logical networks into/out of a single Neutron logical port. A trunk"},{"line_number":9,"context_line":"is modeled in Neutron as a collection of neutron logical ports. One port,"},{"line_number":10,"context_line":"called parent port, must be associated to a trunk and it is *the* port to"}],"source_content_type":"text/x-c++src","patch_set":11,"id":"fa6399be_1294f940","line":7,"range":{"start_line":7,"start_character":48,"end_line":7,"end_character":72},"in_reply_to":"fa6399be_47e23430","updated":"2016-10-14 16:57:11.000000000","message":"Done","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"83e0ed32650d57960968f0e775bb9aa6d9883608","unresolved":false,"context_lines":[{"line_number":5,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"This extension can be used to multiplex packets coming and going from/to multiple"},{"line_number":8,"context_line":"Neutron logical networks into/out of a single Neutron logical port. A trunk"},{"line_number":9,"context_line":"is modeled in Neutron as a collection of neutron logical ports. One port,"},{"line_number":10,"context_line":"called parent port, must be associated to a trunk and it is *the* port to"},{"line_number":11,"context_line":"be used to connect instances with Neutron. A sequence of subports (or"}],"source_content_type":"text/x-c++src","patch_set":11,"id":"fa6399be_c7280436","line":8,"range":{"start_line":8,"start_character":0,"end_line":8,"end_character":7},"updated":"2016-10-14 15:51:38.000000000","message":"I wonder if the docs teams rules about not capitalizing neutron apply to these docs too.","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"83e0ed32650d57960968f0e775bb9aa6d9883608","unresolved":false,"context_lines":[{"line_number":5,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"This extension can be used to multiplex packets coming and going from/to multiple"},{"line_number":8,"context_line":"Neutron logical networks into/out of a single Neutron logical port. A trunk"},{"line_number":9,"context_line":"is modeled in Neutron as a collection of neutron logical ports. One port,"},{"line_number":10,"context_line":"called parent port, must be associated to a trunk and it is *the* port to"},{"line_number":11,"context_line":"be used to connect instances with Neutron. A sequence of subports (or"}],"source_content_type":"text/x-c++src","patch_set":11,"id":"fa6399be_275540c5","line":8,"range":{"start_line":8,"start_character":25,"end_line":8,"end_character":36},"updated":"2016-10-14 15:51:38.000000000","message":"You might consider \"using\" or something else simpler than this.","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e5ccea892455d84d8caa6193ca2ac6cda575d0cd","unresolved":false,"context_lines":[{"line_number":5,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"This extension can be used to multiplex packets coming and going from/to multiple"},{"line_number":8,"context_line":"Neutron logical networks into/out of a single Neutron logical port. A trunk"},{"line_number":9,"context_line":"is modeled in Neutron as a collection of neutron logical ports. One port,"},{"line_number":10,"context_line":"called parent port, must be associated to a trunk and it is *the* port to"},{"line_number":11,"context_line":"be used to connect instances with Neutron. A sequence of subports (or"}],"source_content_type":"text/x-c++src","patch_set":11,"id":"fa6399be_b2818dfd","line":8,"range":{"start_line":8,"start_character":0,"end_line":8,"end_character":7},"in_reply_to":"fa6399be_c7280436","updated":"2016-10-14 16:57:11.000000000","message":"I can comply even though I don\u0027t like it.","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"83e0ed32650d57960968f0e775bb9aa6d9883608","unresolved":false,"context_lines":[{"line_number":16,"context_line":"In more details, the extension introduces the following resources:"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"- **trunk**. A top level logical entity to model the group of Neutron"},{"line_number":19,"context_line":"  logical networks whose traffic flows throughout the trunk."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"- **sub_port**. An association to a Neutron logical port with attributes"},{"line_number":22,"context_line":"  segmentation_id, and segmentation_type."}],"source_content_type":"text/x-c++src","patch_set":11,"id":"fa6399be_279f0060","line":19,"range":{"start_line":19,"start_character":39,"end_line":19,"end_character":49},"updated":"2016-10-14 15:51:38.000000000","message":"maybe just \"through\"","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e5ccea892455d84d8caa6193ca2ac6cda575d0cd","unresolved":false,"context_lines":[{"line_number":16,"context_line":"In more details, the extension introduces the following resources:"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"- **trunk**. A top level logical entity to model the group of Neutron"},{"line_number":19,"context_line":"  logical networks whose traffic flows throughout the trunk."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"- **sub_port**. An association to a Neutron logical port with attributes"},{"line_number":22,"context_line":"  segmentation_id, and segmentation_type."}],"source_content_type":"text/x-c++src","patch_set":11,"id":"fa6399be_d284410c","line":19,"range":{"start_line":19,"start_character":39,"end_line":19,"end_character":49},"in_reply_to":"fa6399be_279f0060","updated":"2016-10-14 16:57:11.000000000","message":"Done","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"72faffee75752ec3a7b3962bdea3583c83bba31d","unresolved":false,"context_lines":[{"line_number":56,"context_line":"   - port_id: port_id_trunk"},{"line_number":57,"context_line":"   - revision_number: revision_number"},{"line_number":58,"context_line":"   - status: status_trunk"},{"line_number":59,"context_line":"   - tenant_id: tenant_id"},{"line_number":60,"context_line":"   - project_id: project_id"},{"line_number":61,"context_line":"   - sub_ports: sub_ports"},{"line_number":62,"context_line":"   - updated_at: updated_at_resource"}],"source_content_type":"text/x-c++src","patch_set":11,"id":"fa6399be_008126c3","line":59,"range":{"start_line":59,"start_character":16,"end_line":59,"end_character":25},"updated":"2016-10-13 22:27:42.000000000","message":"project_id","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e5ccea892455d84d8caa6193ca2ac6cda575d0cd","unresolved":false,"context_lines":[{"line_number":56,"context_line":"   - port_id: port_id_trunk"},{"line_number":57,"context_line":"   - revision_number: revision_number"},{"line_number":58,"context_line":"   - status: status_trunk"},{"line_number":59,"context_line":"   - tenant_id: tenant_id"},{"line_number":60,"context_line":"   - project_id: project_id"},{"line_number":61,"context_line":"   - sub_ports: sub_ports"},{"line_number":62,"context_line":"   - updated_at: updated_at_resource"}],"source_content_type":"text/x-c++src","patch_set":11,"id":"fa6399be_92956934","line":59,"range":{"start_line":59,"start_character":16,"end_line":59,"end_character":25},"in_reply_to":"fa6399be_008126c3","updated":"2016-10-14 16:57:11.000000000","message":"Done","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"72faffee75752ec3a7b3962bdea3583c83bba31d","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":".. rest_parameters:: parameters.yaml"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"   - tenant_id: tenant_id"},{"line_number":106,"context_line":"   - project_id: project_id"},{"line_number":107,"context_line":"   - port_id: port_id_trunk"},{"line_number":108,"context_line":"   - name: name_resource"}],"source_content_type":"text/x-c++src","patch_set":11,"id":"fa6399be_a0495ab9","line":105,"range":{"start_line":105,"start_character":16,"end_line":105,"end_character":25},"updated":"2016-10-13 22:27:42.000000000","message":"project_id","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e5ccea892455d84d8caa6193ca2ac6cda575d0cd","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":".. rest_parameters:: parameters.yaml"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"   - tenant_id: tenant_id"},{"line_number":106,"context_line":"   - project_id: project_id"},{"line_number":107,"context_line":"   - port_id: port_id_trunk"},{"line_number":108,"context_line":"   - name: name_resource"}],"source_content_type":"text/x-c++src","patch_set":11,"id":"fa6399be_d29b6164","line":105,"range":{"start_line":105,"start_character":16,"end_line":105,"end_character":25},"in_reply_to":"fa6399be_a0495ab9","updated":"2016-10-14 16:57:11.000000000","message":"Done","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"72faffee75752ec3a7b3962bdea3583c83bba31d","unresolved":false,"context_lines":[{"line_number":129,"context_line":"   - port_id: port_id_trunk"},{"line_number":130,"context_line":"   - revision_number: revision_number"},{"line_number":131,"context_line":"   - status: status_trunk"},{"line_number":132,"context_line":"   - tenant_id: tenant_id"},{"line_number":133,"context_line":"   - project_id: project_id"},{"line_number":134,"context_line":"   - sub_ports: sub_ports"},{"line_number":135,"context_line":"   - updated_at: updated_at_resource"}],"source_content_type":"text/x-c++src","patch_set":11,"id":"fa6399be_00cf6629","line":132,"range":{"start_line":132,"start_character":16,"end_line":132,"end_character":25},"updated":"2016-10-13 22:27:42.000000000","message":"project_id","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"72faffee75752ec3a7b3962bdea3583c83bba31d","unresolved":false,"context_lines":[{"line_number":173,"context_line":"   - port_id: port_id_trunk"},{"line_number":174,"context_line":"   - revision_number: revision_number"},{"line_number":175,"context_line":"   - status: status_trunk"},{"line_number":176,"context_line":"   - tenant_id: tenant_id"},{"line_number":177,"context_line":"   - project_id: project_id"},{"line_number":178,"context_line":"   - sub_ports: sub_ports"},{"line_number":179,"context_line":"   - updated_at: updated_at_resource"}],"source_content_type":"text/x-c++src","patch_set":11,"id":"fa6399be_60dae2e9","line":176,"range":{"start_line":176,"start_character":16,"end_line":176,"end_character":25},"updated":"2016-10-13 22:27:42.000000000","message":"project_id","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"72faffee75752ec3a7b3962bdea3583c83bba31d","unresolved":false,"context_lines":[{"line_number":221,"context_line":"   - port_id: port_id_trunk"},{"line_number":222,"context_line":"   - revision_number: revision_number"},{"line_number":223,"context_line":"   - status: status_trunk"},{"line_number":224,"context_line":"   - tenant_id: tenant_id"},{"line_number":225,"context_line":"   - project_id: project_id"},{"line_number":226,"context_line":"   - sub_ports: sub_ports"},{"line_number":227,"context_line":"   - updated_at: updated_at_resource"}],"source_content_type":"text/x-c++src","patch_set":11,"id":"fa6399be_80e376a3","line":224,"range":{"start_line":224,"start_character":16,"end_line":224,"end_character":25},"updated":"2016-10-13 22:27:42.000000000","message":"project_id","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"83e0ed32650d57960968f0e775bb9aa6d9883608","unresolved":false,"context_lines":[{"line_number":271,"context_line":".. rest_method::  PUT /v2.0/trunks/{trunk_id}"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"The update request is only for changing fields like name, description or"},{"line_number":274,"context_line":"admin_state_up. Setting the admin_state_up to False locks the trunk in"},{"line_number":275,"context_line":"that it prevents operations such as as adding/removing subports."},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"Normal response codes: 200"},{"line_number":278,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":11,"id":"fa6399be_c75c847f","line":275,"range":{"start_line":274,"start_character":16,"end_line":275,"end_character":64},"updated":"2016-10-14 15:51:38.000000000","message":"A strange interpretation for \"admin_status_up\"","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e5ccea892455d84d8caa6193ca2ac6cda575d0cd","unresolved":false,"context_lines":[{"line_number":271,"context_line":".. rest_method::  PUT /v2.0/trunks/{trunk_id}"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"The update request is only for changing fields like name, description or"},{"line_number":274,"context_line":"admin_state_up. Setting the admin_state_up to False locks the trunk in"},{"line_number":275,"context_line":"that it prevents operations such as as adding/removing subports."},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"Normal response codes: 200"},{"line_number":278,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":11,"id":"fa6399be_d2b281e4","line":275,"range":{"start_line":274,"start_character":16,"end_line":275,"end_character":64},"in_reply_to":"fa6399be_c75c847f","updated":"2016-10-14 16:57:11.000000000","message":"How so?","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"72faffee75752ec3a7b3962bdea3583c83bba31d","unresolved":false,"context_lines":[{"line_number":307,"context_line":"   - port_id: port_id_trunk"},{"line_number":308,"context_line":"   - revision_number: revision_number"},{"line_number":309,"context_line":"   - status: status_trunk"},{"line_number":310,"context_line":"   - tenant_id: tenant_id"},{"line_number":311,"context_line":"   - project_id: project_id"},{"line_number":312,"context_line":"   - sub_ports: sub_ports"},{"line_number":313,"context_line":"   - updated_at: updated_at_resource"}],"source_content_type":"text/x-c++src","patch_set":11,"id":"fa6399be_4004fe48","line":310,"range":{"start_line":310,"start_character":16,"end_line":310,"end_character":25},"updated":"2016-10-13 22:27:42.000000000","message":"project_id","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"83e0ed32650d57960968f0e775bb9aa6d9883608","unresolved":false,"context_lines":[{"line_number":336,"context_line":".. rest_parameters:: parameters.yaml"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"   - trunk_id: trunk_id"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"Show trunk"},{"line_number":342,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-c++src","patch_set":11,"id":"fa6399be_19c3448a","line":339,"updated":"2016-10-14 15:51:38.000000000","message":"I was asked to add a Response section to mine [1]. I did add it (a little reluctantly) but I\u0027ve noticed that we don\u0027t add it consistently. And, I\u0027m not sure I want to require you to add it.\n\n [1] https://review.openstack.org/#/c/374434/5/api-ref/source/v2/segments.inc@115","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e5ccea892455d84d8caa6193ca2ac6cda575d0cd","unresolved":false,"context_lines":[{"line_number":336,"context_line":".. rest_parameters:: parameters.yaml"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"   - trunk_id: trunk_id"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"Show trunk"},{"line_number":342,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-c++src","patch_set":11,"id":"fa6399be_32dbbd1c","line":339,"in_reply_to":"fa6399be_19c3448a","updated":"2016-10-14 16:57:11.000000000","message":"I suppose the response here is no content with 204, so what\u0027s the point for the happy path?","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"83e0ed32650d57960968f0e775bb9aa6d9883608","unresolved":false,"context_lines":[{"line_number":338,"context_line":"   - trunk_id: trunk_id"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"Show trunk"},{"line_number":342,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":".. rest_method::  GET /v2.0/trunks/{trunk_id}"}],"source_content_type":"text/x-c++src","patch_set":11,"id":"fa6399be_47531439","line":341,"range":{"start_line":341,"start_character":0,"end_line":341,"end_character":4},"updated":"2016-10-14 15:51:38.000000000","message":"It might be a bit more natural for show to appear right before or after create. But, this is fine. I just noticed the order in mine is a bit strange for my taste but I modeled mine after networks.inc, I think. Oh well, as long as they\u0027re all here.","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e5ccea892455d84d8caa6193ca2ac6cda575d0cd","unresolved":false,"context_lines":[{"line_number":338,"context_line":"   - trunk_id: trunk_id"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"Show trunk"},{"line_number":342,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":".. rest_method::  GET /v2.0/trunks/{trunk_id}"}],"source_content_type":"text/x-c++src","patch_set":11,"id":"fa6399be_52d671f1","line":341,"range":{"start_line":341,"start_character":0,"end_line":341,"end_character":4},"in_reply_to":"fa6399be_47531439","updated":"2016-10-14 16:57:11.000000000","message":"Done","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"72faffee75752ec3a7b3962bdea3583c83bba31d","unresolved":false,"context_lines":[{"line_number":375,"context_line":"   - port_id: port_id_trunk"},{"line_number":376,"context_line":"   - revision_number: revision_number"},{"line_number":377,"context_line":"   - status: status_trunk"},{"line_number":378,"context_line":"   - tenant_id: tenant_id"},{"line_number":379,"context_line":"   - project_id: project_id"},{"line_number":380,"context_line":"   - sub_ports: sub_ports"},{"line_number":381,"context_line":"   - updated_at: updated_at_resource"}],"source_content_type":"text/x-c++src","patch_set":11,"id":"fa6399be_20a2aa4b","line":378,"range":{"start_line":378,"start_character":16,"end_line":378,"end_character":25},"updated":"2016-10-13 22:27:42.000000000","message":"project_id","commit_id":"716e5d0930c2d5053b669aa99b5f7e5b4385ceda"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"bcd85928a161065a96cad88a67d1bc5505082840","unresolved":false,"context_lines":[{"line_number":36,"context_line":"Use the ``fields`` query parameter to control which fields are"},{"line_number":37,"context_line":"returned in the response body. Additionally, you can filter results"},{"line_number":38,"context_line":"by using query string parameters. For information, see `Filtering"},{"line_number":39,"context_line":"and Column Selection \u003chttps://wiki.openstack.org/wiki/Neutron/APIv2"},{"line_number":40,"context_line":"-specification#Filtering_and_Column_Selection\u003e`__."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Normal response codes: 200"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":13,"id":"fa6399be_728d03d2","line":40,"range":{"start_line":39,"start_character":22,"end_line":40,"end_character":45},"updated":"2016-10-17 13:18:13.000000000","message":"I still think this should link to the api-ref section on filtering rather than the wiki, but I guess if everyone else is jumping off the bridge this mise well too right??! ;)","commit_id":"f2a9b8135030537ce15973db2f0ca40e460189a9"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"92190516d519e59c1f670657df623110c0c8fe84","unresolved":false,"context_lines":[{"line_number":36,"context_line":"Use the ``fields`` query parameter to control which fields are"},{"line_number":37,"context_line":"returned in the response body. Additionally, you can filter results"},{"line_number":38,"context_line":"by using query string parameters. For information, see `Filtering"},{"line_number":39,"context_line":"and Column Selection \u003chttps://wiki.openstack.org/wiki/Neutron/APIv2"},{"line_number":40,"context_line":"-specification#Filtering_and_Column_Selection\u003e`__."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Normal response codes: 200"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":13,"id":"fa6399be_7a1cee6a","line":40,"range":{"start_line":39,"start_character":22,"end_line":40,"end_character":45},"in_reply_to":"fa6399be_728d03d2","updated":"2016-10-17 17:40:25.000000000","message":"I suppose I can be the first odd one out.","commit_id":"f2a9b8135030537ce15973db2f0ca40e460189a9"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"bcd85928a161065a96cad88a67d1bc5505082840","unresolved":false,"context_lines":[{"line_number":56,"context_line":"   - port_id: port_id_trunk"},{"line_number":57,"context_line":"   - revision_number: revision_number"},{"line_number":58,"context_line":"   - status: status_trunk"},{"line_number":59,"context_line":"   - tenant_id: project_id"},{"line_number":60,"context_line":"   - project_id: project_id"},{"line_number":61,"context_line":"   - sub_ports: sub_ports"},{"line_number":62,"context_line":"   - updated_at: updated_at_resource"},{"line_number":63,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":13,"id":"fa6399be_52dabf17","line":60,"range":{"start_line":59,"start_character":0,"end_line":60,"end_character":27},"updated":"2016-10-17 13:18:13.000000000","message":"These are showing up as \"in path\" -- shouldn\u0027t they be \"in body\"?\n\n\nThis comment applies to the other uses herein as well.","commit_id":"f2a9b8135030537ce15973db2f0ca40e460189a9"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"92190516d519e59c1f670657df623110c0c8fe84","unresolved":false,"context_lines":[{"line_number":56,"context_line":"   - port_id: port_id_trunk"},{"line_number":57,"context_line":"   - revision_number: revision_number"},{"line_number":58,"context_line":"   - status: status_trunk"},{"line_number":59,"context_line":"   - tenant_id: project_id"},{"line_number":60,"context_line":"   - project_id: project_id"},{"line_number":61,"context_line":"   - sub_ports: sub_ports"},{"line_number":62,"context_line":"   - updated_at: updated_at_resource"},{"line_number":63,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":13,"id":"fa6399be_fa555efa","line":60,"range":{"start_line":59,"start_character":0,"end_line":60,"end_character":27},"in_reply_to":"fa6399be_52dabf17","updated":"2016-10-17 17:40:25.000000000","message":"yeah, these should be project_id_in_request I  guess.","commit_id":"f2a9b8135030537ce15973db2f0ca40e460189a9"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"bcd85928a161065a96cad88a67d1bc5505082840","unresolved":false,"context_lines":[{"line_number":170,"context_line":"   - description: description_resource"},{"line_number":171,"context_line":"   - id: id_resource"},{"line_number":172,"context_line":"   - name: name_resource"},{"line_number":173,"context_line":"   - port_id: port_id_trunk"},{"line_number":174,"context_line":"   - revision_number: revision_number"},{"line_number":175,"context_line":"   - status: status_trunk"},{"line_number":176,"context_line":"   - tenant_id: project_id"}],"source_content_type":"text/x-c++src","patch_set":13,"id":"fa6399be_1270470a","line":173,"range":{"start_line":173,"start_character":14,"end_line":173,"end_character":27},"updated":"2016-10-17 13:18:13.000000000","message":"Shouldn\u0027t the port_id in the response match that of request? Right now the request port_id is the subport, but in the response its the parent port... Is this correct?","commit_id":"f2a9b8135030537ce15973db2f0ca40e460189a9"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"92190516d519e59c1f670657df623110c0c8fe84","unresolved":false,"context_lines":[{"line_number":170,"context_line":"   - description: description_resource"},{"line_number":171,"context_line":"   - id: id_resource"},{"line_number":172,"context_line":"   - name: name_resource"},{"line_number":173,"context_line":"   - port_id: port_id_trunk"},{"line_number":174,"context_line":"   - revision_number: revision_number"},{"line_number":175,"context_line":"   - status: status_trunk"},{"line_number":176,"context_line":"   - tenant_id: project_id"}],"source_content_type":"text/x-c++src","patch_set":13,"id":"fa6399be_7aacee8c","line":173,"range":{"start_line":173,"start_character":14,"end_line":173,"end_character":27},"in_reply_to":"fa6399be_1270470a","updated":"2016-10-17 17:40:25.000000000","message":"The port ID for the subport is packed in sub_ports below.","commit_id":"f2a9b8135030537ce15973db2f0ca40e460189a9"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"bcd85928a161065a96cad88a67d1bc5505082840","unresolved":false,"context_lines":[{"line_number":254,"context_line":""},{"line_number":255,"context_line":".. rest_parameters:: parameters.yaml"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"   - port_id: port_id"},{"line_number":258,"context_line":"   - segmentation_type: segmentation_type"},{"line_number":259,"context_line":"   - segmentation_id: segmentation_id"},{"line_number":260,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":13,"id":"fa6399be_b2f31b72","line":257,"range":{"start_line":257,"start_character":14,"end_line":257,"end_character":21},"updated":"2016-10-17 13:18:13.000000000","message":"This shows up as \"in path\"... Shouldn\u0027t it be \"in body\" as shown in the sample response JSON.","commit_id":"f2a9b8135030537ce15973db2f0ca40e460189a9"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"92190516d519e59c1f670657df623110c0c8fe84","unresolved":false,"context_lines":[{"line_number":254,"context_line":""},{"line_number":255,"context_line":".. rest_parameters:: parameters.yaml"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"   - port_id: port_id"},{"line_number":258,"context_line":"   - segmentation_type: segmentation_type"},{"line_number":259,"context_line":"   - segmentation_id: segmentation_id"},{"line_number":260,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":13,"id":"fa6399be_da2edaf9","line":257,"range":{"start_line":257,"start_character":14,"end_line":257,"end_character":21},"in_reply_to":"fa6399be_b2f31b72","updated":"2016-10-17 17:40:25.000000000","message":"Done","commit_id":"f2a9b8135030537ce15973db2f0ca40e460189a9"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"558022260830408482b18683d876436f9b1bde26","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Trunk networking"},{"line_number":5,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"This extension can be used to multiplex packets coming from and going to multiple"},{"line_number":8,"context_line":"neutron logical networks using a single neutron logical port. A trunk"},{"line_number":9,"context_line":"is modeled in neutron as a collection of neutron logical ports. One port,"},{"line_number":10,"context_line":"called parent port, must be associated to a trunk and it is *the* port to"}],"source_content_type":"text/x-c++src","patch_set":14,"id":"fa6399be_f1badc70","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":15},"updated":"2016-10-17 22:35:14.000000000","message":"It is better to mention the extension name \"trunk\".","commit_id":"5508938b53b3d853a64d954609b92270db73af35"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"08e9f188806a0774d02f07545c70ccb4a1726fac","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Trunk networking"},{"line_number":5,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"This extension can be used to multiplex packets coming from and going to multiple"},{"line_number":8,"context_line":"neutron logical networks using a single neutron logical port. A trunk"},{"line_number":9,"context_line":"is modeled in neutron as a collection of neutron logical ports. One port,"},{"line_number":10,"context_line":"called parent port, must be associated to a trunk and it is *the* port to"}],"source_content_type":"text/x-c++src","patch_set":14,"id":"fa6399be_3d450517","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":15},"in_reply_to":"fa6399be_f1badc70","updated":"2016-10-17 23:28:00.000000000","message":"Done","commit_id":"5508938b53b3d853a64d954609b92270db73af35"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"558022260830408482b18683d876436f9b1bde26","unresolved":false,"context_lines":[{"line_number":19,"context_line":"  logical networks whose traffic flows through the trunk."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"- **sub_port**. An association to a neutron logical port with attributes"},{"line_number":22,"context_line":"  segmentation_id, and segmentation_type."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"List trunks"}],"source_content_type":"text/x-c++src","patch_set":14,"id":"fa6399be_51162856","line":22,"range":{"start_line":22,"start_character":17,"end_line":22,"end_character":18},"updated":"2016-10-17 22:35:14.000000000","message":"Looks unnecessary.","commit_id":"5508938b53b3d853a64d954609b92270db73af35"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"08e9f188806a0774d02f07545c70ccb4a1726fac","unresolved":false,"context_lines":[{"line_number":19,"context_line":"  logical networks whose traffic flows through the trunk."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"- **sub_port**. An association to a neutron logical port with attributes"},{"line_number":22,"context_line":"  segmentation_id, and segmentation_type."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"List trunks"}],"source_content_type":"text/x-c++src","patch_set":14,"id":"fa6399be_5d4ab928","line":22,"range":{"start_line":22,"start_character":17,"end_line":22,"end_character":18},"in_reply_to":"fa6399be_51162856","updated":"2016-10-17 23:28:00.000000000","message":"Done","commit_id":"5508938b53b3d853a64d954609b92270db73af35"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"558022260830408482b18683d876436f9b1bde26","unresolved":false,"context_lines":[{"line_number":48,"context_line":".. rest_parameters:: parameters.yaml"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"   - admin_state_up: admin_state_up_trunk"},{"line_number":51,"context_line":"   - created_at: created_at_resource"},{"line_number":52,"context_line":"   - description: description_resource"},{"line_number":53,"context_line":"   - id: id_resource"},{"line_number":54,"context_line":"   - name: name_resource"}],"source_content_type":"text/x-c++src","patch_set":14,"id":"fa6399be_dcdb2f20","line":51,"range":{"start_line":51,"start_character":27,"end_line":51,"end_character":36},"updated":"2016-10-17 22:35:14.000000000","message":"we are not using this kind of suffix \u0027_resource\u0027, but we can clean up later. IMO this kind of general description should match the attribute name \"created_at\".","commit_id":"5508938b53b3d853a64d954609b92270db73af35"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"08e9f188806a0774d02f07545c70ccb4a1726fac","unresolved":false,"context_lines":[{"line_number":48,"context_line":".. rest_parameters:: parameters.yaml"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"   - admin_state_up: admin_state_up_trunk"},{"line_number":51,"context_line":"   - created_at: created_at_resource"},{"line_number":52,"context_line":"   - description: description_resource"},{"line_number":53,"context_line":"   - id: id_resource"},{"line_number":54,"context_line":"   - name: name_resource"}],"source_content_type":"text/x-c++src","patch_set":14,"id":"fa6399be_3d13450f","line":51,"range":{"start_line":51,"start_character":27,"end_line":51,"end_character":36},"in_reply_to":"fa6399be_dcdb2f20","updated":"2016-10-17 23:28:00.000000000","message":"Why? Having a created_at, updated_at (and any standardattr attribute) for every possible resource makes parameters.yaml bloat and prone to merge conflict for no good reason.","commit_id":"5508938b53b3d853a64d954609b92270db73af35"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"558022260830408482b18683d876436f9b1bde26","unresolved":false,"context_lines":[{"line_number":52,"context_line":"   - description: description_resource"},{"line_number":53,"context_line":"   - id: id_resource"},{"line_number":54,"context_line":"   - name: name_resource"},{"line_number":55,"context_line":"   - port_id: port_id_trunk"},{"line_number":56,"context_line":"   - revision_number: revision_number"},{"line_number":57,"context_line":"   - status: status_trunk"},{"line_number":58,"context_line":"   - tenant_id: project_id-request"}],"source_content_type":"text/x-c++src","patch_set":14,"id":"fa6399be_3ceb4bb2","line":55,"range":{"start_line":55,"start_character":14,"end_line":55,"end_character":27},"updated":"2016-10-17 22:35:14.000000000","message":"\"trunk-port_id\" is preferred as a definition name.","commit_id":"5508938b53b3d853a64d954609b92270db73af35"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"08e9f188806a0774d02f07545c70ccb4a1726fac","unresolved":false,"context_lines":[{"line_number":52,"context_line":"   - description: description_resource"},{"line_number":53,"context_line":"   - id: id_resource"},{"line_number":54,"context_line":"   - name: name_resource"},{"line_number":55,"context_line":"   - port_id: port_id_trunk"},{"line_number":56,"context_line":"   - revision_number: revision_number"},{"line_number":57,"context_line":"   - status: status_trunk"},{"line_number":58,"context_line":"   - tenant_id: project_id-request"}],"source_content_type":"text/x-c++src","patch_set":14,"id":"fa6399be_5df8f9c4","line":55,"range":{"start_line":55,"start_character":14,"end_line":55,"end_character":27},"in_reply_to":"fa6399be_3ceb4bb2","updated":"2016-10-17 23:28:00.000000000","message":"Done","commit_id":"5508938b53b3d853a64d954609b92270db73af35"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"558022260830408482b18683d876436f9b1bde26","unresolved":false,"context_lines":[{"line_number":54,"context_line":"   - name: name_resource"},{"line_number":55,"context_line":"   - port_id: port_id_trunk"},{"line_number":56,"context_line":"   - revision_number: revision_number"},{"line_number":57,"context_line":"   - status: status_trunk"},{"line_number":58,"context_line":"   - tenant_id: project_id-request"},{"line_number":59,"context_line":"   - project_id: project_id-request"},{"line_number":60,"context_line":"   - sub_ports: sub_ports"}],"source_content_type":"text/x-c++src","patch_set":14,"id":"fa6399be_bcd75bec","line":57,"range":{"start_line":57,"start_character":13,"end_line":57,"end_character":25},"updated":"2016-10-17 22:35:14.000000000","message":"-\u003e \"trunk-status\"","commit_id":"5508938b53b3d853a64d954609b92270db73af35"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"08e9f188806a0774d02f07545c70ccb4a1726fac","unresolved":false,"context_lines":[{"line_number":54,"context_line":"   - name: name_resource"},{"line_number":55,"context_line":"   - port_id: port_id_trunk"},{"line_number":56,"context_line":"   - revision_number: revision_number"},{"line_number":57,"context_line":"   - status: status_trunk"},{"line_number":58,"context_line":"   - tenant_id: project_id-request"},{"line_number":59,"context_line":"   - project_id: project_id-request"},{"line_number":60,"context_line":"   - sub_ports: sub_ports"}],"source_content_type":"text/x-c++src","patch_set":14,"id":"fa6399be_7df5bdc9","line":57,"range":{"start_line":57,"start_character":13,"end_line":57,"end_character":25},"in_reply_to":"fa6399be_bcd75bec","updated":"2016-10-17 23:28:00.000000000","message":"Done","commit_id":"5508938b53b3d853a64d954609b92270db73af35"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"558022260830408482b18683d876436f9b1bde26","unresolved":false,"context_lines":[{"line_number":55,"context_line":"   - port_id: port_id_trunk"},{"line_number":56,"context_line":"   - revision_number: revision_number"},{"line_number":57,"context_line":"   - status: status_trunk"},{"line_number":58,"context_line":"   - tenant_id: project_id-request"},{"line_number":59,"context_line":"   - project_id: project_id-request"},{"line_number":60,"context_line":"   - sub_ports: sub_ports"},{"line_number":61,"context_line":"   - updated_at: updated_at_resource"}],"source_content_type":"text/x-c++src","patch_set":14,"id":"fa6399be_bca91b7e","line":58,"range":{"start_line":58,"start_character":16,"end_line":58,"end_character":34},"updated":"2016-10-17 22:35:14.000000000","message":"It is a part of a response, so \u0027-request\u0027 is unnecessary.","commit_id":"5508938b53b3d853a64d954609b92270db73af35"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"08e9f188806a0774d02f07545c70ccb4a1726fac","unresolved":false,"context_lines":[{"line_number":55,"context_line":"   - port_id: port_id_trunk"},{"line_number":56,"context_line":"   - revision_number: revision_number"},{"line_number":57,"context_line":"   - status: status_trunk"},{"line_number":58,"context_line":"   - tenant_id: project_id-request"},{"line_number":59,"context_line":"   - project_id: project_id-request"},{"line_number":60,"context_line":"   - sub_ports: sub_ports"},{"line_number":61,"context_line":"   - updated_at: updated_at_resource"}],"source_content_type":"text/x-c++src","patch_set":14,"id":"fa6399be_dd2a492f","line":58,"range":{"start_line":58,"start_character":16,"end_line":58,"end_character":34},"in_reply_to":"fa6399be_bca91b7e","updated":"2016-10-17 23:28:00.000000000","message":"this should so \u0027in path\u0027 otherwise, no?","commit_id":"5508938b53b3d853a64d954609b92270db73af35"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"558022260830408482b18683d876436f9b1bde26","unresolved":false,"context_lines":[{"line_number":56,"context_line":"   - revision_number: revision_number"},{"line_number":57,"context_line":"   - status: status_trunk"},{"line_number":58,"context_line":"   - tenant_id: project_id-request"},{"line_number":59,"context_line":"   - project_id: project_id-request"},{"line_number":60,"context_line":"   - sub_ports: sub_ports"},{"line_number":61,"context_line":"   - updated_at: updated_at_resource"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":14,"id":"fa6399be_fcb9d3cc","line":59,"range":{"start_line":59,"start_character":17,"end_line":59,"end_character":35},"updated":"2016-10-17 22:35:14.000000000","message":"ditto","commit_id":"5508938b53b3d853a64d954609b92270db73af35"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"08e9f188806a0774d02f07545c70ccb4a1726fac","unresolved":false,"context_lines":[{"line_number":56,"context_line":"   - revision_number: revision_number"},{"line_number":57,"context_line":"   - status: status_trunk"},{"line_number":58,"context_line":"   - tenant_id: project_id-request"},{"line_number":59,"context_line":"   - project_id: project_id-request"},{"line_number":60,"context_line":"   - sub_ports: sub_ports"},{"line_number":61,"context_line":"   - updated_at: updated_at_resource"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":14,"id":"fa6399be_fd2f0d3c","line":59,"range":{"start_line":59,"start_character":17,"end_line":59,"end_character":35},"in_reply_to":"fa6399be_fcb9d3cc","updated":"2016-10-17 23:28:00.000000000","message":"Done","commit_id":"5508938b53b3d853a64d954609b92270db73af35"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"e0778ed270eb64043267d3b5effd1e2f50cb547d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Trunk networking"},{"line_number":5,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"The trunk xtension can be used to multiplex packets coming from and going to"},{"line_number":8,"context_line":"multiple neutron logical networks using a single neutron logical port. A trunk"},{"line_number":9,"context_line":"is modeled in neutron as a collection of neutron logical ports. One port,"},{"line_number":10,"context_line":"called parent port, must be associated to a trunk and it is *the* port to"}],"source_content_type":"text/x-c++src","patch_set":16,"id":"fa6399be_d834e2df","line":7,"range":{"start_line":7,"start_character":10,"end_line":7,"end_character":18},"updated":"2016-10-19 04:59:25.000000000","message":"Needs more e.","commit_id":"64b48007fa155488c3a1eb061ab519e372dd08a7"}],"neutron_lib/api/definitions/base.py":[{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"507463c49f045a35e1aa0f4f28a82733db9996f6","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    \u0027trunk-details\u0027,"},{"line_number":81,"context_line":")"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"KNOWN_KEYWORDS \u003d ("},{"line_number":84,"context_line":"    \u0027allow_post\u0027,"},{"line_number":85,"context_line":"    \u0027allow_put\u0027,"},{"line_number":86,"context_line":"    \u0027convert_to\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa6399be_ba93f14e","line":83,"range":{"start_line":83,"start_character":0,"end_line":83,"end_character":14},"updated":"2016-10-10 19:20:51.000000000","message":"We lost some of the comments here [1]. While the meaning of these keywords is fairly straight forward, does it make sense to bring over the comments for completeness sake?\n\n[1] https://github.com/openstack/neutron/blob/master/neutron/api/v2/attributes.py#L119","commit_id":"f917208c4f9f73dca12662e9743b3e8501b3eec2"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e1225e533ce6889116260b16be9279d5f249fd75","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    \u0027trunk-details\u0027,"},{"line_number":81,"context_line":")"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"KNOWN_KEYWORDS \u003d ("},{"line_number":84,"context_line":"    \u0027allow_post\u0027,"},{"line_number":85,"context_line":"    \u0027allow_put\u0027,"},{"line_number":86,"context_line":"    \u0027convert_to\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa6399be_830084ac","line":83,"range":{"start_line":83,"start_character":0,"end_line":83,"end_character":14},"in_reply_to":"fa6399be_ba93f14e","updated":"2016-10-10 20:27:42.000000000","message":"sure","commit_id":"f917208c4f9f73dca12662e9743b3e8501b3eec2"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"558022260830408482b18683d876436f9b1bde26","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    \u0027routers\u0027,"},{"line_number":30,"context_line":")"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"KNOWN_ACTIONS \u003d ("},{"line_number":33,"context_line":"    \u0027DELETE\u0027,"},{"line_number":34,"context_line":"    \u0027GET\u0027,"},{"line_number":35,"context_line":"    \u0027POST\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa6399be_22f24007","line":32,"updated":"2016-10-17 22:35:14.000000000","message":"nit: KNOWN_HTTP_ACTIONS might be better.","commit_id":"5508938b53b3d853a64d954609b92270db73af35"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"08e9f188806a0774d02f07545c70ccb4a1726fac","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    \u0027routers\u0027,"},{"line_number":30,"context_line":")"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"KNOWN_ACTIONS \u003d ("},{"line_number":33,"context_line":"    \u0027DELETE\u0027,"},{"line_number":34,"context_line":"    \u0027GET\u0027,"},{"line_number":35,"context_line":"    \u0027POST\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa6399be_7d1cdd13","line":32,"in_reply_to":"fa6399be_22f24007","updated":"2016-10-17 23:28:00.000000000","message":"Done","commit_id":"5508938b53b3d853a64d954609b92270db73af35"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"b979808153e65951bb76404ba0bbd0f031511bd9","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    \u0027router\u0027,"},{"line_number":70,"context_line":"    \u0027router_availability_zone\u0027,"},{"line_number":71,"context_line":"    \u0027security-group\u0027,"},{"line_number":72,"context_line":"    \u0027service-type\u0027,"},{"line_number":73,"context_line":"    \u0027sorting\u0027,"},{"line_number":74,"context_line":"    \u0027standard-attr-description\u0027,"},{"line_number":75,"context_line":"    \u0027standard-attr-revisions\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa6399be_eb93cbfe","line":72,"updated":"2016-10-17 20:09:39.000000000","message":"segments and l2_adjacency? Will I need to do some extra more work to get those in shape?","commit_id":"5508938b53b3d853a64d954609b92270db73af35"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"97a96e9b565ecc932bd3c397045a1c80d3bb9296","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    \u0027router\u0027,"},{"line_number":70,"context_line":"    \u0027router_availability_zone\u0027,"},{"line_number":71,"context_line":"    \u0027security-group\u0027,"},{"line_number":72,"context_line":"    \u0027service-type\u0027,"},{"line_number":73,"context_line":"    \u0027sorting\u0027,"},{"line_number":74,"context_line":"    \u0027standard-attr-description\u0027,"},{"line_number":75,"context_line":"    \u0027standard-attr-revisions\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa6399be_42e1f4fd","line":72,"in_reply_to":"fa6399be_eb93cbfe","updated":"2016-10-17 22:30:23.000000000","message":"why are they not in here?\n\nhttps://github.com/openstack/neutron/blob/master/neutron/tests/contrib/hooks/api_extensions","commit_id":"5508938b53b3d853a64d954609b92270db73af35"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"558022260830408482b18683d876436f9b1bde26","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    \u0027trunk-details\u0027,"},{"line_number":81,"context_line":")"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"# The following is a short reference for understanding attribute info:"},{"line_number":84,"context_line":"# default: default value of the attribute (if missing, the attribute"},{"line_number":85,"context_line":"# becomes mandatory."},{"line_number":86,"context_line":"# allow_post: the attribute can be used on POST requests."}],"source_content_type":"text/x-python","patch_set":14,"id":"fa6399be_82ca2c6d","line":83,"updated":"2016-10-17 22:35:14.000000000","message":"It would be nice if the order of attributes in the comment is alphabetical too.","commit_id":"5508938b53b3d853a64d954609b92270db73af35"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"08e9f188806a0774d02f07545c70ccb4a1726fac","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    \u0027trunk-details\u0027,"},{"line_number":81,"context_line":")"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"# The following is a short reference for understanding attribute info:"},{"line_number":84,"context_line":"# default: default value of the attribute (if missing, the attribute"},{"line_number":85,"context_line":"# becomes mandatory."},{"line_number":86,"context_line":"# allow_post: the attribute can be used on POST requests."}],"source_content_type":"text/x-python","patch_set":14,"id":"fa6399be_bd1675ef","line":83,"in_reply_to":"fa6399be_82ca2c6d","updated":"2016-10-17 23:28:00.000000000","message":"Done","commit_id":"5508938b53b3d853a64d954609b92270db73af35"}],"neutron_lib/api/definitions/trunk.py":[{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"6946291b379d129b56c4b1ff07be93f4cf286b18","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"9ad45d7e_cd1b8b7f","updated":"2016-08-12 14:30:35.000000000","message":"WRT the layout: should we put this in an extensions subdir to separate core/extns or just plop everything into one top-level dir?","commit_id":"6966d7f1694b34d957149df80a0f0e8986a8157d"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"b745377deb994dc363e35687ad5661524a60d8e5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"9ad45d7e_c516bff0","in_reply_to":"9ad45d7e_cd1b8b7f","updated":"2016-08-12 15:27:45.000000000","message":"I see no reason for the level of complexity. We should stop having a two tier classification of the API as it never made sense. Everything is an extension in Neutron.","commit_id":"6966d7f1694b34d957149df80a0f0e8986a8157d"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"6946291b379d129b56c4b1ff07be93f4cf286b18","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                      \u0027is_visible\u0027: True}"},{"line_number":54,"context_line":"    },"},{"line_number":55,"context_line":"}"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"ACTION_MAP \u003d {"},{"line_number":58,"context_line":"    \u0027trunk\u0027: {\u0027add_subports\u0027: \u0027PUT\u0027,"},{"line_number":59,"context_line":"              \u0027remove_subports\u0027: \u0027PUT\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad45d7e_a88f2574","line":56,"updated":"2016-08-12 14:30:35.000000000","message":"I probably missed this somewhere, but is the idea just to bring over defs and not the actual plugin/extension descriptor class (e.g. [1])?\n\n\nI haven\u0027t done an in-depth investigation, but IIRC a lot of these ext descriptor classes are similar; seems like we build something in lib to remove some of the redundancy in these  descriptors in neutron.\n\n\n[1] https://github.com/openstack/neutron/blob/master/neutron/extensions/trunk.py#L56","commit_id":"6966d7f1694b34d957149df80a0f0e8986a8157d"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"727de42aa1bcfc9dce2a932808ce00c77219835c","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                      \u0027is_visible\u0027: True}"},{"line_number":54,"context_line":"    },"},{"line_number":55,"context_line":"}"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"ACTION_MAP \u003d {"},{"line_number":58,"context_line":"    \u0027trunk\u0027: {\u0027add_subports\u0027: \u0027PUT\u0027,"},{"line_number":59,"context_line":"              \u0027remove_subports\u0027: \u0027PUT\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_bc58aa33","line":56,"in_reply_to":"3ac371cc_3c2b6584","updated":"2016-08-16 16:22:19.000000000","message":"Disentangling the extension descriptor logic from the Neutron extension framework may be very challenging at this stage and I considered it a stage-two type of step. I\u0027d still like to decouple the purely declarative aspects of the API from the the underlying functional platform details that gets the API extension over the wire. After all we may decide to build one from scratch altogether.\n\nMakes sense?","commit_id":"6966d7f1694b34d957149df80a0f0e8986a8157d"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"360b10aac855062560e97183afc3509db21b91a9","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                      \u0027is_visible\u0027: True}"},{"line_number":54,"context_line":"    },"},{"line_number":55,"context_line":"}"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"ACTION_MAP \u003d {"},{"line_number":58,"context_line":"    \u0027trunk\u0027: {\u0027add_subports\u0027: \u0027PUT\u0027,"},{"line_number":59,"context_line":"              \u0027remove_subports\u0027: \u0027PUT\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_f8467d79","line":56,"in_reply_to":"3ac371cc_bc58aa33","updated":"2016-08-17 13:08:28.000000000","message":"Yup, was just trying to gain some context. My apologies if we covered the scope of this work and I missed it elsewhere.","commit_id":"6966d7f1694b34d957149df80a0f0e8986a8157d"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"fce78d20d40e72f0388ba5b2c054d2c295e99e01","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                      \u0027is_visible\u0027: True}"},{"line_number":54,"context_line":"    },"},{"line_number":55,"context_line":"}"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"ACTION_MAP \u003d {"},{"line_number":58,"context_line":"    \u0027trunk\u0027: {\u0027add_subports\u0027: \u0027PUT\u0027,"},{"line_number":59,"context_line":"              \u0027remove_subports\u0027: \u0027PUT\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_2d62873e","line":56,"in_reply_to":"3ac371cc_f8467d79","updated":"2016-08-17 16:43:11.000000000","message":"No need to apologize, this is good feedback. I\u0027ll incorporate some of your points in a devref-y type of document.","commit_id":"6966d7f1694b34d957149df80a0f0e8986a8157d"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"b745377deb994dc363e35687ad5661524a60d8e5","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                      \u0027is_visible\u0027: True}"},{"line_number":54,"context_line":"    },"},{"line_number":55,"context_line":"}"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"ACTION_MAP \u003d {"},{"line_number":58,"context_line":"    \u0027trunk\u0027: {\u0027add_subports\u0027: \u0027PUT\u0027,"},{"line_number":59,"context_line":"              \u0027remove_subports\u0027: \u0027PUT\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad45d7e_e5aca38e","line":56,"in_reply_to":"9ad45d7e_a88f2574","updated":"2016-08-12 15:27:45.000000000","message":"Where do you see actual plugin/extension descriptor class brought over in this patch? I don\u0027t understand your comment.","commit_id":"6966d7f1694b34d957149df80a0f0e8986a8157d"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"55b8976d591b1e53b2cf3c66eadfc72ddafa790a","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                      \u0027is_visible\u0027: True}"},{"line_number":54,"context_line":"    },"},{"line_number":55,"context_line":"}"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"ACTION_MAP \u003d {"},{"line_number":58,"context_line":"    \u0027trunk\u0027: {\u0027add_subports\u0027: \u0027PUT\u0027,"},{"line_number":59,"context_line":"              \u0027remove_subports\u0027: \u0027PUT\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_3c2b6584","line":56,"in_reply_to":"9ad45d7e_e5aca38e","updated":"2016-08-15 13:24:07.000000000","message":"My primary comment: I\u0027m asking if we plan to bring over extension descriptor classes for the API defs, or if we plan to just have the definitions in neutron-lib.\n\n\nSecondary comment: there seems to be a lot of redundancy in the extension descriptor classes in neutron; I\u0027m wondering if we can build something generic in lib to reduce that redundancy.","commit_id":"6966d7f1694b34d957149df80a0f0e8986a8157d"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"0838b53744b650b296e3eae6263ca7beb5d525f7","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"DESCRIPTION \u003d \"Provides support for trunk ports\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"RESOURCE_ATTRIBUTE_MAP \u003d {"},{"line_number":26,"context_line":"    \u0027trunks\u0027: {"},{"line_number":27,"context_line":"        \u0027admin_state_up\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: True,"},{"line_number":28,"context_line":"                           \u0027default\u0027: True,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_b52e7ca2","line":25,"updated":"2016-08-18 14:08:17.000000000","message":"Do we want to start documenting custom queries supported by extensions on top of attribute map keys?","commit_id":"bb86fc029fef09d85df88cb314b3cfba7c72b2fd"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e9b01ef95e584f3254e36ea9f7c33ef503528043","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"DESCRIPTION \u003d \"Provides support for trunk ports\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"RESOURCE_ATTRIBUTE_MAP \u003d {"},{"line_number":26,"context_line":"    \u0027trunks\u0027: {"},{"line_number":27,"context_line":"        \u0027admin_state_up\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: True,"},{"line_number":28,"context_line":"                           \u0027default\u0027: True,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a95cdbc_407c9572","line":25,"in_reply_to":"3ac371cc_b52e7ca2","updated":"2016-10-05 00:55:47.000000000","message":"That\u0027s a good idea, though this API may not be the best because it does not have any special query besides the built-in ones already available.\n\nThat said, custom queries today have no API representation,  I guess we\u0027ll have to go through the codebase, identify them and write dummy extensions to have them advertised. Makes sense?\n\nI\u0027ll make a mental note ;)","commit_id":"bb86fc029fef09d85df88cb314b3cfba7c72b2fd"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"02393dd2bb25e1ce815324cd17bdc63c1cb41230","unresolved":false,"context_lines":[{"line_number":38,"context_line":"DESCRIPTION \u003d \"Provides support for trunk ports\""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"# A timestamp of when the extension was introduced."},{"line_number":41,"context_line":"UPDATED_TIMESTAMP \u003d \"2016-01-01T10:00:00-00:00\""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"# The specific resources and/or attributes for the extension (optional)."},{"line_number":44,"context_line":"TRUNK \u003d \u0027trunk\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a95cdbc_629239a1","line":41,"updated":"2016-10-06 08:07:23.000000000","message":"Last January? :)","commit_id":"402c3dd88f76ce4740ae4151b36d8987ec51d313"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"757bed1542bbad3184ee2678d0d5736b68fd6ffc","unresolved":false,"context_lines":[{"line_number":38,"context_line":"DESCRIPTION \u003d \"Provides support for trunk ports\""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"# A timestamp of when the extension was introduced."},{"line_number":41,"context_line":"UPDATED_TIMESTAMP \u003d \"2016-01-01T10:00:00-00:00\""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"# The specific resources and/or attributes for the extension (optional)."},{"line_number":44,"context_line":"TRUNK \u003d \u0027trunk\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a95cdbc_bcac4236","line":41,"in_reply_to":"1a95cdbc_629239a1","updated":"2016-10-06 18:23:10.000000000","message":"that\u0027s what we have, but you clearly know these timestamps have been pretty useless.","commit_id":"402c3dd88f76ce4740ae4151b36d8987ec51d313"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"558022260830408482b18683d876436f9b1bde26","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2016 ZTE Inc."},{"line_number":2,"context_line":"# All rights reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa6399be_e29928d2","line":1,"updated":"2016-10-17 22:35:14.000000000","message":"Why \u0027ZTE\u0027?","commit_id":"5508938b53b3d853a64d954609b92270db73af35"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"08e9f188806a0774d02f07545c70ccb4a1726fac","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2016 ZTE Inc."},{"line_number":2,"context_line":"# All rights reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa6399be_fdd62d26","line":1,"in_reply_to":"fa6399be_e29928d2","updated":"2016-10-17 23:28:00.000000000","message":"That\u0027s the original committer from the neutron cut.","commit_id":"5508938b53b3d853a64d954609b92270db73af35"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"558022260830408482b18683d876436f9b1bde26","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"# Whether or not this extension is simply signaling behavior to the user"},{"line_number":23,"context_line":"# or it actively modifies the attribute map."},{"line_number":24,"context_line":"IS_FLAG_EXTENSION \u003d False"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"# Whether the extension is marking the adoption of standardattr model for"},{"line_number":27,"context_line":"# legacy resources, or introducing new standardattr attributes. False or"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa6399be_b7ff74a9","line":24,"updated":"2016-10-17 22:35:14.000000000","message":"\"FLAG\" might be confusing. We usually call such extensions as \"shim\" extension. How about using \u0027shim\u0027?","commit_id":"5508938b53b3d853a64d954609b92270db73af35"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"08e9f188806a0774d02f07545c70ccb4a1726fac","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"# Whether or not this extension is simply signaling behavior to the user"},{"line_number":23,"context_line":"# or it actively modifies the attribute map."},{"line_number":24,"context_line":"IS_FLAG_EXTENSION \u003d False"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"# Whether the extension is marking the adoption of standardattr model for"},{"line_number":27,"context_line":"# legacy resources, or introducing new standardattr attributes. False or"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa6399be_3de185ff","line":24,"in_reply_to":"fa6399be_b7ff74a9","updated":"2016-10-17 23:28:00.000000000","message":"Done","commit_id":"5508938b53b3d853a64d954609b92270db73af35"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"558022260830408482b18683d876436f9b1bde26","unresolved":false,"context_lines":[{"line_number":93,"context_line":"]"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"# The list of optional extensions."},{"line_number":96,"context_line":"OPTIONAL_EXTENSIONS \u003d None"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"# TODO(armax): add support for modeling custom queries"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa6399be_d7b4e8d5","line":96,"range":{"start_line":96,"start_character":0,"end_line":96,"end_character":19},"updated":"2016-10-17 22:35:14.000000000","message":"What does \u0027optional\u0027 mean?","commit_id":"5508938b53b3d853a64d954609b92270db73af35"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"08e9f188806a0774d02f07545c70ccb4a1726fac","unresolved":false,"context_lines":[{"line_number":93,"context_line":"]"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"# The list of optional extensions."},{"line_number":96,"context_line":"OPTIONAL_EXTENSIONS \u003d None"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"# TODO(armax): add support for modeling custom queries"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa6399be_9df0d1cb","line":96,"range":{"start_line":96,"start_character":0,"end_line":96,"end_character":19},"in_reply_to":"fa6399be_d7b4e8d5","updated":"2016-10-17 23:28:00.000000000","message":"http://git.openstack.org/cgit/openstack/neutron/tree/neutron/api/extensions.py#n173","commit_id":"5508938b53b3d853a64d954609b92270db73af35"}],"neutron_lib/api/definitions/trunk_details.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"558022260830408482b18683d876436f9b1bde26","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2016 ZTE Inc."},{"line_number":2,"context_line":"# All rights reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa6399be_1734a048","line":1,"range":{"start_line":1,"start_character":21,"end_line":1,"end_character":29},"updated":"2016-10-17 22:35:14.000000000","message":"Why \u0027ZTE\u0027?","commit_id":"5508938b53b3d853a64d954609b92270db73af35"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"08e9f188806a0774d02f07545c70ccb4a1726fac","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2016 ZTE Inc."},{"line_number":2,"context_line":"# All rights reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa6399be_bded95f1","line":1,"range":{"start_line":1,"start_character":21,"end_line":1,"end_character":29},"in_reply_to":"fa6399be_1734a048","updated":"2016-10-17 23:28:00.000000000","message":"This is probably my mistake.","commit_id":"5508938b53b3d853a64d954609b92270db73af35"}],"neutron_lib/tests/unit/api/definitions/base.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"0838b53744b650b296e3eae6263ca7beb5d525f7","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    \u0027validate\u0027: assert_validator,"},{"line_number":75,"context_line":"}"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"VALID_ACTION \u003d ("},{"line_number":78,"context_line":"    \u0027DELETE\u0027,"},{"line_number":79,"context_line":"    \u0027GET\u0027,"},{"line_number":80,"context_line":"    \u0027POST\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_d57e98e2","line":77,"updated":"2016-08-18 14:08:17.000000000","message":"ACTIONS?","commit_id":"bb86fc029fef09d85df88cb314b3cfba7c72b2fd"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e9b01ef95e584f3254e36ea9f7c33ef503528043","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    \u0027validate\u0027: assert_validator,"},{"line_number":75,"context_line":"}"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"VALID_ACTION \u003d ("},{"line_number":78,"context_line":"    \u0027DELETE\u0027,"},{"line_number":79,"context_line":"    \u0027GET\u0027,"},{"line_number":80,"context_line":"    \u0027POST\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a95cdbc_80969d92","line":77,"in_reply_to":"3ac371cc_d57e98e2","updated":"2016-10-05 00:55:47.000000000","message":"Done","commit_id":"bb86fc029fef09d85df88cb314b3cfba7c72b2fd"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"0838b53744b650b296e3eae6263ca7beb5d525f7","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    \u0027address-scope\u0027,"},{"line_number":86,"context_line":"    \u0027agent\u0027,"},{"line_number":87,"context_line":"    \u0027allowed-address-pairs\u0027,"},{"line_number":88,"context_line":"    \u0027uto-allocated-topology\u0027,"},{"line_number":89,"context_line":"    \u0027availability_zone\u0027,"},{"line_number":90,"context_line":"    \u0027binding\u0027,"},{"line_number":91,"context_line":"    \u0027default-subnetpools\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_35b3ac0b","line":88,"updated":"2016-08-18 14:08:17.000000000","message":"auto?","commit_id":"bb86fc029fef09d85df88cb314b3cfba7c72b2fd"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e9b01ef95e584f3254e36ea9f7c33ef503528043","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    \u0027address-scope\u0027,"},{"line_number":86,"context_line":"    \u0027agent\u0027,"},{"line_number":87,"context_line":"    \u0027allowed-address-pairs\u0027,"},{"line_number":88,"context_line":"    \u0027uto-allocated-topology\u0027,"},{"line_number":89,"context_line":"    \u0027availability_zone\u0027,"},{"line_number":90,"context_line":"    \u0027binding\u0027,"},{"line_number":91,"context_line":"    \u0027default-subnetpools\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a95cdbc_e08da17c","line":88,"in_reply_to":"3ac371cc_35b3ac0b","updated":"2016-10-05 00:55:47.000000000","message":"Done","commit_id":"bb86fc029fef09d85df88cb314b3cfba7c72b2fd"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"0838b53744b650b296e3eae6263ca7beb5d525f7","unresolved":false,"context_lines":[{"line_number":154,"context_line":"                             keyword, value)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    def test_action_map(self):"},{"line_number":157,"context_line":"        if not self.action_map:"},{"line_number":158,"context_line":"            self.skip(\"API definition has no action map.\")"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"        for key in self.action_map:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_758c04da","line":157,"updated":"2016-08-18 14:08:17.000000000","message":"do we require custom actions for extensions?","commit_id":"bb86fc029fef09d85df88cb314b3cfba7c72b2fd"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"35e7037826f80f3cafd7c08fef5c8bf7e626678a","unresolved":false,"context_lines":[{"line_number":154,"context_line":"                             keyword, value)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    def test_action_map(self):"},{"line_number":157,"context_line":"        if not self.action_map:"},{"line_number":158,"context_line":"            self.skip(\"API definition has no action map.\")"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"        for key in self.action_map:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a95cdbc_ede7483e","line":157,"in_reply_to":"1a95cdbc_40f3b50a","updated":"2016-10-05 11:20:38.000000000","message":"I mean, if an extension does not define a custom action_map because it\u0027s not needed, then the check will fail. I would think that there are legit extensions with no additional action map to define, and they should pass the test case.","commit_id":"bb86fc029fef09d85df88cb314b3cfba7c72b2fd"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"efd02124b31f8e5a16217a3a4cc50efedb9fdb89","unresolved":false,"context_lines":[{"line_number":154,"context_line":"                             keyword, value)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    def test_action_map(self):"},{"line_number":157,"context_line":"        if not self.action_map:"},{"line_number":158,"context_line":"            self.skip(\"API definition has no action map.\")"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"        for key in self.action_map:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a95cdbc_fc9b60c7","line":157,"in_reply_to":"1a95cdbc_9c36dce5","updated":"2016-10-05 17:44:51.000000000","message":"no, they are not dumb at all, it makes me realize I need to take into account of flag extensions like sorting and pagination :)\n\nSo you\u0027re excellent!","commit_id":"bb86fc029fef09d85df88cb314b3cfba7c72b2fd"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"49feac0e64d8501e7019ea247f07e81e4dd72e9f","unresolved":false,"context_lines":[{"line_number":154,"context_line":"                             keyword, value)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    def test_action_map(self):"},{"line_number":157,"context_line":"        if not self.action_map:"},{"line_number":158,"context_line":"            self.skip(\"API definition has no action map.\")"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"        for key in self.action_map:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a95cdbc_9c36dce5","line":157,"in_reply_to":"1a95cdbc_cdf8b54c","updated":"2016-10-05 17:43:17.000000000","message":"Nevermind, it\u0027s me making dumb comments, not you.","commit_id":"bb86fc029fef09d85df88cb314b3cfba7c72b2fd"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"035a462a5ba8db27e2225b638df73e6b5ae2df4d","unresolved":false,"context_lines":[{"line_number":154,"context_line":"                             keyword, value)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    def test_action_map(self):"},{"line_number":157,"context_line":"        if not self.action_map:"},{"line_number":158,"context_line":"            self.skip(\"API definition has no action map.\")"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"        for key in self.action_map:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a95cdbc_cdf8b54c","line":157,"in_reply_to":"1a95cdbc_ede7483e","updated":"2016-10-05 17:26:16.000000000","message":"Right now the way I envisioned this is that the test for the extension would define action_map to be None and the test would be skipped, same as below.","commit_id":"bb86fc029fef09d85df88cb314b3cfba7c72b2fd"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e9b01ef95e584f3254e36ea9f7c33ef503528043","unresolved":false,"context_lines":[{"line_number":154,"context_line":"                             keyword, value)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    def test_action_map(self):"},{"line_number":157,"context_line":"        if not self.action_map:"},{"line_number":158,"context_line":"            self.skip(\"API definition has no action map.\")"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"        for key in self.action_map:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a95cdbc_40f3b50a","line":157,"in_reply_to":"3ac371cc_758c04da","updated":"2016-10-05 00:55:47.000000000","message":"unless you want to change HTTP, then no :)","commit_id":"bb86fc029fef09d85df88cb314b3cfba7c72b2fd"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"0838b53744b650b296e3eae6263ca7beb5d525f7","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        for key in self.action_map:"},{"line_number":161,"context_line":"            for action in self.action_map[key].values():"},{"line_number":162,"context_line":"                self.assertIn(action, VALID_ACTION,"},{"line_number":163,"context_line":"                              \"HTTP verb in unknown, check for typos.\")"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"    def test_required_extensions(self):"},{"line_number":166,"context_line":"        if not self.required_extensions:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_d5c178e5","line":163,"range":{"start_line":163,"start_character":41,"end_line":163,"end_character":43},"updated":"2016-08-18 14:08:17.000000000","message":"is?","commit_id":"bb86fc029fef09d85df88cb314b3cfba7c72b2fd"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e9b01ef95e584f3254e36ea9f7c33ef503528043","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        for key in self.action_map:"},{"line_number":161,"context_line":"            for action in self.action_map[key].values():"},{"line_number":162,"context_line":"                self.assertIn(action, VALID_ACTION,"},{"line_number":163,"context_line":"                              \"HTTP verb in unknown, check for typos.\")"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"    def test_required_extensions(self):"},{"line_number":166,"context_line":"        if not self.required_extensions:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a95cdbc_60f8b1e6","line":163,"range":{"start_line":163,"start_character":41,"end_line":163,"end_character":43},"in_reply_to":"3ac371cc_d5c178e5","updated":"2016-10-05 00:55:47.000000000","message":"Done","commit_id":"bb86fc029fef09d85df88cb314b3cfba7c72b2fd"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"0838b53744b650b296e3eae6263ca7beb5d525f7","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                              \"HTTP verb in unknown, check for typos.\")"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"    def test_required_extensions(self):"},{"line_number":166,"context_line":"        if not self.required_extensions:"},{"line_number":167,"context_line":"            self.skip(\"API definition has no required extensions.\")"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        for ext in self.required_extensions:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_95a4204b","line":166,"updated":"2016-08-18 14:08:17.000000000","message":"how do I define an extension with no deps?","commit_id":"bb86fc029fef09d85df88cb314b3cfba7c72b2fd"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"035a462a5ba8db27e2225b638df73e6b5ae2df4d","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                              \"HTTP verb in unknown, check for typos.\")"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"    def test_required_extensions(self):"},{"line_number":166,"context_line":"        if not self.required_extensions:"},{"line_number":167,"context_line":"            self.skip(\"API definition has no required extensions.\")"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        for ext in self.required_extensions:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a95cdbc_cd2b5593","line":166,"in_reply_to":"1a95cdbc_2d3770b1","updated":"2016-10-05 17:26:16.000000000","message":"I am feeling dumb, sorry.\n\nIf self.required_extensions is [] or is None, the if block will be executed and the test is skipped. What is wrong with this exactly?","commit_id":"bb86fc029fef09d85df88cb314b3cfba7c72b2fd"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"35e7037826f80f3cafd7c08fef5c8bf7e626678a","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                              \"HTTP verb in unknown, check for typos.\")"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"    def test_required_extensions(self):"},{"line_number":166,"context_line":"        if not self.required_extensions:"},{"line_number":167,"context_line":"            self.skip(\"API definition has no required extensions.\")"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        for ext in self.required_extensions:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a95cdbc_2d3770b1","line":166,"in_reply_to":"1a95cdbc_a0dab976","updated":"2016-10-05 11:20:38.000000000","message":"Well, if I define it as an empty list, then the body of the \u0027if\u0027 block will be executed (bool([]) \u003d\u003d False). So extensions with no dependencies will not pass the test case.","commit_id":"bb86fc029fef09d85df88cb314b3cfba7c72b2fd"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"49feac0e64d8501e7019ea247f07e81e4dd72e9f","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                              \"HTTP verb in unknown, check for typos.\")"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"    def test_required_extensions(self):"},{"line_number":166,"context_line":"        if not self.required_extensions:"},{"line_number":167,"context_line":"            self.skip(\"API definition has no required extensions.\")"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        for ext in self.required_extensions:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a95cdbc_dc3064eb","line":166,"in_reply_to":"1a95cdbc_cd2b5593","updated":"2016-10-05 17:43:17.000000000","message":"Nevermind.","commit_id":"bb86fc029fef09d85df88cb314b3cfba7c72b2fd"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e9b01ef95e584f3254e36ea9f7c33ef503528043","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                              \"HTTP verb in unknown, check for typos.\")"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"    def test_required_extensions(self):"},{"line_number":166,"context_line":"        if not self.required_extensions:"},{"line_number":167,"context_line":"            self.skip(\"API definition has no required extensions.\")"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        for ext in self.required_extensions:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a95cdbc_a0dab976","line":166,"in_reply_to":"3ac371cc_95a4204b","updated":"2016-10-05 00:55:47.000000000","message":"empty list, though I am not sure that\u0027s what you\u0027re asking","commit_id":"bb86fc029fef09d85df88cb314b3cfba7c72b2fd"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"507463c49f045a35e1aa0f4f28a82733db9996f6","unresolved":false,"context_lines":[{"line_number":56,"context_line":"}"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"class DefinitionBaseTestCase(test_base.BaseTestCase):"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    extension_module \u003d None"},{"line_number":62,"context_line":"    extension_resources \u003d ()"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa6399be_3a79a130","line":59,"range":{"start_line":59,"start_character":6,"end_line":59,"end_character":28},"updated":"2016-10-10 19:20:51.000000000","message":"On the surface, it seems like a bulk of whats tested here and what\u0027s defined in a RESOURCE_ATTRIBUTE_MAP could be handled by JSON schema. I assume we think this route (schema less) is better?","commit_id":"f917208c4f9f73dca12662e9743b3e8501b3eec2"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e1225e533ce6889116260b16be9279d5f249fd75","unresolved":false,"context_lines":[{"line_number":56,"context_line":"}"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"class DefinitionBaseTestCase(test_base.BaseTestCase):"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    extension_module \u003d None"},{"line_number":62,"context_line":"    extension_resources \u003d ()"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa6399be_03ec74c6","line":59,"range":{"start_line":59,"start_character":6,"end_line":59,"end_character":28},"in_reply_to":"fa6399be_3a79a130","updated":"2016-10-10 20:27:42.000000000","message":"I don\u0027t think the approach proposed here is better :)\n\nI didn\u0027t find any use of jsonschema in any of the neutron projects and I did not want to add the dependency for a handful of LOCs. On the other hand, I couldn\u0027t imagine a simple way to use jsonschema without making the whole use of the attribute maps somewhat convoluted. If you think we can turn this test case to be a lot simpler, I\u0027d be keen to learn.","commit_id":"f917208c4f9f73dca12662e9743b3e8501b3eec2"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"558022260830408482b18683d876436f9b1bde26","unresolved":false,"context_lines":[{"line_number":56,"context_line":"}"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"class DefinitionBaseTestCase(test_base.BaseTestCase):"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    extension_module \u003d None"},{"line_number":62,"context_line":"    extension_resources \u003d ()"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa6399be_22aa4086","line":59,"updated":"2016-10-17 22:35:14.000000000","message":"This is a nice idea!","commit_id":"5508938b53b3d853a64d954609b92270db73af35"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"558022260830408482b18683d876436f9b1bde26","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        elif self.is_flag_extension:"},{"line_number":97,"context_line":"            self.skip(\u0027Flag extension with no API changes.\u0027)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        for resource in self.resource_map.keys():"},{"line_number":100,"context_line":"            self.assertIn("},{"line_number":101,"context_line":"                resource, base.KNOWN_RESOURCES + self.extension_resources,"},{"line_number":102,"context_line":"                \u0027Resource is unknown, check for typos.\u0027)"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa6399be_37a36451","line":99,"range":{"start_line":99,"start_character":41,"end_line":99,"end_character":48},"updated":"2016-10-17 22:35:14.000000000","message":"nit: .keys() is unnecessary.","commit_id":"5508938b53b3d853a64d954609b92270db73af35"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"08e9f188806a0774d02f07545c70ccb4a1726fac","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        elif self.is_flag_extension:"},{"line_number":97,"context_line":"            self.skip(\u0027Flag extension with no API changes.\u0027)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        for resource in self.resource_map.keys():"},{"line_number":100,"context_line":"            self.assertIn("},{"line_number":101,"context_line":"                resource, base.KNOWN_RESOURCES + self.extension_resources,"},{"line_number":102,"context_line":"                \u0027Resource is unknown, check for typos.\u0027)"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa6399be_fdbd4dd8","line":99,"range":{"start_line":99,"start_character":41,"end_line":99,"end_character":48},"in_reply_to":"fa6399be_37a36451","updated":"2016-10-17 23:28:00.000000000","message":"Done","commit_id":"5508938b53b3d853a64d954609b92270db73af35"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"558022260830408482b18683d876436f9b1bde26","unresolved":false,"context_lines":[{"line_number":100,"context_line":"            self.assertIn("},{"line_number":101,"context_line":"                resource, base.KNOWN_RESOURCES + self.extension_resources,"},{"line_number":102,"context_line":"                \u0027Resource is unknown, check for typos.\u0027)"},{"line_number":103,"context_line":"            for attribute in self.resource_map[resource].keys():"},{"line_number":104,"context_line":"                self.assertIn("},{"line_number":105,"context_line":"                    attribute,"},{"line_number":106,"context_line":"                    base.KNOWN_ATTRIBUTES + self.extension_attributes,"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa6399be_5788d8c6","line":103,"range":{"start_line":103,"start_character":56,"end_line":103,"end_character":64},"updated":"2016-10-17 22:35:14.000000000","message":"ditto","commit_id":"5508938b53b3d853a64d954609b92270db73af35"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"08e9f188806a0774d02f07545c70ccb4a1726fac","unresolved":false,"context_lines":[{"line_number":100,"context_line":"            self.assertIn("},{"line_number":101,"context_line":"                resource, base.KNOWN_RESOURCES + self.extension_resources,"},{"line_number":102,"context_line":"                \u0027Resource is unknown, check for typos.\u0027)"},{"line_number":103,"context_line":"            for attribute in self.resource_map[resource].keys():"},{"line_number":104,"context_line":"                self.assertIn("},{"line_number":105,"context_line":"                    attribute,"},{"line_number":106,"context_line":"                    base.KNOWN_ATTRIBUTES + self.extension_attributes,"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa6399be_1db3e10b","line":103,"range":{"start_line":103,"start_character":56,"end_line":103,"end_character":64},"in_reply_to":"fa6399be_5788d8c6","updated":"2016-10-17 23:28:00.000000000","message":"Done","commit_id":"5508938b53b3d853a64d954609b92270db73af35"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"e0778ed270eb64043267d3b5effd1e2f50cb547d","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        if self.is_standard_attr_extension:"},{"line_number":89,"context_line":"            self.assertIn(\u0027standard-attr-\u0027, self.alias)"},{"line_number":90,"context_line":"        else:"},{"line_number":91,"context_line":"            self.skip(\u0027API definition is not related to standardattr.\u0027)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def test_resource_map(self):"},{"line_number":94,"context_line":"        if not self.resource_map and not self.is_shim_extension:"}],"source_content_type":"text/x-python","patch_set":16,"id":"fa6399be_b8f48ecf","line":91,"range":{"start_line":91,"start_character":17,"end_line":91,"end_character":21},"updated":"2016-10-19 04:59:25.000000000","message":"http://testtools.readthedocs.io/en/latest/api.html#testtools.TestCase.skip","commit_id":"64b48007fa155488c3a1eb061ab519e372dd08a7"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"18b0c2bc74d9cf80490d06c169170d185683f59b","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        if self.is_standard_attr_extension:"},{"line_number":89,"context_line":"            self.assertIn(\u0027standard-attr-\u0027, self.alias)"},{"line_number":90,"context_line":"        else:"},{"line_number":91,"context_line":"            self.skip(\u0027API definition is not related to standardattr.\u0027)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def test_resource_map(self):"},{"line_number":94,"context_line":"        if not self.resource_map and not self.is_shim_extension:"}],"source_content_type":"text/x-python","patch_set":16,"id":"fa6399be_13e9db1a","line":91,"range":{"start_line":91,"start_character":17,"end_line":91,"end_character":21},"in_reply_to":"fa6399be_b8f48ecf","updated":"2016-10-19 05:24:10.000000000","message":"should have a hacking rule for this.","commit_id":"64b48007fa155488c3a1eb061ab519e372dd08a7"}]}
