)]}'
{"specs/newton/allow-out-of-tree-drivers.rst":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"0e2bdda1d10c4023c93ba0ab7905d596b3f083be","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Allow out of tree drivers in Cinder"},{"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"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/cinder/+spec/class-2-drivers"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1aa78d24_fb770939","line":8,"updated":"2016-07-14 15:43:01.000000000","message":"Out of tree drivers are already allowed. :)  This should named something that indicates that we want to keep track of them or register them somehow.","commit_id":"7c903431ce2d138bbe8273d521dfc4ba01c856ca"},{"author":{"_account_id":10213,"name":"Alon Marx","email":"alonma@il.ibm.com","username":"alonmarx"},"change_message_id":"8b452a9b5cb804bcc6ad8bf87680e76233a908a4","unresolved":false,"context_lines":[{"line_number":23,"context_line":"Problem description"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Nearly every release cycle includes some vendor proposing to add a trivial"},{"line_number":27,"context_line":"shim driver with no real code that just calls out to an external, often"},{"line_number":28,"context_line":"closed source, library that the end user must install first."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"There are also a lot of questions asked of the community from vendors that"},{"line_number":31,"context_line":"have developed their own drivers internally, and they do not want to make"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dada55a8_0226eecd","line":28,"range":{"start_line":26,"start_character":0,"end_line":28,"end_character":60},"updated":"2016-07-18 20:23:40.000000000","message":"Some drivers implement a REST api and do the main work on the storage - \nwhy is that better than a driver that has a closed library on the host? Just because it is in a remote location does not make it easier to debug.","commit_id":"7c903431ce2d138bbe8273d521dfc4ba01c856ca"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bb2f5488f06beb63689e0b391bc63af1e60ab312","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"A new class of driver will be added to Cinder that does not need to be"},{"line_number":56,"context_line":"included in the Cinder source. These drivers may or may not be open source."},{"line_number":57,"context_line":"These will be classified as \"class 2\" drivers."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"To be \"approved\" as this class 2 driver, the vendor must meet the following"},{"line_number":60,"context_line":"requirements:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1aa78d24_48bf9efc","line":57,"updated":"2016-07-13 21:28:23.000000000","message":"Probably better to call them out-of-tree drivers or non-community-supported drivers as suggested by jgriffith.  Otherwise their customers would still like them to be \"class 1\" drivers:).","commit_id":"7c903431ce2d138bbe8273d521dfc4ba01c856ca"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"afb3fc669bb65737202c465b75b2e28e004c268a","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"A new class of driver will be added to Cinder that does not need to be"},{"line_number":56,"context_line":"included in the Cinder source. These drivers may or may not be open source."},{"line_number":57,"context_line":"These will be classified as \"class 2\" drivers."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"To be \"approved\" as this class 2 driver, the vendor must meet the following"},{"line_number":60,"context_line":"requirements:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1aa78d24_bb3d8e2e","line":57,"in_reply_to":"1aa78d24_48bf9efc","updated":"2016-07-14 11:59:21.000000000","message":"+1, I would prefer to avoid customers reporting bugs against Cinder when we have no power on the driver\u0027s implementation.","commit_id":"7c903431ce2d138bbe8273d521dfc4ba01c856ca"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"285c8ac29fb29c6814c0282d116853faf9bef9e6","unresolved":false,"context_lines":[{"line_number":67,"context_line":"  2. Installation handling will be included in the new driver installation"},{"line_number":68,"context_line":"     tool to be added to support this."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"A new command line tool will be added for handling class 2 driver"},{"line_number":71,"context_line":"installation. This will allow deployers to install class 2 drivers separately"},{"line_number":72,"context_line":"to their individual installations. The tool will need to run with elevated"},{"line_number":73,"context_line":"permissions to allow installation of Python packages."},{"line_number":74,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1aa78d24_ea5ac2f1","line":71,"range":{"start_line":70,"start_character":0,"end_line":71,"end_character":13},"updated":"2016-07-13 20:34:36.000000000","message":"Having our own installation mechanism is kind of a hassle. I don\u0027t want to have to be the one to figure out how to integrate it with puppet, ansible, chef, \u003cinsert deployment tool here\u003e.\n\nIts probably going to save us some headaches if we just have a well defined entry point for registering/loading a external driver and use stevedore or similar to load them at run time as external python modules.","commit_id":"7c903431ce2d138bbe8273d521dfc4ba01c856ca"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"ef4b52005149e5133e93e436837a0da7cea7f6c3","unresolved":false,"context_lines":[{"line_number":67,"context_line":"  2. Installation handling will be included in the new driver installation"},{"line_number":68,"context_line":"     tool to be added to support this."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"A new command line tool will be added for handling class 2 driver"},{"line_number":71,"context_line":"installation. This will allow deployers to install class 2 drivers separately"},{"line_number":72,"context_line":"to their individual installations. The tool will need to run with elevated"},{"line_number":73,"context_line":"permissions to allow installation of Python packages."},{"line_number":74,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1aa78d24_ec5e2778","line":71,"range":{"start_line":70,"start_character":0,"end_line":71,"end_character":13},"in_reply_to":"1aa78d24_7b8166c3","updated":"2016-07-14 20:31:57.000000000","message":"Yes, I don\u0027t want to have to support problems with installing 2nd class drivers. It seems we are taking on a burden to accommodate vendors who are not active participants in the community. I\u0027d rather those vendors deal with how to install.","commit_id":"7c903431ce2d138bbe8273d521dfc4ba01c856ca"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"afb3fc669bb65737202c465b75b2e28e004c268a","unresolved":false,"context_lines":[{"line_number":67,"context_line":"  2. Installation handling will be included in the new driver installation"},{"line_number":68,"context_line":"     tool to be added to support this."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"A new command line tool will be added for handling class 2 driver"},{"line_number":71,"context_line":"installation. This will allow deployers to install class 2 drivers separately"},{"line_number":72,"context_line":"to their individual installations. The tool will need to run with elevated"},{"line_number":73,"context_line":"permissions to allow installation of Python packages."},{"line_number":74,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1aa78d24_7b8166c3","line":71,"range":{"start_line":70,"start_character":0,"end_line":71,"end_character":13},"in_reply_to":"1aa78d24_ea5ac2f1","updated":"2016-07-14 11:59:21.000000000","message":"I believe we already have that by defining the driver class from different namespace than Cinder. And I\u0027m also worried about this mechanism. Cinder isn\u0027t a deployment tool.","commit_id":"7c903431ce2d138bbe8273d521dfc4ba01c856ca"},{"author":{"_account_id":10213,"name":"Alon Marx","email":"alonma@il.ibm.com","username":"alonmarx"},"change_message_id":"8b452a9b5cb804bcc6ad8bf87680e76233a908a4","unresolved":false,"context_lines":[{"line_number":67,"context_line":"  2. Installation handling will be included in the new driver installation"},{"line_number":68,"context_line":"     tool to be added to support this."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"A new command line tool will be added for handling class 2 driver"},{"line_number":71,"context_line":"installation. This will allow deployers to install class 2 drivers separately"},{"line_number":72,"context_line":"to their individual installations. The tool will need to run with elevated"},{"line_number":73,"context_line":"permissions to allow installation of Python packages."},{"line_number":74,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"dada55a8_c76d0806","line":71,"range":{"start_line":70,"start_character":0,"end_line":71,"end_character":13},"in_reply_to":"1aa78d24_ec5e2778","updated":"2016-07-18 20:23:40.000000000","message":"+1. no reason for the community to deal with driver installation, and/or defining how it will be installed.","commit_id":"7c903431ce2d138bbe8273d521dfc4ba01c856ca"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"0e2bdda1d10c4023c93ba0ab7905d596b3f083be","unresolved":false,"context_lines":[{"line_number":106,"context_line":"It would not be recommended, but in some cases it may also be possible to have"},{"line_number":107,"context_line":"this installation script just print out instructions of where to go for a"},{"line_number":108,"context_line":"full installation guide hosted by the vendor."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Alternatives"},{"line_number":111,"context_line":"------------"},{"line_number":112,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1aa78d24_3b54f11f","line":109,"updated":"2016-07-14 15:43:01.000000000","message":"I think you\u0027ll also need to keep track of versions in the driver registry for this to mean much, otherwise you are saying that driver X is tested, but CI may be vetting it with version 1.0 and PyPI may be hosting an untested version 2.0 update.","commit_id":"7c903431ce2d138bbe8273d521dfc4ba01c856ca"},{"author":{"_account_id":20721,"name":"Matt Smith (_alastor_)","email":"mss@datera.io","username":"alastor"},"change_message_id":"44dc711abcdb66186c06f545594e7f0f2bd572c4","unresolved":false,"context_lines":[{"line_number":139,"context_line":"location. The assumption would be the deployer would have gone ahead of time"},{"line_number":140,"context_line":"and validated that package was OK before performing the local installation."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"As another alternative, we could only allow pip installs or printing out"},{"line_number":143,"context_line":"installation instructions. No other installation types would be allowed."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"Notifications impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1aa78d24_97e5273a","line":142,"updated":"2016-07-13 20:12:51.000000000","message":"This option has my vote.  I don\u0027t think we should be performing any automated installs for driver code that isn\u0027t directly from PyPI (or a company\u0027s internal mirror) or OpenStack\u0027s github and/or mirrors.  If they want to take a chance on closed source code, they should do so manually.","commit_id":"7c903431ce2d138bbe8273d521dfc4ba01c856ca"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"0e2bdda1d10c4023c93ba0ab7905d596b3f083be","unresolved":false,"context_lines":[{"line_number":139,"context_line":"location. The assumption would be the deployer would have gone ahead of time"},{"line_number":140,"context_line":"and validated that package was OK before performing the local installation."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"As another alternative, we could only allow pip installs or printing out"},{"line_number":143,"context_line":"installation instructions. No other installation types would be allowed."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"Notifications impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1aa78d24_9bec0594","line":142,"in_reply_to":"1aa78d24_97e5273a","updated":"2016-07-14 15:43:01.000000000","message":"Agreed (mostly), if we\u0027re going to try to install things, we should only be dealing with pip.  Trying to handle other things will be quite hard to reliably support.","commit_id":"7c903431ce2d138bbe8273d521dfc4ba01c856ca"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"afb3fc669bb65737202c465b75b2e28e004c268a","unresolved":false,"context_lines":[{"line_number":139,"context_line":"location. The assumption would be the deployer would have gone ahead of time"},{"line_number":140,"context_line":"and validated that package was OK before performing the local installation."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"As another alternative, we could only allow pip installs or printing out"},{"line_number":143,"context_line":"installation instructions. No other installation types would be allowed."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"Notifications impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1aa78d24_fba8b622","line":142,"in_reply_to":"1aa78d24_97e5273a","updated":"2016-07-14 11:59:21.000000000","message":"I would just say that installation instructions (either pip or more complicated) should be listed for each driver in the out-of-tree driver list.","commit_id":"7c903431ce2d138bbe8273d521dfc4ba01c856ca"},{"author":{"_account_id":10213,"name":"Alon Marx","email":"alonma@il.ibm.com","username":"alonmarx"},"change_message_id":"8b452a9b5cb804bcc6ad8bf87680e76233a908a4","unresolved":false,"context_lines":[{"line_number":139,"context_line":"location. The assumption would be the deployer would have gone ahead of time"},{"line_number":140,"context_line":"and validated that package was OK before performing the local installation."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"As another alternative, we could only allow pip installs or printing out"},{"line_number":143,"context_line":"installation instructions. No other installation types would be allowed."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"Notifications impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dada55a8_e2e47a0e","line":142,"in_reply_to":"1aa78d24_9bec0594","updated":"2016-07-18 20:23:40.000000000","message":"Better just leave the driver installation to the driver owner","commit_id":"7c903431ce2d138bbe8273d521dfc4ba01c856ca"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"0e2bdda1d10c4023c93ba0ab7905d596b3f083be","unresolved":false,"context_lines":[{"line_number":161,"context_line":"---------------------"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"Deployers will need to be aware of the additional installation step required"},{"line_number":164,"context_line":"for their chosen backend."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Developer impact"},{"line_number":167,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1aa78d24_bb01016d","line":164,"updated":"2016-07-14 15:43:01.000000000","message":"I think it\u0027s important to note here that any drivers relying on this mechanism will basically not be supported by downstream distributions.  (Speaking for RDO/RHOSP, but I imagine this would be true for others as well.)\n\nThis is because distributions in general are only going to support software that\u0027s properly packaged - not grabbed from various pip repos etc.","commit_id":"7c903431ce2d138bbe8273d521dfc4ba01c856ca"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"ef4b52005149e5133e93e436837a0da7cea7f6c3","unresolved":false,"context_lines":[{"line_number":161,"context_line":"---------------------"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"Deployers will need to be aware of the additional installation step required"},{"line_number":164,"context_line":"for their chosen backend."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Developer impact"},{"line_number":167,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1aa78d24_4cfc9b3f","line":164,"in_reply_to":"1aa78d24_bb01016d","updated":"2016-07-14 20:31:57.000000000","message":"Agreed. I don\u0027t think Helion will support this.","commit_id":"7c903431ce2d138bbe8273d521dfc4ba01c856ca"},{"author":{"_account_id":13047,"name":"Isaac Beckman","email":"beckmani@gmail.com","username":"isaacb"},"change_message_id":"4799e00c3006ae565317cbc4c0b32f7ee033022e","unresolved":false,"context_lines":[{"line_number":162,"context_line":""},{"line_number":163,"context_line":"Deployers will need to be aware of the additional installation step required"},{"line_number":164,"context_line":"for their chosen backend."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Developer impact"},{"line_number":167,"context_line":"----------------"},{"line_number":168,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fad55976_dc1c78c3","line":165,"updated":"2016-07-17 08:02:42.000000000","message":"It is also important to note that the deployer should pay attention to licensing requirements that may results from using \"class 2\" drivers.","commit_id":"7c903431ce2d138bbe8273d521dfc4ba01c856ca"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bb2f5488f06beb63689e0b391bc63af1e60ab312","unresolved":false,"context_lines":[{"line_number":179,"context_line":"If a CI fails for several days with no updates from the vendor, or if the CI"},{"line_number":180,"context_line":"has stopped reporting on the status of external drivers, the driver mapping"},{"line_number":181,"context_line":"will be removed from the cinder-driver command and no longer be considered"},{"line_number":182,"context_line":"a class 2 driver."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Implementation"},{"line_number":185,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1aa78d24_e8b3eaea","line":182,"updated":"2016-07-13 21:28:23.000000000","message":"I think we need to clearly document the guidelines on when the driver will be removed so there won\u0027t be surprises.  If a driver is removed, when and how can it be added back?","commit_id":"7c903431ce2d138bbe8273d521dfc4ba01c856ca"},{"author":{"_account_id":13047,"name":"Isaac Beckman","email":"beckmani@gmail.com","username":"isaacb"},"change_message_id":"4799e00c3006ae565317cbc4c0b32f7ee033022e","unresolved":false,"context_lines":[{"line_number":179,"context_line":"If a CI fails for several days with no updates from the vendor, or if the CI"},{"line_number":180,"context_line":"has stopped reporting on the status of external drivers, the driver mapping"},{"line_number":181,"context_line":"will be removed from the cinder-driver command and no longer be considered"},{"line_number":182,"context_line":"a class 2 driver."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Implementation"},{"line_number":185,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fad55976_3c7af4f1","line":182,"in_reply_to":"1aa78d24_5b158a47","updated":"2016-07-17 08:02:42.000000000","message":"+1 For clearly document the guidelines.","commit_id":"7c903431ce2d138bbe8273d521dfc4ba01c856ca"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"afb3fc669bb65737202c465b75b2e28e004c268a","unresolved":false,"context_lines":[{"line_number":179,"context_line":"If a CI fails for several days with no updates from the vendor, or if the CI"},{"line_number":180,"context_line":"has stopped reporting on the status of external drivers, the driver mapping"},{"line_number":181,"context_line":"will be removed from the cinder-driver command and no longer be considered"},{"line_number":182,"context_line":"a class 2 driver."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Implementation"},{"line_number":185,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1aa78d24_5b158a47","line":182,"in_reply_to":"1aa78d24_e8b3eaea","updated":"2016-07-14 11:59:21.000000000","message":"+1, IMO we need deadlines and numbers here, so driver maintainers will be able to set up alerts on their CIs.","commit_id":"7c903431ce2d138bbe8273d521dfc4ba01c856ca"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"5d4ce0477fa5c9728c66cf160a6e8306a228b264","unresolved":false,"context_lines":[{"line_number":202,"context_line":"        Uses vendor provided script to perform installation of driver_name."},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"    list"},{"line_number":205,"context_line":"        Prints out list of available external drivers."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    info \u003cdriver_name\u003e"},{"line_number":208,"context_line":"        Prints out any driver information the vendor would like to provide."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1aa78d24_f46f49fa","line":205,"range":{"start_line":205,"start_character":8,"end_line":205,"end_character":54},"updated":"2016-07-13 20:07:25.000000000","message":"Do we just build this list be reading capabilities of the drivers?  That might be a descent idea, add a class-\u0027n\u0027 to capabilities reporting.","commit_id":"7c903431ce2d138bbe8273d521dfc4ba01c856ca"}]}
