)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":12712,"name":"Gleb Stepanov","email":"gstepanov@mirantis.com","username":"stgleb"},"change_message_id":"653feffe0aff6e06d2c7fe2adb7341506932e5ac","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Currently, during compute node restart, when"},{"line_number":10,"context_line":"CONF.resume_guests_state_on_host_boot is set true,"},{"line_number":11,"context_line":"instance maybe into ERROR states because some temporary reason."},{"line_number":12,"context_line":"these instances will ignore during compute node next"},{"line_number":13,"context_line":"compute node restart, so these instances need human restore."},{"line_number":14,"context_line":"but directly to set the vm state to ACTIVE it is not"},{"line_number":15,"context_line":"appropriate because the vm might actually have been unavailable."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5aef4532_7c1e1560","line":12,"updated":"2016-03-09 10:44:26.000000000","message":"Maybe These","commit_id":"cf51563dbdfe098d20f2aa9ccf5d963c0472ccff"},{"author":{"_account_id":17898,"name":"Jinquan Ni","email":"ni.jinquan@zte.com.cn","username":"jinquanni"},"change_message_id":"0a6283d3ae325c502c024062d713c872e515c7e8","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Currently, during compute node restart, when"},{"line_number":10,"context_line":"CONF.resume_guests_state_on_host_boot is set true,"},{"line_number":11,"context_line":"instance maybe into ERROR states because some temporary reason."},{"line_number":12,"context_line":"these instances will ignore during compute node next"},{"line_number":13,"context_line":"compute node restart, so these instances need human restore."},{"line_number":14,"context_line":"but directly to set the vm state to ACTIVE it is not"},{"line_number":15,"context_line":"appropriate because the vm might actually have been unavailable."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3afc51ec_866320b1","line":12,"in_reply_to":"5aef4532_7c1e1560","updated":"2016-03-13 02:29:35.000000000","message":"Done","commit_id":"cf51563dbdfe098d20f2aa9ccf5d963c0472ccff"},{"author":{"_account_id":12712,"name":"Gleb Stepanov","email":"gstepanov@mirantis.com","username":"stgleb"},"change_message_id":"653feffe0aff6e06d2c7fe2adb7341506932e5ac","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"In this patch, we still set the vm state to ERROR, but we will"},{"line_number":18,"context_line":"mark the instance in  system_metadata. during compute node\u0027s"},{"line_number":19,"context_line":"next restart. these instance with mark will be try resume again."},{"line_number":20,"context_line":"those instance without mark will be ignore."},{"line_number":21,"context_line":"the mark of instance will be remove when instance resume to"},{"line_number":22,"context_line":"ACTIVE."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5aef4532_3c4f6d6c","line":19,"updated":"2016-03-09 10:44:26.000000000","message":"Needs uppercase too.","commit_id":"cf51563dbdfe098d20f2aa9ccf5d963c0472ccff"},{"author":{"_account_id":17898,"name":"Jinquan Ni","email":"ni.jinquan@zte.com.cn","username":"jinquanni"},"change_message_id":"0a6283d3ae325c502c024062d713c872e515c7e8","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"In this patch, we still set the vm state to ERROR, but we will"},{"line_number":18,"context_line":"mark the instance in  system_metadata. during compute node\u0027s"},{"line_number":19,"context_line":"next restart. these instance with mark will be try resume again."},{"line_number":20,"context_line":"those instance without mark will be ignore."},{"line_number":21,"context_line":"the mark of instance will be remove when instance resume to"},{"line_number":22,"context_line":"ACTIVE."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3afc51ec_e65824fd","line":19,"in_reply_to":"5aef4532_3c4f6d6c","updated":"2016-03-13 02:29:35.000000000","message":"Done","commit_id":"cf51563dbdfe098d20f2aa9ccf5d963c0472ccff"},{"author":{"_account_id":12712,"name":"Gleb Stepanov","email":"gstepanov@mirantis.com","username":"stgleb"},"change_message_id":"653feffe0aff6e06d2c7fe2adb7341506932e5ac","unresolved":false,"context_lines":[{"line_number":17,"context_line":"In this patch, we still set the vm state to ERROR, but we will"},{"line_number":18,"context_line":"mark the instance in  system_metadata. during compute node\u0027s"},{"line_number":19,"context_line":"next restart. these instance with mark will be try resume again."},{"line_number":20,"context_line":"those instance without mark will be ignore."},{"line_number":21,"context_line":"the mark of instance will be remove when instance resume to"},{"line_number":22,"context_line":"ACTIVE."},{"line_number":23,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5aef4532_5c5a392b","line":20,"updated":"2016-03-09 10:44:26.000000000","message":"And here.","commit_id":"cf51563dbdfe098d20f2aa9ccf5d963c0472ccff"},{"author":{"_account_id":17898,"name":"Jinquan Ni","email":"ni.jinquan@zte.com.cn","username":"jinquanni"},"change_message_id":"0a6283d3ae325c502c024062d713c872e515c7e8","unresolved":false,"context_lines":[{"line_number":17,"context_line":"In this patch, we still set the vm state to ERROR, but we will"},{"line_number":18,"context_line":"mark the instance in  system_metadata. during compute node\u0027s"},{"line_number":19,"context_line":"next restart. these instance with mark will be try resume again."},{"line_number":20,"context_line":"those instance without mark will be ignore."},{"line_number":21,"context_line":"the mark of instance will be remove when instance resume to"},{"line_number":22,"context_line":"ACTIVE."},{"line_number":23,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3afc51ec_c65d28eb","line":20,"in_reply_to":"5aef4532_5c5a392b","updated":"2016-03-13 02:29:35.000000000","message":"Done","commit_id":"cf51563dbdfe098d20f2aa9ccf5d963c0472ccff"},{"author":{"_account_id":12712,"name":"Gleb Stepanov","email":"gstepanov@mirantis.com","username":"stgleb"},"change_message_id":"653feffe0aff6e06d2c7fe2adb7341506932e5ac","unresolved":false,"context_lines":[{"line_number":18,"context_line":"mark the instance in  system_metadata. during compute node\u0027s"},{"line_number":19,"context_line":"next restart. these instance with mark will be try resume again."},{"line_number":20,"context_line":"those instance without mark will be ignore."},{"line_number":21,"context_line":"the mark of instance will be remove when instance resume to"},{"line_number":22,"context_line":"ACTIVE."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"As a result, instance can  back to ACTIVE during"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5aef4532_dc46494e","line":21,"updated":"2016-03-09 10:44:26.000000000","message":"uppercase","commit_id":"cf51563dbdfe098d20f2aa9ccf5d963c0472ccff"},{"author":{"_account_id":17898,"name":"Jinquan Ni","email":"ni.jinquan@zte.com.cn","username":"jinquanni"},"change_message_id":"0a6283d3ae325c502c024062d713c872e515c7e8","unresolved":false,"context_lines":[{"line_number":18,"context_line":"mark the instance in  system_metadata. during compute node\u0027s"},{"line_number":19,"context_line":"next restart. these instance with mark will be try resume again."},{"line_number":20,"context_line":"those instance without mark will be ignore."},{"line_number":21,"context_line":"the mark of instance will be remove when instance resume to"},{"line_number":22,"context_line":"ACTIVE."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"As a result, instance can  back to ACTIVE during"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3afc51ec_26732c82","line":21,"in_reply_to":"5aef4532_dc46494e","updated":"2016-03-13 02:29:35.000000000","message":"Done","commit_id":"cf51563dbdfe098d20f2aa9ccf5d963c0472ccff"},{"author":{"_account_id":12440,"name":"lingchen1314","email":"lingchen1314@gmail.com","username":"lingchen"},"change_message_id":"f367f18b63f3693f4550c2b555dcea6fe05dce05","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Currently, during compute node restart, when"},{"line_number":10,"context_line":"CONF.resume_guests_state_on_host_boot is set true,"},{"line_number":11,"context_line":"instance maybe into ERROR states because some temporary reason."},{"line_number":12,"context_line":"These instances will ignore during compute node next"},{"line_number":13,"context_line":"compute node restart, so these instances need human restore."},{"line_number":14,"context_line":"But directly to set the vm state to ACTIVE it is not"},{"line_number":15,"context_line":"appropriate because the vm might actually have been unavailable."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"7aa08908_640b2e25","line":13,"range":{"start_line":12,"start_character":34,"end_line":13,"end_character":20},"updated":"2016-06-12 15:33:27.000000000","message":"two compute node","commit_id":"b9263a01197fb90ceea89bed2f1e2474f1efce61"},{"author":{"_account_id":17898,"name":"Jinquan Ni","email":"ni.jinquan@zte.com.cn","username":"jinquanni"},"change_message_id":"4658558728392afa1e85809f02e1822be8c53906","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Currently, during compute node restart, when"},{"line_number":10,"context_line":"CONF.resume_guests_state_on_host_boot is set true,"},{"line_number":11,"context_line":"instance maybe into ERROR states because some temporary reason."},{"line_number":12,"context_line":"These instances will ignore during compute node next"},{"line_number":13,"context_line":"compute node restart, so these instances need human restore."},{"line_number":14,"context_line":"But directly to set the vm state to ACTIVE it is not"},{"line_number":15,"context_line":"appropriate because the vm might actually have been unavailable."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3aaa91ec_c2c6ef66","line":13,"range":{"start_line":12,"start_character":34,"end_line":13,"end_character":20},"in_reply_to":"7aa08908_640b2e25","updated":"2016-07-01 05:44:07.000000000","message":"Done","commit_id":"b9263a01197fb90ceea89bed2f1e2474f1efce61"},{"author":{"_account_id":12440,"name":"lingchen1314","email":"lingchen1314@gmail.com","username":"lingchen"},"change_message_id":"f367f18b63f3693f4550c2b555dcea6fe05dce05","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"In this patch, we still set the vm state to ERROR, but we will"},{"line_number":18,"context_line":"mark the instance in  system_metadata. During compute node\u0027s"},{"line_number":19,"context_line":"next restart. These instance with mark will be try resume again."},{"line_number":20,"context_line":"Those instance without mark will be ignore."},{"line_number":21,"context_line":"The mark of instance will be remove when instance resume to"},{"line_number":22,"context_line":"ACTIVE."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"7aa08908_041b4a74","line":19,"range":{"start_line":19,"start_character":19,"end_line":19,"end_character":28},"updated":"2016-06-12 15:33:27.000000000","message":"should be instances","commit_id":"b9263a01197fb90ceea89bed2f1e2474f1efce61"},{"author":{"_account_id":17898,"name":"Jinquan Ni","email":"ni.jinquan@zte.com.cn","username":"jinquanni"},"change_message_id":"4658558728392afa1e85809f02e1822be8c53906","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"In this patch, we still set the vm state to ERROR, but we will"},{"line_number":18,"context_line":"mark the instance in  system_metadata. During compute node\u0027s"},{"line_number":19,"context_line":"next restart. These instance with mark will be try resume again."},{"line_number":20,"context_line":"Those instance without mark will be ignore."},{"line_number":21,"context_line":"The mark of instance will be remove when instance resume to"},{"line_number":22,"context_line":"ACTIVE."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3aaa91ec_a2c12350","line":19,"range":{"start_line":19,"start_character":19,"end_line":19,"end_character":28},"in_reply_to":"7aa08908_041b4a74","updated":"2016-07-01 05:44:07.000000000","message":"Done","commit_id":"b9263a01197fb90ceea89bed2f1e2474f1efce61"},{"author":{"_account_id":12440,"name":"lingchen1314","email":"lingchen1314@gmail.com","username":"lingchen"},"change_message_id":"f367f18b63f3693f4550c2b555dcea6fe05dce05","unresolved":false,"context_lines":[{"line_number":17,"context_line":"In this patch, we still set the vm state to ERROR, but we will"},{"line_number":18,"context_line":"mark the instance in  system_metadata. During compute node\u0027s"},{"line_number":19,"context_line":"next restart. These instance with mark will be try resume again."},{"line_number":20,"context_line":"Those instance without mark will be ignore."},{"line_number":21,"context_line":"The mark of instance will be remove when instance resume to"},{"line_number":22,"context_line":"ACTIVE."},{"line_number":23,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"7aa08908_e4171e43","line":20,"range":{"start_line":20,"start_character":5,"end_line":20,"end_character":14},"updated":"2016-06-12 15:33:27.000000000","message":"should be instances","commit_id":"b9263a01197fb90ceea89bed2f1e2474f1efce61"},{"author":{"_account_id":17898,"name":"Jinquan Ni","email":"ni.jinquan@zte.com.cn","username":"jinquanni"},"change_message_id":"4658558728392afa1e85809f02e1822be8c53906","unresolved":false,"context_lines":[{"line_number":17,"context_line":"In this patch, we still set the vm state to ERROR, but we will"},{"line_number":18,"context_line":"mark the instance in  system_metadata. During compute node\u0027s"},{"line_number":19,"context_line":"next restart. These instance with mark will be try resume again."},{"line_number":20,"context_line":"Those instance without mark will be ignore."},{"line_number":21,"context_line":"The mark of instance will be remove when instance resume to"},{"line_number":22,"context_line":"ACTIVE."},{"line_number":23,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3aaa91ec_02a3d7b2","line":20,"range":{"start_line":20,"start_character":5,"end_line":20,"end_character":14},"in_reply_to":"7aa08908_e4171e43","updated":"2016-07-01 05:44:07.000000000","message":"Done","commit_id":"b9263a01197fb90ceea89bed2f1e2474f1efce61"}],"nova/compute/manager.py":[{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"6dcd8135a8e81ac6c9c8ee9bf74fc6f330ef7ba9","unresolved":false,"context_lines":[{"line_number":959,"context_line":"        # which are dealt with further down."},{"line_number":960,"context_line":"        resume_info \u003d None"},{"line_number":961,"context_line":"        if instance.vm_state \u003d\u003d vm_states.ERROR:"},{"line_number":962,"context_line":"            resume_info \u003d instance.system_metadata.get(\"resume_error\", None)"},{"line_number":963,"context_line":""},{"line_number":964,"context_line":"        if (instance.vm_state \u003d\u003d vm_states.SOFT_DELETED or"},{"line_number":965,"context_line":"            (instance.vm_state \u003d\u003d vm_states.ERROR and not resume_info and"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba0121b8_3dbb57c6","line":962,"range":{"start_line":962,"start_character":56,"end_line":962,"end_character":68},"updated":"2016-03-29 09:13:29.000000000","message":"This name could also be more specific.\n\nThis is really \"resume_error_on_host_restart\".","commit_id":"27c7b3dc946f7cd37533b8fa12f3f290ef63fe8e"},{"author":{"_account_id":17898,"name":"Jinquan Ni","email":"ni.jinquan@zte.com.cn","username":"jinquanni"},"change_message_id":"bda751dea51e6c9e2ba52ac79039cceae05ff0e1","unresolved":false,"context_lines":[{"line_number":959,"context_line":"        # which are dealt with further down."},{"line_number":960,"context_line":"        resume_info \u003d None"},{"line_number":961,"context_line":"        if instance.vm_state \u003d\u003d vm_states.ERROR:"},{"line_number":962,"context_line":"            resume_info \u003d instance.system_metadata.get(\"resume_error\", None)"},{"line_number":963,"context_line":""},{"line_number":964,"context_line":"        if (instance.vm_state \u003d\u003d vm_states.SOFT_DELETED or"},{"line_number":965,"context_line":"            (instance.vm_state \u003d\u003d vm_states.ERROR and not resume_info and"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba0121b8_6c72114b","line":962,"range":{"start_line":962,"start_character":56,"end_line":962,"end_character":68},"in_reply_to":"ba0121b8_3dbb57c6","updated":"2016-03-30 08:38:29.000000000","message":"Done","commit_id":"27c7b3dc946f7cd37533b8fa12f3f290ef63fe8e"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"6dcd8135a8e81ac6c9c8ee9bf74fc6f330ef7ba9","unresolved":false,"context_lines":[{"line_number":1200,"context_line":"            try:"},{"line_number":1201,"context_line":"                self.driver.resume_state_on_host_boot("},{"line_number":1202,"context_line":"                    context, instance, net_info, block_device_info)"},{"line_number":1203,"context_line":"                self._remove_resume_error_and_set_instance_active("},{"line_number":1204,"context_line":"                    instance, resume_info)"},{"line_number":1205,"context_line":"            except NotImplementedError:"},{"line_number":1206,"context_line":"                LOG.warning(_LW(\u0027Hypervisor driver does not support \u0027"},{"line_number":1207,"context_line":"                                \u0027resume guests\u0027), instance\u003dinstance)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba0121b8_1ae81910","line":1204,"range":{"start_line":1203,"start_character":16,"end_line":1204,"end_character":42},"updated":"2016-03-29 09:13:29.000000000","message":"Objects can also raise this (in theory at least) so we may want to move this out of the try block, as it can get very confusing.","commit_id":"27c7b3dc946f7cd37533b8fa12f3f290ef63fe8e"},{"author":{"_account_id":17898,"name":"Jinquan Ni","email":"ni.jinquan@zte.com.cn","username":"jinquanni"},"change_message_id":"bda751dea51e6c9e2ba52ac79039cceae05ff0e1","unresolved":false,"context_lines":[{"line_number":1200,"context_line":"            try:"},{"line_number":1201,"context_line":"                self.driver.resume_state_on_host_boot("},{"line_number":1202,"context_line":"                    context, instance, net_info, block_device_info)"},{"line_number":1203,"context_line":"                self._remove_resume_error_and_set_instance_active("},{"line_number":1204,"context_line":"                    instance, resume_info)"},{"line_number":1205,"context_line":"            except NotImplementedError:"},{"line_number":1206,"context_line":"                LOG.warning(_LW(\u0027Hypervisor driver does not support \u0027"},{"line_number":1207,"context_line":"                                \u0027resume guests\u0027), instance\u003dinstance)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba0121b8_8cdcc513","line":1204,"range":{"start_line":1203,"start_character":16,"end_line":1204,"end_character":42},"in_reply_to":"ba0121b8_1ae81910","updated":"2016-03-30 08:38:29.000000000","message":"Done. thanks for your good advice!","commit_id":"27c7b3dc946f7cd37533b8fa12f3f290ef63fe8e"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"6dcd8135a8e81ac6c9c8ee9bf74fc6f330ef7ba9","unresolved":false,"context_lines":[{"line_number":1228,"context_line":"        resume_error to instance system_metadata."},{"line_number":1229,"context_line":"        \"\"\""},{"line_number":1230,"context_line":"        if not resume_info:"},{"line_number":1231,"context_line":"            instance.system_metadata[\"resume_error\"] \u003d \"resume error\""},{"line_number":1232,"context_line":"            instance.save()"},{"line_number":1233,"context_line":"        self._set_instance_obj_error_state(context, instance)"},{"line_number":1234,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba0121b8_5a60d135","line":1231,"range":{"start_line":1231,"start_character":56,"end_line":1231,"end_character":68},"updated":"2016-03-29 09:13:29.000000000","message":"This might be a bit confusing - why is this not \"True\" or something more obvious instead?","commit_id":"27c7b3dc946f7cd37533b8fa12f3f290ef63fe8e"},{"author":{"_account_id":17898,"name":"Jinquan Ni","email":"ni.jinquan@zte.com.cn","username":"jinquanni"},"change_message_id":"bda751dea51e6c9e2ba52ac79039cceae05ff0e1","unresolved":false,"context_lines":[{"line_number":1228,"context_line":"        resume_error to instance system_metadata."},{"line_number":1229,"context_line":"        \"\"\""},{"line_number":1230,"context_line":"        if not resume_info:"},{"line_number":1231,"context_line":"            instance.system_metadata[\"resume_error\"] \u003d \"resume error\""},{"line_number":1232,"context_line":"            instance.save()"},{"line_number":1233,"context_line":"        self._set_instance_obj_error_state(context, instance)"},{"line_number":1234,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba0121b8_ac926949","line":1231,"range":{"start_line":1231,"start_character":56,"end_line":1231,"end_character":68},"in_reply_to":"ba0121b8_5a60d135","updated":"2016-03-30 08:38:29.000000000","message":"Done","commit_id":"27c7b3dc946f7cd37533b8fa12f3f290ef63fe8e"},{"author":{"_account_id":18602,"name":"Gábor Antal","email":"antal@inf.u-szeged.hu","username":"antal"},"change_message_id":"259ba8c787c0c275514ed352ba5b95e17925e38c","unresolved":false,"context_lines":[{"line_number":770,"context_line":"        resume_info \u003d None"},{"line_number":771,"context_line":"        if instance.vm_state \u003d\u003d vm_states.ERROR:"},{"line_number":772,"context_line":"            resume_info \u003d instance.system_metadata.get("},{"line_number":773,"context_line":"                \"resume_error_on_host_restart\", None)"},{"line_number":774,"context_line":""},{"line_number":775,"context_line":"        if (instance.vm_state \u003d\u003d vm_states.SOFT_DELETED or"},{"line_number":776,"context_line":"            (instance.vm_state \u003d\u003d vm_states.ERROR and not resume_info and"}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_97fb9078","line":773,"range":{"start_line":773,"start_character":16,"end_line":773,"end_character":46},"updated":"2016-07-07 13:24:45.000000000","message":"\u0027 instead of \"?","commit_id":"406741a9e8eb9ab729e7bed349d9ddda56b11808"},{"author":{"_account_id":17898,"name":"Jinquan Ni","email":"ni.jinquan@zte.com.cn","username":"jinquanni"},"change_message_id":"9ef33bbca3bfa5779abb55374818652abe28346c","unresolved":false,"context_lines":[{"line_number":770,"context_line":"        resume_info \u003d None"},{"line_number":771,"context_line":"        if instance.vm_state \u003d\u003d vm_states.ERROR:"},{"line_number":772,"context_line":"            resume_info \u003d instance.system_metadata.get("},{"line_number":773,"context_line":"                \"resume_error_on_host_restart\", None)"},{"line_number":774,"context_line":""},{"line_number":775,"context_line":"        if (instance.vm_state \u003d\u003d vm_states.SOFT_DELETED or"},{"line_number":776,"context_line":"            (instance.vm_state \u003d\u003d vm_states.ERROR and not resume_info and"}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_0d21d14d","line":773,"range":{"start_line":773,"start_character":16,"end_line":773,"end_character":46},"in_reply_to":"1aa78d24_97fb9078","updated":"2016-07-11 08:56:44.000000000","message":"Done","commit_id":"406741a9e8eb9ab729e7bed349d9ddda56b11808"},{"author":{"_account_id":21239,"name":"Alex Szarka","email":"szarka@inf.u-szeged.hu","username":"xavvior"},"change_message_id":"3efa8e905c684ee6d9ca1a642610dca0e6d9316b","unresolved":false,"context_lines":[{"line_number":1020,"context_line":"                #             instance to error and attempt to continue."},{"line_number":1021,"context_line":"                LOG.warning(_LW(\u0027Failed to resume instance\u0027),"},{"line_number":1022,"context_line":"                            instance\u003dinstance)"},{"line_number":1023,"context_line":"                self._add_resume_error_and_set_instance_error("},{"line_number":1024,"context_line":"                    context, instance, resume_info)"},{"line_number":1025,"context_line":"            else:"},{"line_number":1026,"context_line":"                self._remove_resume_error_and_set_instance_active(instance,"},{"line_number":1027,"context_line":"                                                                  resume_info)"}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_c071d00d","line":1024,"range":{"start_line":1023,"start_character":16,"end_line":1024,"end_character":51},"updated":"2016-07-07 14:07:26.000000000","message":"This should replace to the called method content.","commit_id":"406741a9e8eb9ab729e7bed349d9ddda56b11808"},{"author":{"_account_id":17898,"name":"Jinquan Ni","email":"ni.jinquan@zte.com.cn","username":"jinquanni"},"change_message_id":"9ef33bbca3bfa5779abb55374818652abe28346c","unresolved":false,"context_lines":[{"line_number":1020,"context_line":"                #             instance to error and attempt to continue."},{"line_number":1021,"context_line":"                LOG.warning(_LW(\u0027Failed to resume instance\u0027),"},{"line_number":1022,"context_line":"                            instance\u003dinstance)"},{"line_number":1023,"context_line":"                self._add_resume_error_and_set_instance_error("},{"line_number":1024,"context_line":"                    context, instance, resume_info)"},{"line_number":1025,"context_line":"            else:"},{"line_number":1026,"context_line":"                self._remove_resume_error_and_set_instance_active(instance,"},{"line_number":1027,"context_line":"                                                                  resume_info)"}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_4d1bd91b","line":1024,"range":{"start_line":1023,"start_character":16,"end_line":1024,"end_character":51},"in_reply_to":"1aa78d24_c071d00d","updated":"2016-07-11 08:56:44.000000000","message":"Hi,Alex Szarka, thank you for your review!\nIf call the method content directly here, the pep8 will failed because the complexity of function _init_instance.\n\nAlthough this method be called once now, but extract it as a\nmethod will reduce the complexity of _init_instance consider \nthe _init_instance are so long.","commit_id":"406741a9e8eb9ab729e7bed349d9ddda56b11808"},{"author":{"_account_id":21239,"name":"Alex Szarka","email":"szarka@inf.u-szeged.hu","username":"xavvior"},"change_message_id":"3efa8e905c684ee6d9ca1a642610dca0e6d9316b","unresolved":false,"context_lines":[{"line_number":1022,"context_line":"                            instance\u003dinstance)"},{"line_number":1023,"context_line":"                self._add_resume_error_and_set_instance_error("},{"line_number":1024,"context_line":"                    context, instance, resume_info)"},{"line_number":1025,"context_line":"            else:"},{"line_number":1026,"context_line":"                self._remove_resume_error_and_set_instance_active(instance,"},{"line_number":1027,"context_line":"                                                                  resume_info)"},{"line_number":1028,"context_line":""},{"line_number":1029,"context_line":"        elif drv_state \u003d\u003d power_state.RUNNING:"},{"line_number":1030,"context_line":"            # VMwareAPI drivers will raise an exception"}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_60e61ce9","line":1027,"range":{"start_line":1025,"start_character":0,"end_line":1027,"end_character":78},"updated":"2016-07-07 14:07:26.000000000","message":"Maybe should transfer to try block, after \"self.driver.resume_state_on_host_boot\" and replace to the called method content.","commit_id":"406741a9e8eb9ab729e7bed349d9ddda56b11808"},{"author":{"_account_id":17898,"name":"Jinquan Ni","email":"ni.jinquan@zte.com.cn","username":"jinquanni"},"change_message_id":"9ef33bbca3bfa5779abb55374818652abe28346c","unresolved":false,"context_lines":[{"line_number":1022,"context_line":"                            instance\u003dinstance)"},{"line_number":1023,"context_line":"                self._add_resume_error_and_set_instance_error("},{"line_number":1024,"context_line":"                    context, instance, resume_info)"},{"line_number":1025,"context_line":"            else:"},{"line_number":1026,"context_line":"                self._remove_resume_error_and_set_instance_active(instance,"},{"line_number":1027,"context_line":"                                                                  resume_info)"},{"line_number":1028,"context_line":""},{"line_number":1029,"context_line":"        elif drv_state \u003d\u003d power_state.RUNNING:"},{"line_number":1030,"context_line":"            # VMwareAPI drivers will raise an exception"}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_6d4df598","line":1027,"range":{"start_line":1025,"start_character":0,"end_line":1027,"end_character":78},"in_reply_to":"1aa78d24_60e61ce9","updated":"2016-07-11 08:56:44.000000000","message":"Hi, Alex Szarka,I don\u0027t think this need put in another try block,\nAs you see, there is no diff if done.","commit_id":"406741a9e8eb9ab729e7bed349d9ddda56b11808"},{"author":{"_account_id":18602,"name":"Gábor Antal","email":"antal@inf.u-szeged.hu","username":"antal"},"change_message_id":"259ba8c787c0c275514ed352ba5b95e17925e38c","unresolved":false,"context_lines":[{"line_number":1041,"context_line":"        resume_error_on_host_restart to instance system_metadata."},{"line_number":1042,"context_line":"        \"\"\""},{"line_number":1043,"context_line":"        if not resume_info:"},{"line_number":1044,"context_line":"            instance.system_metadata[\"resume_error_on_host_restart\"] \u003d \u0027True\u0027"},{"line_number":1045,"context_line":"            instance.save()"},{"line_number":1046,"context_line":"        self._set_instance_obj_error_state(context, instance)"},{"line_number":1047,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_7724240c","line":1044,"range":{"start_line":1044,"start_character":37,"end_line":1044,"end_character":67},"updated":"2016-07-07 13:24:45.000000000","message":"\u0027 instead of \"?","commit_id":"406741a9e8eb9ab729e7bed349d9ddda56b11808"},{"author":{"_account_id":17898,"name":"Jinquan Ni","email":"ni.jinquan@zte.com.cn","username":"jinquanni"},"change_message_id":"9ef33bbca3bfa5779abb55374818652abe28346c","unresolved":false,"context_lines":[{"line_number":1041,"context_line":"        resume_error_on_host_restart to instance system_metadata."},{"line_number":1042,"context_line":"        \"\"\""},{"line_number":1043,"context_line":"        if not resume_info:"},{"line_number":1044,"context_line":"            instance.system_metadata[\"resume_error_on_host_restart\"] \u003d \u0027True\u0027"},{"line_number":1045,"context_line":"            instance.save()"},{"line_number":1046,"context_line":"        self._set_instance_obj_error_state(context, instance)"},{"line_number":1047,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_ad387d3e","line":1044,"range":{"start_line":1044,"start_character":37,"end_line":1044,"end_character":67},"in_reply_to":"1aa78d24_7724240c","updated":"2016-07-11 08:56:44.000000000","message":"Done","commit_id":"406741a9e8eb9ab729e7bed349d9ddda56b11808"},{"author":{"_account_id":18602,"name":"Gábor Antal","email":"antal@inf.u-szeged.hu","username":"antal"},"change_message_id":"259ba8c787c0c275514ed352ba5b95e17925e38c","unresolved":false,"context_lines":[{"line_number":1052,"context_line":"        in instance system_metadata and set instance active."},{"line_number":1053,"context_line":"        \"\"\""},{"line_number":1054,"context_line":"        if resume_info:"},{"line_number":1055,"context_line":"            instance.system_metadata.pop(\"resume_error_on_host_restart\")"},{"line_number":1056,"context_line":"            instance.vm_state \u003d vm_states.ACTIVE"},{"line_number":1057,"context_line":"            instance.save()"},{"line_number":1058,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_f71774a0","line":1055,"range":{"start_line":1055,"start_character":41,"end_line":1055,"end_character":71},"updated":"2016-07-07 13:24:45.000000000","message":"\u0027 instead of \" ?","commit_id":"406741a9e8eb9ab729e7bed349d9ddda56b11808"},{"author":{"_account_id":18602,"name":"Gábor Antal","email":"antal@inf.u-szeged.hu","username":"antal"},"change_message_id":"259ba8c787c0c275514ed352ba5b95e17925e38c","unresolved":false,"context_lines":[{"line_number":1052,"context_line":"        in instance system_metadata and set instance active."},{"line_number":1053,"context_line":"        \"\"\""},{"line_number":1054,"context_line":"        if resume_info:"},{"line_number":1055,"context_line":"            instance.system_metadata.pop(\"resume_error_on_host_restart\")"},{"line_number":1056,"context_line":"            instance.vm_state \u003d vm_states.ACTIVE"},{"line_number":1057,"context_line":"            instance.save()"},{"line_number":1058,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_c048b0b5","line":1055,"range":{"start_line":1055,"start_character":12,"end_line":1055,"end_character":72},"updated":"2016-07-07 13:24:45.000000000","message":"Maybe I\u0027m not right, but I think pop() can throw KeyError if the given key has no value?","commit_id":"406741a9e8eb9ab729e7bed349d9ddda56b11808"},{"author":{"_account_id":17898,"name":"Jinquan Ni","email":"ni.jinquan@zte.com.cn","username":"jinquanni"},"change_message_id":"9ef33bbca3bfa5779abb55374818652abe28346c","unresolved":false,"context_lines":[{"line_number":1052,"context_line":"        in instance system_metadata and set instance active."},{"line_number":1053,"context_line":"        \"\"\""},{"line_number":1054,"context_line":"        if resume_info:"},{"line_number":1055,"context_line":"            instance.system_metadata.pop(\"resume_error_on_host_restart\")"},{"line_number":1056,"context_line":"            instance.vm_state \u003d vm_states.ACTIVE"},{"line_number":1057,"context_line":"            instance.save()"},{"line_number":1058,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_4d78f9f2","line":1055,"range":{"start_line":1055,"start_character":12,"end_line":1055,"end_character":72},"in_reply_to":"1aa78d24_c048b0b5","updated":"2016-07-11 08:56:44.000000000","message":"Yes, you are right, but if resume_info are \u0027True\u0027, the \nsystem_metadata must has key \u0027resume_error_on_host_restart\u0027","commit_id":"406741a9e8eb9ab729e7bed349d9ddda56b11808"},{"author":{"_account_id":17898,"name":"Jinquan Ni","email":"ni.jinquan@zte.com.cn","username":"jinquanni"},"change_message_id":"9ef33bbca3bfa5779abb55374818652abe28346c","unresolved":false,"context_lines":[{"line_number":1052,"context_line":"        in instance system_metadata and set instance active."},{"line_number":1053,"context_line":"        \"\"\""},{"line_number":1054,"context_line":"        if resume_info:"},{"line_number":1055,"context_line":"            instance.system_metadata.pop(\"resume_error_on_host_restart\")"},{"line_number":1056,"context_line":"            instance.vm_state \u003d vm_states.ACTIVE"},{"line_number":1057,"context_line":"            instance.save()"},{"line_number":1058,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_2d45adb2","line":1055,"range":{"start_line":1055,"start_character":41,"end_line":1055,"end_character":71},"in_reply_to":"1aa78d24_f71774a0","updated":"2016-07-11 08:56:44.000000000","message":"Done","commit_id":"406741a9e8eb9ab729e7bed349d9ddda56b11808"},{"author":{"_account_id":21239,"name":"Alex Szarka","email":"szarka@inf.u-szeged.hu","username":"xavvior"},"change_message_id":"3efa8e905c684ee6d9ca1a642610dca0e6d9316b","unresolved":false,"context_lines":[{"line_number":1035,"context_line":"                LOG.debug(\u0027Hypervisor driver does not support \u0027"},{"line_number":1036,"context_line":"                          \u0027firewall rules\u0027, instance\u003dinstance)"},{"line_number":1037,"context_line":""},{"line_number":1038,"context_line":"    def _add_resume_error_and_set_instance_error(self, context, instance,"},{"line_number":1039,"context_line":"                                                 resume_info):"},{"line_number":1040,"context_line":"        \"\"\"When restart compute node, the active instance resume error, set"},{"line_number":1041,"context_line":"        resume_error_on_host_restart to instance system_metadata."},{"line_number":1042,"context_line":"        \"\"\""},{"line_number":1043,"context_line":"        if not resume_info:"},{"line_number":1044,"context_line":"            instance.system_metadata[\"resume_error_on_host_restart\"] \u003d \u0027True\u0027"},{"line_number":1045,"context_line":"            instance.save()"},{"line_number":1046,"context_line":"        self._set_instance_obj_error_state(context, instance)"},{"line_number":1047,"context_line":""},{"line_number":1048,"context_line":"    def _remove_resume_error_and_set_instance_active(self, instance,"},{"line_number":1049,"context_line":"                                                     resume_info):"},{"line_number":1050,"context_line":"        \"\"\"When restart compute node, the resume error instance will resume"},{"line_number":1051,"context_line":"        again. if resume success, remove resume_error_on_host_restart info"},{"line_number":1052,"context_line":"        in instance system_metadata and set instance active."},{"line_number":1053,"context_line":"        \"\"\""},{"line_number":1054,"context_line":"        if resume_info:"},{"line_number":1055,"context_line":"            instance.system_metadata.pop(\"resume_error_on_host_restart\")"},{"line_number":1056,"context_line":"            instance.vm_state \u003d vm_states.ACTIVE"},{"line_number":1057,"context_line":"            instance.save()"},{"line_number":1058,"context_line":""},{"line_number":1059,"context_line":"    def _retry_reboot(self, context, instance, current_power_state):"},{"line_number":1060,"context_line":"        current_task_state \u003d instance.task_state"}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_60b3bc0a","line":1057,"range":{"start_line":1038,"start_character":0,"end_line":1057,"end_character":27},"updated":"2016-07-07 14:07:26.000000000","message":"Please transfer this to init_instance. This once called method. Unnecessary externalize to new methods.","commit_id":"406741a9e8eb9ab729e7bed349d9ddda56b11808"}],"nova/tests/unit/compute/test_compute_mgr.py":[{"author":{"_account_id":21239,"name":"Alex Szarka","email":"szarka@inf.u-szeged.hu","username":"xavvior"},"change_message_id":"d9aa10c4f191e7bb59600debb6dc82405b724eff","unresolved":false,"context_lines":[{"line_number":1222,"context_line":"                memory_mb\u003d64,"},{"line_number":1223,"context_line":"                vm_state\u003dvm_states.ERROR,"},{"line_number":1224,"context_line":"                host\u003dself.compute.host,"},{"line_number":1225,"context_line":"                task_state\u003dtask_states.DELETING,"},{"line_number":1226,"context_line":"                expected_attrs\u003d[\u0027system_metadata\u0027])"},{"line_number":1227,"context_line":"        bdms \u003d []"},{"line_number":1228,"context_line":"        quotas \u003d objects.quotas.Quotas(self.context)"},{"line_number":1229,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_1003d443","line":1226,"range":{"start_line":1225,"start_character":47,"end_line":1226,"end_character":50},"updated":"2016-07-04 13:59:46.000000000","message":"Why need expected system_metadata? I think so, that unnecessary to here. You didn\u0027t change anything in code, related deleting instance.","commit_id":"c764e48f98e0f47dc23ffb7b9a265e51f900b638"},{"author":{"_account_id":17898,"name":"Jinquan Ni","email":"ni.jinquan@zte.com.cn","username":"jinquanni"},"change_message_id":"c518bb61930734576d936a72f43565a9ec4b2874","unresolved":false,"context_lines":[{"line_number":1222,"context_line":"                memory_mb\u003d64,"},{"line_number":1223,"context_line":"                vm_state\u003dvm_states.ERROR,"},{"line_number":1224,"context_line":"                host\u003dself.compute.host,"},{"line_number":1225,"context_line":"                task_state\u003dtask_states.DELETING,"},{"line_number":1226,"context_line":"                expected_attrs\u003d[\u0027system_metadata\u0027])"},{"line_number":1227,"context_line":"        bdms \u003d []"},{"line_number":1228,"context_line":"        quotas \u003d objects.quotas.Quotas(self.context)"},{"line_number":1229,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_42f2249b","line":1226,"range":{"start_line":1225,"start_character":47,"end_line":1226,"end_character":50},"in_reply_to":"1aa78d24_1003d443","updated":"2016-07-07 01:11:39.000000000","message":"Hi, Alex Szarka, thank you for your review!\nThis unit test will call the method _init_instance  @line 1242.\nThe _init_instance need to get system_metadata of  error instance.","commit_id":"c764e48f98e0f47dc23ffb7b9a265e51f900b638"},{"author":{"_account_id":18602,"name":"Gábor Antal","email":"antal@inf.u-szeged.hu","username":"antal"},"change_message_id":"21fbc5be8d6bf33df41b45e9589aaffd7fd3b68e","unresolved":false,"context_lines":[{"line_number":740,"context_line":"        mock_set_inst.assert_called_once_with(mock.ANY, instance)"},{"line_number":741,"context_line":""},{"line_number":742,"context_line":"        self.assertEqual(instance.system_metadata,"},{"line_number":743,"context_line":"                         {\"resume_error_on_host_restart\": \"True\"})"},{"line_number":744,"context_line":""},{"line_number":745,"context_line":"    @mock.patch.object(nova.compute.manager.ComputeManager,"},{"line_number":746,"context_line":"                       \u0027_set_instance_obj_error_state\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_64bf5961","line":743,"range":{"start_line":743,"start_character":26,"end_line":743,"end_character":56},"updated":"2016-07-07 10:43:12.000000000","message":"\u0027 instead of \" ?","commit_id":"406741a9e8eb9ab729e7bed349d9ddda56b11808"},{"author":{"_account_id":18602,"name":"Gábor Antal","email":"antal@inf.u-szeged.hu","username":"antal"},"change_message_id":"21fbc5be8d6bf33df41b45e9589aaffd7fd3b68e","unresolved":false,"context_lines":[{"line_number":740,"context_line":"        mock_set_inst.assert_called_once_with(mock.ANY, instance)"},{"line_number":741,"context_line":""},{"line_number":742,"context_line":"        self.assertEqual(instance.system_metadata,"},{"line_number":743,"context_line":"                         {\"resume_error_on_host_restart\": \"True\"})"},{"line_number":744,"context_line":""},{"line_number":745,"context_line":"    @mock.patch.object(nova.compute.manager.ComputeManager,"},{"line_number":746,"context_line":"                       \u0027_set_instance_obj_error_state\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_44c21dea","line":743,"range":{"start_line":743,"start_character":58,"end_line":743,"end_character":64},"updated":"2016-07-07 10:43:12.000000000","message":"Ditto","commit_id":"406741a9e8eb9ab729e7bed349d9ddda56b11808"},{"author":{"_account_id":17898,"name":"Jinquan Ni","email":"ni.jinquan@zte.com.cn","username":"jinquanni"},"change_message_id":"9ef33bbca3bfa5779abb55374818652abe28346c","unresolved":false,"context_lines":[{"line_number":740,"context_line":"        mock_set_inst.assert_called_once_with(mock.ANY, instance)"},{"line_number":741,"context_line":""},{"line_number":742,"context_line":"        self.assertEqual(instance.system_metadata,"},{"line_number":743,"context_line":"                         {\"resume_error_on_host_restart\": \"True\"})"},{"line_number":744,"context_line":""},{"line_number":745,"context_line":"    @mock.patch.object(nova.compute.manager.ComputeManager,"},{"line_number":746,"context_line":"                       \u0027_set_instance_obj_error_state\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_2af8f348","line":743,"range":{"start_line":743,"start_character":26,"end_line":743,"end_character":56},"in_reply_to":"1aa78d24_64bf5961","updated":"2016-07-11 08:56:44.000000000","message":"Will Done","commit_id":"406741a9e8eb9ab729e7bed349d9ddda56b11808"},{"author":{"_account_id":18602,"name":"Gábor Antal","email":"antal@inf.u-szeged.hu","username":"antal"},"change_message_id":"21fbc5be8d6bf33df41b45e9589aaffd7fd3b68e","unresolved":false,"context_lines":[{"line_number":775,"context_line":"        self.assertEqual(mock_get_instance_block_device_info.call_count, 1)"},{"line_number":776,"context_line":"        self.assertEqual(mock_set_instance_obj_error.call_count, 1)"},{"line_number":777,"context_line":"        self.assertEqual(instance.system_metadata,"},{"line_number":778,"context_line":"                         {\"resume_error_on_host_restart\": \"True\"})"},{"line_number":779,"context_line":"        self.assertEqual(instance.vm_state, vm_states.ERROR)"},{"line_number":780,"context_line":""},{"line_number":781,"context_line":"    def test_init_instance_with_error_instance(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_a49e6104","line":778,"range":{"start_line":778,"start_character":26,"end_line":778,"end_character":56},"updated":"2016-07-07 10:43:12.000000000","message":"\u0027 instead of \" ?","commit_id":"406741a9e8eb9ab729e7bed349d9ddda56b11808"},{"author":{"_account_id":18602,"name":"Gábor Antal","email":"antal@inf.u-szeged.hu","username":"antal"},"change_message_id":"21fbc5be8d6bf33df41b45e9589aaffd7fd3b68e","unresolved":false,"context_lines":[{"line_number":775,"context_line":"        self.assertEqual(mock_get_instance_block_device_info.call_count, 1)"},{"line_number":776,"context_line":"        self.assertEqual(mock_set_instance_obj_error.call_count, 1)"},{"line_number":777,"context_line":"        self.assertEqual(instance.system_metadata,"},{"line_number":778,"context_line":"                         {\"resume_error_on_host_restart\": \"True\"})"},{"line_number":779,"context_line":"        self.assertEqual(instance.vm_state, vm_states.ERROR)"},{"line_number":780,"context_line":""},{"line_number":781,"context_line":"    def test_init_instance_with_error_instance(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_249391fb","line":778,"range":{"start_line":778,"start_character":58,"end_line":778,"end_character":64},"updated":"2016-07-07 10:43:12.000000000","message":"Ditto","commit_id":"406741a9e8eb9ab729e7bed349d9ddda56b11808"},{"author":{"_account_id":17898,"name":"Jinquan Ni","email":"ni.jinquan@zte.com.cn","username":"jinquanni"},"change_message_id":"9ef33bbca3bfa5779abb55374818652abe28346c","unresolved":false,"context_lines":[{"line_number":775,"context_line":"        self.assertEqual(mock_get_instance_block_device_info.call_count, 1)"},{"line_number":776,"context_line":"        self.assertEqual(mock_set_instance_obj_error.call_count, 1)"},{"line_number":777,"context_line":"        self.assertEqual(instance.system_metadata,"},{"line_number":778,"context_line":"                         {\"resume_error_on_host_restart\": \"True\"})"},{"line_number":779,"context_line":"        self.assertEqual(instance.vm_state, vm_states.ERROR)"},{"line_number":780,"context_line":""},{"line_number":781,"context_line":"    def test_init_instance_with_error_instance(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_8a95a7e5","line":778,"range":{"start_line":778,"start_character":26,"end_line":778,"end_character":56},"in_reply_to":"1aa78d24_a49e6104","updated":"2016-07-11 08:56:44.000000000","message":"will done","commit_id":"406741a9e8eb9ab729e7bed349d9ddda56b11808"},{"author":{"_account_id":18602,"name":"Gábor Antal","email":"antal@inf.u-szeged.hu","username":"antal"},"change_message_id":"21fbc5be8d6bf33df41b45e9589aaffd7fd3b68e","unresolved":false,"context_lines":[{"line_number":813,"context_line":"                task_state\u003dNone,"},{"line_number":814,"context_line":"                host\u003dself.compute.host,"},{"line_number":815,"context_line":"                expected_attrs\u003d[\u0027info_cache\u0027, \u0027system_metadata\u0027])"},{"line_number":816,"context_line":"        instance.system_metadata[\u0027resume_error_on_host_restart\u0027] \u003d \"True\""},{"line_number":817,"context_line":"        self.flags(resume_guests_state_on_host_boot\u003dTrue)"},{"line_number":818,"context_line":""},{"line_number":819,"context_line":"        self.compute._init_instance(\u0027fake-context\u0027, instance)"}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_24fc313d","line":816,"range":{"start_line":816,"start_character":67,"end_line":816,"end_character":73},"updated":"2016-07-07 10:43:12.000000000","message":"Shouldn\u0027t be \u0027True\u0027 instead of \"True\" ?","commit_id":"406741a9e8eb9ab729e7bed349d9ddda56b11808"},{"author":{"_account_id":17898,"name":"Jinquan Ni","email":"ni.jinquan@zte.com.cn","username":"jinquanni"},"change_message_id":"9ef33bbca3bfa5779abb55374818652abe28346c","unresolved":false,"context_lines":[{"line_number":813,"context_line":"                task_state\u003dNone,"},{"line_number":814,"context_line":"                host\u003dself.compute.host,"},{"line_number":815,"context_line":"                expected_attrs\u003d[\u0027info_cache\u0027, \u0027system_metadata\u0027])"},{"line_number":816,"context_line":"        instance.system_metadata[\u0027resume_error_on_host_restart\u0027] \u003d \"True\""},{"line_number":817,"context_line":"        self.flags(resume_guests_state_on_host_boot\u003dTrue)"},{"line_number":818,"context_line":""},{"line_number":819,"context_line":"        self.compute._init_instance(\u0027fake-context\u0027, instance)"}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_2a7d93b1","line":816,"range":{"start_line":816,"start_character":67,"end_line":816,"end_character":73},"in_reply_to":"1aa78d24_24fc313d","updated":"2016-07-11 08:56:44.000000000","message":"Done","commit_id":"406741a9e8eb9ab729e7bed349d9ddda56b11808"},{"author":{"_account_id":18602,"name":"Gábor Antal","email":"antal@inf.u-szeged.hu","username":"antal"},"change_message_id":"21fbc5be8d6bf33df41b45e9589aaffd7fd3b68e","unresolved":false,"context_lines":[{"line_number":1222,"context_line":"                memory_mb\u003d64,"},{"line_number":1223,"context_line":"                vm_state\u003dvm_states.ERROR,"},{"line_number":1224,"context_line":"                host\u003dself.compute.host,"},{"line_number":1225,"context_line":"                task_state\u003dtask_states.DELETING,"},{"line_number":1226,"context_line":"                expected_attrs\u003d[\u0027system_metadata\u0027])"},{"line_number":1227,"context_line":"        bdms \u003d []"},{"line_number":1228,"context_line":"        quotas \u003d objects.quotas.Quotas(self.context)"},{"line_number":1229,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_a482e1c5","line":1226,"range":{"start_line":1225,"start_character":47,"end_line":1226,"end_character":50},"updated":"2016-07-07 10:43:12.000000000","message":"Why this one needed? As I see, no change was made related to deleting instance, so this unit test should not be changed. \nAlso, as I understand, the init_instance method cannot be called in the way that the second parameter (instance) is not contains system_metadata attribute. I think you should work on this, because it shouldn\u0027t be a needed information, as it wasn\u0027t needed before. Sorry, if I missed something, or misunderstood your code.","commit_id":"406741a9e8eb9ab729e7bed349d9ddda56b11808"},{"author":{"_account_id":18602,"name":"Gábor Antal","email":"antal@inf.u-szeged.hu","username":"antal"},"change_message_id":"4625545a29095ba947d6cfbc728d32bf4e59692d","unresolved":false,"context_lines":[{"line_number":1222,"context_line":"                memory_mb\u003d64,"},{"line_number":1223,"context_line":"                vm_state\u003dvm_states.ERROR,"},{"line_number":1224,"context_line":"                host\u003dself.compute.host,"},{"line_number":1225,"context_line":"                task_state\u003dtask_states.DELETING,"},{"line_number":1226,"context_line":"                expected_attrs\u003d[\u0027system_metadata\u0027])"},{"line_number":1227,"context_line":"        bdms \u003d []"},{"line_number":1228,"context_line":"        quotas \u003d objects.quotas.Quotas(self.context)"},{"line_number":1229,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_9fa2fa49","line":1226,"range":{"start_line":1225,"start_character":47,"end_line":1226,"end_character":50},"in_reply_to":"1aa78d24_068c0b7e","updated":"2016-07-11 12:06:06.000000000","message":"That\u0027s what I try to ask. _init_instance need system_metadata. However, before the modification it was not needed. In that way, the choices are narrowed as it became a needed thing instead of an optional one.","commit_id":"406741a9e8eb9ab729e7bed349d9ddda56b11808"},{"author":{"_account_id":18602,"name":"Gábor Antal","email":"antal@inf.u-szeged.hu","username":"antal"},"change_message_id":"8cd5a79b0848d45b8b630523cc1cd1bc7aa0d5ad","unresolved":false,"context_lines":[{"line_number":1222,"context_line":"                memory_mb\u003d64,"},{"line_number":1223,"context_line":"                vm_state\u003dvm_states.ERROR,"},{"line_number":1224,"context_line":"                host\u003dself.compute.host,"},{"line_number":1225,"context_line":"                task_state\u003dtask_states.DELETING,"},{"line_number":1226,"context_line":"                expected_attrs\u003d[\u0027system_metadata\u0027])"},{"line_number":1227,"context_line":"        bdms \u003d []"},{"line_number":1228,"context_line":"        quotas \u003d objects.quotas.Quotas(self.context)"},{"line_number":1229,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_93b31be9","line":1226,"range":{"start_line":1225,"start_character":47,"end_line":1226,"end_character":50},"in_reply_to":"1aa78d24_70082ada","updated":"2016-07-11 10:42:02.000000000","message":"Hey,\nThat\u0027s what I try to understand. As nothing happened in deleting instance, nothing should be changed here. I understand that _init_instance was modified, but I think this test should be work without adding this line, as it shouldn\u0027t be required if it wasn\u0027t","commit_id":"406741a9e8eb9ab729e7bed349d9ddda56b11808"},{"author":{"_account_id":17898,"name":"Jinquan Ni","email":"ni.jinquan@zte.com.cn","username":"jinquanni"},"change_message_id":"d87767e7527cb07dc75abfd38f30a68b9c438764","unresolved":false,"context_lines":[{"line_number":1222,"context_line":"                memory_mb\u003d64,"},{"line_number":1223,"context_line":"                vm_state\u003dvm_states.ERROR,"},{"line_number":1224,"context_line":"                host\u003dself.compute.host,"},{"line_number":1225,"context_line":"                task_state\u003dtask_states.DELETING,"},{"line_number":1226,"context_line":"                expected_attrs\u003d[\u0027system_metadata\u0027])"},{"line_number":1227,"context_line":"        bdms \u003d []"},{"line_number":1228,"context_line":"        quotas \u003d objects.quotas.Quotas(self.context)"},{"line_number":1229,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_068c0b7e","line":1226,"range":{"start_line":1225,"start_character":47,"end_line":1226,"end_character":50},"in_reply_to":"1aa78d24_93b31be9","updated":"2016-07-11 10:53:48.000000000","message":"hi, in really envirment the instance aleady has system_metadata. In unittest,  you can add system_metadata if the codeflow that you test need the metadata.\n\nThis test will call _init_instance, the _init_instance need \nsystem_metadata, so i add it here.\n\nThis test should not be work without adding this line after \n_init_instance be modify!","commit_id":"406741a9e8eb9ab729e7bed349d9ddda56b11808"},{"author":{"_account_id":17898,"name":"Jinquan Ni","email":"ni.jinquan@zte.com.cn","username":"jinquanni"},"change_message_id":"19a231ca1cd111054bbfbc06082a00a3e404f432","unresolved":false,"context_lines":[{"line_number":1222,"context_line":"                memory_mb\u003d64,"},{"line_number":1223,"context_line":"                vm_state\u003dvm_states.ERROR,"},{"line_number":1224,"context_line":"                host\u003dself.compute.host,"},{"line_number":1225,"context_line":"                task_state\u003dtask_states.DELETING,"},{"line_number":1226,"context_line":"                expected_attrs\u003d[\u0027system_metadata\u0027])"},{"line_number":1227,"context_line":"        bdms \u003d []"},{"line_number":1228,"context_line":"        quotas \u003d objects.quotas.Quotas(self.context)"},{"line_number":1229,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_602dc1a7","line":1226,"range":{"start_line":1225,"start_character":47,"end_line":1226,"end_character":50},"in_reply_to":"1aa78d24_9fa2fa49","updated":"2016-07-13 09:41:39.000000000","message":"Hi,first of all, the instance in openstack envirment always has system_metadata, so the choices not been narrow.\n\nwhen we code unit test, we create fake instance obj, the fake instance not equal really instance.","commit_id":"406741a9e8eb9ab729e7bed349d9ddda56b11808"},{"author":{"_account_id":17898,"name":"Jinquan Ni","email":"ni.jinquan@zte.com.cn","username":"jinquanni"},"change_message_id":"9ef33bbca3bfa5779abb55374818652abe28346c","unresolved":false,"context_lines":[{"line_number":1222,"context_line":"                memory_mb\u003d64,"},{"line_number":1223,"context_line":"                vm_state\u003dvm_states.ERROR,"},{"line_number":1224,"context_line":"                host\u003dself.compute.host,"},{"line_number":1225,"context_line":"                task_state\u003dtask_states.DELETING,"},{"line_number":1226,"context_line":"                expected_attrs\u003d[\u0027system_metadata\u0027])"},{"line_number":1227,"context_line":"        bdms \u003d []"},{"line_number":1228,"context_line":"        quotas \u003d objects.quotas.Quotas(self.context)"},{"line_number":1229,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_70082ada","line":1226,"range":{"start_line":1225,"start_character":47,"end_line":1226,"end_character":50},"in_reply_to":"1aa78d24_a482e1c5","updated":"2016-07-11 08:56:44.000000000","message":"Hi, as you can see the comment which i reply in patch set 8, \nthis patche no change deleting instance, but change _init_instance. this unit test will call the method _init_instance @line 1242. The _init_instance need to get system_metadata of error instance.  \n\nwhen the workflow need some attribute like \u0027info_cache\u0027,\u0027system_metadate\u0027,\u0027security_groups\u0027.we need add into expected_attrs when we code the unittest, you can check this in other unittest.","commit_id":"406741a9e8eb9ab729e7bed349d9ddda56b11808"}]}
