)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"953724066b5e1ed62899bcdf1dc4e2b05ba55773","unresolved":false,"context_lines":[{"line_number":12,"context_line":"validation to users. Having a validation done right away while users"},{"line_number":13,"context_line":"are still in the process of creating or editing extra specs will"},{"line_number":14,"context_line":"eliminate problems that could happen at volume creation time which is"},{"line_number":15,"context_line":"much  harder to troubleshoot."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: Ia47aa19cf3ce9547ba0d02cbae57e31e104dd4aa"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9aa7fdbe_4269a9f7","line":15,"updated":"2014-10-28 20:13:08.000000000","message":"There\u0027s an extra space that should be removed.","commit_id":"990056df7d28622ac89d0bef879391b0cb4e1f8b"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"f2d61e208f1d141f6a20d858e227bea5cd5ab2c4","unresolved":false,"context_lines":[{"line_number":12,"context_line":"validation to users. Having a validation done right away while users"},{"line_number":13,"context_line":"are still in the process of creating or editing extra specs will"},{"line_number":14,"context_line":"eliminate problems that could happen at volume creation time which is"},{"line_number":15,"context_line":"much  harder to troubleshoot."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: Ia47aa19cf3ce9547ba0d02cbae57e31e104dd4aa"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7a8c0949_a3ccf736","line":15,"in_reply_to":"9aa7fdbe_4269a9f7","updated":"2014-10-30 17:13:26.000000000","message":"thanks for the catch.","commit_id":"990056df7d28622ac89d0bef879391b0cb4e1f8b"}],"specs/kilo/validate-vol-type-extra-specs-key-value.rst":[{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"75dbdf89e2ca350dc48d9eb8f4762b18f31c7c44","unresolved":false,"context_lines":[{"line_number":58,"context_line":"---------------"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Current REST API to be enhanced:"},{"line_number":61,"context_line":"  * POST /v2/{tenant_id}/types/{type_id}/extra_specs"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Security impact"},{"line_number":64,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a961159_58bb4ac4","line":61,"updated":"2014-12-08 04:55:15.000000000","message":"Can we add more details here?  Like what is enhanced/changed, what new result this existing will provide?","commit_id":"8bc750a275a9b82362f9ee22f96daf84b3759b76"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"75dbdf89e2ca350dc48d9eb8f4762b18f31c7c44","unresolved":false,"context_lines":[{"line_number":111,"context_line":"Work Items"},{"line_number":112,"context_line":"----------"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"* Add support for extra-specs-validate command to python-cinderclient"},{"line_number":115,"context_line":"* Add support for extra-specs-validate command to cinder.volumes.manager"},{"line_number":116,"context_line":"* Add support for extra-specs-validate command to all supported drivers"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a961159_78b006de","line":114,"updated":"2014-12-08 04:55:15.000000000","message":"Since we are reusing existing API, is it necessary to add new command line to cinderclient?","commit_id":"8bc750a275a9b82362f9ee22f96daf84b3759b76"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"8edba64969c62965d0ad188be5deddc5daaf931a","unresolved":false,"context_lines":[{"line_number":61,"context_line":"  * ``POST /v2/{tenant_id}/types/{type_id}/extra_specs``"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"When this API is invoked, the extra_specs will be inspected to determine the"},{"line_number":64,"context_line":"intended ``volume_backend_name``. Each driver that is loaded on a backend that"},{"line_number":65,"context_line":"is configured with the given ``volume_backend_name`` will be asked to validate"},{"line_number":66,"context_line":"the provided extra_specs.  If any driver rejects the extra specs as invalid, the"},{"line_number":67,"context_line":"setting process will terminate, and the REST call will return an appropriate"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_57abf0d7","line":64,"updated":"2014-12-09 04:37:02.000000000","message":"\u0027volume_backend_name\u0027 is not always present for type definition.  What happen if it is not there?  Is it possible for Cinder to validate certain extra spec against multiple backends?  How? What if there are more than one driver using same \u0027key\u0027 but provide opposite repsonse (one rejected while the other one accepts it)? And how about those capabilities defined by admin via extra_capabilities? Are they treated like driver provided capabilities but without validation?","commit_id":"7e73b49b47b87b83ab4c08d19ea7f6cd85c8004f"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"fa49e1fc05d3ad9e94563a49182349e1a1345fcd","unresolved":false,"context_lines":[{"line_number":79,"context_line":"received, it will inspect the extra_specs will to determine the intended backend"},{"line_number":80,"context_line":"via the ``volume_backend_name``.  If ``volume_backend_name`` is not set in the"},{"line_number":81,"context_line":"extra_specs, then no validation will be performed, and the extra_specs will be"},{"line_number":82,"context_line":"accepted and updated without further validation."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"Otherwise, the API will deterimine which backends are configured with the given"},{"line_number":85,"context_line":"``volume_backend_name``.  For each backend, the API will loop through the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a961159_e5805cf9","line":82,"updated":"2014-12-10 23:00:02.000000000","message":"Why wouldn\u0027t you validate against all backends in this case?  Seems that\u0027s the whole point of the proposal isn\u0027t it?","commit_id":"09376166664a9b758abc66b9f02634a2ebfed042"},{"author":{"_account_id":6825,"name":"Gary W. Smith","email":"garysmith123@gmail.com","username":"gary-w-smith"},"change_message_id":"23ddd9b1452f4b0e5b499befa3f0465f8402fe39","unresolved":false,"context_lines":[{"line_number":79,"context_line":"received, it will inspect the extra_specs will to determine the intended backend"},{"line_number":80,"context_line":"via the ``volume_backend_name``.  If ``volume_backend_name`` is not set in the"},{"line_number":81,"context_line":"extra_specs, then no validation will be performed, and the extra_specs will be"},{"line_number":82,"context_line":"accepted and updated without further validation."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"Otherwise, the API will deterimine which backends are configured with the given"},{"line_number":85,"context_line":"``volume_backend_name``.  For each backend, the API will loop through the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a961159_90bfd4a9","line":82,"in_reply_to":"3a961159_e5805cf9","updated":"2014-12-10 23:25:58.000000000","message":"The point of the proposal is to do meaningful validation of extra specs when possible.  Does it make sense to validate against all backends?  If so, I can change the spec.","commit_id":"09376166664a9b758abc66b9f02634a2ebfed042"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"fa49e1fc05d3ad9e94563a49182349e1a1345fcd","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"The base driver class will provide an implementation of ``validate`` that simply"},{"line_number":92,"context_line":"returns, so that any drivers that do not implement their own version will revert"},{"line_number":93,"context_line":"to the current behavior of accepting all extra_specs."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"The ``validate`` function that each driver may implement will accept a single"},{"line_number":96,"context_line":"key/value pair.  If the key/value pair is valid, or if the key is unknown to the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a961159_65ab8c75","line":93,"updated":"2014-12-10 23:00:02.000000000","message":"Probably reasonable, although I argue that the only worse than something implementing checks is something that implements unreliable checks.\n\nIn other words, my opinion is we either do this and enforce it, or we don\u0027t.  Half in Half-Out depending on your driver is something we\u0027ve traditionally focused pretty hard on in the past.  I don\u0027t want to have to explain to a customer via LP or at a Summit that the reason their behavior was not as expected was because of the driver they were using.","commit_id":"09376166664a9b758abc66b9f02634a2ebfed042"},{"author":{"_account_id":6825,"name":"Gary W. Smith","email":"garysmith123@gmail.com","username":"gary-w-smith"},"change_message_id":"23ddd9b1452f4b0e5b499befa3f0465f8402fe39","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"The base driver class will provide an implementation of ``validate`` that simply"},{"line_number":92,"context_line":"returns, so that any drivers that do not implement their own version will revert"},{"line_number":93,"context_line":"to the current behavior of accepting all extra_specs."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"The ``validate`` function that each driver may implement will accept a single"},{"line_number":96,"context_line":"key/value pair.  If the key/value pair is valid, or if the key is unknown to the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a961159_70742836","line":93,"in_reply_to":"3a961159_65ab8c75","updated":"2014-12-10 23:25:58.000000000","message":"Agreed, but I wanted to offer a migration strategy for drivers until they get updated.  Any other suggestions for handling this phase-in?","commit_id":"09376166664a9b758abc66b9f02634a2ebfed042"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"fa49e1fc05d3ad9e94563a49182349e1a1345fcd","unresolved":false,"context_lines":[{"line_number":98,"context_line":"key is invalid, the driver should throw an ``InvalidExtraSpec`` exception"},{"line_number":99,"context_line":"containing a reason.   Note that this function only accepts a single key/value"},{"line_number":100,"context_line":"pair in order to make the implementation simpler for the driver, and to let"},{"line_number":101,"context_line":"the API layer accumulate the results."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Alternatives"},{"line_number":104,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a961159_05eba8b0","line":101,"updated":"2014-12-10 23:00:02.000000000","message":"So this seems really wasteful to send on K/V at a time all the way out RPC and back again, there are cases where an extra-spec could very well contain half a dozen keys or so.... why wouldn\u0027t you send the whole extra-specs object and just validate the entire set?","commit_id":"09376166664a9b758abc66b9f02634a2ebfed042"},{"author":{"_account_id":6825,"name":"Gary W. Smith","email":"garysmith123@gmail.com","username":"gary-w-smith"},"change_message_id":"23ddd9b1452f4b0e5b499befa3f0465f8402fe39","unresolved":false,"context_lines":[{"line_number":98,"context_line":"key is invalid, the driver should throw an ``InvalidExtraSpec`` exception"},{"line_number":99,"context_line":"containing a reason.   Note that this function only accepts a single key/value"},{"line_number":100,"context_line":"pair in order to make the implementation simpler for the driver, and to let"},{"line_number":101,"context_line":"the API layer accumulate the results."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Alternatives"},{"line_number":104,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a961159_50f80cc3","line":101,"in_reply_to":"3a961159_05eba8b0","updated":"2014-12-10 23:25:58.000000000","message":"I guess that all depends on how wasteful the RPC is. Is this an expensive operation?","commit_id":"09376166664a9b758abc66b9f02634a2ebfed042"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"fa49e1fc05d3ad9e94563a49182349e1a1345fcd","unresolved":false,"context_lines":[{"line_number":109,"context_line":"  would require the driver to deal with returning a dictionary with a validation"},{"line_number":110,"context_line":"  response to each of the key/value pairs,  which complicates the driver\u0027s work a"},{"line_number":111,"context_line":"  bit, without really simplifyng the API layer, which still has to consolidate"},{"line_number":112,"context_line":"  answers into a unified response."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"* If the request has more than one key/value pair, accept (and set) those that"},{"line_number":115,"context_line":"  are valid, and reject the invalid ones.  One problem this raises is how to"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a961159_a5065484","line":112,"updated":"2014-12-10 23:00:02.000000000","message":"Ahh... there\u0027s an answer to my question above :)\n\nDoesn\u0027t have to be a dict, can be a list of Key\u0027s that are invalid no?","commit_id":"09376166664a9b758abc66b9f02634a2ebfed042"},{"author":{"_account_id":6825,"name":"Gary W. Smith","email":"garysmith123@gmail.com","username":"gary-w-smith"},"change_message_id":"23ddd9b1452f4b0e5b499befa3f0465f8402fe39","unresolved":false,"context_lines":[{"line_number":109,"context_line":"  would require the driver to deal with returning a dictionary with a validation"},{"line_number":110,"context_line":"  response to each of the key/value pairs,  which complicates the driver\u0027s work a"},{"line_number":111,"context_line":"  bit, without really simplifyng the API layer, which still has to consolidate"},{"line_number":112,"context_line":"  answers into a unified response."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"* If the request has more than one key/value pair, accept (and set) those that"},{"line_number":115,"context_line":"  are valid, and reject the invalid ones.  One problem this raises is how to"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a961159_904434b8","line":112,"in_reply_to":"3a961159_a5065484","updated":"2014-12-10 23:25:58.000000000","message":"It would need to be a little more complicated than that, as it should allow for the ability to include a reason for the rejection of each key pair.  So I guess it could be an array of dicts, or just one big dict.  It comes down to the efficiency question above vs. simplicity.","commit_id":"09376166664a9b758abc66b9f02634a2ebfed042"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"fa49e1fc05d3ad9e94563a49182349e1a1345fcd","unresolved":false,"context_lines":[{"line_number":117,"context_line":"  indicate a partial success or partial failure; both a ``200`` and a ``400``"},{"line_number":118,"context_line":"  is likely to be misinterpreted by the user.  It seems more intuitive and"},{"line_number":119,"context_line":"  simpler to implement to treat the validation/acceptance as an atomic"},{"line_number":120,"context_line":"  operation."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Security impact"},{"line_number":123,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a961159_e5fcdc74","line":120,"updated":"2014-12-10 23:00:02.000000000","message":"I\u0027m fine with rejecting the entire set if we do this.","commit_id":"09376166664a9b758abc66b9f02634a2ebfed042"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"8d80246423e13201548e05250a0c722a723c48fa","unresolved":false,"context_lines":[{"line_number":145,"context_line":"Developer impact"},{"line_number":146,"context_line":"----------------"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"Driver developers will need to provide a new driver method that performs the"},{"line_number":149,"context_line":"extra specs key/value pair validation. It is completely up to the driver to"},{"line_number":150,"context_line":"decide how to validate each key/value pair. It can choose to do nothing and"},{"line_number":151,"context_line":"report a successful validation. It can choose to simply validate if the type of"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_17083327","line":148,"updated":"2014-12-11 05:15:46.000000000","message":"should name the driver method name here.","commit_id":"fb53ae3b654628a11133514dfeea7f121c6f5dc5"},{"author":{"_account_id":6825,"name":"Gary W. Smith","email":"garysmith123@gmail.com","username":"gary-w-smith"},"change_message_id":"cd3267a323cf7f19930b96b9e3ae4706c059c3c7","unresolved":false,"context_lines":[{"line_number":145,"context_line":"Developer impact"},{"line_number":146,"context_line":"----------------"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"Driver developers will need to provide a new driver method that performs the"},{"line_number":149,"context_line":"extra specs key/value pair validation. It is completely up to the driver to"},{"line_number":150,"context_line":"decide how to validate each key/value pair. It can choose to do nothing and"},{"line_number":151,"context_line":"report a successful validation. It can choose to simply validate if the type of"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_52972948","line":148,"in_reply_to":"3a961159_17083327","updated":"2014-12-11 06:49:33.000000000","message":"Done","commit_id":"fb53ae3b654628a11133514dfeea7f121c6f5dc5"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"8d80246423e13201548e05250a0c722a723c48fa","unresolved":false,"context_lines":[{"line_number":153,"context_line":"supported values to ensure that the value is legitimate and usable."},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"To support phasing in this change, the default implementation of ``validate`` in"},{"line_number":156,"context_line":"the base driver class will simply return ``None``."},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"Implementation"},{"line_number":159,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_7c04fe17","line":156,"updated":"2014-12-11 05:15:46.000000000","message":"None, which will effectively be the same functionality there is today, which is no validation and or passing validation.","commit_id":"fb53ae3b654628a11133514dfeea7f121c6f5dc5"},{"author":{"_account_id":6825,"name":"Gary W. Smith","email":"garysmith123@gmail.com","username":"gary-w-smith"},"change_message_id":"cd3267a323cf7f19930b96b9e3ae4706c059c3c7","unresolved":false,"context_lines":[{"line_number":153,"context_line":"supported values to ensure that the value is legitimate and usable."},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"To support phasing in this change, the default implementation of ``validate`` in"},{"line_number":156,"context_line":"the base driver class will simply return ``None``."},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"Implementation"},{"line_number":159,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3a961159_32affd95","line":156,"in_reply_to":"3a961159_7c04fe17","updated":"2014-12-11 06:49:33.000000000","message":"Done","commit_id":"fb53ae3b654628a11133514dfeea7f121c6f5dc5"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"074eca7192b3602254007258a1b3ca74e2d01c0b","unresolved":false,"context_lines":[{"line_number":96,"context_line":"key/value pairs are valid.  Each element in the array is a dictionary with two"},{"line_number":97,"context_line":"entries: ``key`` (containing the invalid key), and an optional ``reason``"},{"line_number":98,"context_line":"containing a string that indicates the reason it is invalid.  This is the same"},{"line_number":99,"context_line":"format as the REST call above."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Alternatives"},{"line_number":102,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a961159_c52047fa","line":99,"updated":"2015-01-19 06:20:28.000000000","message":"Two questions. What happens if the volume service is down? Also what happens if the storage backend is too busy to respond back right away?","commit_id":"3bf04e4cdb571a640d3aa82236eec69ba2af2706"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"53da7ff4440ec5b3df69b39f18ec6a3013ecb7fc","unresolved":false,"context_lines":[{"line_number":96,"context_line":"key/value pairs are valid.  Each element in the array is a dictionary with two"},{"line_number":97,"context_line":"entries: ``key`` (containing the invalid key), and an optional ``reason``"},{"line_number":98,"context_line":"containing a string that indicates the reason it is invalid.  This is the same"},{"line_number":99,"context_line":"format as the REST call above."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Alternatives"},{"line_number":102,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1a930d6b_f8877c0d","line":99,"in_reply_to":"3a961159_c52047fa","updated":"2015-01-21 19:00:39.000000000","message":"If the volume service is down and can\u0027t be reached, then we can\u0027t validate and we should fail the validation check.   Same should be true if the driver takes too long to do the validation.","commit_id":"3bf04e4cdb571a640d3aa82236eec69ba2af2706"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"4d4b0b8853a40dbdfa0d2ced174c7cddd936f16f","unresolved":false,"context_lines":[{"line_number":101,"context_line":"If the volume service is down and can\u0027t be reached, the validation will fail"},{"line_number":102,"context_line":"with a reason entry in the payload indicating the source of the failure if"},{"line_number":103,"context_line":"possible. The same behavior should be true if the driver takes too long to"},{"line_number":104,"context_line":"perform the validation."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Alternatives"},{"line_number":107,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a930d6b_7cdcf373","line":104,"updated":"2015-01-25 07:03:37.000000000","message":"So this means the volume type can\u0027t be created? Cinder now depends on the backend to create a database entry for the volume type. As oppose to today, it just creates the volume type.","commit_id":"7a8769186ca0fbf1a34e7754e8bce5dde478cad5"},{"author":{"_account_id":11592,"name":"Julie Gravel","email":"julie.gravel@suse.com","username":"jgravel"},"change_message_id":"d578bb0c20fcda2f3dbd6d4fe15e817bf2b77a0b","unresolved":false,"context_lines":[{"line_number":101,"context_line":"If the volume service is down and can\u0027t be reached, the validation will fail"},{"line_number":102,"context_line":"with a reason entry in the payload indicating the source of the failure if"},{"line_number":103,"context_line":"possible. The same behavior should be true if the driver takes too long to"},{"line_number":104,"context_line":"perform the validation."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Alternatives"},{"line_number":107,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa81d914_d85e1d45","line":104,"in_reply_to":"1a930d6b_7cdcf373","updated":"2015-01-28 21:53:28.000000000","message":"The volume type would have already been created. This validation step occurs during the setting of extra specs. It doesn\u0027t have anything to do with the volume type at this point.","commit_id":"7a8769186ca0fbf1a34e7754e8bce5dde478cad5"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"7312b4e16f2362f0b87efeef01b7b24b4eaea26f","unresolved":false,"context_lines":[{"line_number":105,"context_line":"If the volume service is down and can\u0027t be reached, the validation will fail"},{"line_number":106,"context_line":"with a reason entry in the payload indicating the source of the failure if"},{"line_number":107,"context_line":"possible. The same behavior should be true if the driver takes too long to"},{"line_number":108,"context_line":"perform the validation."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Alternatives"},{"line_number":111,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da86d52c_37180d84","line":108,"updated":"2015-02-10 06:21:20.000000000","message":"Continuing discussion from previous patch set. What I mean is, the cloud administrator was previously able to create extra specs to a volume type regardless of the volume backend being up.","commit_id":"19739bda1f4f30ecd5af748dcf5fae4023f1988d"},{"author":{"_account_id":11592,"name":"Julie Gravel","email":"julie.gravel@suse.com","username":"jgravel"},"change_message_id":"dfdf7d59b56e3d59da45154f2be19146249836ec","unresolved":false,"context_lines":[{"line_number":105,"context_line":"If the volume service is down and can\u0027t be reached, the validation will fail"},{"line_number":106,"context_line":"with a reason entry in the payload indicating the source of the failure if"},{"line_number":107,"context_line":"possible. The same behavior should be true if the driver takes too long to"},{"line_number":108,"context_line":"perform the validation."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Alternatives"},{"line_number":111,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da86d52c_b095cce5","line":108,"in_reply_to":"da86d52c_37180d84","updated":"2015-02-10 17:06:38.000000000","message":"That\u0027s a good point. How about we provide a flag that allows bypassing of the validation, something like \u0027validate\u003dfalse\u0027? The default behavior would be validate\u003dtrue.","commit_id":"19739bda1f4f30ecd5af748dcf5fae4023f1988d"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"6c667d96b092e4f2b0c2858234f3ea0b53f90a2c","unresolved":false,"context_lines":[{"line_number":105,"context_line":"If the volume service is down and can\u0027t be reached, the validation will fail"},{"line_number":106,"context_line":"with a reason entry in the payload indicating the source of the failure if"},{"line_number":107,"context_line":"possible. The same behavior should be true if the driver takes too long to"},{"line_number":108,"context_line":"perform the validation."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Alternatives"},{"line_number":111,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da86d52c_38682c21","line":108,"in_reply_to":"da86d52c_b095cce5","updated":"2015-02-14 23:55:48.000000000","message":"Introducing flags to change behavior works, but starts to make things complicated. Either it\u0027s a new endpoint, or a hard change of behavior. Think of it this way, lets say someone proposes another change of behavior. Do we add yet another flag to accommodate that as well? Does it have side effects if there are two different flags flipped at the same time? It just ends being really messy, and unexpected issues.","commit_id":"19739bda1f4f30ecd5af748dcf5fae4023f1988d"}]}
