)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"6209bf482174b5c952f5042ed15308b7113067e1","unresolved":false,"context_lines":[{"line_number":23,"context_line":"  For reverting the migration, this method reboot the source node."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Change-Id: I9a59afb80da994fca59748c65470bdd888e8c95c"},{"line_number":26,"context_line":"Implements: blueprint ironic-instance-switchover"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"5f7c97a3_3843816e","line":26,"updated":"2018-05-11 17:03:34.000000000","message":"Hi Shiina-san,\n\nI see the blueprint status. I feel it seems difficult to get approval on current blueprint because it is a little hard to understand the features from the other project team like Nova.\nOn the other hand, this patch itself is simple. It just adds the features for Ironic driver and I think it is easy to understand the purpose and merge it into master repo of Nova.\nSo how about separating the blueprint for this features to make it progress?","commit_id":"445ef27a3a48a0cf0aa18c1e4ac80b655f081bc8"}],"nova/virt/ironic/driver.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"9fe43dce2ca5e48958424bddcde6129fd381e7b6","unresolved":false,"context_lines":[{"line_number":1933,"context_line":"                                   block_device_info\u003dNone,"},{"line_number":1934,"context_line":"                                   timeout\u003d0, retry_interval\u003d0):"},{"line_number":1935,"context_line":"        \"\"\"Turn off the instance before the end."},{"line_number":1936,"context_line":""},{"line_number":1937,"context_line":"        :param nova.objects.instance.Instance instance:"},{"line_number":1938,"context_line":"            The instance whose disk should be migrated."},{"line_number":1939,"context_line":"        :param str dest:"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f6a8fd7_8be801b3","line":1936,"updated":"2018-04-25 06:18:23.000000000","message":"nit: Missing the description of \u0027context\u0027.","commit_id":"d0e5ec34df5ccd623063f686d6c485b911d38c63"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"c84ba5526fac976c3bc5dddae1186d6d2c2e06f6","unresolved":false,"context_lines":[{"line_number":1933,"context_line":"                                   block_device_info\u003dNone,"},{"line_number":1934,"context_line":"                                   timeout\u003d0, retry_interval\u003d0):"},{"line_number":1935,"context_line":"        \"\"\"Turn off the instance before the end."},{"line_number":1936,"context_line":""},{"line_number":1937,"context_line":"        :param nova.objects.instance.Instance instance:"},{"line_number":1938,"context_line":"            The instance whose disk should be migrated."},{"line_number":1939,"context_line":"        :param str dest:"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_ae0be67a","line":1936,"in_reply_to":"9f6a8fd7_8be801b3","updated":"2018-05-10 12:56:58.000000000","message":"Done","commit_id":"d0e5ec34df5ccd623063f686d6c485b911d38c63"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"880dec7fbff5e5d5d41f5e27cadf0e7a2f11a0a1","unresolved":false,"context_lines":[{"line_number":1974,"context_line":"            self.ironicclient.call(\u0027node.update\u0027, instance.node, patch)"},{"line_number":1975,"context_line":"        except ironic.exc.ClientException as e:"},{"line_number":1976,"context_line":"            LOG.error(\"Failed to remove deploy parameters from node \""},{"line_number":1977,"context_line":"                      \"%(node)s when stooping the instance \""},{"line_number":1978,"context_line":"                      \"%(instance)s for migration: %(reason)s\","},{"line_number":1979,"context_line":"                      {\u0027node\u0027: instance.node, \u0027instance\u0027: instance.uuid,"},{"line_number":1980,"context_line":"                       \u0027reason\u0027: e},"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f6a8fd7_3db489f1","line":1977,"range":{"start_line":1977,"start_character":37,"end_line":1977,"end_character":45},"updated":"2018-04-25 18:11:46.000000000","message":"s/stooping/stopping/","commit_id":"d0e5ec34df5ccd623063f686d6c485b911d38c63"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"c84ba5526fac976c3bc5dddae1186d6d2c2e06f6","unresolved":false,"context_lines":[{"line_number":1974,"context_line":"            self.ironicclient.call(\u0027node.update\u0027, instance.node, patch)"},{"line_number":1975,"context_line":"        except ironic.exc.ClientException as e:"},{"line_number":1976,"context_line":"            LOG.error(\"Failed to remove deploy parameters from node \""},{"line_number":1977,"context_line":"                      \"%(node)s when stooping the instance \""},{"line_number":1978,"context_line":"                      \"%(instance)s for migration: %(reason)s\","},{"line_number":1979,"context_line":"                      {\u0027node\u0027: instance.node, \u0027instance\u0027: instance.uuid,"},{"line_number":1980,"context_line":"                       \u0027reason\u0027: e},"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_ce10a2ab","line":1977,"range":{"start_line":1977,"start_character":37,"end_line":1977,"end_character":45},"in_reply_to":"9f6a8fd7_3db489f1","updated":"2018-05-10 12:56:58.000000000","message":"Done","commit_id":"d0e5ec34df5ccd623063f686d6c485b911d38c63"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"880dec7fbff5e5d5d41f5e27cadf0e7a2f11a0a1","unresolved":false,"context_lines":[{"line_number":1981,"context_line":"                      instance\u003dinstance)"},{"line_number":1982,"context_line":"            raise exception.MigrationError(reason\u003de)"},{"line_number":1983,"context_line":""},{"line_number":1984,"context_line":"        # disk_info is not used"},{"line_number":1985,"context_line":"        return \"\""},{"line_number":1986,"context_line":""},{"line_number":1987,"context_line":"    def finish_migration(self, context, migration, instance, disk_info,"},{"line_number":1988,"context_line":"                         network_info, image_meta, resize_instance,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f6a8fd7_bd9099ee","line":1985,"range":{"start_line":1984,"start_character":0,"end_line":1985,"end_character":17},"updated":"2018-04-25 18:11:46.000000000","message":"nova/virt/xenapi/vmops.py also is the same situation and how about the following based on xenapi code?\n\n # NOTE: disk_info isn\u0027t used by the ironic driver\u0027s finish_migration()\n disk_info \u003d {}\n return disk_info\n\nThis point comes from the reason \"\" is not JSON format which is described on the docstring anyways.","commit_id":"d0e5ec34df5ccd623063f686d6c485b911d38c63"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"c84ba5526fac976c3bc5dddae1186d6d2c2e06f6","unresolved":false,"context_lines":[{"line_number":1981,"context_line":"                      instance\u003dinstance)"},{"line_number":1982,"context_line":"            raise exception.MigrationError(reason\u003de)"},{"line_number":1983,"context_line":""},{"line_number":1984,"context_line":"        # disk_info is not used"},{"line_number":1985,"context_line":"        return \"\""},{"line_number":1986,"context_line":""},{"line_number":1987,"context_line":"    def finish_migration(self, context, migration, instance, disk_info,"},{"line_number":1988,"context_line":"                         network_info, image_meta, resize_instance,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_eef1de6c","line":1985,"range":{"start_line":1984,"start_character":0,"end_line":1985,"end_character":17},"in_reply_to":"9f6a8fd7_bd9099ee","updated":"2018-05-10 12:56:58.000000000","message":"The libvirt driver pass the disk_info to jsonutils.loads() in finish_migration()[1]. So, a string which can be converted to JSON seems appropriate as mentioned in the base driver[2].\n\n[1] https://github.com/openstack/nova/blob/bbe58eced8d225db3ec1af81f6a3945c74b5e53d/nova/virt/libvirt/driver.py#L8218\n[2] https://github.com/openstack/nova/blob/bbe58eced8d225db3ec1af81f6a3945c74b5e53d/nova/virt/driver.py#L596","commit_id":"d0e5ec34df5ccd623063f686d6c485b911d38c63"}],"releasenotes/notes/bp-baremetal-migration-evacuation-a45e521d230e50fc.yaml":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"880dec7fbff5e5d5d41f5e27cadf0e7a2f11a0a1","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Supports resize and cold migration for ironic virt driver. This feature"},{"line_number":5,"context_line":"    works only when an instance is booted from a remote volume since this"},{"line_number":6,"context_line":"    feature boots another bare metal node from the same remote volume. For"},{"line_number":7,"context_line":"    using this feature, you mustn\u0027t store any data in a local storage."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"9f6a8fd7_006cbecb","line":7,"range":{"start_line":6,"start_character":71,"end_line":7,"end_character":70},"updated":"2018-04-25 18:11:46.000000000","message":"nit: Maybe we want to say\n\n The stored data in a local storage is not available on the\n another node after operating this resize/cold migration.","commit_id":"d0e5ec34df5ccd623063f686d6c485b911d38c63"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"c84ba5526fac976c3bc5dddae1186d6d2c2e06f6","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Supports resize and cold migration for ironic virt driver. This feature"},{"line_number":5,"context_line":"    works only when an instance is booted from a remote volume since this"},{"line_number":6,"context_line":"    feature boots another bare metal node from the same remote volume. For"},{"line_number":7,"context_line":"    using this feature, you mustn\u0027t store any data in a local storage."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5f7c97a3_51175746","line":7,"range":{"start_line":6,"start_character":71,"end_line":7,"end_character":70},"in_reply_to":"9f6a8fd7_006cbecb","updated":"2018-05-10 12:56:58.000000000","message":"Done","commit_id":"d0e5ec34df5ccd623063f686d6c485b911d38c63"}]}
