)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7a120f02f59df96e1aac8a0bde5d7c905357370a","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Remove old service version check for mitaka"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This removes a service version check from mitaka, where we needed to"},{"line_number":10,"context_line":"be graceful about build requests that may not have been created by a"},{"line_number":11,"context_line":"liberty API node. This has long since left our support envelope and"},{"line_number":12,"context_line":"can be removed (instead of fixed for multiple cells)."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"bf091321_d56ce037","line":9,"range":{"start_line":9,"start_character":42,"end_line":9,"end_character":48},"updated":"2017-06-09 02:49:58.000000000","message":"This check was added in newton:\n\nId65ab1911071608a739bea96e071939baa388493\n\nAnd server version 12 was newton computes:\n\nIa1af75422d5e1fd4535c1ed9703d855239282559","commit_id":"d57a6dbe46e276835dbbee4bb31c897032dd51dd"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"71bdb235183f8699c11dc25486e097d4c7394125","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Remove old service version check for mitaka"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This removes a service version check from mitaka, where we needed to"},{"line_number":10,"context_line":"be graceful about build requests that may not have been created by a"},{"line_number":11,"context_line":"liberty API node. This has long since left our support envelope and"},{"line_number":12,"context_line":"can be removed (instead of fixed for multiple cells)."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7f231b9d_4ef5e956","line":9,"range":{"start_line":9,"start_character":42,"end_line":9,"end_character":48},"updated":"2017-06-12 14:58:37.000000000","message":"This check was added in newton:\n\nId65ab1911071608a739bea96e071939baa388493\n\nAnd server version 12 was newton computes:\n\nIa1af75422d5e1fd4535c1ed9703d855239282559","commit_id":"e20e65abf7cb817c98130e6034f6a20e710ff4f6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"71bdb235183f8699c11dc25486e097d4c7394125","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This removes a service version check from mitaka, where we needed to"},{"line_number":10,"context_line":"be graceful about build requests that may not have been created by a"},{"line_number":11,"context_line":"liberty API node. This has long since left our support envelope and"},{"line_number":12,"context_line":"can be removed (instead of fixed for multiple cells)."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I75bdf973106b2ef3861b5c8b6ae742c719769fc4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7f231b9d_ee039541","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":7},"updated":"2017-06-12 14:58:37.000000000","message":"Newton API node:\n\nIa1af75422d5e1fd4535c1ed9703d855239282559","commit_id":"e20e65abf7cb817c98130e6034f6a20e710ff4f6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"14aa1dbc89c58c1a91d9dea65346c215fe36d227","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This removes a service version check from newton, where we needed to"},{"line_number":10,"context_line":"be graceful about build requests that may not have been created by a"},{"line_number":11,"context_line":"mitaka API node. This has long since left our support envelope and"},{"line_number":12,"context_line":"can be removed (instead of fixed for multiple cells)."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I75bdf973106b2ef3861b5c8b6ae742c719769fc4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7f231b9d_d1abdcd3","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":6},"updated":"2017-06-12 15:01:39.000000000","message":"newton API node\n\nService version 12 was added in Newton, so the check was looking for pre-12 scenarios where the build request wouldn\u0027t have existed in the API yet (mitaka API).","commit_id":"ac23a40a6e77f32b91ba43361d3fe34cabf7f3bd"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"0187286689084d0c5f21374549c9e5f649e1a356","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This removes a service version check from newton, where we needed to"},{"line_number":10,"context_line":"be graceful about build requests that may not have been created by a"},{"line_number":11,"context_line":"mitaka API node. This has long since left our support envelope and"},{"line_number":12,"context_line":"can be removed (instead of fixed for multiple cells)."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I75bdf973106b2ef3861b5c8b6ae742c719769fc4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7f231b9d_f1949846","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":6},"in_reply_to":"7f231b9d_d1abdcd3","updated":"2017-06-12 15:07:11.000000000","message":"So what do you want this to say? As of the release, the newton API _will_ be creating these. Early, like N1 newtons won\u0027t, and mitaka (release) APIs wont. Saying \"newton\" here would imply \"newton at release\" to most people I think, which would be wrong, right?","commit_id":"ac23a40a6e77f32b91ba43361d3fe34cabf7f3bd"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dcb59f41ebeb7b3d12d201d8559c87b5e740ded8","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This removes a service version check from newton, where we needed to"},{"line_number":10,"context_line":"be graceful about build requests that may not have been created by a"},{"line_number":11,"context_line":"mitaka API node. This has long since left our support envelope and"},{"line_number":12,"context_line":"can be removed (instead of fixed for multiple cells)."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I75bdf973106b2ef3861b5c8b6ae742c719769fc4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7f231b9d_714c089e","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":6},"in_reply_to":"7f231b9d_f1949846","updated":"2017-06-12 15:18:52.000000000","message":"Yes I mean Newton at release. At this point in Pike, I don\u0027t think anyone reading this is going to make a distinction between newton-1 and 14.0.0 GA. The only people that would care about milestone granularity are doing CI/CD and are well past this point of caring anyway.\n\nThis all reads more correctly to me as:\n\n\"This removes a service version check, that was added in Newton, where we needed to be graceful about build requests that may not have been created by a Newton API node.\"","commit_id":"ac23a40a6e77f32b91ba43361d3fe34cabf7f3bd"}],"nova/conductor/manager.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b48d06baf32a0ad159d96bf9df96a9298100536c","unresolved":false,"context_lines":[{"line_number":484,"context_line":"            with excutils.save_and_reraise_exception() as exc_ctxt:"},{"line_number":485,"context_line":"                service_version \u003d objects.Service.get_minimum_version("},{"line_number":486,"context_line":"                    context, \u0027nova-osapi_compute\u0027)"},{"line_number":487,"context_line":"                if service_version \u003e\u003d 12:"},{"line_number":488,"context_line":"                    # A BuildRequest was created during the boot process, the"},{"line_number":489,"context_line":"                    # NotFound exception indicates a delete happened which"},{"line_number":490,"context_line":"                    # should abort the boot."},{"line_number":491,"context_line":"                    pass"},{"line_number":492,"context_line":"                else:"},{"line_number":493,"context_line":"                    LOG.debug(\u0027BuildRequest not found for instance %(uuid)s, \u0027"},{"line_number":494,"context_line":"                              \u0027likely due to an older nova-api service \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf091321_9521c8fe","side":"PARENT","line":491,"range":{"start_line":487,"start_character":16,"end_line":491,"end_character":24},"updated":"2017-06-09 02:48:36.000000000","message":"I\u0027m confused. Surely the minimum nova-compute at this point is \u003e\u003d 12, so we\u0027d expect to always hit that now and pass. So when removing the check, shouldn\u0027t we be doing the flow where the service version is new and pass?","commit_id":"c07cca7f9153a7943fcffd13bac1cdf06029a9cf"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"81d069846af713eb1e6f5683ce098b8d148a2b5c","unresolved":false,"context_lines":[{"line_number":484,"context_line":"            with excutils.save_and_reraise_exception() as exc_ctxt:"},{"line_number":485,"context_line":"                service_version \u003d objects.Service.get_minimum_version("},{"line_number":486,"context_line":"                    context, \u0027nova-osapi_compute\u0027)"},{"line_number":487,"context_line":"                if service_version \u003e\u003d 12:"},{"line_number":488,"context_line":"                    # A BuildRequest was created during the boot process, the"},{"line_number":489,"context_line":"                    # NotFound exception indicates a delete happened which"},{"line_number":490,"context_line":"                    # should abort the boot."},{"line_number":491,"context_line":"                    pass"},{"line_number":492,"context_line":"                else:"},{"line_number":493,"context_line":"                    LOG.debug(\u0027BuildRequest not found for instance %(uuid)s, \u0027"},{"line_number":494,"context_line":"                              \u0027likely due to an older nova-api service \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f231b9d_4ebde9b5","side":"PARENT","line":491,"range":{"start_line":487,"start_character":16,"end_line":491,"end_character":24},"in_reply_to":"7f231b9d_e84a6d25","updated":"2017-06-12 14:46:38.000000000","message":"OK I think when I first looked at this, what I was missing was for an up to date installation, I thought we were just ignoring the error with the pass, but didn\u0027t put together the save_and_reraise_exception we were in, so it would re-raise without the log message as you pointed out. If it\u0027s an older deployment, then we log a message and don\u0027t raise the error. So yeah, we should just always raise the error up now as you\u0027ve done. I was a bit confused to start on this side.","commit_id":"c07cca7f9153a7943fcffd13bac1cdf06029a9cf"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6ed9a3a6799e57ec81807c8212746b366c3ae43c","unresolved":false,"context_lines":[{"line_number":484,"context_line":"            with excutils.save_and_reraise_exception() as exc_ctxt:"},{"line_number":485,"context_line":"                service_version \u003d objects.Service.get_minimum_version("},{"line_number":486,"context_line":"                    context, \u0027nova-osapi_compute\u0027)"},{"line_number":487,"context_line":"                if service_version \u003e\u003d 12:"},{"line_number":488,"context_line":"                    # A BuildRequest was created during the boot process, the"},{"line_number":489,"context_line":"                    # NotFound exception indicates a delete happened which"},{"line_number":490,"context_line":"                    # should abort the boot."},{"line_number":491,"context_line":"                    pass"},{"line_number":492,"context_line":"                else:"},{"line_number":493,"context_line":"                    LOG.debug(\u0027BuildRequest not found for instance %(uuid)s, \u0027"},{"line_number":494,"context_line":"                              \u0027likely due to an older nova-api service \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f231b9d_e84a6d25","side":"PARENT","line":491,"range":{"start_line":487,"start_character":16,"end_line":491,"end_character":24},"in_reply_to":"bf091321_9521c8fe","updated":"2017-06-12 13:48:39.000000000","message":"Yeah, so this avoids the log message below before re-raising the BuildRequestNot found. Right? That was to gracefully handle the case where the database was missing a record, which we no longer need.","commit_id":"c07cca7f9153a7943fcffd13bac1cdf06029a9cf"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b48d06baf32a0ad159d96bf9df96a9298100536c","unresolved":false,"context_lines":[{"line_number":481,"context_line":"            # be updated before this is destroyed."},{"line_number":482,"context_line":"            build_request.destroy()"},{"line_number":483,"context_line":"        except exception.BuildRequestNotFound:"},{"line_number":484,"context_line":"            with excutils.save_and_reraise_exception() as exc_ctxt:"},{"line_number":485,"context_line":"                LOG.debug(\u0027BuildRequest not found for instance %(uuid)s\u0027,"},{"line_number":486,"context_line":"                          {\u0027uuid\u0027: instance.uuid})"},{"line_number":487,"context_line":"                exc_ctxt.reraise \u003d False"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf091321_357e7ce4","line":484,"range":{"start_line":484,"start_character":12,"end_line":484,"end_character":67},"updated":"2017-06-09 02:48:36.000000000","message":"Why would we even have this if we\u0027re not going to ever reraise? I think this is further evidence that this all just changes to pass (ignore).","commit_id":"d57a6dbe46e276835dbbee4bb31c897032dd51dd"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6ed9a3a6799e57ec81807c8212746b366c3ae43c","unresolved":false,"context_lines":[{"line_number":481,"context_line":"            # be updated before this is destroyed."},{"line_number":482,"context_line":"            build_request.destroy()"},{"line_number":483,"context_line":"        except exception.BuildRequestNotFound:"},{"line_number":484,"context_line":"            with excutils.save_and_reraise_exception() as exc_ctxt:"},{"line_number":485,"context_line":"                LOG.debug(\u0027BuildRequest not found for instance %(uuid)s\u0027,"},{"line_number":486,"context_line":"                          {\u0027uuid\u0027: instance.uuid})"},{"line_number":487,"context_line":"                exc_ctxt.reraise \u003d False"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f231b9d_285aa5f2","line":484,"range":{"start_line":484,"start_character":12,"end_line":484,"end_character":67},"in_reply_to":"bf091321_357e7ce4","updated":"2017-06-12 13:48:39.000000000","message":"Yep, I\u0027ll just let it bubble up without the try..catch.","commit_id":"d57a6dbe46e276835dbbee4bb31c897032dd51dd"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"71bdb235183f8699c11dc25486e097d4c7394125","unresolved":false,"context_lines":[{"line_number":554,"context_line":"                    # If the BuildRequest stays around then instance show/lists"},{"line_number":555,"context_line":"                    # will pull from it rather than the errored instance."},{"line_number":556,"context_line":"                    self._destroy_build_request(context, instance)"},{"line_number":557,"context_line":"                except exception.BuildRequestNotFound:"},{"line_number":558,"context_line":"                    pass"},{"line_number":559,"context_line":"                self._cleanup_allocated_networks("},{"line_number":560,"context_line":"                    context, instance, requested_networks)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f231b9d_ee8835c7","line":557,"range":{"start_line":557,"start_character":33,"end_line":557,"end_character":53},"updated":"2017-06-12 14:58:37.000000000","message":"Handled here.","commit_id":"e20e65abf7cb817c98130e6034f6a20e710ff4f6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"71bdb235183f8699c11dc25486e097d4c7394125","unresolved":false,"context_lines":[{"line_number":592,"context_line":"                                                               host)"},{"line_number":593,"context_line":"                try:"},{"line_number":594,"context_line":"                    self._destroy_build_request(context, instance)"},{"line_number":595,"context_line":"                except exception.BuildRequestNotFound:"},{"line_number":596,"context_line":"                    # This indicates an instance delete has been requested in"},{"line_number":597,"context_line":"                    # the API. Stop the build, cleanup the instance_mapping and"},{"line_number":598,"context_line":"                    # potentially the block_device_mappings"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f231b9d_ce8579af","line":595,"range":{"start_line":595,"start_character":33,"end_line":595,"end_character":53},"updated":"2017-06-12 14:58:37.000000000","message":"And here.","commit_id":"e20e65abf7cb817c98130e6034f6a20e710ff4f6"}]}
