)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"07f07de859f37e74c74a36781d7287a4d357cc17","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Eric Berglund \u003cesberglu@us.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-03-23 20:47:29 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"WIP: Resize"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"WIP"},{"line_number":10,"context_line":"- Finish Unit Test"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bf659307_fb2479c8","line":7,"updated":"2018-03-27 15:02:30.000000000","message":"Does this also cover cold migration and evacuate? I think we get evacuate for free once we implement cold migration, and shouldn\u0027t resize be a special case of cold migration (migration while also changing the size)?","commit_id":"0fcf26b115ab1a54898506038b7d42de36b7e38f"},{"author":{"_account_id":16710,"name":"Eric Berglund","email":"esberglu@us.ibm.com","username":"esberglu"},"change_message_id":"09d4dcef5dee84ff15abf4945746f6fe416bcd0f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Eric Berglund \u003cesberglu@us.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-03-23 20:47:29 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"WIP: Resize"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"WIP"},{"line_number":10,"context_line":"- Finish Unit Test"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bf659307_b1beb9b1","line":7,"in_reply_to":"bf659307_fb2479c8","updated":"2018-03-31 21:17:46.000000000","message":"Needs more work to cover cold mig. but that will be included here. Evacuate should work too from conversations elsewhere, but needs to be tested/confirmed. Will update at that point.","commit_id":"0fcf26b115ab1a54898506038b7d42de36b7e38f"},{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"07f07de859f37e74c74a36781d7287a4d357cc17","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2018-03-23 20:47:29 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"WIP: Resize"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"WIP"},{"line_number":10,"context_line":"- Finish Unit Test"},{"line_number":11,"context_line":"- Live Testing"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bf659307_1b6fed92","line":8,"updated":"2018-03-27 15:02:30.000000000","message":"could go ahead and add a description here","commit_id":"0fcf26b115ab1a54898506038b7d42de36b7e38f"},{"author":{"_account_id":16710,"name":"Eric Berglund","email":"esberglu@us.ibm.com","username":"esberglu"},"change_message_id":"09d4dcef5dee84ff15abf4945746f6fe416bcd0f","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2018-03-23 20:47:29 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"WIP: Resize"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"WIP"},{"line_number":10,"context_line":"- Finish Unit Test"},{"line_number":11,"context_line":"- Live Testing"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bf659307_f1a671ab","line":8,"in_reply_to":"bf659307_1b6fed92","updated":"2018-03-31 21:17:46.000000000","message":"Done","commit_id":"0fcf26b115ab1a54898506038b7d42de36b7e38f"},{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"07f07de859f37e74c74a36781d7287a4d357cc17","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"WIP: Resize"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"WIP"},{"line_number":10,"context_line":"- Finish Unit Test"},{"line_number":11,"context_line":"- Live Testing"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bf659307_9b63fdb1","line":9,"updated":"2018-03-27 15:02:30.000000000","message":"also CI testing","commit_id":"0fcf26b115ab1a54898506038b7d42de36b7e38f"},{"author":{"_account_id":16710,"name":"Eric Berglund","email":"esberglu@us.ibm.com","username":"esberglu"},"change_message_id":"09d4dcef5dee84ff15abf4945746f6fe416bcd0f","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"WIP: Resize"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"WIP"},{"line_number":10,"context_line":"- Finish Unit Test"},{"line_number":11,"context_line":"- Live Testing"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bf659307_91b935cd","line":9,"in_reply_to":"bf659307_9b63fdb1","updated":"2018-03-31 21:17:46.000000000","message":"Done","commit_id":"0fcf26b115ab1a54898506038b7d42de36b7e38f"}],"nova/virt/powervm/driver.py":[{"author":{"_account_id":16710,"name":"Eric Berglund","email":"esberglu@us.ibm.com","username":"esberglu"},"change_message_id":"38d964d68c40d58cda9e7fe47be986b2ee4d9d4d","unresolved":false,"context_lines":[{"line_number":566,"context_line":"            stg_ftsk \u003d pvm_par.build_active_vio_feed_task("},{"line_number":567,"context_line":"                self.adapter, xag\u003d[pvm_const.XAG.VIO_SMAP])"},{"line_number":568,"context_line":""},{"line_number":569,"context_line":"        # Determine if there are volumes to detach. If so, remove each"},{"line_number":570,"context_line":"        # volume (within the FeedTask)."},{"line_number":571,"context_line":"        for bdm, vol_drv in self._vol_drv_iter(context, instance, bdms,"},{"line_number":572,"context_line":"                                               stg_ftsk\u003dstg_ftsk):"},{"line_number":573,"context_line":"            flow.add(tf_stg.DetachVolume(vol_drv))"},{"line_number":574,"context_line":""},{"line_number":575,"context_line":"            # Add the storage FeedTask flow to the end of the \u0027storage detach\u0027"},{"line_number":576,"context_line":"            # tasks. This will run all the disconnections in parallel."},{"line_number":577,"context_line":"            flow.add(stg_ftsk)"},{"line_number":578,"context_line":""},{"line_number":579,"context_line":"        # We rename the VM to help identify if this is a resize and so it\u0027s"},{"line_number":580,"context_line":"        # easy to see the VM is being migrated from pvmctl. We use the resize"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_d250c4d7","line":577,"range":{"start_line":569,"start_character":0,"end_line":577,"end_character":30},"updated":"2018-03-23 19:48:10.000000000","message":"Indent, this should only run if bdms","commit_id":"9c92bdff85662da4370793b239c6eed8f4fcca6b"},{"author":{"_account_id":16710,"name":"Eric Berglund","email":"esberglu@us.ibm.com","username":"esberglu"},"change_message_id":"8f98e6b9d795806c8c38ed14d33b7eeff5d193d2","unresolved":false,"context_lines":[{"line_number":628,"context_line":"        else:"},{"line_number":629,"context_line":"            stg_ftsk \u003d None"},{"line_number":630,"context_line":""},{"line_number":631,"context_line":"        if same_host:"},{"line_number":632,"context_line":"            # This is just a resize."},{"line_number":633,"context_line":"            new_name \u003d pvm_util.sanitize_partition_name_for_api("},{"line_number":634,"context_line":"                \u0027resize_\u0027 + instance.name)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_d2fe84ad","line":631,"range":{"start_line":631,"start_character":8,"end_line":631,"end_character":21},"updated":"2018-03-23 19:51:08.000000000","message":"Don\u0027t need a second check here (until cold mig. is added)","commit_id":"9c92bdff85662da4370793b239c6eed8f4fcca6b"},{"author":{"_account_id":16710,"name":"Eric Berglund","email":"esberglu@us.ibm.com","username":"esberglu"},"change_message_id":"0bc7ebe91d2e67c31abbdb0a2444f0d479bccc6d","unresolved":false,"context_lines":[{"line_number":677,"context_line":"        if same_host:"},{"line_number":678,"context_line":"            # This was a local resize, don\u0027t delete our only VM!"},{"line_number":679,"context_line":"            self._log_operation(\u0027confirm resize\u0027, instance)"},{"line_number":680,"context_line":"            vm.rename(self.adapter, instance, instance.name)"},{"line_number":681,"context_line":"            return"},{"line_number":682,"context_line":""},{"line_number":683,"context_line":"        # TODO(esberglu) Destroy the old VM when implementing cold migration."}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_0dc86153","line":680,"range":{"start_line":680,"start_character":12,"end_line":680,"end_character":60},"updated":"2018-03-23 20:40:01.000000000","message":"Use the task for this","commit_id":"9c92bdff85662da4370793b239c6eed8f4fcca6b"},{"author":{"_account_id":16710,"name":"Eric Berglund","email":"esberglu@us.ibm.com","username":"esberglu"},"change_message_id":"0bc7ebe91d2e67c31abbdb0a2444f0d479bccc6d","unresolved":false,"context_lines":[{"line_number":703,"context_line":"        # makes it easy to handle both resize and migrate."},{"line_number":704,"context_line":"        #"},{"line_number":705,"context_line":"        # The flavor should be the \u0027old\u0027 flavor now."},{"line_number":706,"context_line":"        vm.power_off(self.adapter, instance)"},{"line_number":707,"context_line":"        vm.update(self.adapter, self.host_wrapper, instance)"},{"line_number":708,"context_line":""},{"line_number":709,"context_line":"        if power_on:"},{"line_number":710,"context_line":"            vm.power_on(self.adapter, instance)"},{"line_number":711,"context_line":""},{"line_number":712,"context_line":"    def get_host_ip_addr(self):"},{"line_number":713,"context_line":"        \"\"\"Retrieves the IP address of the Host.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_adc4d541","line":710,"range":{"start_line":706,"start_character":0,"end_line":710,"end_character":47},"updated":"2018-03-23 20:40:01.000000000","message":"Ditto","commit_id":"9c92bdff85662da4370793b239c6eed8f4fcca6b"},{"author":{"_account_id":16710,"name":"Eric Berglund","email":"esberglu@us.ibm.com","username":"esberglu"},"change_message_id":"9f29334f26f802873813df015ab705251caf3b84","unresolved":false,"context_lines":[{"line_number":591,"context_line":""},{"line_number":592,"context_line":"        return connector"},{"line_number":593,"context_line":""},{"line_number":594,"context_line":"    def migrate_disk_and_power_off(self, context, instance, dest,"},{"line_number":595,"context_line":"                                   flavor, network_info,"},{"line_number":596,"context_line":"                                   block_device_info\u003dNone,"},{"line_number":597,"context_line":"                                   timeout\u003d0, retry_interval\u003d0):"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_e63c6730","line":594,"range":{"start_line":594,"start_character":8,"end_line":594,"end_character":34},"updated":"2018-04-02 19:09:45.000000000","message":"docstring","commit_id":"06bc0d4ef244b60a58ffdc3c2ea3ae41008e46cf"},{"author":{"_account_id":16710,"name":"Eric Berglund","email":"esberglu@us.ibm.com","username":"esberglu"},"change_message_id":"e1355f3c9701e54e5cde01ed91084d2953e01528","unresolved":false,"context_lines":[{"line_number":611,"context_line":"            flow \u003d tf_lf.Flow(\"migrate_vm\")"},{"line_number":612,"context_line":""},{"line_number":613,"context_line":"            # Can\u0027t migrate the disks if they are not on shared storage"},{"line_number":614,"context_line":"            if not self._is_booted_from_volume(block_device_info):"},{"line_number":615,"context_line":""},{"line_number":616,"context_line":"                if not self.disk_dvr.capabilities[\u0027shared_storage\u0027]:"},{"line_number":617,"context_line":"                    raise exc.InstanceFaultRollback(exc.ResizeError("}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_6d76fa40","line":614,"range":{"start_line":614,"start_character":12,"end_line":614,"end_character":66},"updated":"2018-04-02 15:48:57.000000000","message":"Need to see if boot from volume works","commit_id":"06bc0d4ef244b60a58ffdc3c2ea3ae41008e46cf"},{"author":{"_account_id":16710,"name":"Eric Berglund","email":"esberglu@us.ibm.com","username":"esberglu"},"change_message_id":"be3e80bf13f81a0c080ac56f8fe11b32040ffa18","unresolved":false,"context_lines":[{"line_number":611,"context_line":"            flow \u003d tf_lf.Flow(\"migrate_vm\")"},{"line_number":612,"context_line":""},{"line_number":613,"context_line":"            # Can\u0027t migrate the disks if they are not on shared storage"},{"line_number":614,"context_line":"            if not self._is_booted_from_volume(block_device_info):"},{"line_number":615,"context_line":""},{"line_number":616,"context_line":"                if not self.disk_dvr.capabilities[\u0027shared_storage\u0027]:"},{"line_number":617,"context_line":"                    raise exc.InstanceFaultRollback(exc.ResizeError("}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_f3708b42","line":614,"range":{"start_line":614,"start_character":12,"end_line":614,"end_character":66},"in_reply_to":"bf659307_6d76fa40","updated":"2018-04-03 18:20:14.000000000","message":"Not yet needed","commit_id":"06bc0d4ef244b60a58ffdc3c2ea3ae41008e46cf"},{"author":{"_account_id":16710,"name":"Eric Berglund","email":"esberglu@us.ibm.com","username":"esberglu"},"change_message_id":"e1355f3c9701e54e5cde01ed91084d2953e01528","unresolved":false,"context_lines":[{"line_number":623,"context_line":"        # Power off the VM."},{"line_number":624,"context_line":"        flow.add(tf_vm.PowerOff(self.adapter, instance))"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"        # Resize the root disk if needed."},{"line_number":627,"context_line":"        if flavor.root_gb \u003e instance.root_gb:"},{"line_number":628,"context_line":"            flow.add(tf_stg.ExtendDisk("},{"line_number":629,"context_line":"                self.disk_dvr, instance, dict(type\u003d\u0027boot\u0027), flavor.root_gb))"},{"line_number":630,"context_line":""},{"line_number":631,"context_line":"        # Detach any volumes that are attached. They are reattached on the new"},{"line_number":632,"context_line":"        # VM (or existing VM if a resize.) Extract the block devices."}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_0d9bbe65","line":629,"range":{"start_line":626,"start_character":0,"end_line":629,"end_character":76},"updated":"2018-04-02 15:48:57.000000000","message":"If boot from volume works, need to add extend_disk to localdisk. If it doesn\u0027t, can rip this out since extend disk isn\u0027t supported by ssp and localdisk won\u0027t make it here.","commit_id":"06bc0d4ef244b60a58ffdc3c2ea3ae41008e46cf"},{"author":{"_account_id":16710,"name":"Eric Berglund","email":"esberglu@us.ibm.com","username":"esberglu"},"change_message_id":"be3e80bf13f81a0c080ac56f8fe11b32040ffa18","unresolved":false,"context_lines":[{"line_number":623,"context_line":"        # Power off the VM."},{"line_number":624,"context_line":"        flow.add(tf_vm.PowerOff(self.adapter, instance))"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"        # Resize the root disk if needed."},{"line_number":627,"context_line":"        if flavor.root_gb \u003e instance.root_gb:"},{"line_number":628,"context_line":"            flow.add(tf_stg.ExtendDisk("},{"line_number":629,"context_line":"                self.disk_dvr, instance, dict(type\u003d\u0027boot\u0027), flavor.root_gb))"},{"line_number":630,"context_line":""},{"line_number":631,"context_line":"        # Detach any volumes that are attached. They are reattached on the new"},{"line_number":632,"context_line":"        # VM (or existing VM if a resize.) Extract the block devices."}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_b3945338","line":629,"range":{"start_line":626,"start_character":0,"end_line":629,"end_character":76},"in_reply_to":"bf659307_0d9bbe65","updated":"2018-04-03 18:20:14.000000000","message":"Can remove","commit_id":"06bc0d4ef244b60a58ffdc3c2ea3ae41008e46cf"},{"author":{"_account_id":16710,"name":"Eric Berglund","email":"esberglu@us.ibm.com","username":"esberglu"},"change_message_id":"e1355f3c9701e54e5cde01ed91084d2953e01528","unresolved":false,"context_lines":[{"line_number":775,"context_line":"        if same_host:"},{"line_number":776,"context_line":"            # This was a local resize, don\u0027t delete our only VM!"},{"line_number":777,"context_line":"            self._log_operation(\u0027confirm resize\u0027, instance)"},{"line_number":778,"context_line":"            vm.rename(self.adapter, instance, instance.name)"},{"line_number":779,"context_line":"            return"},{"line_number":780,"context_line":""},{"line_number":781,"context_line":"        # Confirming the migrate means we need to delete source VM."}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_cda06693","line":778,"range":{"start_line":778,"start_character":12,"end_line":778,"end_character":21},"updated":"2018-04-02 15:48:57.000000000","message":"Use Rename task","commit_id":"06bc0d4ef244b60a58ffdc3c2ea3ae41008e46cf"},{"author":{"_account_id":16710,"name":"Eric Berglund","email":"esberglu@us.ibm.com","username":"esberglu"},"change_message_id":"4a5d5023f7737ff048b45deaabdf6dd25b761fcb","unresolved":false,"context_lines":[{"line_number":775,"context_line":"        if same_host:"},{"line_number":776,"context_line":"            # This was a local resize, don\u0027t delete our only VM!"},{"line_number":777,"context_line":"            self._log_operation(\u0027confirm resize\u0027, instance)"},{"line_number":778,"context_line":"            vm.rename(self.adapter, instance, instance.name)"},{"line_number":779,"context_line":"            return"},{"line_number":780,"context_line":""},{"line_number":781,"context_line":"        # Confirming the migrate means we need to delete source VM."}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_5ca722be","line":778,"range":{"start_line":778,"start_character":12,"end_line":778,"end_character":21},"in_reply_to":"bf659307_cda06693","updated":"2018-04-02 22:39:47.000000000","message":"Done","commit_id":"06bc0d4ef244b60a58ffdc3c2ea3ae41008e46cf"},{"author":{"_account_id":16710,"name":"Eric Berglund","email":"esberglu@us.ibm.com","username":"esberglu"},"change_message_id":"e1355f3c9701e54e5cde01ed91084d2953e01528","unresolved":false,"context_lines":[{"line_number":807,"context_line":"        # makes it easy to handle both resize and migrate."},{"line_number":808,"context_line":"        #"},{"line_number":809,"context_line":"        # The flavor should be the \u0027old\u0027 flavor now."},{"line_number":810,"context_line":"        vm.power_off(self.adapter, instance)"},{"line_number":811,"context_line":"        vm.update(self.adapter, self.host_wrapper, instance)"},{"line_number":812,"context_line":""},{"line_number":813,"context_line":"        if power_on:"},{"line_number":814,"context_line":"            vm.power_on(self.adapter, instance)"},{"line_number":815,"context_line":""},{"line_number":816,"context_line":"    def get_host_ip_addr(self):"},{"line_number":817,"context_line":"        \"\"\"Retrieves the IP address of the Host.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_6dab5a74","line":814,"range":{"start_line":810,"start_character":0,"end_line":814,"end_character":47},"updated":"2018-04-02 15:48:57.000000000","message":"Use tasks","commit_id":"06bc0d4ef244b60a58ffdc3c2ea3ae41008e46cf"},{"author":{"_account_id":16710,"name":"Eric Berglund","email":"esberglu@us.ibm.com","username":"esberglu"},"change_message_id":"4a5d5023f7737ff048b45deaabdf6dd25b761fcb","unresolved":false,"context_lines":[{"line_number":807,"context_line":"        # makes it easy to handle both resize and migrate."},{"line_number":808,"context_line":"        #"},{"line_number":809,"context_line":"        # The flavor should be the \u0027old\u0027 flavor now."},{"line_number":810,"context_line":"        vm.power_off(self.adapter, instance)"},{"line_number":811,"context_line":"        vm.update(self.adapter, self.host_wrapper, instance)"},{"line_number":812,"context_line":""},{"line_number":813,"context_line":"        if power_on:"},{"line_number":814,"context_line":"            vm.power_on(self.adapter, instance)"},{"line_number":815,"context_line":""},{"line_number":816,"context_line":"    def get_host_ip_addr(self):"},{"line_number":817,"context_line":"        \"\"\"Retrieves the IP address of the Host.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_bc243e5f","line":814,"range":{"start_line":810,"start_character":0,"end_line":814,"end_character":47},"in_reply_to":"bf659307_6dab5a74","updated":"2018-04-02 22:39:47.000000000","message":"Done","commit_id":"06bc0d4ef244b60a58ffdc3c2ea3ae41008e46cf"}],"nova/virt/powervm/tasks/storage.py":[{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"f8035fe404b92130f73e020c99c14c0fab7f0275","unresolved":false,"context_lines":[{"line_number":504,"context_line":"        LOG.info(\u0027Extending %(disk_type)s disk to %(size)s GB.\u0027,"},{"line_number":505,"context_line":"                 {\u0027disk_type\u0027: self.disk_info[\u0027type\u0027], \u0027size\u0027: self.size},"},{"line_number":506,"context_line":"                 instance\u003dself.instance)"},{"line_number":507,"context_line":"        self.disk_dvr.extend_disk(self.instance, self.disk_info, self.size)"}],"source_content_type":"text/x-python","patch_set":10,"id":"bf659307_476b831e","line":507,"updated":"2018-04-05 15:35:57.000000000","message":"missing the impl of this method for localdisk.","commit_id":"f20c3f4b4188235ca6156ff550a5bac54de5fb13"}]}
