)]}'
{"specs/kilo/approved/wrap-neutronclient.rst":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"b8a0a0b259d56b729cf006d1630948a4f3bd55c1","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Wrap the Python NeutronClient"},{"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\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad blueprint:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://blueprints.launchpad.net/nova/+spec/nova-neutron-refactor"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_24f11b95","line":11,"updated":"2014-12-15 09:29:19.000000000","message":"you do not need this line","commit_id":"a72243ef06ecbca0a4c93bd4d8ee25d51bf8c5ab"},{"author":{"_account_id":6681,"name":"Brent Eagles","email":"beagles@redhat.com","username":"beagles"},"change_message_id":"8dd9146d19b011b40a5b03dc19f3d1edec4cf463","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Wrap the Python NeutronClient"},{"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\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad blueprint:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://blueprints.launchpad.net/nova/+spec/nova-neutron-refactor"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_77534939","line":11,"in_reply_to":"3a961159_24f11b95","updated":"2014-12-18 18:16:50.000000000","message":"Done","commit_id":"a72243ef06ecbca0a4c93bd4d8ee25d51bf8c5ab"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"b8a0a0b259d56b729cf006d1630948a4f3bd55c1","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"* Changes to the Neutron client can require pervasive changes to the"},{"line_number":55,"context_line":"  adapter implementation."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Use Cases"},{"line_number":59,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_c40e978b","line":56,"updated":"2014-12-15 09:29:19.000000000","message":"i think that you should also mention the usage of extensions here. Some neutron extension can only be accessed if the context is an admin context - so in some cases we need to maintain 2 clients :)","commit_id":"a72243ef06ecbca0a4c93bd4d8ee25d51bf8c5ab"},{"author":{"_account_id":6681,"name":"Brent Eagles","email":"beagles@redhat.com","username":"beagles"},"change_message_id":"8dd9146d19b011b40a5b03dc19f3d1edec4cf463","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"* Changes to the Neutron client can require pervasive changes to the"},{"line_number":55,"context_line":"  adapter implementation."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Use Cases"},{"line_number":59,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_5a583456","line":56,"in_reply_to":"3a961159_c40e978b","updated":"2014-12-18 18:16:50.000000000","message":"Done","commit_id":"a72243ef06ecbca0a4c93bd4d8ee25d51bf8c5ab"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"b8a0a0b259d56b729cf006d1630948a4f3bd55c1","unresolved":false,"context_lines":[{"line_number":59,"context_line":"----------"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* Nova developers should not need to have direct knowledge of Neutron client"},{"line_number":62,"context_line":"  or API specific details to perform rudimentary code changes."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"* Developers with Neutron expertise need a mechanism to capture best"},{"line_number":65,"context_line":"  practices in an accessible and immediately useful way for themselves and"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_a4826bc5","line":62,"updated":"2014-12-15 09:29:19.000000000","message":"Nova developers also need to understand that a neutron API function is a remote call :)","commit_id":"a72243ef06ecbca0a4c93bd4d8ee25d51bf8c5ab"},{"author":{"_account_id":6681,"name":"Brent Eagles","email":"beagles@redhat.com","username":"beagles"},"change_message_id":"8dd9146d19b011b40a5b03dc19f3d1edec4cf463","unresolved":false,"context_lines":[{"line_number":59,"context_line":"----------"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* Nova developers should not need to have direct knowledge of Neutron client"},{"line_number":62,"context_line":"  or API specific details to perform rudimentary code changes."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"* Developers with Neutron expertise need a mechanism to capture best"},{"line_number":65,"context_line":"  practices in an accessible and immediately useful way for themselves and"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_da3b44e9","line":62,"in_reply_to":"3a961159_a4826bc5","updated":"2014-12-18 18:16:50.000000000","message":"Done","commit_id":"a72243ef06ecbca0a4c93bd4d8ee25d51bf8c5ab"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"bf586f396157b85e846f39b66aa3d5f337e1cb59","unresolved":false,"context_lines":[{"line_number":69,"context_line":"Project Priority"},{"line_number":70,"context_line":"-----------------"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"This refactoring addresses an issue of significant techncial dept and"},{"line_number":73,"context_line":"facilitates Nova to Neutron migration."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_57fc46b8","line":72,"updated":"2014-12-12 13:24:07.000000000","message":"typo: debt","commit_id":"a72243ef06ecbca0a4c93bd4d8ee25d51bf8c5ab"},{"author":{"_account_id":6681,"name":"Brent Eagles","email":"beagles@redhat.com","username":"beagles"},"change_message_id":"8dd9146d19b011b40a5b03dc19f3d1edec4cf463","unresolved":false,"context_lines":[{"line_number":69,"context_line":"Project Priority"},{"line_number":70,"context_line":"-----------------"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"This refactoring addresses an issue of significant techncial dept and"},{"line_number":73,"context_line":"facilitates Nova to Neutron migration."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_175e8545","line":72,"in_reply_to":"3a961159_57fc46b8","updated":"2014-12-18 18:16:50.000000000","message":"Done","commit_id":"a72243ef06ecbca0a4c93bd4d8ee25d51bf8c5ab"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"bf586f396157b85e846f39b66aa3d5f337e1cb59","unresolved":false,"context_lines":[{"line_number":70,"context_line":"-----------------"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"This refactoring addresses an issue of significant techncial dept and"},{"line_number":73,"context_line":"facilitates Nova to Neutron migration."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_97194e24","line":73,"updated":"2014-12-12 13:24:07.000000000","message":"Do you mean the deprecation of nova-networking? or something else?","commit_id":"a72243ef06ecbca0a4c93bd4d8ee25d51bf8c5ab"},{"author":{"_account_id":6681,"name":"Brent Eagles","email":"beagles@redhat.com","username":"beagles"},"change_message_id":"8dd9146d19b011b40a5b03dc19f3d1edec4cf463","unresolved":false,"context_lines":[{"line_number":70,"context_line":"-----------------"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"This refactoring addresses an issue of significant techncial dept and"},{"line_number":73,"context_line":"facilitates Nova to Neutron migration."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_d744fd75","line":73,"in_reply_to":"3a961159_97194e24","updated":"2014-12-18 18:16:50.000000000","message":"Done","commit_id":"a72243ef06ecbca0a4c93bd4d8ee25d51bf8c5ab"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"bf586f396157b85e846f39b66aa3d5f337e1cb59","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"The addition of tempest tests that directly exercise the wrapper provide"},{"line_number":85,"context_line":"concrete verification of the interpretation of the Neutron API that Nova"},{"line_number":86,"context_line":"relies on."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Alternatives"},{"line_number":89,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_379c1a5d","line":86,"updated":"2014-12-12 13:24:07.000000000","message":"How would this work? AFAIK tempest only exercises public-facing nova methods, so are we talking about exposing our new neutronclient wrapper on an API?  I hope not :)","commit_id":"a72243ef06ecbca0a4c93bd4d8ee25d51bf8c5ab"},{"author":{"_account_id":6681,"name":"Brent Eagles","email":"beagles@redhat.com","username":"beagles"},"change_message_id":"8dd9146d19b011b40a5b03dc19f3d1edec4cf463","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"The addition of tempest tests that directly exercise the wrapper provide"},{"line_number":85,"context_line":"concrete verification of the interpretation of the Neutron API that Nova"},{"line_number":86,"context_line":"relies on."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Alternatives"},{"line_number":89,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_5a067421","line":86,"in_reply_to":"3a961159_379c1a5d","updated":"2014-12-18 18:16:50.000000000","message":"Mmmm... I would *like* to be able to directly drive this in tempest, but if we can\u0027t then we can\u0027t. I\u0027ll remove it for the time being as it may prove too controversial.","commit_id":"a72243ef06ecbca0a4c93bd4d8ee25d51bf8c5ab"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"bf586f396157b85e846f39b66aa3d5f337e1cb59","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"It is expected that additional source files will be created. Deployment"},{"line_number":130,"context_line":"tools that are not wild card based in file selection will need to be"},{"line_number":131,"context_line":"modified to include the new files."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Developer impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_d7e036cf","line":131,"updated":"2014-12-12 13:24:07.000000000","message":"Honestly, although this is true, it applies to literally every single spec, and so I\u0027m not sure we need it repeated here.","commit_id":"a72243ef06ecbca0a4c93bd4d8ee25d51bf8c5ab"},{"author":{"_account_id":6681,"name":"Brent Eagles","email":"beagles@redhat.com","username":"beagles"},"change_message_id":"8dd9146d19b011b40a5b03dc19f3d1edec4cf463","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"It is expected that additional source files will be created. Deployment"},{"line_number":130,"context_line":"tools that are not wild card based in file selection will need to be"},{"line_number":131,"context_line":"modified to include the new files."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Developer impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_b74db19b","line":131,"in_reply_to":"3a961159_d7e036cf","updated":"2014-12-18 18:16:50.000000000","message":"Done","commit_id":"a72243ef06ecbca0a4c93bd4d8ee25d51bf8c5ab"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"bf586f396157b85e846f39b66aa3d5f337e1cb59","unresolved":false,"context_lines":[{"line_number":175,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"As this is part of the Nova-Neutron API refactoring, a CI job will in the"},{"line_number":178,"context_line":"experimental work queue will run the new Tempest tests"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_370fba89","line":178,"updated":"2014-12-12 13:24:07.000000000","message":"I left a question in the other spec about this. Not sure we need an experimental job.","commit_id":"a72243ef06ecbca0a4c93bd4d8ee25d51bf8c5ab"},{"author":{"_account_id":6681,"name":"Brent Eagles","email":"beagles@redhat.com","username":"beagles"},"change_message_id":"8dd9146d19b011b40a5b03dc19f3d1edec4cf463","unresolved":false,"context_lines":[{"line_number":175,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"As this is part of the Nova-Neutron API refactoring, a CI job will in the"},{"line_number":178,"context_line":"experimental work queue will run the new Tempest tests"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_553485dd","line":178,"in_reply_to":"3a961159_370fba89","updated":"2014-12-18 18:16:50.000000000","message":"I\u0027m going to remove it. If we need it, we\u0027ll use it. Otherwise, we\u0027ll just plan on it being part of the mainstream CI.","commit_id":"a72243ef06ecbca0a4c93bd4d8ee25d51bf8c5ab"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"aadf3fbd314b0d710ee618605eb1048b9f498188","unresolved":false,"context_lines":[{"line_number":175,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"As this is part of the Nova-Neutron API refactoring, a CI job will in the"},{"line_number":178,"context_line":"experimental work queue will run the new Tempest tests"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_c3beb8ad","line":178,"in_reply_to":"3a961159_370fba89","updated":"2014-12-12 15:15:51.000000000","message":"This is \u0027the other spec\u0027 which I\u0027m referring to: https://review.openstack.org/#/c/131413","commit_id":"a72243ef06ecbca0a4c93bd4d8ee25d51bf8c5ab"},{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"77141faa49c5a51d6128cc005eeea6b5bae652c1","unresolved":false,"context_lines":[{"line_number":14,"context_line":"Openstack Network API is a basic, thin wrapper around the Neutron API."},{"line_number":15,"context_line":"Direct use of the module\u0027s functionality has resulted in pervasive adaptive"},{"line_number":16,"context_line":"code throughout the API adapter implementation. The repetitive and"},{"line_number":17,"context_line":"occasionally opaque nature of this code makes the implemenation difficult"},{"line_number":18,"context_line":"to debug and maintain. Providing higher level, Nova oriented abstractions"},{"line_number":19,"context_line":"by wrapping the existing client:"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3ab451fb_35572d04","line":17,"updated":"2015-04-17 11:35:26.000000000","message":"nit: \"implementation\"","commit_id":"2cbaeade24c0f084466c988876cc33b6c82261b2"},{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"77141faa49c5a51d6128cc005eeea6b5bae652c1","unresolved":false,"context_lines":[{"line_number":18,"context_line":"to debug and maintain. Providing higher level, Nova oriented abstractions"},{"line_number":19,"context_line":"by wrapping the existing client:"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"* Make it easier to implement readable implementations of the networking"},{"line_number":22,"context_line":"  API implementation."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"* Allows knowledge of the functioning of the Neutron API to be captured in"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3ab451fb_f541c53a","line":21,"updated":"2015-04-17 11:35:26.000000000","message":"\"Makes\"","commit_id":"2cbaeade24c0f084466c988876cc33b6c82261b2"},{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"77141faa49c5a51d6128cc005eeea6b5bae652c1","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"* Allows knowledge of the functioning of the Neutron API to be captured in"},{"line_number":25,"context_line":"  code for reuse by all developers, independent of their Neutron API"},{"line_number":26,"context_line":"  expertise. This is maintable, extensible and testable in itself."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"* Provides a natural boundary to hide neutron specific details such as:"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3ab451fb_356e0dca","line":26,"updated":"2015-04-17 11:35:26.000000000","message":"\"maintainable\"","commit_id":"2cbaeade24c0f084466c988876cc33b6c82261b2"},{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"77141faa49c5a51d6128cc005eeea6b5bae652c1","unresolved":false,"context_lines":[{"line_number":36,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Direct use of the neutronclient module is pervasive throughout the"},{"line_number":39,"context_line":"implementation of the Network API adapter. This has the following"},{"line_number":40,"context_line":"consequences:"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"* Construction of JSON requests and parsing of replies is repeated"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3ab451fb_95bba10e","line":39,"updated":"2015-04-17 11:35:26.000000000","message":"Not sure I\u0027m exactly understanding... Do you mean nova/network/neutronv2/api.py ?","commit_id":"2cbaeade24c0f084466c988876cc33b6c82261b2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"87beb0e78bb3a9fc0bd98860877c76bbe8c325b2","unresolved":false,"context_lines":[{"line_number":42,"context_line":"* Construction of JSON requests and parsing of replies is repeated"},{"line_number":43,"context_line":"  throughout the code."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"* Neutron specific exceptions are allowed to permeate the API boundary to"},{"line_number":46,"context_line":"  the caller."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"* How well the Neutron client is used varies depending on the expertise of"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_6670ef72","line":45,"updated":"2014-12-19 02:00:27.000000000","message":"Amen brother.","commit_id":"2cbaeade24c0f084466c988876cc33b6c82261b2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"87beb0e78bb3a9fc0bd98860877c76bbe8c325b2","unresolved":false,"context_lines":[{"line_number":53,"context_line":"  adapter implementation."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"* Certain API features are only accessible through contexts with"},{"line_number":56,"context_line":"  administrative credentials, requiring maintainers to understand"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_46fa13be","line":56,"updated":"2014-12-19 02:00:27.000000000","message":"Is this an incomplete thought?  Assuming this was going to say something about how maintainers have to know the different cases where admin access is required, which is admittedly tricky.","commit_id":"2cbaeade24c0f084466c988876cc33b6c82261b2"},{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"77141faa49c5a51d6128cc005eeea6b5bae652c1","unresolved":false,"context_lines":[{"line_number":73,"context_line":"Project Priority"},{"line_number":74,"context_line":"-----------------"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"This refactoring addresses an issue of significant techncial debt and"},{"line_number":77,"context_line":"is a step towards deprecating nova-network."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3ab451fb_550ab9d3","line":76,"updated":"2015-04-17 11:35:26.000000000","message":"\"technical\"","commit_id":"2cbaeade24c0f084466c988876cc33b6c82261b2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"87beb0e78bb3a9fc0bd98860877c76bbe8c325b2","unresolved":false,"context_lines":[{"line_number":81,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Provide higher level abstractions of the Neutron client calls used by Nova"},{"line_number":84,"context_line":"by through a class (or family of classes if required). The classes hide"},{"line_number":85,"context_line":"construction of JSON requests, translation of replies to Nova objects and"},{"line_number":86,"context_line":"Neutron exceptions to Nova exceptions."},{"line_number":87,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_c62d2348","line":84,"updated":"2014-12-19 02:00:27.000000000","message":"s/by through/through/","commit_id":"2cbaeade24c0f084466c988876cc33b6c82261b2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"87beb0e78bb3a9fc0bd98860877c76bbe8c325b2","unresolved":false,"context_lines":[{"line_number":158,"context_line":"Work Items"},{"line_number":159,"context_line":"----------"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"1. Create a class that provides higher level methods for neutron client."},{"line_number":162,"context_line":"2. Create tempest tests to excerise wrapper."},{"line_number":163,"context_line":""},{"line_number":164,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_66e54f08","line":161,"updated":"2014-12-19 02:00:27.000000000","message":"I\u0027d like to see some more details on how this is going to live, i.e. this is going to be completely new?  Or a wrapper on the existing client wrapper and then used in the existing neutronv2 API code or the new API code?  If the latter, it seems there should be a dependency listed somewhere (or co-dependency maybe).\n\nIf you had a simple example in mind, like list/show port or something and how that would happen, where it would live, etc, that would be helpful detail here.","commit_id":"2cbaeade24c0f084466c988876cc33b6c82261b2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"87beb0e78bb3a9fc0bd98860877c76bbe8c325b2","unresolved":false,"context_lines":[{"line_number":159,"context_line":"----------"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"1. Create a class that provides higher level methods for neutron client."},{"line_number":162,"context_line":"2. Create tempest tests to excerise wrapper."},{"line_number":163,"context_line":""},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_4621334c","line":162,"updated":"2014-12-19 02:00:27.000000000","message":"s/excerise/exercise/\n\nHow would new Tempest tests hit this?  Or is this only going to be used by the new API driver which will be run in an experimental queue job?  This is also a bit confusing if the Testing section says existing CI will test it.","commit_id":"2cbaeade24c0f084466c988876cc33b6c82261b2"}],"specs/liberty/approved/wrap-neutronclient.rst":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"e30e7431a06c4470b56d23b90dd98c5e4c77164f","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"  * thrown exceptions"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"  * JSON request and response translation"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5ad0253b_e23458df","line":32,"updated":"2015-04-29 10:58:31.000000000","message":"I like this top bit being a short paragraph for consistency, but its a minor nit.","commit_id":"4a4fa7c184adb468f7dd2b5f981ee31007ee5b65"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4f340a2f90adad29b5b55e483afe0df52e8a4dac","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"  * thrown exceptions"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"  * JSON request and response translation"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3acd31a7_235f1410","line":32,"in_reply_to":"5ad0253b_e23458df","updated":"2015-04-29 15:29:07.000000000","message":"Yeah, this is all duplicated below making the spec bigger than it needs to be.","commit_id":"4a4fa7c184adb468f7dd2b5f981ee31007ee5b65"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4f340a2f90adad29b5b55e483afe0df52e8a4dac","unresolved":false,"context_lines":[{"line_number":81,"context_line":"Proposed change"},{"line_number":82,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"Provide higher level abstractions of the Neutron client calls used by Nova"},{"line_number":85,"context_line":"through a class (or family of classes if required). The classes hide"},{"line_number":86,"context_line":"construction of JSON requests, translation of replies to Nova objects and"},{"line_number":87,"context_line":"Neutron exceptions to Nova exceptions."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3acd31a7_a3f7a4f4","line":84,"updated":"2015-04-29 15:29:07.000000000","message":"You mention needing to know admin vs non-admin requests, how do you plan on abstracting that?  Admin and non-admin wrappers and the caller doesn\u0027t know which is used?  I think this could use some more detail and an example API in both cases.","commit_id":"4a4fa7c184adb468f7dd2b5f981ee31007ee5b65"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4f340a2f90adad29b5b55e483afe0df52e8a4dac","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"Provide higher level abstractions of the Neutron client calls used by Nova"},{"line_number":85,"context_line":"through a class (or family of classes if required). The classes hide"},{"line_number":86,"context_line":"construction of JSON requests, translation of replies to Nova objects and"},{"line_number":87,"context_line":"Neutron exceptions to Nova exceptions."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3acd31a7_235274de","line":86,"updated":"2015-04-29 15:29:07.000000000","message":"I think we\u0027re missing quite a bit of nova object conversion for the neutron network model today, so would this depend on that?","commit_id":"4a4fa7c184adb468f7dd2b5f981ee31007ee5b65"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4f340a2f90adad29b5b55e483afe0df52e8a4dac","unresolved":false,"context_lines":[{"line_number":149,"context_line":""},{"line_number":150,"context_line":"* Dan Smith for Nova objects"},{"line_number":151,"context_line":"* Matt Riedemann"},{"line_number":152,"context_line":"* Maru Newby (Neutron)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"Primary assignee:"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3acd31a7_636f4c93","line":152,"updated":"2015-04-29 15:29:07.000000000","message":"Is this still valid?  Sean Collins is now the neutron / nova liaison.","commit_id":"4a4fa7c184adb468f7dd2b5f981ee31007ee5b65"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4f340a2f90adad29b5b55e483afe0df52e8a4dac","unresolved":false,"context_lines":[{"line_number":160,"context_line":"----------"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"1. Create a class that provides higher level methods for neutron client."},{"line_number":163,"context_line":"2. Create tempest tests to exercise wrapper."},{"line_number":164,"context_line":""},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3acd31a7_c3aaa085","line":163,"updated":"2015-04-29 15:29:07.000000000","message":"Tempest doesn\u0027t have anything to do with this, right?  Do you mean there would be some configuration change in nova to use this wrapper and then we\u0027d have a devstack job on the experimental queue which runs with this wrapper until it\u0027s working properly?  I\u0027m not sure that would be necessary for this since it could be piece meal I\u0027d think (handle an API/client method one at a time).\n\nThe configuration changes which would require a new devstack / tempest job would be the other spec that deals with creating a completely new neutron API implementation within Nova.","commit_id":"4a4fa7c184adb468f7dd2b5f981ee31007ee5b65"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4f340a2f90adad29b5b55e483afe0df52e8a4dac","unresolved":false,"context_lines":[{"line_number":166,"context_line":"Dependencies"},{"line_number":167,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"None"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3acd31a7_e38c7c37","line":169,"updated":"2015-04-29 15:29:07.000000000","message":"blueprint liberty-objects?","commit_id":"4a4fa7c184adb468f7dd2b5f981ee31007ee5b65"}]}
