)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":22220,"name":"Anindita Das","email":"anindita.das@utexas.edu","username":"anudas"},"change_message_id":"ac562993db5206219396cf7d162fb6c2158e8bc3","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Migrate logging-resource extension from networking-midonet"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"References:"},{"line_number":10,"context_line":"    http://docs.openstack.org/developer/networking-midonet/specs/mitaka/logging-API-for-firewall-rules.html"},{"line_number":11,"context_line":"    http://docs.openstack.org/developer/networking-midonet/devstack.html#logging-resource-service"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Partial-Bug: #1614349"},{"line_number":14,"context_line":"Change-Id: I078974c6c583caa2b1713595874c7e039a82884d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"ba5201f7_be3857d4","line":11,"range":{"start_line":10,"start_character":0,"end_line":11,"end_character":97},"updated":"2017-01-06 16:40:04.000000000","message":"Line exceeds 72 characters","commit_id":"cd7a37f3b1d8d6c0945586006485d2a613e0da50"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"abcc419e8eae049f7f60dd8bfb8a41b937fe6d73","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Migrate logging-resource extension from networking-midonet"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"References:"},{"line_number":10,"context_line":"    http://docs.openstack.org/developer/networking-midonet/specs/mitaka/logging-API-for-firewall-rules.html"},{"line_number":11,"context_line":"    http://docs.openstack.org/developer/networking-midonet/devstack.html#logging-resource-service"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Partial-Bug: #1614349"},{"line_number":14,"context_line":"Change-Id: I078974c6c583caa2b1713595874c7e039a82884d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"ba5201f7_ec474449","line":11,"range":{"start_line":10,"start_character":0,"end_line":11,"end_character":97},"in_reply_to":"ba5201f7_be3857d4","updated":"2017-01-10 03:53:14.000000000","message":"is there a good way to wrap urls?","commit_id":"cd7a37f3b1d8d6c0945586006485d2a613e0da50"}],"api-ref/source/v2/firewall_log.inc":[{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"6091a608112a6eec2f4345fd0f5377de021c6f10","unresolved":false,"context_lines":[{"line_number":13,"context_line":"List Firewall Logs"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":".. rest_method:: GET /v2.0/logging/logging_resources/{logging_resource_id}/firewall_logs.json"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Lists firewall logs."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":8,"id":"ba5201f7_ed9c1e10","line":16,"range":{"start_line":16,"start_character":88,"end_line":16,"end_character":93},"updated":"2017-01-05 17:53:59.000000000","message":"Ditto","commit_id":"74a02899e814dd7eb24d7a1e6993cbf56ca204c4"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"effb49ff0d200a5f31c7ce453726ee49d6f15a14","unresolved":false,"context_lines":[{"line_number":13,"context_line":"List Firewall Logs"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":".. rest_method:: GET /v2.0/logging/logging_resources/{logging_resource_id}/firewall_logs.json"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Lists firewall logs."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":8,"id":"ba5201f7_b8d321d4","line":16,"range":{"start_line":16,"start_character":88,"end_line":16,"end_character":93},"in_reply_to":"ba5201f7_ed9c1e10","updated":"2017-01-06 05:15:14.000000000","message":"Done","commit_id":"74a02899e814dd7eb24d7a1e6993cbf56ca204c4"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"6091a608112a6eec2f4345fd0f5377de021c6f10","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Normal response codes: 200"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Error response codes: unauthorized(401), forbidden(403)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Request"},{"line_number":31,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":8,"id":"ba5201f7_8d8e32ce","line":28,"range":{"start_line":28,"start_character":22,"end_line":28,"end_character":55},"updated":"2017-01-05 17:53:59.000000000","message":"Ditto","commit_id":"74a02899e814dd7eb24d7a1e6993cbf56ca204c4"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"effb49ff0d200a5f31c7ce453726ee49d6f15a14","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Normal response codes: 200"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Error response codes: unauthorized(401), forbidden(403)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Request"},{"line_number":31,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":8,"id":"ba5201f7_d8de25dc","line":28,"range":{"start_line":28,"start_character":22,"end_line":28,"end_character":55},"in_reply_to":"ba5201f7_8d8e32ce","updated":"2017-01-06 05:15:14.000000000","message":"Done","commit_id":"74a02899e814dd7eb24d7a1e6993cbf56ca204c4"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"6091a608112a6eec2f4345fd0f5377de021c6f10","unresolved":false,"context_lines":[{"line_number":41,"context_line":".. rest_parameters:: parameters.yaml"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"  - logging_resource_id: logging_resource_id-body"},{"line_number":44,"context_line":"  - id: firewall_log_id-body"},{"line_number":45,"context_line":"  - tenant_id: project_id"},{"line_number":46,"context_line":"  - project_id: project_id"},{"line_number":47,"context_line":"  - description: description"}],"source_content_type":"text/x-c++src","patch_set":8,"id":"ba5201f7_cd691afb","line":44,"updated":"2017-01-05 17:53:59.000000000","message":"Ditto on documented in the top-level object.","commit_id":"74a02899e814dd7eb24d7a1e6993cbf56ca204c4"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"effb49ff0d200a5f31c7ce453726ee49d6f15a14","unresolved":false,"context_lines":[{"line_number":41,"context_line":".. rest_parameters:: parameters.yaml"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"  - logging_resource_id: logging_resource_id-body"},{"line_number":44,"context_line":"  - id: firewall_log_id-body"},{"line_number":45,"context_line":"  - tenant_id: project_id"},{"line_number":46,"context_line":"  - project_id: project_id"},{"line_number":47,"context_line":"  - description: description"}],"source_content_type":"text/x-c++src","patch_set":8,"id":"ba5201f7_f8d929f4","line":44,"in_reply_to":"ba5201f7_cd691afb","updated":"2017-01-06 05:15:14.000000000","message":"Done","commit_id":"74a02899e814dd7eb24d7a1e6993cbf56ca204c4"},{"author":{"_account_id":22220,"name":"Anindita Das","email":"anindita.das@utexas.edu","username":"anudas"},"change_message_id":"ac562993db5206219396cf7d162fb6c2158e8bc3","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"},{"line_number":8,"context_line":" Firewall Logs"}],"source_content_type":"text/x-c++src","patch_set":9,"id":"ba5201f7_de4a7b54","line":5,"range":{"start_line":2,"start_character":0,"end_line":5,"end_character":26},"updated":"2017-01-06 16:40:04.000000000","message":"Please remove this section if the verification is complete","commit_id":"cd7a37f3b1d8d6c0945586006485d2a613e0da50"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"76bc68ad21e978e96809ae44513ba800a6799bc0","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Normal response codes: 200"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Error response codes: 401,403"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Request"},{"line_number":31,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":9,"id":"ba5201f7_d36b541c","line":28,"range":{"start_line":28,"start_character":22,"end_line":28,"end_character":29},"updated":"2017-01-06 16:27:12.000000000","message":"Nit: for these lists codes, the convention is to use a space after comma.","commit_id":"cd7a37f3b1d8d6c0945586006485d2a613e0da50"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"abcc419e8eae049f7f60dd8bfb8a41b937fe6d73","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Normal response codes: 200"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Error response codes: 401,403"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Request"},{"line_number":31,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":9,"id":"ba5201f7_acab7cd5","line":28,"range":{"start_line":28,"start_character":22,"end_line":28,"end_character":29},"in_reply_to":"ba5201f7_d36b541c","updated":"2017-01-10 03:53:14.000000000","message":"i looked other files and i thought the convention was not to use a space.\nbut it seems inconsistent anyway.","commit_id":"cd7a37f3b1d8d6c0945586006485d2a613e0da50"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"d9fa78095a1a6f0ffff18305f4b3da1112312a89","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Normal response codes: 200"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Error response codes: 401,403"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Request"},{"line_number":27,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":10,"id":"ba5201f7_31fe9fae","line":24,"range":{"start_line":24,"start_character":22,"end_line":24,"end_character":29},"updated":"2017-01-11 18:16:21.000000000","message":"Nit: use space after commas for all these.","commit_id":"e385f9dbc75aeb5f9c8a243c2c3815466f6d7f11"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"1e04edd84a3a622a6894e0c4c127d0acf46498d4","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Normal response codes: 200"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Error response codes: 401,403"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Request"},{"line_number":27,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":10,"id":"9a57fde8_2f6a491b","line":24,"range":{"start_line":24,"start_character":22,"end_line":24,"end_character":29},"in_reply_to":"ba5201f7_31fe9fae","updated":"2017-01-12 07:43:19.000000000","message":"is it documented somewhere?\nit isn\u0027t obvious to me which is a preferred way.","commit_id":"e385f9dbc75aeb5f9c8a243c2c3815466f6d7f11"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"5b6a1efe97cec47d13007b172f1e09fb6946ef48","unresolved":false,"context_lines":[{"line_number":219,"context_line":"Response"},{"line_number":220,"context_line":"--------"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"There is no body content for the response of a successful Delete request."}],"source_content_type":"text/x-c++src","patch_set":15,"id":"7a3c09a3_d9aa5670","line":222,"range":{"start_line":222,"start_character":58,"end_line":222,"end_character":64},"updated":"2017-01-13 14:55:44.000000000","message":"-\u003e DELETE","commit_id":"41b9ff941f321d0fa73e3a7dfd02bc7d6d675ccd"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"93a17d1a52381490c1fc45bec525f9b7d1c56ed5","unresolved":false,"context_lines":[{"line_number":219,"context_line":"Response"},{"line_number":220,"context_line":"--------"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"There is no body content for the response of a successful Delete request."}],"source_content_type":"text/x-c++src","patch_set":15,"id":"7a3c09a3_7b24885f","line":222,"range":{"start_line":222,"start_character":58,"end_line":222,"end_character":64},"in_reply_to":"7a3c09a3_d9aa5670","updated":"2017-01-16 23:12:17.000000000","message":"Done","commit_id":"41b9ff941f321d0fa73e3a7dfd02bc7d6d675ccd"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"15df7922f8cd44f0467a9b9b3bbd6ea13499b3f4","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Normal response codes: 200"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Error response codes: 401,403"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Request"},{"line_number":29,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":16,"id":"5a3905b3_31195689","line":26,"range":{"start_line":26,"start_character":22,"end_line":26,"end_character":29},"updated":"2017-01-20 20:59:55.000000000","message":"See my nits from PS15.","commit_id":"f7647a9374772acd387ceca45d3347e17b8e696b"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"c0d92d18f3ec3059be393bc8aa713a228c25cee3","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Normal response codes: 200"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Error response codes: 401,403"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Request"},{"line_number":29,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":16,"id":"5a3905b3_4eff01aa","line":26,"range":{"start_line":26,"start_character":22,"end_line":26,"end_character":29},"in_reply_to":"5a3905b3_31195689","updated":"2017-01-22 08:07:42.000000000","message":"see https://review.openstack.org/#/c/420991/\ni think i answered your comments about whitespace at least a few times.","commit_id":"f7647a9374772acd387ceca45d3347e17b8e696b"},{"author":{"_account_id":22220,"name":"Anindita Das","email":"anindita.das@utexas.edu","username":"anudas"},"change_message_id":"d68293fd017cc516d41261b04f53948e718df952","unresolved":false,"context_lines":[{"line_number":70,"context_line":".. rest_parameters:: parameters.yaml"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"  - firewall_log: firewall_log"},{"line_number":73,"context_line":"  - logging_resource_id: logging_resource_id"},{"line_number":74,"context_line":"  - tenant_id: project_id-request"},{"line_number":75,"context_line":"  - project_id: project_id-request"},{"line_number":76,"context_line":"  - description: description-request"}],"source_content_type":"text/x-c++src","patch_set":16,"id":"5a3905b3_7ae6b217","line":73,"range":{"start_line":73,"start_character":0,"end_line":73,"end_character":44},"updated":"2017-01-25 04:40:49.000000000","message":"It would be nice to have the path variable as the first parameter in the Request Parameter table also it will make it consistent with the other api-refs.","commit_id":"f7647a9374772acd387ceca45d3347e17b8e696b"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"351c1e6e7b05bd61ed7b4862deb54bec6831787d","unresolved":false,"context_lines":[{"line_number":70,"context_line":".. rest_parameters:: parameters.yaml"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"  - firewall_log: firewall_log"},{"line_number":73,"context_line":"  - logging_resource_id: logging_resource_id"},{"line_number":74,"context_line":"  - tenant_id: project_id-request"},{"line_number":75,"context_line":"  - project_id: project_id-request"},{"line_number":76,"context_line":"  - description: description-request"}],"source_content_type":"text/x-c++src","patch_set":16,"id":"3a461143_b723c304","line":73,"range":{"start_line":73,"start_character":0,"end_line":73,"end_character":44},"in_reply_to":"5a3905b3_7ae6b217","updated":"2017-01-26 06:07:38.000000000","message":"Done","commit_id":"f7647a9374772acd387ceca45d3347e17b8e696b"},{"author":{"_account_id":22220,"name":"Anindita Das","email":"anindita.das@utexas.edu","username":"anudas"},"change_message_id":"d68293fd017cc516d41261b04f53948e718df952","unresolved":false,"context_lines":[{"line_number":166,"context_line":".. rest_parameters:: parameters.yaml"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"  - firewall_log: firewall_log"},{"line_number":169,"context_line":"  - logging_resource_id: logging_resource_id"},{"line_number":170,"context_line":"  - firewall_log_id: firewall_log_id"},{"line_number":171,"context_line":"  - description: description-request-put"},{"line_number":172,"context_line":"  - fw_event: fw_event-request-put"},{"line_number":173,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":16,"id":"5a3905b3_baf01acb","line":170,"range":{"start_line":169,"start_character":0,"end_line":170,"end_character":36},"updated":"2017-01-25 04:40:49.000000000","message":"ditto","commit_id":"f7647a9374772acd387ceca45d3347e17b8e696b"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"351c1e6e7b05bd61ed7b4862deb54bec6831787d","unresolved":false,"context_lines":[{"line_number":166,"context_line":".. rest_parameters:: parameters.yaml"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"  - firewall_log: firewall_log"},{"line_number":169,"context_line":"  - logging_resource_id: logging_resource_id"},{"line_number":170,"context_line":"  - firewall_log_id: firewall_log_id"},{"line_number":171,"context_line":"  - description: description-request-put"},{"line_number":172,"context_line":"  - fw_event: fw_event-request-put"},{"line_number":173,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":16,"id":"3a461143_1779f7fc","line":170,"range":{"start_line":169,"start_character":0,"end_line":170,"end_character":36},"in_reply_to":"5a3905b3_baf01acb","updated":"2017-01-26 06:07:38.000000000","message":"Done","commit_id":"f7647a9374772acd387ceca45d3347e17b8e696b"},{"author":{"_account_id":22220,"name":"Anindita Das","email":"anindita.das@utexas.edu","username":"anudas"},"change_message_id":"c770ed1ffdd0828709360dea8f28f7d946a08cb8","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"  - logging_resource_id: logging_resource_id"},{"line_number":169,"context_line":"  - firewall_log: firewall_log"},{"line_number":170,"context_line":"  - firewall_log_id: firewall_log_id"},{"line_number":171,"context_line":"  - description: description-request-put"},{"line_number":172,"context_line":"  - fw_event: fw_event-request-put"},{"line_number":173,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":17,"id":"3a461143_f850c10c","line":170,"range":{"start_line":170,"start_character":0,"end_line":170,"end_character":36},"updated":"2017-01-26 16:44:31.000000000","message":"This is also a path variable. so it needs to be moved before firewall_log as well :)","commit_id":"d50ca3d75509d0fd2f47f94bd2aa5aa0a39dd492"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"31fc676069883415ae7b99c07e5ea03973b84532","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"  - logging_resource_id: logging_resource_id"},{"line_number":169,"context_line":"  - firewall_log: firewall_log"},{"line_number":170,"context_line":"  - firewall_log_id: firewall_log_id"},{"line_number":171,"context_line":"  - description: description-request-put"},{"line_number":172,"context_line":"  - fw_event: fw_event-request-put"},{"line_number":173,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":17,"id":"3a461143_f3828dff","line":170,"range":{"start_line":170,"start_character":0,"end_line":170,"end_character":36},"in_reply_to":"3a461143_f3260d67","updated":"2017-01-27 01:25:42.000000000","message":"Done","commit_id":"d50ca3d75509d0fd2f47f94bd2aa5aa0a39dd492"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"4943f22bd492854ad01af72f9fb599256439bc9c","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"  - logging_resource_id: logging_resource_id"},{"line_number":169,"context_line":"  - firewall_log: firewall_log"},{"line_number":170,"context_line":"  - firewall_log_id: firewall_log_id"},{"line_number":171,"context_line":"  - description: description-request-put"},{"line_number":172,"context_line":"  - fw_event: fw_event-request-put"},{"line_number":173,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":17,"id":"3a461143_f3260d67","line":170,"range":{"start_line":170,"start_character":0,"end_line":170,"end_character":36},"in_reply_to":"3a461143_f850c10c","updated":"2017-01-27 01:22:08.000000000","message":"oops.\nthank you for patient review.","commit_id":"d50ca3d75509d0fd2f47f94bd2aa5aa0a39dd492"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"340f1a8d909f8349869eacbd9e71f2eacb2fdab0","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Normal response codes: 200"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Error response codes: 401,403"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Request"},{"line_number":29,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":19,"id":"3a461143_e9075216","line":26,"range":{"start_line":26,"start_character":22,"end_line":26,"end_character":29},"updated":"2017-02-01 16:15:08.000000000","message":"Nit: spaces after commas for all these lists.","commit_id":"5a1a6bd8941714b4df3974118c77354bf6d9ac9c"}],"api-ref/source/v2/index.rst":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"3ed32bb2f6c6d3e4ac5ec570f38337af0f089402","unresolved":false,"context_lines":[{"line_number":58,"context_line":".. include:: lbaas-v1.inc"},{"line_number":59,"context_line":".. include:: lbaas-v2.inc"},{"line_number":60,"context_line":"################"},{"line_number":61,"context_line":"Logging Resource"},{"line_number":62,"context_line":"################"},{"line_number":63,"context_line":".. include:: logging_resource.inc"},{"line_number":64,"context_line":".. include:: firewall_log.inc"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a71b18c_8e5aecf0","line":61,"updated":"2016-12-09 23:48:44.000000000","message":"should probably add here that this is available on midonet only.","commit_id":"ec74c2b747800f56c68ffa78ecf4a790a00d7e37"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"cd8cbac30de919c68662d2d7b16743e945680499","unresolved":false,"context_lines":[{"line_number":58,"context_line":".. include:: lbaas-v1.inc"},{"line_number":59,"context_line":".. include:: lbaas-v2.inc"},{"line_number":60,"context_line":"################"},{"line_number":61,"context_line":"Logging Resource"},{"line_number":62,"context_line":"################"},{"line_number":63,"context_line":".. include:: logging_resource.inc"},{"line_number":64,"context_line":".. include:: firewall_log.inc"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a71b18c_3f4e606f","line":61,"in_reply_to":"3a71b18c_8e5aecf0","updated":"2016-12-10 02:53:00.000000000","message":"Done","commit_id":"ec74c2b747800f56c68ffa78ecf4a790a00d7e37"}],"api-ref/source/v2/logging_resource.inc":[{"author":{"_account_id":22220,"name":"Anindita Das","email":"anindita.das@utexas.edu","username":"anudas"},"change_message_id":"87c5aa78802f8a96c35146f15f357bd3822ced67","unresolved":false,"context_lines":[{"line_number":16,"context_line":".. rest_method:: GET /v2.0/logging/logging_resources.json"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Lists logging resources."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Normal response codes: 200"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Error response codes: unauthorized(401), forbidden(403)"}],"source_content_type":"text/x-c++src","patch_set":5,"id":"da4df55a_9d7c1474","line":19,"updated":"2016-12-22 22:07:54.000000000","message":"Please add the description for fields as mentioned in [1].\n\n[1]https://github.com/openstack/neutron-lib/blob/master/api-ref/source/v2/routers.inc#L24-L28","commit_id":"9136d7e2110b99520ff2bd140e8acd73673346bb"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"37f67d42cc48a2dce79c212e3f81a160fb0d5080","unresolved":false,"context_lines":[{"line_number":16,"context_line":".. rest_method:: GET /v2.0/logging/logging_resources.json"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Lists logging resources."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Normal response codes: 200"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Error response codes: unauthorized(401), forbidden(403)"}],"source_content_type":"text/x-c++src","patch_set":5,"id":"da4df55a_c8fe9d37","line":19,"in_reply_to":"da4df55a_9d7c1474","updated":"2016-12-26 03:22:29.000000000","message":"Done","commit_id":"9136d7e2110b99520ff2bd140e8acd73673346bb"},{"author":{"_account_id":22220,"name":"Anindita Das","email":"anindita.das@utexas.edu","username":"anudas"},"change_message_id":"87c5aa78802f8a96c35146f15f357bd3822ced67","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Request"},{"line_number":25,"context_line":"-------"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Response"},{"line_number":28,"context_line":"--------"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":5,"id":"da4df55a_bd81d84c","line":26,"updated":"2016-12-22 22:07:54.000000000","message":"Please add fields as the request parameter as in [1].\n\n[1] https://github.com/openstack/neutron-lib/blob/master/api-ref/source/v2/routers.inc#L37-L39","commit_id":"9136d7e2110b99520ff2bd140e8acd73673346bb"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"37f67d42cc48a2dce79c212e3f81a160fb0d5080","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Request"},{"line_number":25,"context_line":"-------"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Response"},{"line_number":28,"context_line":"--------"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":5,"id":"da4df55a_e8fd213b","line":26,"in_reply_to":"da4df55a_bd81d84c","updated":"2016-12-26 03:22:29.000000000","message":"Done","commit_id":"9136d7e2110b99520ff2bd140e8acd73673346bb"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"6091a608112a6eec2f4345fd0f5377de021c6f10","unresolved":false,"context_lines":[{"line_number":13,"context_line":"List Logging Resources"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":".. rest_method:: GET /v2.0/logging/logging_resources.json"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Lists logging resources."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":8,"id":"ba5201f7_cdcd9a32","line":16,"range":{"start_line":16,"start_character":52,"end_line":16,"end_character":57},"updated":"2017-01-05 17:53:59.000000000","message":"I don\u0027t see any other api-refs using the .json on the URI. Can we follow suit for consistency?","commit_id":"74a02899e814dd7eb24d7a1e6993cbf56ca204c4"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"effb49ff0d200a5f31c7ce453726ee49d6f15a14","unresolved":false,"context_lines":[{"line_number":13,"context_line":"List Logging Resources"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":".. rest_method:: GET /v2.0/logging/logging_resources.json"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Lists logging resources."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":8,"id":"ba5201f7_98565d04","line":16,"range":{"start_line":16,"start_character":52,"end_line":16,"end_character":57},"in_reply_to":"ba5201f7_cdcd9a32","updated":"2017-01-06 05:15:14.000000000","message":"Done","commit_id":"74a02899e814dd7eb24d7a1e6993cbf56ca204c4"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"6091a608112a6eec2f4345fd0f5377de021c6f10","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Normal response codes: 200"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Error response codes: unauthorized(401), forbidden(403)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Request"},{"line_number":31,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":8,"id":"ba5201f7_ed809ec1","line":28,"range":{"start_line":28,"start_character":22,"end_line":28,"end_character":55},"updated":"2017-01-05 17:53:59.000000000","message":"Can we follow the conventions other api-refs use here. Seems most of them just list the codes.","commit_id":"74a02899e814dd7eb24d7a1e6993cbf56ca204c4"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"effb49ff0d200a5f31c7ce453726ee49d6f15a14","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Normal response codes: 200"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Error response codes: unauthorized(401), forbidden(403)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Request"},{"line_number":31,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":8,"id":"ba5201f7_d8b2a54b","line":28,"range":{"start_line":28,"start_character":22,"end_line":28,"end_character":55},"in_reply_to":"ba5201f7_ed809ec1","updated":"2017-01-06 05:15:14.000000000","message":"Done","commit_id":"74a02899e814dd7eb24d7a1e6993cbf56ca204c4"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"6091a608112a6eec2f4345fd0f5377de021c6f10","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":".. rest_parameters:: parameters.yaml"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"  - id: logging_resource_id-body"},{"line_number":43,"context_line":"  - tenant_id: project_id"},{"line_number":44,"context_line":"  - project_id: project_id"},{"line_number":45,"context_line":"  - name: name"}],"source_content_type":"text/x-c++src","patch_set":8,"id":"ba5201f7_4d3e0a29","line":42,"updated":"2017-01-05 17:53:59.000000000","message":"For all of these, the convention has been to also document the top level object(s) that comes back in the response.\nFor example a response param::\n\n  - logging_resources: A ``logging resource`` object.\n\n\nPlease see how other api-refs have doc\u0027d this.","commit_id":"74a02899e814dd7eb24d7a1e6993cbf56ca204c4"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"effb49ff0d200a5f31c7ce453726ee49d6f15a14","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":".. rest_parameters:: parameters.yaml"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"  - id: logging_resource_id-body"},{"line_number":43,"context_line":"  - tenant_id: project_id"},{"line_number":44,"context_line":"  - project_id: project_id"},{"line_number":45,"context_line":"  - name: name"}],"source_content_type":"text/x-c++src","patch_set":8,"id":"ba5201f7_385011d4","line":42,"in_reply_to":"ba5201f7_4d3e0a29","updated":"2017-01-06 05:15:14.000000000","message":"Done","commit_id":"74a02899e814dd7eb24d7a1e6993cbf56ca204c4"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"6091a608112a6eec2f4345fd0f5377de021c6f10","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"  - id: logging_resource_id-body"},{"line_number":43,"context_line":"  - tenant_id: project_id"},{"line_number":44,"context_line":"  - project_id: project_id"},{"line_number":45,"context_line":"  - name: name"},{"line_number":46,"context_line":"  - description: description"},{"line_number":47,"context_line":"  - enabled: logging_resource_enabled"}],"source_content_type":"text/x-c++src","patch_set":8,"id":"ba5201f7_cd667a50","line":44,"updated":"2017-01-05 17:53:59.000000000","message":"What about \u0027firewall_logs\u0027?","commit_id":"74a02899e814dd7eb24d7a1e6993cbf56ca204c4"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"cf9c19a5434fb1d3f259523d852ffa24effcfda0","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"  - id: logging_resource_id-body"},{"line_number":43,"context_line":"  - tenant_id: project_id"},{"line_number":44,"context_line":"  - project_id: project_id"},{"line_number":45,"context_line":"  - name: name"},{"line_number":46,"context_line":"  - description: description"},{"line_number":47,"context_line":"  - enabled: logging_resource_enabled"}],"source_content_type":"text/x-c++src","patch_set":8,"id":"ba5201f7_38e01196","line":44,"in_reply_to":"ba5201f7_98573dc9","updated":"2017-01-06 05:15:30.000000000","message":"Done","commit_id":"74a02899e814dd7eb24d7a1e6993cbf56ca204c4"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"effb49ff0d200a5f31c7ce453726ee49d6f15a14","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"  - id: logging_resource_id-body"},{"line_number":43,"context_line":"  - tenant_id: project_id"},{"line_number":44,"context_line":"  - project_id: project_id"},{"line_number":45,"context_line":"  - name: name"},{"line_number":46,"context_line":"  - description: description"},{"line_number":47,"context_line":"  - enabled: logging_resource_enabled"}],"source_content_type":"text/x-c++src","patch_set":8,"id":"ba5201f7_98573dc9","line":44,"in_reply_to":"ba5201f7_cd667a50","updated":"2017-01-06 05:15:14.000000000","message":"oops, i will add.","commit_id":"74a02899e814dd7eb24d7a1e6993cbf56ca204c4"},{"author":{"_account_id":22220,"name":"Anindita Das","email":"anindita.das@utexas.edu","username":"anudas"},"change_message_id":"ac562993db5206219396cf7d162fb6c2158e8bc3","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"},{"line_number":8,"context_line":" Logging Resources"}],"source_content_type":"text/x-c++src","patch_set":9,"id":"ba5201f7_7e434f13","line":5,"range":{"start_line":2,"start_character":0,"end_line":5,"end_character":26},"updated":"2017-01-06 16:40:04.000000000","message":"Please remove this section after the verification is done","commit_id":"cd7a37f3b1d8d6c0945586006485d2a613e0da50"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"e90dee0d96bedd31718d16217ec9d211f54e0efc","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Normal response codes: 200"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Error response codes: 401,403"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Request"},{"line_number":29,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":15,"id":"7a3c09a3_267faaab","line":26,"range":{"start_line":26,"start_character":22,"end_line":26,"end_character":29},"updated":"2017-01-13 14:14:33.000000000","message":"Nit: space after comma for these lists","commit_id":"41b9ff941f321d0fa73e3a7dfd02bc7d6d675ccd"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"93a17d1a52381490c1fc45bec525f9b7d1c56ed5","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Normal response codes: 200"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Error response codes: 401,403"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Request"},{"line_number":29,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":15,"id":"7a3c09a3_3b2e8043","line":26,"range":{"start_line":26,"start_character":22,"end_line":26,"end_character":29},"in_reply_to":"7a3c09a3_267faaab","updated":"2017-01-16 23:12:17.000000000","message":"done https://review.openstack.org/#/c/420991/","commit_id":"41b9ff941f321d0fa73e3a7dfd02bc7d6d675ccd"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"5b6a1efe97cec47d13007b172f1e09fb6946ef48","unresolved":false,"context_lines":[{"line_number":215,"context_line":"Response"},{"line_number":216,"context_line":"--------"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"There is no body content for the response of a successful Delete request."}],"source_content_type":"text/x-c++src","patch_set":15,"id":"7a3c09a3_59b586cb","line":218,"range":{"start_line":218,"start_character":58,"end_line":218,"end_character":64},"updated":"2017-01-13 14:55:44.000000000","message":"-\u003e DELETE","commit_id":"41b9ff941f321d0fa73e3a7dfd02bc7d6d675ccd"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"93a17d1a52381490c1fc45bec525f9b7d1c56ed5","unresolved":false,"context_lines":[{"line_number":215,"context_line":"Response"},{"line_number":216,"context_line":"--------"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"There is no body content for the response of a successful Delete request."}],"source_content_type":"text/x-c++src","patch_set":15,"id":"7a3c09a3_9b29343a","line":218,"range":{"start_line":218,"start_character":58,"end_line":218,"end_character":64},"in_reply_to":"7a3c09a3_59b586cb","updated":"2017-01-16 23:12:17.000000000","message":"Done","commit_id":"41b9ff941f321d0fa73e3a7dfd02bc7d6d675ccd"},{"author":{"_account_id":22220,"name":"Anindita Das","email":"anindita.das@utexas.edu","username":"anudas"},"change_message_id":"d68293fd017cc516d41261b04f53948e718df952","unresolved":false,"context_lines":[{"line_number":163,"context_line":".. rest_parameters:: parameters.yaml"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"  - logging_resource: logging_resource"},{"line_number":166,"context_line":"  - logging_resource_id: logging_resource_id"},{"line_number":167,"context_line":"  - name: name-request-put"},{"line_number":168,"context_line":"  - description: description-request-put"},{"line_number":169,"context_line":"  - enabled: logging_resource_enabled-request-put"}],"source_content_type":"text/x-c++src","patch_set":16,"id":"5a3905b3_9aca7e6d","line":166,"range":{"start_line":166,"start_character":0,"end_line":166,"end_character":44},"updated":"2017-01-25 04:40:49.000000000","message":"ditto","commit_id":"f7647a9374772acd387ceca45d3347e17b8e696b"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"351c1e6e7b05bd61ed7b4862deb54bec6831787d","unresolved":false,"context_lines":[{"line_number":163,"context_line":".. rest_parameters:: parameters.yaml"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"  - logging_resource: logging_resource"},{"line_number":166,"context_line":"  - logging_resource_id: logging_resource_id"},{"line_number":167,"context_line":"  - name: name-request-put"},{"line_number":168,"context_line":"  - description: description-request-put"},{"line_number":169,"context_line":"  - enabled: logging_resource_enabled-request-put"}],"source_content_type":"text/x-c++src","patch_set":16,"id":"3a461143_37651345","line":166,"range":{"start_line":166,"start_character":0,"end_line":166,"end_character":44},"in_reply_to":"5a3905b3_9aca7e6d","updated":"2017-01-26 06:07:38.000000000","message":"Done","commit_id":"f7647a9374772acd387ceca45d3347e17b8e696b"}],"api-ref/source/v2/parameters.yaml":[{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"76bc68ad21e978e96809ae44513ba800a6799bc0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"ba5201f7_13f79c59","updated":"2017-01-06 16:27:12.000000000","message":"In the other api-refs I haven\u0027t seen the \u0027uuid\u0027 type used. Others use type \u0027string\u0027 for UUIDs, so might be best to follow suit.","commit_id":"cd7a37f3b1d8d6c0945586006485d2a613e0da50"},{"author":{"_account_id":22220,"name":"Anindita Das","email":"anindita.das@utexas.edu","username":"anudas"},"change_message_id":"ac562993db5206219396cf7d162fb6c2158e8bc3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"ba5201f7_be1e9709","in_reply_to":"ba5201f7_13f79c59","updated":"2017-01-06 16:40:04.000000000","message":"+1","commit_id":"cd7a37f3b1d8d6c0945586006485d2a613e0da50"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"abcc419e8eae049f7f60dd8bfb8a41b937fe6d73","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"ba5201f7_6c80b447","in_reply_to":"ba5201f7_be1e9709","updated":"2017-01-10 03:53:14.000000000","message":"i guess it\u0027s better to fix others but i don\u0027t have a strong opinion.","commit_id":"cd7a37f3b1d8d6c0945586006485d2a613e0da50"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"5b6a1efe97cec47d13007b172f1e09fb6946ef48","unresolved":false,"context_lines":[{"line_number":2262,"context_line":"fw_event:"},{"line_number":2263,"context_line":"  description: |"},{"line_number":2264,"context_line":"    Type of firewall events to log."},{"line_number":2265,"context_line":"    ACCEPT, DROP, or ALL."},{"line_number":2266,"context_line":"  in: body"},{"line_number":2267,"context_line":"  required: true"},{"line_number":2268,"context_line":"  type: string"}],"source_content_type":"text/x-yaml","patch_set":15,"id":"7a3c09a3_f911d2b0","line":2265,"updated":"2017-01-13 14:55:44.000000000","message":"It is better to quote a literal string with ``.\n\n  ``ACCEPT``, ``DROP``, or ``ALL``.","commit_id":"41b9ff941f321d0fa73e3a7dfd02bc7d6d675ccd"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"93a17d1a52381490c1fc45bec525f9b7d1c56ed5","unresolved":false,"context_lines":[{"line_number":2262,"context_line":"fw_event:"},{"line_number":2263,"context_line":"  description: |"},{"line_number":2264,"context_line":"    Type of firewall events to log."},{"line_number":2265,"context_line":"    ACCEPT, DROP, or ALL."},{"line_number":2266,"context_line":"  in: body"},{"line_number":2267,"context_line":"  required: true"},{"line_number":2268,"context_line":"  type: string"}],"source_content_type":"text/x-yaml","patch_set":15,"id":"7a3c09a3_fb187820","line":2265,"in_reply_to":"7a3c09a3_f911d2b0","updated":"2017-01-16 23:12:17.000000000","message":"Done","commit_id":"41b9ff941f321d0fa73e3a7dfd02bc7d6d675ccd"}],"neutron_lib/api/definitions/logging_resource.py":[{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"81204110aa96f81e50c8949081ef6e8549ce9172","unresolved":false,"context_lines":[{"line_number":94,"context_line":"}"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"SUB_RESOURCE_ATTRIBUTE_MAP \u003d {"},{"line_number":98,"context_line":"    FIREWALL_LOGS: {"},{"line_number":99,"context_line":"        \u0027parent\u0027: {\u0027collection_name\u0027: COLLECTION_NAME,"},{"line_number":100,"context_line":"                   \u0027member_name\u0027: RESOURCE_NAME},"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_5ec0027d","line":97,"range":{"start_line":97,"start_character":0,"end_line":97,"end_character":26},"updated":"2016-12-07 14:51:57.000000000","message":"Maybe I\u0027m missing something, but based on [1] I\u0027m not seeing how SUB_RESOURCE_ATTRIBUTE_MAP gets registered as attributes.py appears to only look for RESOURCE_ATTRIBUTE_MAP [1].\n\n\n[1] https://review.openstack.org/#/c/394244/","commit_id":"5c8ad0ad909d059fce34377337ea8f822564c2fd"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"5333d68df762f73cb8bd972c1ef81d15f393eb17","unresolved":false,"context_lines":[{"line_number":94,"context_line":"}"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"SUB_RESOURCE_ATTRIBUTE_MAP \u003d {"},{"line_number":98,"context_line":"    FIREWALL_LOGS: {"},{"line_number":99,"context_line":"        \u0027parent\u0027: {\u0027collection_name\u0027: COLLECTION_NAME,"},{"line_number":100,"context_line":"                   \u0027member_name\u0027: RESOURCE_NAME},"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_3e88a6c6","line":97,"range":{"start_line":97,"start_character":0,"end_line":97,"end_character":26},"in_reply_to":"3a71b18c_5ec0027d","updated":"2016-12-07 15:00:51.000000000","message":"i guess it just means resources in the patch doesn\u0027t have sub resources.","commit_id":"5c8ad0ad909d059fce34377337ea8f822564c2fd"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"d9fa78095a1a6f0ffff18305f4b3da1112312a89","unresolved":false,"context_lines":[{"line_number":94,"context_line":"}"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"SUB_RESOURCE_ATTRIBUTE_MAP \u003d {"},{"line_number":98,"context_line":"    FIREWALL_LOGS: {"},{"line_number":99,"context_line":"        \u0027parent\u0027: {\u0027collection_name\u0027: COLLECTION_NAME,"},{"line_number":100,"context_line":"                   \u0027member_name\u0027: RESOURCE_NAME},"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5201f7_1160bbce","line":97,"updated":"2017-01-11 18:16:21.000000000","message":"I think we need this to depend on [1] for the subresource support, no?\n\n\n[1] https://review.openstack.org/#/c/418108/","commit_id":"e385f9dbc75aeb5f9c8a243c2c3815466f6d7f11"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"bf2327103a606335501c177029bf517d17588c5c","unresolved":false,"context_lines":[{"line_number":94,"context_line":"}"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"SUB_RESOURCE_ATTRIBUTE_MAP \u003d {"},{"line_number":98,"context_line":"    FIREWALL_LOGS: {"},{"line_number":99,"context_line":"        \u0027parent\u0027: {\u0027collection_name\u0027: COLLECTION_NAME,"},{"line_number":100,"context_line":"                   \u0027member_name\u0027: RESOURCE_NAME},"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a57fde8_c3fc1f41","line":97,"in_reply_to":"9a57fde8_cf59bd90","updated":"2017-01-12 16:54:33.000000000","message":"Thanks.. My thinking was that otherwise the base tests to verify SUB_RESOURCE_ATTRIBUTE_MAP are not there.","commit_id":"e385f9dbc75aeb5f9c8a243c2c3815466f6d7f11"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"1e04edd84a3a622a6894e0c4c127d0acf46498d4","unresolved":false,"context_lines":[{"line_number":94,"context_line":"}"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"SUB_RESOURCE_ATTRIBUTE_MAP \u003d {"},{"line_number":98,"context_line":"    FIREWALL_LOGS: {"},{"line_number":99,"context_line":"        \u0027parent\u0027: {\u0027collection_name\u0027: COLLECTION_NAME,"},{"line_number":100,"context_line":"                   \u0027member_name\u0027: RESOURCE_NAME},"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a57fde8_cf59bd90","line":97,"in_reply_to":"ba5201f7_1160bbce","updated":"2017-01-12 07:43:19.000000000","message":"IMO no.\n\nbut done.","commit_id":"e385f9dbc75aeb5f9c8a243c2c3815466f6d7f11"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"72f148a02339df25ceb3eded59d9b72dbf1d5b1d","unresolved":false,"context_lines":[{"line_number":66,"context_line":"FW_EVENT_DROP \u003d \u0027DROP\u0027"},{"line_number":67,"context_line":"FW_EVENT_ALL \u003d \u0027ALL\u0027"},{"line_number":68,"context_line":"FW_EVENTS \u003d [FW_EVENT_ACCEPT, FW_EVENT_DROP, FW_EVENT_ALL]"},{"line_number":69,"context_line":"LOG_COMMON_FIELDS \u003d {"},{"line_number":70,"context_line":"    \u0027id\u0027: {\u0027allow_post\u0027: False, \u0027allow_put\u0027: False,"},{"line_number":71,"context_line":"           \u0027validate\u0027: {\u0027type:uuid\u0027: None},"},{"line_number":72,"context_line":"           \u0027is_visible\u0027: True, \u0027primary_key\u0027: True},"}],"source_content_type":"text/x-python","patch_set":18,"id":"3a461143_819d575b","line":69,"updated":"2017-01-27 17:39:49.000000000","message":"Nit: not sure why this LOG_COMMON_FIELDS is necessary. While I see it used below, it\u0027s not used anywhere else.","commit_id":"2edf8af5ecbcbf8ae69976f226bf620efe6b8519"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"340f1a8d909f8349869eacbd9e71f2eacb2fdab0","unresolved":false,"context_lines":[{"line_number":126,"context_line":"ACTION_MAP \u003d {}"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"# The list of required extensions."},{"line_number":129,"context_line":"REQUIRED_EXTENSIONS \u003d []"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"# The list of optional extensions."},{"line_number":132,"context_line":"OPTIONAL_EXTENSIONS \u003d []"}],"source_content_type":"text/x-python","patch_set":19,"id":"3a461143_96542922","line":129,"updated":"2017-02-01 16:15:08.000000000","message":"Doesn\u0027t this extension depend on firewall or firewall_v2? Not sure how firewall logs would work without firewall support.","commit_id":"5a1a6bd8941714b4df3974118c77354bf6d9ac9c"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"aaf6a3dc3acd3fec556bde3557674e99aab6005c","unresolved":false,"context_lines":[{"line_number":126,"context_line":"ACTION_MAP \u003d {}"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"# The list of required extensions."},{"line_number":129,"context_line":"REQUIRED_EXTENSIONS \u003d []"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"# The list of optional extensions."},{"line_number":132,"context_line":"OPTIONAL_EXTENSIONS \u003d []"}],"source_content_type":"text/x-python","patch_set":19,"id":"3a461143_a83616e5","line":129,"in_reply_to":"3a461143_25cb2f20","updated":"2017-02-01 22:55:04.000000000","message":"Boden\u0027s interpretation is correct. The list of required extensions is used to express the dependency between two extensions so that at boot the server can determine whether dependencies are met for the correct functioning of an extension. Eg. auto-allocated-topology needs routers. It does not extend or modify any attributes but it can\u0027t function without it.","commit_id":"5a1a6bd8941714b4df3974118c77354bf6d9ac9c"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"c7804b3f8e8e6ec028ceb79d3bbea6a467a9834a","unresolved":false,"context_lines":[{"line_number":126,"context_line":"ACTION_MAP \u003d {}"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"# The list of required extensions."},{"line_number":129,"context_line":"REQUIRED_EXTENSIONS \u003d []"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"# The list of optional extensions."},{"line_number":132,"context_line":"OPTIONAL_EXTENSIONS \u003d []"}],"source_content_type":"text/x-python","patch_set":19,"id":"3a461143_25cb2f20","line":129,"in_reply_to":"3a461143_96542922","updated":"2017-02-01 22:45:15.000000000","message":"it doesn\u0027t work without firewall.\nbut i don\u0027t think REQUIRED_EXTENSIONS is meant to express such a dependency.\nit means \"this extension adds some fields to resources which is provided by that extension.\"","commit_id":"5a1a6bd8941714b4df3974118c77354bf6d9ac9c"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"159f07cf0b0049b820c38c9fd6d004fa4d407179","unresolved":false,"context_lines":[{"line_number":126,"context_line":"ACTION_MAP \u003d {}"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"# The list of required extensions."},{"line_number":129,"context_line":"REQUIRED_EXTENSIONS \u003d []"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"# The list of optional extensions."},{"line_number":132,"context_line":"OPTIONAL_EXTENSIONS \u003d []"}],"source_content_type":"text/x-python","patch_set":19,"id":"3a461143_c85442cc","line":129,"in_reply_to":"3a461143_a83616e5","updated":"2017-02-01 23:04:57.000000000","message":"ok, then i will update.  thank you.","commit_id":"5a1a6bd8941714b4df3974118c77354bf6d9ac9c"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"b4b567be404bcdc08919f3b1b0a67a6e3a8aa0fa","unresolved":false,"context_lines":[{"line_number":126,"context_line":"ACTION_MAP \u003d {}"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"# The list of required extensions."},{"line_number":129,"context_line":"REQUIRED_EXTENSIONS \u003d []"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"# The list of optional extensions."},{"line_number":132,"context_line":"OPTIONAL_EXTENSIONS \u003d []"}],"source_content_type":"text/x-python","patch_set":19,"id":"3a461143_fb80e64b","line":129,"in_reply_to":"3a461143_c85442cc","updated":"2017-02-01 23:26:31.000000000","message":"https://review.openstack.org/#/c/427966/","commit_id":"5a1a6bd8941714b4df3974118c77354bf6d9ac9c"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"3bc18fea734207995b0397829ceb837e632b46e9","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"# The list of required extensions."},{"line_number":130,"context_line":"REQUIRED_EXTENSIONS \u003d ["},{"line_number":131,"context_line":"    firewall.ALIAS,"},{"line_number":132,"context_line":"]"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"# The list of optional extensions."}],"source_content_type":"text/x-python","patch_set":20,"id":"3a461143_968cfe36","line":131,"updated":"2017-02-02 15:36:12.000000000","message":"Does this extension only work with firewall v1 (deprecated) as indicated here? I noticed that firewall v2 (supported) has a separate alias [1]. I\u0027m not sure if there\u0027s a way to depend on one or the other (v1 or v2), but IIUC as-is, this extension will fail to load if fwaas v2 is used.\n\n\n[1] https://github.com/openstack/neutron-lib/blob/master/neutron_lib/api/definitions/firewall_v2.py#L19","commit_id":"a3b82c5e1ea0b29c3328ed3280e06a83f1495e91"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"2af94ff954d6c33f7587e04f45134cea7e3b2adc","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"# The list of required extensions."},{"line_number":130,"context_line":"REQUIRED_EXTENSIONS \u003d ["},{"line_number":131,"context_line":"    firewall.ALIAS,"},{"line_number":132,"context_line":"]"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"# The list of optional extensions."}],"source_content_type":"text/x-python","patch_set":20,"id":"1a430d35_3c20a69b","line":131,"in_reply_to":"3a461143_1312ce62","updated":"2017-02-03 14:06:07.000000000","message":"Sorry I\u0027m not sure of the plans for FWaaS v1 deprecation.","commit_id":"a3b82c5e1ea0b29c3328ed3280e06a83f1495e91"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"1c94c2d4cd7e20408f3fdd05cf2a6138f195c04d","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"# The list of required extensions."},{"line_number":130,"context_line":"REQUIRED_EXTENSIONS \u003d ["},{"line_number":131,"context_line":"    firewall.ALIAS,"},{"line_number":132,"context_line":"]"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"# The list of optional extensions."}],"source_content_type":"text/x-python","patch_set":20,"id":"3a461143_b3f73a58","line":131,"in_reply_to":"3a461143_968cfe36","updated":"2017-02-02 21:26:28.000000000","message":"yes, this is currently only for firewall v1.\n\nmaybe we can move this to OPTIONAL_EXTENSIONS if/when we implemented logging for other resources like firewall v2.\nthere\u0027s no plan in the foreseeable future though.","commit_id":"a3b82c5e1ea0b29c3328ed3280e06a83f1495e91"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"2a57c8a2048051f47d724422295a9b9c45cafb2f","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"# The list of required extensions."},{"line_number":130,"context_line":"REQUIRED_EXTENSIONS \u003d ["},{"line_number":131,"context_line":"    firewall.ALIAS,"},{"line_number":132,"context_line":"]"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"# The list of optional extensions."}],"source_content_type":"text/x-python","patch_set":20,"id":"3a461143_1312ce62","line":131,"in_reply_to":"3a461143_b3f73a58","updated":"2017-02-02 21:30:45.000000000","message":"btw, is there already a concrete plan for firewall v1 deprecation?\ni couldn\u0027t find any release note entries in neutron-fwaas repo.  and my gut feeling is v2 is not ready for production yet.","commit_id":"a3b82c5e1ea0b29c3328ed3280e06a83f1495e91"}],"neutron_lib/tests/unit/api/definitions/test_logging_resource.py":[{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"2c1dfedd51111cb5bdcce3dfec4bdc969d6f8a6d","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    extension_subresources \u003d (logging_resource.FIREWALL_LOGS,)"},{"line_number":21,"context_line":"    extension_attributes \u003d (logging_resource.ENABLED,"},{"line_number":22,"context_line":"                            logging_resource.FIREWALL_LOGS,"},{"line_number":23,"context_line":"                            \u0027logging_resource_id\u0027,"},{"line_number":24,"context_line":"                            \u0027fw_event\u0027,"},{"line_number":25,"context_line":"                            \u0027firewall_id\u0027,)"}],"source_content_type":"text/x-python","patch_set":12,"id":"9a57fde8_3e209e9b","line":25,"range":{"start_line":23,"start_character":28,"end_line":25,"end_character":42},"updated":"2017-01-12 16:58:32.000000000","message":"I\u0027d opt to make these constants in logging_resource.py::\n\n  LOGGING_RESOURCE_ID \u003d \u0027logging_resource_id\u0027\n  # ... etc\n\n\nThen they can be used here and by consumers as well.","commit_id":"381bcf438793b17fdec174226276f9e1fd7f44f1"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"90d4c5c07eb4a876354c615577fd09871e9dcea2","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    extension_subresources \u003d (logging_resource.FIREWALL_LOGS,)"},{"line_number":21,"context_line":"    extension_attributes \u003d (logging_resource.ENABLED,"},{"line_number":22,"context_line":"                            logging_resource.FIREWALL_LOGS,"},{"line_number":23,"context_line":"                            \u0027logging_resource_id\u0027,"},{"line_number":24,"context_line":"                            \u0027fw_event\u0027,"},{"line_number":25,"context_line":"                            \u0027firewall_id\u0027,)"}],"source_content_type":"text/x-python","patch_set":12,"id":"7a3c09a3_ee6cb40a","line":25,"range":{"start_line":23,"start_character":28,"end_line":25,"end_character":42},"in_reply_to":"9a57fde8_3e209e9b","updated":"2017-01-13 02:40:53.000000000","message":"Done","commit_id":"381bcf438793b17fdec174226276f9e1fd7f44f1"}],"releasenotes/notes/logging-resource-api-cecf33e3be468eb2.yaml":[{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"72f148a02339df25ceb3eded59d9b72dbf1d5b1d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - API reference and definition for networking-midonet\u0027s ``logging-resource`` extension."}],"source_content_type":"text/x-yaml","patch_set":18,"id":"3a461143_8102b76d","line":3,"updated":"2017-01-27 17:39:49.000000000","message":"Nit: in the future it\u0027d be nice to keep these lines \u003c 80 chars to make it easier to review.","commit_id":"2edf8af5ecbcbf8ae69976f226bf620efe6b8519"}]}
