)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"354a26e54d7c1c6042f6b08e56303cb37c4c4270","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2018-01-19 09:50:02 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"WIP: hacky negotiation of ironic microversion"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Id89e37e939b3ed43fb10bc6b4fa23dcbe172fb8d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7f96bb07_fe6a7619","line":8,"updated":"2018-01-19 14:56:20.000000000","message":"Partial-Bug: #1739440","commit_id":"c622dec167cc1af75f18faba2ae92ce826c206c7"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"e1954e640c1058470f392b674e0d48c2a375d89c","unresolved":false,"context_lines":[{"line_number":11,"context_line":"microversion. If that fails, then it falls back to the previous and"},{"line_number":12,"context_line":"assumes it will work. It also only allows passing a configdrive on"},{"line_number":13,"context_line":"rebuild if the latest microversion is supported."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Partial-Bug: #1739440"},{"line_number":16,"context_line":"Change-Id: Id89e37e939b3ed43fb10bc6b4fa23dcbe172fb8d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"7f96bb07_a0248bb0","line":14,"updated":"2018-01-22 22:56:12.000000000","message":"might want to mention the new ComputeDriver.reset()","commit_id":"47a8a9029d2667d8b5afe8f3e4312b5f8542c584"}],"nova/tests/unit/virt/ironic/utils.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"2cb4730d1c5e233a2dfa8ba8588c8a7a50c420f5","unresolved":false,"context_lines":[{"line_number":171,"context_line":""},{"line_number":172,"context_line":"class FakeNodeClient(object):"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    def list(self, detail\u003dFalse, limit\u003d50):"},{"line_number":175,"context_line":"        return []"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"    def get(self, node_uuid, fields\u003dNone):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f96bb07_6181dac3","line":174,"range":{"start_line":174,"start_character":31,"end_line":174,"end_character":43},"updated":"2018-01-19 22:28:27.000000000","message":"Where did this come from?","commit_id":"3bad0e1201dc7eea6e9630a977e1897b39523269"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"297803503affe6769d18fc30fe5d3a9e5c033e7c","unresolved":false,"context_lines":[{"line_number":171,"context_line":""},{"line_number":172,"context_line":"class FakeNodeClient(object):"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    def list(self, detail\u003dFalse, limit\u003d50):"},{"line_number":175,"context_line":"        return []"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"    def get(self, node_uuid, fields\u003dNone):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f96bb07_b6c15c83","line":174,"range":{"start_line":174,"start_character":31,"end_line":174,"end_character":43},"in_reply_to":"7f96bb07_6181dac3","updated":"2018-01-21 13:41:37.000000000","message":"This is the client that some of our tests return when mocking ironicclient.get_client(). See also https://github.com/openstack/nova/blob/d377fe700a05bce6f9c5cb6d21bcb40df4d7578c/nova/tests/unit/virt/ironic/test_client_wrapper.py#L34\n\nSince we now call client.node.list(limit\u003d1) when we get the client, this was blowing up as this fake client didn\u0027t have a limit argument, so I added one with some arbitrary number :)","commit_id":"3bad0e1201dc7eea6e9630a977e1897b39523269"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"816fd48fd223be0796e9ed6376289cf8031a5b87","unresolved":false,"context_lines":[{"line_number":171,"context_line":""},{"line_number":172,"context_line":"class FakeNodeClient(object):"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    def list(self, detail\u003dFalse, limit\u003d50):"},{"line_number":175,"context_line":"        return []"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"    def get(self, node_uuid, fields\u003dNone):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f96bb07_17d03950","line":174,"range":{"start_line":174,"start_character":31,"end_line":174,"end_character":43},"in_reply_to":"7f96bb07_b6c15c83","updated":"2018-01-22 13:56:21.000000000","message":"Ahhhh!  I had a feeling that might be something to do with it, but thanks for the explanation and link!","commit_id":"3bad0e1201dc7eea6e9630a977e1897b39523269"}],"nova/virt/ironic/client_wrapper.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"354a26e54d7c1c6042f6b08e56303cb37c4c4270","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        return cli"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    def _find_client_with_version(self, ironic_url, session, **kwargs):"},{"line_number":130,"context_line":"        try:"},{"line_number":131,"context_line":"            cli \u003d ironic.client.get_client(IRONIC_API_VERSION[0],"},{"line_number":132,"context_line":"                                           ironic_url\u003dironic_url,"},{"line_number":133,"context_line":"                                           session\u003dsess, **kwargs)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_de1c5ac3","line":130,"updated":"2018-01-19 14:56:20.000000000","message":"let\u0027s leave a TODO to replace all this with a proper negotiation process, once supported by ironicclient.","commit_id":"c622dec167cc1af75f18faba2ae92ce826c206c7"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"273be2cf6f2cd94732edd34ac50620788468cc9c","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        return cli"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    def _find_client_with_version(self, ironic_url, session, **kwargs):"},{"line_number":130,"context_line":"        try:"},{"line_number":131,"context_line":"            cli \u003d ironic.client.get_client(IRONIC_API_VERSION[0],"},{"line_number":132,"context_line":"                                           ironic_url\u003dironic_url,"},{"line_number":133,"context_line":"                                           session\u003dsess, **kwargs)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_dedf7ad4","line":130,"in_reply_to":"7f96bb07_de1c5ac3","updated":"2018-01-19 15:01:51.000000000","message":"++ which boils down to supplying a list of versions that are acceptable, and then querying the client for the effective negotiated version, and setting things like supports_rebuild_with_configdrive _OR_ change the logic to use the known microversion (this may be better, because then it might be able to downshift, not that we do or support environments like that.","commit_id":"c622dec167cc1af75f18faba2ae92ce826c206c7"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1935992693152352a2969b8cd29a810426d59f9f","unresolved":false,"context_lines":[{"line_number":32,"context_line":"IRONIC_GROUP \u003d nova.conf.ironic.ironic_group"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"# The API version required by the Ironic driver"},{"line_number":35,"context_line":"IRONIC_API_VERSION \u003d (1, 35)"},{"line_number":36,"context_line":"# fallback in case ironic was not upgraded yet from the previous release"},{"line_number":37,"context_line":"PREVIOUS_IRONIC_API_VERSION \u003d (1, 34)"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7f96bb07_9aec70f4","line":35,"updated":"2018-01-22 14:30:12.000000000","message":"So this gets used to report the hypervisor version here, I think this change breaks that really:\nhttps://github.com/openstack/nova/blob/c53b233228904f593dc1ded4da3d8edf231da64b/nova/virt/ironic/driver.py#L579\n\nMaybe a current_api_version property is needed on the wrapper?","commit_id":"3bad0e1201dc7eea6e9630a977e1897b39523269"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"4788c7dac60496d8a3130069e3e8ec0bcc6ebee1","unresolved":false,"context_lines":[{"line_number":32,"context_line":"IRONIC_GROUP \u003d nova.conf.ironic.ironic_group"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"# The API version required by the Ironic driver"},{"line_number":35,"context_line":"IRONIC_API_VERSION \u003d (1, 35)"},{"line_number":36,"context_line":"# fallback in case ironic was not upgraded yet from the previous release"},{"line_number":37,"context_line":"PREVIOUS_IRONIC_API_VERSION \u003d (1, 34)"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7f96bb07_e620799e","line":35,"in_reply_to":"7f96bb07_6d01acaf","updated":"2018-01-22 16:20:34.000000000","message":"Even in python-ironicclient, if we ever try and bump the major, we\u0027ll have to update our logic because we are focused on microversions. So I suspect we will try and avoid a major version bump unless we absolutely have to, and even then there should be enough visibility/foresight that we would retool where necessary in advance of adding it to our future list of known supported versions.","commit_id":"3bad0e1201dc7eea6e9630a977e1897b39523269"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"01d8c469c61ef4334e51a6e59dcc78be008bfdb1","unresolved":false,"context_lines":[{"line_number":32,"context_line":"IRONIC_GROUP \u003d nova.conf.ironic.ironic_group"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"# The API version required by the Ironic driver"},{"line_number":35,"context_line":"IRONIC_API_VERSION \u003d (1, 35)"},{"line_number":36,"context_line":"# fallback in case ironic was not upgraded yet from the previous release"},{"line_number":37,"context_line":"PREVIOUS_IRONIC_API_VERSION \u003d (1, 34)"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7f96bb07_6d01acaf","line":35,"in_reply_to":"7f96bb07_8d8d187d","updated":"2018-01-22 14:45:08.000000000","message":"Heh, my bad. Yeah, that is not really a problem.","commit_id":"3bad0e1201dc7eea6e9630a977e1897b39523269"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"af812d2fe945dcb7744e5fff8a21626376753bf9","unresolved":false,"context_lines":[{"line_number":32,"context_line":"IRONIC_GROUP \u003d nova.conf.ironic.ironic_group"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"# The API version required by the Ironic driver"},{"line_number":35,"context_line":"IRONIC_API_VERSION \u003d (1, 35)"},{"line_number":36,"context_line":"# fallback in case ironic was not upgraded yet from the previous release"},{"line_number":37,"context_line":"PREVIOUS_IRONIC_API_VERSION \u003d (1, 34)"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7f96bb07_fa449476","line":35,"in_reply_to":"7f96bb07_9aec70f4","updated":"2018-01-22 14:34:17.000000000","message":"I think it is fine because the value is 1 for both of them. But not that obvious. Maybe we need a current_api_major_version :-)\n\nWhich makes me wonder how well this would work if the major version changed, but we aren\u0027t ever going to change it so no need to think about it now :D","commit_id":"3bad0e1201dc7eea6e9630a977e1897b39523269"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"b90e0edd3123230b4d386396787721b1f5815a97","unresolved":false,"context_lines":[{"line_number":32,"context_line":"IRONIC_GROUP \u003d nova.conf.ironic.ironic_group"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"# The API version required by the Ironic driver"},{"line_number":35,"context_line":"IRONIC_API_VERSION \u003d (1, 35)"},{"line_number":36,"context_line":"# fallback in case ironic was not upgraded yet from the previous release"},{"line_number":37,"context_line":"PREVIOUS_IRONIC_API_VERSION \u003d (1, 34)"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7f96bb07_8d8d187d","line":35,"in_reply_to":"7f96bb07_fa449476","updated":"2018-01-22 14:39:40.000000000","message":"It is just the major version, so I don\u0027t see it ever changing. That said, we should probably figure out what to do with it. :)","commit_id":"3bad0e1201dc7eea6e9630a977e1897b39523269"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"4b9729cfe7ae4c4d9847a34c2c221c8ce1fdeeec","unresolved":false,"context_lines":[{"line_number":129,"context_line":"    def _find_client_with_version(self, ironic_url, session, **kwargs):"},{"line_number":130,"context_line":"        # TODO(jroll) replace this with a proper negotiation process"},{"line_number":131,"context_line":"        # once supported by ironicclient."},{"line_number":132,"context_line":"        # https://bugs.launchpad.net/ironic/+bug/1526411"},{"line_number":133,"context_line":"        try:"},{"line_number":134,"context_line":"            cli \u003d ironic.client.get_client(IRONIC_API_VERSION[0],"},{"line_number":135,"context_line":"                                           ironic_url\u003dironic_url,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f96bb07_7ad96420","line":132,"updated":"2018-01-22 14:29:06.000000000","message":"are you sure this is the bug? It is \"[RFE] Version Caching\" and is already fixed.","commit_id":"3bad0e1201dc7eea6e9630a977e1897b39523269"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"e3b2b64a81dce40680dd0c82cf1d3e239b3c09d3","unresolved":false,"context_lines":[{"line_number":129,"context_line":"    def _find_client_with_version(self, ironic_url, session, **kwargs):"},{"line_number":130,"context_line":"        # TODO(jroll) replace this with a proper negotiation process"},{"line_number":131,"context_line":"        # once supported by ironicclient."},{"line_number":132,"context_line":"        # https://bugs.launchpad.net/ironic/+bug/1526411"},{"line_number":133,"context_line":"        try:"},{"line_number":134,"context_line":"            cli \u003d ironic.client.get_client(IRONIC_API_VERSION[0],"},{"line_number":135,"context_line":"                                           ironic_url\u003dironic_url,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f96bb07_7062e3da","line":132,"in_reply_to":"7f96bb07_2d2724b9","updated":"2018-01-22 16:59:52.000000000","message":"Done","commit_id":"3bad0e1201dc7eea6e9630a977e1897b39523269"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"b90e0edd3123230b4d386396787721b1f5815a97","unresolved":false,"context_lines":[{"line_number":129,"context_line":"    def _find_client_with_version(self, ironic_url, session, **kwargs):"},{"line_number":130,"context_line":"        # TODO(jroll) replace this with a proper negotiation process"},{"line_number":131,"context_line":"        # once supported by ironicclient."},{"line_number":132,"context_line":"        # https://bugs.launchpad.net/ironic/+bug/1526411"},{"line_number":133,"context_line":"        try:"},{"line_number":134,"context_line":"            cli \u003d ironic.client.get_client(IRONIC_API_VERSION[0],"},{"line_number":135,"context_line":"                                           ironic_url\u003dironic_url,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f96bb07_2d2724b9","line":132,"in_reply_to":"7f96bb07_7ad96420","updated":"2018-01-22 14:39:40.000000000","message":"Oops, you\u0027re right, idk what I was looking at there.","commit_id":"3bad0e1201dc7eea6e9630a977e1897b39523269"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1935992693152352a2969b8cd29a810426d59f9f","unresolved":false,"context_lines":[{"line_number":135,"context_line":"                                           ironic_url\u003dironic_url,"},{"line_number":136,"context_line":"                                           session\u003dsession, **kwargs)"},{"line_number":137,"context_line":"            # call directly instead of self.call as we aren\u0027t fully set up"},{"line_number":138,"context_line":"            cli.node.list(limit\u003d1)"},{"line_number":139,"context_line":"        except ironic.exc.UnsupportedVersion:"},{"line_number":140,"context_line":"            kwargs[\u0027os_ironic_api_version\u0027] \u003d ("},{"line_number":141,"context_line":"                \u0027%d.%d\u0027 % PREVIOUS_IRONIC_API_VERSION)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f96bb07_3a367cb6","line":138,"updated":"2018-01-22 14:30:12.000000000","message":"Micro nit:\n\nI worry a little about the caching of this choice, should we ensure SIG_HUP resets the client?\n\nIts good we cache this quite well though, its kinda expensive on every API call.","commit_id":"3bad0e1201dc7eea6e9630a977e1897b39523269"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"e3b2b64a81dce40680dd0c82cf1d3e239b3c09d3","unresolved":false,"context_lines":[{"line_number":135,"context_line":"                                           ironic_url\u003dironic_url,"},{"line_number":136,"context_line":"                                           session\u003dsession, **kwargs)"},{"line_number":137,"context_line":"            # call directly instead of self.call as we aren\u0027t fully set up"},{"line_number":138,"context_line":"            cli.node.list(limit\u003d1)"},{"line_number":139,"context_line":"        except ironic.exc.UnsupportedVersion:"},{"line_number":140,"context_line":"            kwargs[\u0027os_ironic_api_version\u0027] \u003d ("},{"line_number":141,"context_line":"                \u0027%d.%d\u0027 % PREVIOUS_IRONIC_API_VERSION)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f96bb07_905f6f0d","line":138,"in_reply_to":"7f96bb07_0d26e8b8","updated":"2018-01-22 16:59:52.000000000","message":"Done","commit_id":"3bad0e1201dc7eea6e9630a977e1897b39523269"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"b90e0edd3123230b4d386396787721b1f5815a97","unresolved":false,"context_lines":[{"line_number":135,"context_line":"                                           ironic_url\u003dironic_url,"},{"line_number":136,"context_line":"                                           session\u003dsession, **kwargs)"},{"line_number":137,"context_line":"            # call directly instead of self.call as we aren\u0027t fully set up"},{"line_number":138,"context_line":"            cli.node.list(limit\u003d1)"},{"line_number":139,"context_line":"        except ironic.exc.UnsupportedVersion:"},{"line_number":140,"context_line":"            kwargs[\u0027os_ironic_api_version\u0027] \u003d ("},{"line_number":141,"context_line":"                \u0027%d.%d\u0027 % PREVIOUS_IRONIC_API_VERSION)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f96bb07_0d26e8b8","line":138,"in_reply_to":"7f96bb07_3a367cb6","updated":"2018-01-22 14:39:40.000000000","message":"Good point, I\u0027ll try to figure that out","commit_id":"3bad0e1201dc7eea6e9630a977e1897b39523269"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"4b9729cfe7ae4c4d9847a34c2c221c8ce1fdeeec","unresolved":false,"context_lines":[{"line_number":138,"context_line":"            cli.node.list(limit\u003d1)"},{"line_number":139,"context_line":"        except ironic.exc.UnsupportedVersion:"},{"line_number":140,"context_line":"            kwargs[\u0027os_ironic_api_version\u0027] \u003d ("},{"line_number":141,"context_line":"                \u0027%d.%d\u0027 % PREVIOUS_IRONIC_API_VERSION)"},{"line_number":142,"context_line":"            cli \u003d ironic.client.get_client(PREVIOUS_IRONIC_API_VERSION[0],"},{"line_number":143,"context_line":"                                           ironic_url\u003dironic_url,"},{"line_number":144,"context_line":"                                           session\u003dsession, **kwargs)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f96bb07_7a2084f8","line":141,"updated":"2018-01-22 14:29:06.000000000","message":"does this work? looks like you\u0027re missing IRONIC_API_VERSION[0]","commit_id":"3bad0e1201dc7eea6e9630a977e1897b39523269"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8de2c72bda9be4772716c2cb0a708adefe7c4f91","unresolved":false,"context_lines":[{"line_number":138,"context_line":"            cli.node.list(limit\u003d1)"},{"line_number":139,"context_line":"        except ironic.exc.UnsupportedVersion:"},{"line_number":140,"context_line":"            kwargs[\u0027os_ironic_api_version\u0027] \u003d ("},{"line_number":141,"context_line":"                \u0027%d.%d\u0027 % PREVIOUS_IRONIC_API_VERSION)"},{"line_number":142,"context_line":"            cli \u003d ironic.client.get_client(PREVIOUS_IRONIC_API_VERSION[0],"},{"line_number":143,"context_line":"                                           ironic_url\u003dironic_url,"},{"line_number":144,"context_line":"                                           session\u003dsession, **kwargs)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f96bb07_facfb426","line":141,"in_reply_to":"7f96bb07_7a2084f8","updated":"2018-01-22 14:30:11.000000000","message":"Oops, I didn\u0027t look at that value; it is a tuple. Yes, it works.","commit_id":"3bad0e1201dc7eea6e9630a977e1897b39523269"}],"nova/virt/ironic/driver.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"354a26e54d7c1c6042f6b08e56303cb37c4c4270","unresolved":false,"context_lines":[{"line_number":1583,"context_line":"                         {\u0027instance\u0027: instance[\u0027uuid\u0027], \u0027node\u0027: node_uuid})"},{"line_number":1584,"context_line":""},{"line_number":1585,"context_line":"            rebuild_kwargs[\u0027configdrive\u0027] \u003d configdrive"},{"line_number":1586,"context_line":""},{"line_number":1587,"context_line":"        # Trigger the node rebuild/redeploy."},{"line_number":1588,"context_line":"        try:"},{"line_number":1589,"context_line":"            self.ironicclient.call(\"node.set_provision_state\","}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_9e17b2a4","line":1586,"updated":"2018-01-19 14:56:20.000000000","message":"else: LOG.warning(...)","commit_id":"c622dec167cc1af75f18faba2ae92ce826c206c7"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"c5c95c102750b3afbc9fefea829137661dea36a5","unresolved":false,"context_lines":[{"line_number":1582,"context_line":"                         \"baremetal node %(node)s created.\","},{"line_number":1583,"context_line":"                         {\u0027instance\u0027: instance[\u0027uuid\u0027], \u0027node\u0027: node_uuid})"},{"line_number":1584,"context_line":""},{"line_number":1585,"context_line":"            rebuild_kwargs[\u0027configdrive\u0027] \u003d configdrive_value"},{"line_number":1586,"context_line":""},{"line_number":1587,"context_line":"        else:"},{"line_number":1588,"context_line":"            LOG.warning(\u0027The version of the baremetal service in use \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f96bb07_0d458817","line":1585,"updated":"2018-01-22 15:00:47.000000000","message":"probably doesn\u0027t matter, but configdrive_value could be None.","commit_id":"3bad0e1201dc7eea6e9630a977e1897b39523269"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"04169b504d1c6044eee1637ea63d86ffb450bf67","unresolved":false,"context_lines":[{"line_number":1582,"context_line":"                         \"baremetal node %(node)s created.\","},{"line_number":1583,"context_line":"                         {\u0027instance\u0027: instance[\u0027uuid\u0027], \u0027node\u0027: node_uuid})"},{"line_number":1584,"context_line":""},{"line_number":1585,"context_line":"            rebuild_kwargs[\u0027configdrive\u0027] \u003d configdrive_value"},{"line_number":1586,"context_line":""},{"line_number":1587,"context_line":"        else:"},{"line_number":1588,"context_line":"            LOG.warning(\u0027The version of the baremetal service in use \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f96bb07_f020339e","line":1585,"in_reply_to":"7f96bb07_0d458817","updated":"2018-01-22 15:08:34.000000000","message":"Which is fine - the old code had this case as well.","commit_id":"3bad0e1201dc7eea6e9630a977e1897b39523269"}]}
