)]}'
{"nova/api/openstack/compute/admin_password.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ecdfb71a41f3d7bacef77177fda96ccf571f7014","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        except exception.InstanceUnknownCell as e:"},{"line_number":53,"context_line":"            raise exc.HTTPNotFound(explanation\u003de.format_message())"},{"line_number":54,"context_line":"        except (exception.InstancePasswordSetFailed,"},{"line_number":55,"context_line":"                exception.SetAdminPasswdNotSupported,"},{"line_number":56,"context_line":"                exception.InstanceAgentNotEnabled) as e:"},{"line_number":57,"context_line":"            raise exc.HTTPConflict(explanation\u003de.format_message())"},{"line_number":58,"context_line":"        except exception.InstanceInvalidState as e:"},{"line_number":59,"context_line":"            raise common.raise_http_conflict_for_instance_invalid_state("}],"source_content_type":"text/x-python","patch_set":11,"id":"7aa08908_6dd98e83","line":56,"range":{"start_line":55,"start_character":16,"end_line":56,"end_character":49},"updated":"2016-06-06 18:48:28.000000000","message":"We should at least have unit tests to make sure these new exception types are handled here and return a 409.","commit_id":"a6b6f69f65cdd80dcbdddabd5c8cdcd284bec6eb"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"ec6c378c1bd2eb5afe45208581f6ab60307f4d1a","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        except exception.InstanceUnknownCell as e:"},{"line_number":53,"context_line":"            raise exc.HTTPNotFound(explanation\u003de.format_message())"},{"line_number":54,"context_line":"        except (exception.InstancePasswordSetFailed,"},{"line_number":55,"context_line":"                exception.SetAdminPasswdNotSupported,"},{"line_number":56,"context_line":"                exception.InstanceAgentNotEnabled) as e:"},{"line_number":57,"context_line":"            raise exc.HTTPConflict(explanation\u003de.format_message())"},{"line_number":58,"context_line":"        except exception.InstanceInvalidState as e:"},{"line_number":59,"context_line":"            raise common.raise_http_conflict_for_instance_invalid_state("}],"source_content_type":"text/x-python","patch_set":11,"id":"7aa08908_ada9b67d","line":56,"range":{"start_line":55,"start_character":16,"end_line":56,"end_character":49},"in_reply_to":"7aa08908_6dd98e83","updated":"2016-06-06 18:56:41.000000000","message":"Done","commit_id":"a6b6f69f65cdd80dcbdddabd5c8cdcd284bec6eb"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d982dfddeb1cf2fdd16ae5be30c1b96847a167ac","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        except exception.InstanceUnknownCell as e:"},{"line_number":53,"context_line":"            raise exc.HTTPNotFound(explanation\u003de.format_message())"},{"line_number":54,"context_line":"        except (exception.InstancePasswordSetFailed,"},{"line_number":55,"context_line":"                exception.SetAdminPasswdNotSupported,"},{"line_number":56,"context_line":"                exception.InstanceAgentNotEnabled) as e:"},{"line_number":57,"context_line":"            raise exc.HTTPConflict(explanation\u003de.format_message())"},{"line_number":58,"context_line":"        except exception.InstanceInvalidState as e:"}],"source_content_type":"text/x-python","patch_set":12,"id":"7aa08908_f2aeb22c","line":55,"range":{"start_line":55,"start_character":16,"end_line":55,"end_character":52},"updated":"2016-06-13 10:16:06.000000000","message":"should this be 409 or should be 400 (at least for SetAdminPasswdNotSupported)?","commit_id":"c6ffec00037fd0def2f072dcdc3619aa9437b32b"}],"nova/compute/manager.py":[{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"5de32668d1d491f7b5dd3693bd7476ec28d27194","unresolved":false,"context_lines":[{"line_number":3194,"context_line":"            instance.task_state \u003d None"},{"line_number":3195,"context_line":"            instance.save("},{"line_number":3196,"context_line":"                expected_task_state\u003dtask_states.UPDATING_PASSWORD)"},{"line_number":3197,"context_line":"        except (NotImplementedError, exception.SetAdminPasswdNotSupported):"},{"line_number":3198,"context_line":"            LOG.warning(_LW(\u0027set_admin_password is not implemented \u0027"},{"line_number":3199,"context_line":"                            \u0027by this driver or guest instance.\u0027),"},{"line_number":3200,"context_line":"                        instance\u003dinstance)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a8ffd7b_e0a85022","line":3197,"updated":"2015-12-03 10:25:57.000000000","message":"could you please add a test for this?","commit_id":"e807cb02004c8b872f8b23c2ed9a4c7e41c3bcc7"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"5b68c656602d6c369b1a344f3cfd89f2977b17be","unresolved":false,"context_lines":[{"line_number":3194,"context_line":"            instance.task_state \u003d None"},{"line_number":3195,"context_line":"            instance.save("},{"line_number":3196,"context_line":"                expected_task_state\u003dtask_states.UPDATING_PASSWORD)"},{"line_number":3197,"context_line":"        except (NotImplementedError, exception.SetAdminPasswdNotSupported):"},{"line_number":3198,"context_line":"            LOG.warning(_LW(\u0027set_admin_password is not implemented \u0027"},{"line_number":3199,"context_line":"                            \u0027by this driver or guest instance.\u0027),"},{"line_number":3200,"context_line":"                        instance\u003dinstance)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_9d3790fd","line":3197,"in_reply_to":"3a7e1126_3eed9125","updated":"2016-01-11 13:17:28.000000000","message":"Done","commit_id":"e807cb02004c8b872f8b23c2ed9a4c7e41c3bcc7"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"e511e00cae0feb99b99ba8fb4770e38fc7815e0b","unresolved":false,"context_lines":[{"line_number":3194,"context_line":"            instance.task_state \u003d None"},{"line_number":3195,"context_line":"            instance.save("},{"line_number":3196,"context_line":"                expected_task_state\u003dtask_states.UPDATING_PASSWORD)"},{"line_number":3197,"context_line":"        except (NotImplementedError, exception.SetAdminPasswdNotSupported):"},{"line_number":3198,"context_line":"            LOG.warning(_LW(\u0027set_admin_password is not implemented \u0027"},{"line_number":3199,"context_line":"                            \u0027by this driver or guest instance.\u0027),"},{"line_number":3200,"context_line":"                        instance\u003dinstance)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a7e1126_3eed9125","line":3197,"in_reply_to":"9a8ffd7b_e0a85022","updated":"2015-12-17 14:39:55.000000000","message":"agree, testing this is good","commit_id":"e807cb02004c8b872f8b23c2ed9a4c7e41c3bcc7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9b216e14445c0926255be57311943cb89c33fd0a","unresolved":false,"context_lines":[{"line_number":3247,"context_line":"            instance.task_state \u003d None"},{"line_number":3248,"context_line":"            instance.save("},{"line_number":3249,"context_line":"                expected_task_state\u003dtask_states.UPDATING_PASSWORD)"},{"line_number":3250,"context_line":"        except (NotImplementedError, exception.SetAdminPasswdNotSupported):"},{"line_number":3251,"context_line":"            LOG.warning(_LW(\u0027set_admin_password is not implemented \u0027"},{"line_number":3252,"context_line":"                            \u0027by this driver or guest instance.\u0027),"},{"line_number":3253,"context_line":"                        instance\u003dinstance)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a68dd71_0d608c00","line":3250,"updated":"2016-01-22 02:00:36.000000000","message":"It also raises QemuGuestAgentNotEnabled:\n\nhttps://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L1552\n\nWhich is actually a virt-specific implementation detail, so maybe we also need to change the libvirt driver to raise that as SetAdminPasswdNotSupported. We shouldn\u0027t have some QEMU-specific exception handling in the compute manager, but it is a case you could hit here.","commit_id":"2d3c01415a2e4cd330e8d2b24eebb5297ee5e5b9"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"d0d4ecaf83fc82dc12f8f039d0c0e2214b07fc5d","unresolved":false,"context_lines":[{"line_number":3247,"context_line":"            instance.task_state \u003d None"},{"line_number":3248,"context_line":"            instance.save("},{"line_number":3249,"context_line":"                expected_task_state\u003dtask_states.UPDATING_PASSWORD)"},{"line_number":3250,"context_line":"        except (NotImplementedError, exception.SetAdminPasswdNotSupported):"},{"line_number":3251,"context_line":"            LOG.warning(_LW(\u0027set_admin_password is not implemented \u0027"},{"line_number":3252,"context_line":"                            \u0027by this driver or guest instance.\u0027),"},{"line_number":3253,"context_line":"                        instance\u003dinstance)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a68dd71_97647e49","line":3250,"in_reply_to":"9a68dd71_0d608c00","updated":"2016-01-22 08:31:53.000000000","message":"+1 yes this exception is also missing.\n\nBut I\u0027m not sure it\u0027s QEMU-specific exception at least it\u0027s not QEMU\u0027s internal. We are talking about QEMU guest agent, an userspace software running on guest.","commit_id":"2d3c01415a2e4cd330e8d2b24eebb5297ee5e5b9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2b07d6e182bd75e078fe9262840ab49da9b8b78b","unresolved":false,"context_lines":[{"line_number":3247,"context_line":"            instance.task_state \u003d None"},{"line_number":3248,"context_line":"            instance.save("},{"line_number":3249,"context_line":"                expected_task_state\u003dtask_states.UPDATING_PASSWORD)"},{"line_number":3250,"context_line":"        except (NotImplementedError, exception.SetAdminPasswdNotSupported):"},{"line_number":3251,"context_line":"            LOG.warning(_LW(\u0027set_admin_password is not implemented \u0027"},{"line_number":3252,"context_line":"                            \u0027by this driver or guest instance.\u0027),"},{"line_number":3253,"context_line":"                        instance\u003dinstance)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a68dd71_fa774806","line":3250,"in_reply_to":"9a68dd71_97647e49","updated":"2016-01-26 11:53:32.000000000","message":"True, but it\u0027s specific to the libvirt driver, as opposed to like vmware or hyper-v, so I don\u0027t think we should expose that level of detail in the compute manager, I\u0027d rather convert that to something more generic and raise that up from the virt driver to be handled here, which is probably just the SetAdminPasswdNotSupported exception.","commit_id":"2d3c01415a2e4cd330e8d2b24eebb5297ee5e5b9"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"8987c8713a01020bce8aa956e5c73a8d97b8a4f4","unresolved":false,"context_lines":[{"line_number":3247,"context_line":"            instance.task_state \u003d None"},{"line_number":3248,"context_line":"            instance.save("},{"line_number":3249,"context_line":"                expected_task_state\u003dtask_states.UPDATING_PASSWORD)"},{"line_number":3250,"context_line":"        except (NotImplementedError, exception.SetAdminPasswdNotSupported):"},{"line_number":3251,"context_line":"            LOG.warning(_LW(\u0027set_admin_password is not implemented \u0027"},{"line_number":3252,"context_line":"                            \u0027by this driver or guest instance.\u0027),"},{"line_number":3253,"context_line":"                        instance\u003dinstance)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_3fcb2555","line":3250,"in_reply_to":"9a68dd71_fa774806","updated":"2016-05-30 10:40:49.000000000","message":"Done","commit_id":"2d3c01415a2e4cd330e8d2b24eebb5297ee5e5b9"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"676760f861073b45f1b4cbd47972f0c1e95033b5","unresolved":false,"context_lines":[{"line_number":3126,"context_line":"            instance.task_state \u003d None"},{"line_number":3127,"context_line":"            instance.save("},{"line_number":3128,"context_line":"                expected_task_state\u003dtask_states.UPDATING_PASSWORD)"},{"line_number":3129,"context_line":"        except (NotImplementedError, exception.SetAdminPasswdNotSupported):"},{"line_number":3130,"context_line":"            LOG.warning(_LW(\u0027set_admin_password is not implemented \u0027"},{"line_number":3131,"context_line":"                            \u0027by this driver or guest instance.\u0027),"},{"line_number":3132,"context_line":"                        instance\u003dinstance)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_c274c29d","line":3129,"updated":"2016-05-30 10:51:35.000000000","message":"Alternatively. we could make SetAdminPasswdNotSupported a subclass of NotImplementedError to denote the fact, that... well this feature is not implemented in some hypervisor versions :)\n\nFWIW, we handle two different exceptions here, but still hide the fact that the problem is in a particular version of libvirt, not libvirt driver/hypervisor itself in a warning below","commit_id":"da3f13b07b8a35ab55bf8ffb6a0d292c98d4800b"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"c6b9e36eac16b6f0191942469ac6d5cf658b7560","unresolved":false,"context_lines":[{"line_number":3126,"context_line":"            instance.task_state \u003d None"},{"line_number":3127,"context_line":"            instance.save("},{"line_number":3128,"context_line":"                expected_task_state\u003dtask_states.UPDATING_PASSWORD)"},{"line_number":3129,"context_line":"        except (NotImplementedError, exception.SetAdminPasswdNotSupported):"},{"line_number":3130,"context_line":"            LOG.warning(_LW(\u0027set_admin_password is not implemented \u0027"},{"line_number":3131,"context_line":"                            \u0027by this driver or guest instance.\u0027),"},{"line_number":3132,"context_line":"                        instance\u003dinstance)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_d09eb161","line":3129,"in_reply_to":"9abb7d3a_147b2d29","updated":"2016-06-01 21:01:29.000000000","message":"I\u0027ve updated ps, to separate SetAdminPasswdNotSupported and NotImplementedError, but still don\u0027t want to explicitly handle Qemu exception.","commit_id":"da3f13b07b8a35ab55bf8ffb6a0d292c98d4800b"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"857ed0529f010095684d7f2014498f6921c39924","unresolved":false,"context_lines":[{"line_number":3126,"context_line":"            instance.task_state \u003d None"},{"line_number":3127,"context_line":"            instance.save("},{"line_number":3128,"context_line":"                expected_task_state\u003dtask_states.UPDATING_PASSWORD)"},{"line_number":3129,"context_line":"        except (NotImplementedError, exception.SetAdminPasswdNotSupported):"},{"line_number":3130,"context_line":"            LOG.warning(_LW(\u0027set_admin_password is not implemented \u0027"},{"line_number":3131,"context_line":"                            \u0027by this driver or guest instance.\u0027),"},{"line_number":3132,"context_line":"                        instance\u003dinstance)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_0f403833","line":3129,"in_reply_to":"9abb7d3a_147b2d29","updated":"2016-06-01 12:43:56.000000000","message":"yes, which in general is bad.","commit_id":"da3f13b07b8a35ab55bf8ffb6a0d292c98d4800b"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"5f1fa3729026933b33358b97a7daa6d44325635a","unresolved":false,"context_lines":[{"line_number":3126,"context_line":"            instance.task_state \u003d None"},{"line_number":3127,"context_line":"            instance.save("},{"line_number":3128,"context_line":"                expected_task_state\u003dtask_states.UPDATING_PASSWORD)"},{"line_number":3129,"context_line":"        except (NotImplementedError, exception.SetAdminPasswdNotSupported):"},{"line_number":3130,"context_line":"            LOG.warning(_LW(\u0027set_admin_password is not implemented \u0027"},{"line_number":3131,"context_line":"                            \u0027by this driver or guest instance.\u0027),"},{"line_number":3132,"context_line":"                        instance\u003dinstance)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_147b2d29","line":3129,"in_reply_to":"9abb7d3a_392f4a89","updated":"2016-06-01 12:37:02.000000000","message":"And only raised from specific driver.","commit_id":"da3f13b07b8a35ab55bf8ffb6a0d292c98d4800b"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"0b863d43c3ee3368e929c626bf0b4f2441a957fd","unresolved":false,"context_lines":[{"line_number":3126,"context_line":"            instance.task_state \u003d None"},{"line_number":3127,"context_line":"            instance.save("},{"line_number":3128,"context_line":"                expected_task_state\u003dtask_states.UPDATING_PASSWORD)"},{"line_number":3129,"context_line":"        except (NotImplementedError, exception.SetAdminPasswdNotSupported):"},{"line_number":3130,"context_line":"            LOG.warning(_LW(\u0027set_admin_password is not implemented \u0027"},{"line_number":3131,"context_line":"                            \u0027by this driver or guest instance.\u0027),"},{"line_number":3132,"context_line":"                        instance\u003dinstance)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_392f4a89","line":3129,"in_reply_to":"9abb7d3a_5ad6894f","updated":"2016-06-01 12:13:34.000000000","message":"check comments on previous patchsets. QemuGuestAgentNotEnabled is driver specific exception. That\u0027s why we shouldn\u0027t expose it in compute manager","commit_id":"da3f13b07b8a35ab55bf8ffb6a0d292c98d4800b"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"80f354c1b0c3b9b0692a48d0158270e2607b3811","unresolved":false,"context_lines":[{"line_number":3126,"context_line":"            instance.task_state \u003d None"},{"line_number":3127,"context_line":"            instance.save("},{"line_number":3128,"context_line":"                expected_task_state\u003dtask_states.UPDATING_PASSWORD)"},{"line_number":3129,"context_line":"        except (NotImplementedError, exception.SetAdminPasswdNotSupported):"},{"line_number":3130,"context_line":"            LOG.warning(_LW(\u0027set_admin_password is not implemented \u0027"},{"line_number":3131,"context_line":"                            \u0027by this driver or guest instance.\u0027),"},{"line_number":3132,"context_line":"                        instance\u003dinstance)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_5ad6894f","line":3129,"in_reply_to":"9abb7d3a_c274c29d","updated":"2016-06-01 09:24:20.000000000","message":"Agree, try change this to some code like:\nexcept exception.SetAdminPasswdNotSupported:\n    LOG.warning(...)\n    ...\nexcept exception.QemuGuestAgentNotEnabled:\n    LOG.warning(...)\n    ...\nexcept NotImplementedError:\n    ...\nexcept Exception:\n    # finally it will be set to ERROR state.\n    ...","commit_id":"da3f13b07b8a35ab55bf8ffb6a0d292c98d4800b"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"cf836805514c6fe6dd3ba43a97b015abc3d35d14","unresolved":false,"context_lines":[{"line_number":3144,"context_line":"            # Catch all here because this could be anything."},{"line_number":3145,"context_line":"            LOG.exception(_LE(\u0027set_admin_password failed\u0027),"},{"line_number":3146,"context_line":"                          instance\u003dinstance)"},{"line_number":3147,"context_line":"            self._set_instance_obj_error_state(context, instance)"},{"line_number":3148,"context_line":"            # We create a new exception here so that we won\u0027t"},{"line_number":3149,"context_line":"            # potentially reveal password information to the"},{"line_number":3150,"context_line":"            # API caller.  The real exception is logged above"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_89dc2347","line":3147,"range":{"start_line":3147,"start_character":12,"end_line":3147,"end_character":65},"updated":"2016-06-01 13:28:57.000000000","message":"What about directly removed this line? For the \"set_admin_password\" api, if anything run failed, there is nothing harmful to the running instance.","commit_id":"da3f13b07b8a35ab55bf8ffb6a0d292c98d4800b"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"83965ce9ecd76e040e65aa4a513123a0939310d0","unresolved":false,"context_lines":[{"line_number":3144,"context_line":"            # Catch all here because this could be anything."},{"line_number":3145,"context_line":"            LOG.exception(_LE(\u0027set_admin_password failed\u0027),"},{"line_number":3146,"context_line":"                          instance\u003dinstance)"},{"line_number":3147,"context_line":"            self._set_instance_obj_error_state(context, instance)"},{"line_number":3148,"context_line":"            # We create a new exception here so that we won\u0027t"},{"line_number":3149,"context_line":"            # potentially reveal password information to the"},{"line_number":3150,"context_line":"            # API caller.  The real exception is logged above"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_89e703ab","line":3147,"range":{"start_line":3147,"start_character":12,"end_line":3147,"end_character":65},"in_reply_to":"9abb7d3a_89dc2347","updated":"2016-06-01 13:34:32.000000000","message":"I think that it\u0027s worth to leave this. Exception in this case is way to general, so it\u0027s hard to determine what exactly failed.","commit_id":"da3f13b07b8a35ab55bf8ffb6a0d292c98d4800b"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"562a6754b625a3719c0c681004ef2a1aa65c6e8f","unresolved":false,"context_lines":[{"line_number":3126,"context_line":"            instance.task_state \u003d None"},{"line_number":3127,"context_line":"            instance.save("},{"line_number":3128,"context_line":"                expected_task_state\u003dtask_states.UPDATING_PASSWORD)"},{"line_number":3129,"context_line":"        except exception.SetAdminPasswdNotSupported:"},{"line_number":3130,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":3131,"context_line":"                LOG.warning(_LW(\u0027set_admin_password is not supported \u0027"},{"line_number":3132,"context_line":"                                \u0027by this driver or guest instance.\u0027),"}],"source_content_type":"text/x-python","patch_set":7,"id":"9abb7d3a_b0c30438","line":3129,"updated":"2016-06-02 13:47:44.000000000","message":"- exception.SetAdminPasswdNotSupported reports to user that this feature is not supported and reports to operator as level INFO that an user tried to access to that feature.\n- exception.QemuGuestAgentNotEnabled reports to user that the image is not configured with QGA / reports nothing to operator.","commit_id":"0de9e9b2e93a159f1dc9b486f94d7474c88717ef"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"81f4a2fc4d1aabbe75a20f613467faf48ff2ae5d","unresolved":false,"context_lines":[{"line_number":3126,"context_line":"            instance.task_state \u003d None"},{"line_number":3127,"context_line":"            instance.save("},{"line_number":3128,"context_line":"                expected_task_state\u003dtask_states.UPDATING_PASSWORD)"},{"line_number":3129,"context_line":"        except exception.SetAdminPasswdNotSupported:"},{"line_number":3130,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":3131,"context_line":"                LOG.warning(_LW(\u0027set_admin_password is not supported \u0027"},{"line_number":3132,"context_line":"                                \u0027by this driver or guest instance.\u0027),"}],"source_content_type":"text/x-python","patch_set":7,"id":"9abb7d3a_1f1bc11d","line":3129,"in_reply_to":"9abb7d3a_b0c30438","updated":"2016-06-03 11:30:42.000000000","message":"as discussed yesterday, I\u0027ve created new general exception class called InstanceAgentNotEnabled that is parent for exception.QemuGuestAgentNotEnabled and it\u0027s ok to handle it in compute manager.","commit_id":"0de9e9b2e93a159f1dc9b486f94d7474c88717ef"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"8d311f59edb4aceed49f3ccf8ff0ae3248bf86a9","unresolved":false,"context_lines":[{"line_number":3127,"context_line":"            instance.save("},{"line_number":3128,"context_line":"                expected_task_state\u003dtask_states.UPDATING_PASSWORD)"},{"line_number":3129,"context_line":"        except NotImplementedError:"},{"line_number":3130,"context_line":"            LOG.warning(_LW(\u0027set_admin_password is not implemented \u0027"},{"line_number":3131,"context_line":"                            \u0027by this driver or guest instance.\u0027),"},{"line_number":3132,"context_line":"                        instance\u003dinstance)"},{"line_number":3133,"context_line":"            instance.task_state \u003d None"}],"source_content_type":"text/x-python","patch_set":8,"id":"9abb7d3a_a887dd10","side":"PARENT","line":3130,"updated":"2016-06-03 12:31:47.000000000","message":"I guess a new patch to change this warning to info could be interesting.","commit_id":"11e23346b5f1ef7ca24aa24419a7465ee1f70752"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"8d311f59edb4aceed49f3ccf8ff0ae3248bf86a9","unresolved":false,"context_lines":[{"line_number":3128,"context_line":"                expected_task_state\u003dtask_states.UPDATING_PASSWORD)"},{"line_number":3129,"context_line":"        except exception.InstanceAgentNotEnabled:"},{"line_number":3130,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":3131,"context_line":"                LOG.warning(_LW(\u0027Instance agent is not supported by \u0027"},{"line_number":3132,"context_line":"                                \u0027by this guest instance.\u0027),"},{"line_number":3133,"context_line":"                            instance\u003dinstance)"},{"line_number":3134,"context_line":"                instance.task_state \u003d None"}],"source_content_type":"text/x-python","patch_set":8,"id":"9abb7d3a_6855f5c4","line":3131,"updated":"2016-06-03 12:31:47.000000000","message":"This is an error from user, that should not been reported to admin as a warning. \u0027debug\u0027 is enough.","commit_id":"95ce737c6f7a4f88dc2b52e2e32d36938fe7163a"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"b543aeee2c8bef80cbe8f9f21b1c6d1363e27f81","unresolved":false,"context_lines":[{"line_number":3128,"context_line":"                expected_task_state\u003dtask_states.UPDATING_PASSWORD)"},{"line_number":3129,"context_line":"        except exception.InstanceAgentNotEnabled:"},{"line_number":3130,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":3131,"context_line":"                LOG.warning(_LW(\u0027Instance agent is not supported by \u0027"},{"line_number":3132,"context_line":"                                \u0027by this guest instance.\u0027),"},{"line_number":3133,"context_line":"                            instance\u003dinstance)"},{"line_number":3134,"context_line":"                instance.task_state \u003d None"}],"source_content_type":"text/x-python","patch_set":8,"id":"9abb7d3a_2ece5583","line":3131,"in_reply_to":"9abb7d3a_6855f5c4","updated":"2016-06-03 13:30:28.000000000","message":"Done","commit_id":"95ce737c6f7a4f88dc2b52e2e32d36938fe7163a"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"b12f9fc7266a9b0aef0889c16bb8a2974f48f0b5","unresolved":false,"context_lines":[{"line_number":3128,"context_line":"                expected_task_state\u003dtask_states.UPDATING_PASSWORD)"},{"line_number":3129,"context_line":"        except exception.InstanceAgentNotEnabled:"},{"line_number":3130,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":3131,"context_line":"                LOG.warning(_LW(\u0027Instance agent is not supported by \u0027"},{"line_number":3132,"context_line":"                                \u0027by this guest instance.\u0027),"},{"line_number":3133,"context_line":"                            instance\u003dinstance)"},{"line_number":3134,"context_line":"                instance.task_state \u003d None"},{"line_number":3135,"context_line":"                instance.save("}],"source_content_type":"text/x-python","patch_set":8,"id":"9abb7d3a_e811e55e","line":3132,"range":{"start_line":3131,"start_character":32,"end_line":3132,"end_character":57},"updated":"2016-06-03 12:53:30.000000000","message":"This sentence is a little confused to me. What about \"Guest agent is not enabled in instance.\" ?","commit_id":"95ce737c6f7a4f88dc2b52e2e32d36938fe7163a"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"b543aeee2c8bef80cbe8f9f21b1c6d1363e27f81","unresolved":false,"context_lines":[{"line_number":3128,"context_line":"                expected_task_state\u003dtask_states.UPDATING_PASSWORD)"},{"line_number":3129,"context_line":"        except exception.InstanceAgentNotEnabled:"},{"line_number":3130,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":3131,"context_line":"                LOG.warning(_LW(\u0027Instance agent is not supported by \u0027"},{"line_number":3132,"context_line":"                                \u0027by this guest instance.\u0027),"},{"line_number":3133,"context_line":"                            instance\u003dinstance)"},{"line_number":3134,"context_line":"                instance.task_state \u003d None"},{"line_number":3135,"context_line":"                instance.save("}],"source_content_type":"text/x-python","patch_set":8,"id":"9abb7d3a_45461722","line":3132,"range":{"start_line":3131,"start_character":32,"end_line":3132,"end_character":57},"in_reply_to":"9abb7d3a_e811e55e","updated":"2016-06-03 13:30:28.000000000","message":"Done","commit_id":"95ce737c6f7a4f88dc2b52e2e32d36938fe7163a"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"8d311f59edb4aceed49f3ccf8ff0ae3248bf86a9","unresolved":false,"context_lines":[{"line_number":3136,"context_line":"                    expected_task_state\u003dtask_states.UPDATING_PASSWORD)"},{"line_number":3137,"context_line":"        except exception.SetAdminPasswdNotSupported:"},{"line_number":3138,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":3139,"context_line":"                LOG.warning(_LW(\u0027set_admin_password is not supported \u0027"},{"line_number":3140,"context_line":"                                \u0027by this driver or guest instance.\u0027),"},{"line_number":3141,"context_line":"                            instance\u003dinstance)"},{"line_number":3142,"context_line":"                instance.task_state \u003d None"}],"source_content_type":"text/x-python","patch_set":8,"id":"9abb7d3a_28ce4d83","line":3139,"updated":"2016-06-03 12:31:47.000000000","message":"This should be reported to admin as \u0027info\u0027, there is no error here or something we can prevent.","commit_id":"95ce737c6f7a4f88dc2b52e2e32d36938fe7163a"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"b543aeee2c8bef80cbe8f9f21b1c6d1363e27f81","unresolved":false,"context_lines":[{"line_number":3136,"context_line":"                    expected_task_state\u003dtask_states.UPDATING_PASSWORD)"},{"line_number":3137,"context_line":"        except exception.SetAdminPasswdNotSupported:"},{"line_number":3138,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":3139,"context_line":"                LOG.warning(_LW(\u0027set_admin_password is not supported \u0027"},{"line_number":3140,"context_line":"                                \u0027by this driver or guest instance.\u0027),"},{"line_number":3141,"context_line":"                            instance\u003dinstance)"},{"line_number":3142,"context_line":"                instance.task_state \u003d None"}],"source_content_type":"text/x-python","patch_set":8,"id":"9abb7d3a_453c57bf","line":3139,"in_reply_to":"9abb7d3a_28ce4d83","updated":"2016-06-03 13:30:28.000000000","message":"Done","commit_id":"95ce737c6f7a4f88dc2b52e2e32d36938fe7163a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e11438065a21225bc5509f83b0ad5e564d77a127","unresolved":false,"context_lines":[{"line_number":3128,"context_line":"                expected_task_state\u003dtask_states.UPDATING_PASSWORD)"},{"line_number":3129,"context_line":"        except exception.InstanceAgentNotEnabled:"},{"line_number":3130,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":3131,"context_line":"                LOG.debug(\u0027Guest agent is not enabled for the instance.\u0027,"},{"line_number":3132,"context_line":"                          instance\u003dinstance)"},{"line_number":3133,"context_line":"                instance.task_state \u003d None"},{"line_number":3134,"context_line":"                instance.save("}],"source_content_type":"text/x-python","patch_set":10,"id":"7aa08908_36e88310","line":3131,"range":{"start_line":3131,"start_character":16,"end_line":3131,"end_character":25},"updated":"2016-06-06 15:49:11.000000000","message":"Why debug here but info for SetAdminPasswordNotSupported?","commit_id":"651e5cce04977d2a57ca171ceca6ef712789f4ae"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"8bf31d5352e5824021a25fc48cce49f998873c30","unresolved":false,"context_lines":[{"line_number":3128,"context_line":"                expected_task_state\u003dtask_states.UPDATING_PASSWORD)"},{"line_number":3129,"context_line":"        except exception.InstanceAgentNotEnabled:"},{"line_number":3130,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":3131,"context_line":"                LOG.debug(\u0027Guest agent is not enabled for the instance.\u0027,"},{"line_number":3132,"context_line":"                          instance\u003dinstance)"},{"line_number":3133,"context_line":"                instance.task_state \u003d None"},{"line_number":3134,"context_line":"                instance.save("}],"source_content_type":"text/x-python","patch_set":10,"id":"7aa08908_3bb7c387","line":3131,"range":{"start_line":3131,"start_character":16,"end_line":3131,"end_character":25},"in_reply_to":"7aa08908_36e88310","updated":"2016-06-06 18:40:15.000000000","message":"As discussed on irc it\u0027s ok to use debug here, as it\u0027s up to user to upload proper image with guest agent enabled.","commit_id":"651e5cce04977d2a57ca171ceca6ef712789f4ae"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e11438065a21225bc5509f83b0ad5e564d77a127","unresolved":false,"context_lines":[{"line_number":3159,"context_line":"            # Catch all here because this could be anything."},{"line_number":3160,"context_line":"            LOG.exception(_LE(\u0027set_admin_password failed\u0027),"},{"line_number":3161,"context_line":"                          instance\u003dinstance)"},{"line_number":3162,"context_line":"            self._set_instance_obj_error_state(context, instance)"},{"line_number":3163,"context_line":"            # We create a new exception here so that we won\u0027t"},{"line_number":3164,"context_line":"            # potentially reveal password information to the"},{"line_number":3165,"context_line":"            # API caller.  The real exception is logged above"}],"source_content_type":"text/x-python","patch_set":10,"id":"7aa08908_f1960593","line":3162,"updated":"2016-06-06 15:49:11.000000000","message":"This is where the instance was set to ERROR status, and I can see how the change fixes that.\n\nHowever, the API is a call and when getting here we\u0027d return a 409 to the user. With the new change, the exceptions aren\u0027t handled in the REST API:\n\nhttps://github.com/openstack/nova/blob/master/nova/api/openstack/compute/admin_password.py#L51\n\nSo the user is now going to get a 500 back, which isn\u0027t good either. So these newly handled exceptions are going to need to also be handled in the REST API, or this code is going to need to handle them but pass back InstancePasswordSetFailed with the specific reason (I\u0027d vote for the latter).","commit_id":"651e5cce04977d2a57ca171ceca6ef712789f4ae"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"8bf31d5352e5824021a25fc48cce49f998873c30","unresolved":false,"context_lines":[{"line_number":3159,"context_line":"            # Catch all here because this could be anything."},{"line_number":3160,"context_line":"            LOG.exception(_LE(\u0027set_admin_password failed\u0027),"},{"line_number":3161,"context_line":"                          instance\u003dinstance)"},{"line_number":3162,"context_line":"            self._set_instance_obj_error_state(context, instance)"},{"line_number":3163,"context_line":"            # We create a new exception here so that we won\u0027t"},{"line_number":3164,"context_line":"            # potentially reveal password information to the"},{"line_number":3165,"context_line":"            # API caller.  The real exception is logged above"}],"source_content_type":"text/x-python","patch_set":10,"id":"7aa08908_fb953be4","line":3162,"in_reply_to":"7aa08908_f1960593","updated":"2016-06-06 18:40:15.000000000","message":"Done","commit_id":"651e5cce04977d2a57ca171ceca6ef712789f4ae"}],"nova/exception.py":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"b12f9fc7266a9b0aef0889c16bb8a2974f48f0b5","unresolved":false,"context_lines":[{"line_number":1999,"context_line":""},{"line_number":2000,"context_line":""},{"line_number":2001,"context_line":"class InstanceAgentNotEnabled(Invalid):"},{"line_number":2002,"context_line":"    msg_fmt \u003d _(\u0027Instance agent is not enabled\u0027)"},{"line_number":2003,"context_line":""},{"line_number":2004,"context_line":""},{"line_number":2005,"context_line":"class QemuGuestAgentNotEnabled(InstanceAgentNotEnabled):"}],"source_content_type":"text/x-python","patch_set":8,"id":"9abb7d3a_d3593237","line":2002,"range":{"start_line":2002,"start_character":16,"end_line":2002,"end_character":47},"updated":"2016-06-03 12:53:30.000000000","message":"This sentence is a little confused to me. What about \"Guest agent is not enabled in instance.\" ? Something like Line 1998.","commit_id":"95ce737c6f7a4f88dc2b52e2e32d36938fe7163a"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"b543aeee2c8bef80cbe8f9f21b1c6d1363e27f81","unresolved":false,"context_lines":[{"line_number":1999,"context_line":""},{"line_number":2000,"context_line":""},{"line_number":2001,"context_line":"class InstanceAgentNotEnabled(Invalid):"},{"line_number":2002,"context_line":"    msg_fmt \u003d _(\u0027Instance agent is not enabled\u0027)"},{"line_number":2003,"context_line":""},{"line_number":2004,"context_line":""},{"line_number":2005,"context_line":"class QemuGuestAgentNotEnabled(InstanceAgentNotEnabled):"}],"source_content_type":"text/x-python","patch_set":8,"id":"9abb7d3a_ae2b6532","line":2002,"range":{"start_line":2002,"start_character":16,"end_line":2002,"end_character":47},"in_reply_to":"9abb7d3a_d3593237","updated":"2016-06-03 13:30:28.000000000","message":"Done","commit_id":"95ce737c6f7a4f88dc2b52e2e32d36938fe7163a"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"54c5ea79c12d04902f2c07eaba89dc2af64ff255","unresolved":false,"context_lines":[{"line_number":2000,"context_line":""},{"line_number":2001,"context_line":"class InstanceAgentNotEnabled(Invalid):"},{"line_number":2002,"context_line":"    msg_fmt \u003d _(\u0027Guest agent is not enabled for the instance\u0027)"},{"line_number":2003,"context_line":"    safe \u003d True"},{"line_number":2004,"context_line":""},{"line_number":2005,"context_line":""},{"line_number":2006,"context_line":"class QemuGuestAgentNotEnabled(InstanceAgentNotEnabled):"}],"source_content_type":"text/x-python","patch_set":12,"id":"7aa08908_6c514936","line":2003,"range":{"start_line":2003,"start_character":11,"end_line":2003,"end_character":15},"updated":"2016-06-07 19:07:22.000000000","message":"seems this is related to EC2 API exception\ndon\u0027t know why this should be different to other exceptions we have ...","commit_id":"c6ffec00037fd0def2f072dcdc3619aa9437b32b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0d1a74ddd4661ac953cf9e3f2c5051755059eb7a","unresolved":false,"context_lines":[{"line_number":2000,"context_line":""},{"line_number":2001,"context_line":"class InstanceAgentNotEnabled(Invalid):"},{"line_number":2002,"context_line":"    msg_fmt \u003d _(\u0027Guest agent is not enabled for the instance\u0027)"},{"line_number":2003,"context_line":"    safe \u003d True"},{"line_number":2004,"context_line":""},{"line_number":2005,"context_line":""},{"line_number":2006,"context_line":"class QemuGuestAgentNotEnabled(InstanceAgentNotEnabled):"}],"source_content_type":"text/x-python","patch_set":12,"id":"7aa08908_e14390ad","line":2003,"range":{"start_line":2003,"start_character":11,"end_line":2003,"end_character":15},"in_reply_to":"7aa08908_6c514936","updated":"2016-06-12 15:07:11.000000000","message":"Yeah I don\u0027t think we really need it, but I won\u0027t block because of it.","commit_id":"c6ffec00037fd0def2f072dcdc3619aa9437b32b"}],"nova/tests/unit/api/openstack/compute/test_admin_password.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0d1a74ddd4661ac953cf9e3f2c5051755059eb7a","unresolved":false,"context_lines":[{"line_number":88,"context_line":"                          self.fake_req, \u00271\u0027, body\u003dbody)"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    @mock.patch(\u0027nova.compute.api.API.set_admin_password\u0027,"},{"line_number":91,"context_line":"                side_effect\u003dexception.SetAdminPasswdNotSupported(instance\u003d\"1\","},{"line_number":92,"context_line":"                                                                 reason\u003d\u0027\u0027))"},{"line_number":93,"context_line":"    def test_change_password_not_supported(self, mock_set_admin_password):"},{"line_number":94,"context_line":"        body \u003d {\u0027changePassword\u0027: {\u0027adminPass\u0027: \u0027test\u0027}}"},{"line_number":95,"context_line":"        self.assertRaises(webob.exc.HTTPConflict,"}],"source_content_type":"text/x-python","patch_set":12,"id":"7aa08908_2118f8d2","line":92,"range":{"start_line":91,"start_character":65,"end_line":92,"end_character":75},"updated":"2016-06-12 15:07:11.000000000","message":"I don\u0027t think you actually need these kwargs.","commit_id":"c6ffec00037fd0def2f072dcdc3619aa9437b32b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0d1a74ddd4661ac953cf9e3f2c5051755059eb7a","unresolved":false,"context_lines":[{"line_number":97,"context_line":"                          self.fake_req, \u00271\u0027, body\u003dbody)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    @mock.patch(\u0027nova.compute.api.API.set_admin_password\u0027,"},{"line_number":100,"context_line":"                side_effect\u003dexception.InstanceAgentNotEnabled(instance\u003d\"1\","},{"line_number":101,"context_line":"                                                              reason\u003d\u0027\u0027))"},{"line_number":102,"context_line":"    def test_change_password_guest_agent_disabled(self,"},{"line_number":103,"context_line":"                                                  mock_set_admin_password):"},{"line_number":104,"context_line":"        body \u003d {\u0027changePassword\u0027: {\u0027adminPass\u0027: \u0027test\u0027}}"}],"source_content_type":"text/x-python","patch_set":12,"id":"7aa08908_610e808d","line":101,"range":{"start_line":100,"start_character":62,"end_line":101,"end_character":72},"updated":"2016-06-12 15:07:11.000000000","message":"Same here.","commit_id":"c6ffec00037fd0def2f072dcdc3619aa9437b32b"}],"nova/tests/unit/compute/test_compute_mgr.py":[{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"c08fc07f29fda7f49a4f08fd4278d3652a9e9ad3","unresolved":false,"context_lines":[{"line_number":2414,"context_line":"                              instance\u003dinstance,"},{"line_number":2415,"context_line":"                              new_pass\u003dNone)"},{"line_number":2416,"context_line":""},{"line_number":2417,"context_line":"            if expected_exception \u003d\u003d exception.SetAdminPasswdNotSupported or \\"},{"line_number":2418,"context_line":"                            expected_exception \u003d\u003d NotImplementedError:"},{"line_number":2419,"context_line":"                instance_save_mock.assert_called_once_with("},{"line_number":2420,"context_line":"                    expected_task_state\u003dtask_states.UPDATING_PASSWORD)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da6ed579_88149df5","line":2417,"updated":"2016-01-12 18:25:00.000000000","message":"Please use ( ) instead of \\","commit_id":"031a806270cea5ce8629bf1a9e52308ba9e8874b"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"5d1f50badffa155d13d2e1c24661d8371b74214f","unresolved":false,"context_lines":[{"line_number":2414,"context_line":"                              instance\u003dinstance,"},{"line_number":2415,"context_line":"                              new_pass\u003dNone)"},{"line_number":2416,"context_line":""},{"line_number":2417,"context_line":"            if expected_exception \u003d\u003d exception.SetAdminPasswdNotSupported or \\"},{"line_number":2418,"context_line":"                            expected_exception \u003d\u003d NotImplementedError:"},{"line_number":2419,"context_line":"                instance_save_mock.assert_called_once_with("},{"line_number":2420,"context_line":"                    expected_task_state\u003dtask_states.UPDATING_PASSWORD)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da6ed579_4dff6d34","line":2417,"in_reply_to":"da6ed579_88149df5","updated":"2016-01-13 12:13:24.000000000","message":"Done","commit_id":"031a806270cea5ce8629bf1a9e52308ba9e8874b"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"b4685ddad62ea79f64530c6fa923d88f00fb7003","unresolved":false,"context_lines":[{"line_number":2415,"context_line":"                              new_pass\u003dNone)"},{"line_number":2416,"context_line":""},{"line_number":2417,"context_line":"            if (expected_exception \u003d\u003d exception.SetAdminPasswdNotSupported or"},{"line_number":2418,"context_line":"                            expected_exception \u003d\u003d NotImplementedError):"},{"line_number":2419,"context_line":"                instance_save_mock.assert_called_once_with("},{"line_number":2420,"context_line":"                    expected_task_state\u003dtask_states.UPDATING_PASSWORD)"},{"line_number":2421,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"da6ed579_951e5e6e","line":2418,"updated":"2016-01-15 04:44:01.000000000","message":"This change is not necessary. You only ever pass NotImplementedError as expected_exception...","commit_id":"a741893bbcf7b971456da3dee3de06d089b152e8"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"6c2c3ee0c1cc1575ef0434677d688c421e3973bc","unresolved":false,"context_lines":[{"line_number":2415,"context_line":"                              new_pass\u003dNone)"},{"line_number":2416,"context_line":""},{"line_number":2417,"context_line":"            if (expected_exception \u003d\u003d exception.SetAdminPasswdNotSupported or"},{"line_number":2418,"context_line":"                            expected_exception \u003d\u003d NotImplementedError):"},{"line_number":2419,"context_line":"                instance_save_mock.assert_called_once_with("},{"line_number":2420,"context_line":"                    expected_task_state\u003dtask_states.UPDATING_PASSWORD)"},{"line_number":2421,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"da6ed579_8e9e44b7","line":2418,"in_reply_to":"da6ed579_951e5e6e","updated":"2016-01-15 08:41:14.000000000","message":"Good catch, fixed.","commit_id":"a741893bbcf7b971456da3dee3de06d089b152e8"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"870ee1cad9e24ac0199373c005f5c618b1bb7bd9","unresolved":false,"context_lines":[{"line_number":2628,"context_line":""},{"line_number":2629,"context_line":"            if (expected_exception \u003d\u003d exception.SetAdminPasswdNotSupported or"},{"line_number":2630,"context_line":"                expected_exception \u003d\u003d exception.InstanceAgentNotEnabled or"},{"line_number":2631,"context_line":"                    expected_exception \u003d\u003d NotImplementedError):"},{"line_number":2632,"context_line":"                instance_save_mock.assert_called_once_with("},{"line_number":2633,"context_line":"                    expected_task_state\u003dtask_states.UPDATING_PASSWORD)"},{"line_number":2634,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":9,"id":"9abb7d3a_f8b24ee4","line":2631,"updated":"2016-06-03 13:44:17.000000000","message":"Indentation looks weird here","commit_id":"170f1031928c5eaea87d50aa030d5d8bb61b1b46"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"b2eac1fcaaa4988fc23ff54dc58104d10a9d9868","unresolved":false,"context_lines":[{"line_number":2628,"context_line":""},{"line_number":2629,"context_line":"            if (expected_exception \u003d\u003d exception.SetAdminPasswdNotSupported or"},{"line_number":2630,"context_line":"                expected_exception \u003d\u003d exception.InstanceAgentNotEnabled or"},{"line_number":2631,"context_line":"                    expected_exception \u003d\u003d NotImplementedError):"},{"line_number":2632,"context_line":"                instance_save_mock.assert_called_once_with("},{"line_number":2633,"context_line":"                    expected_task_state\u003dtask_states.UPDATING_PASSWORD)"},{"line_number":2634,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":9,"id":"9abb7d3a_56024b3f","line":2631,"in_reply_to":"9abb7d3a_f8b24ee4","updated":"2016-06-03 14:03:51.000000000","message":"Done","commit_id":"170f1031928c5eaea87d50aa030d5d8bb61b1b46"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"80f354c1b0c3b9b0692a48d0158270e2607b3811","unresolved":false,"context_lines":[{"line_number":1578,"context_line":"                self._attach_sriov_ports(context, instance, guest)"},{"line_number":1579,"context_line":""},{"line_number":1580,"context_line":"    def _can_set_admin_password(self, image_meta):"},{"line_number":1581,"context_line":"        if (CONF.libvirt.virt_type not in (\u0027kvm\u0027, \u0027qemu\u0027) or"},{"line_number":1582,"context_line":"            not self._host.has_min_version(MIN_LIBVIRT_SET_ADMIN_PASSWD)):"},{"line_number":1583,"context_line":"            raise exception.SetAdminPasswdNotSupported()"},{"line_number":1584,"context_line":""},{"line_number":1585,"context_line":"        hw_qga \u003d image_meta.properties.get(\u0027hw_qemu_guest_agent\u0027, \u0027\u0027)"},{"line_number":1586,"context_line":"        if not strutils.bool_from_string(hw_qga):"},{"line_number":1587,"context_line":"            raise exception.QemuGuestAgentNotEnabled()"},{"line_number":1588,"context_line":""},{"line_number":1589,"context_line":"    def set_admin_password(self, instance, new_pass):"},{"line_number":1590,"context_line":"        self._can_set_admin_password(instance.image_meta)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_573784fe","side":"PARENT","line":1587,"range":{"start_line":1581,"start_character":0,"end_line":1587,"end_character":54},"updated":"2016-06-01 09:24:20.000000000","message":"Mixing these two exceptions may add some untraceable situation. What if virt_type is KVM and libvirt version is higher than 1.2.16, only because the image does not enable the qemu agent? Then, it is supported, but user will get an exception said \u0027Set admin password is not supported\u0027.","commit_id":"25fdf64fdce04f523aa392884060f60f433cbbac"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"0b863d43c3ee3368e929c626bf0b4f2441a957fd","unresolved":false,"context_lines":[{"line_number":1578,"context_line":"                self._attach_sriov_ports(context, instance, guest)"},{"line_number":1579,"context_line":""},{"line_number":1580,"context_line":"    def _can_set_admin_password(self, image_meta):"},{"line_number":1581,"context_line":"        if (CONF.libvirt.virt_type not in (\u0027kvm\u0027, \u0027qemu\u0027) or"},{"line_number":1582,"context_line":"            not self._host.has_min_version(MIN_LIBVIRT_SET_ADMIN_PASSWD)):"},{"line_number":1583,"context_line":"            raise exception.SetAdminPasswdNotSupported()"},{"line_number":1584,"context_line":""},{"line_number":1585,"context_line":"        hw_qga \u003d image_meta.properties.get(\u0027hw_qemu_guest_agent\u0027, \u0027\u0027)"},{"line_number":1586,"context_line":"        if not strutils.bool_from_string(hw_qga):"},{"line_number":1587,"context_line":"            raise exception.QemuGuestAgentNotEnabled()"},{"line_number":1588,"context_line":""},{"line_number":1589,"context_line":"    def set_admin_password(self, instance, new_pass):"},{"line_number":1590,"context_line":"        self._can_set_admin_password(instance.image_meta)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_961ba580","side":"PARENT","line":1587,"range":{"start_line":1581,"start_character":0,"end_line":1587,"end_character":54},"in_reply_to":"9abb7d3a_573784fe","updated":"2016-06-01 12:13:34.000000000","message":"Not sure I understand what you are meaning. it would fail prior to this change and after it. So this patch leaves things as is, just changing exception type from QemuGuestAgentNotEnabled to SetAdminPasswdNotSupported.","commit_id":"25fdf64fdce04f523aa392884060f60f433cbbac"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"5f1fa3729026933b33358b97a7daa6d44325635a","unresolved":false,"context_lines":[{"line_number":1582,"context_line":"        if (CONF.libvirt.virt_type not in (\u0027kvm\u0027, \u0027qemu\u0027) or"},{"line_number":1583,"context_line":"                not self._host.has_min_version(MIN_LIBVIRT_SET_ADMIN_PASSWD) or"},{"line_number":1584,"context_line":"                not strutils.bool_from_string(hw_qga)):"},{"line_number":1585,"context_line":"            raise exception.SetAdminPasswdNotSupported()"},{"line_number":1586,"context_line":""},{"line_number":1587,"context_line":"    def set_admin_password(self, instance, new_pass):"},{"line_number":1588,"context_line":"        self._can_set_admin_password(instance.image_meta)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_3458f187","line":1585,"range":{"start_line":1585,"start_character":12,"end_line":1585,"end_character":56},"updated":"2016-06-01 12:37:02.000000000","message":"I mean here you mix the two exceptions condition which will hide some scenario like:\nvirt_type \u003d kvm\nlibvirt_version \u003e\u003d 1.2.16\nhw_qemu_guest_agent \u003d no/None/\u0027\u0027","commit_id":"da3f13b07b8a35ab55bf8ffb6a0d292c98d4800b"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"d41bc61570a4dc3530bc626cbd774cd5222120ca","unresolved":false,"context_lines":[{"line_number":1582,"context_line":"        if (CONF.libvirt.virt_type not in (\u0027kvm\u0027, \u0027qemu\u0027) or"},{"line_number":1583,"context_line":"                not self._host.has_min_version(MIN_LIBVIRT_SET_ADMIN_PASSWD) or"},{"line_number":1584,"context_line":"                not strutils.bool_from_string(hw_qga)):"},{"line_number":1585,"context_line":"            raise exception.SetAdminPasswdNotSupported()"},{"line_number":1586,"context_line":""},{"line_number":1587,"context_line":"    def set_admin_password(self, instance, new_pass):"},{"line_number":1588,"context_line":"        self._can_set_admin_password(instance.image_meta)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_b41b4180","line":1585,"range":{"start_line":1585,"start_character":12,"end_line":1585,"end_character":56},"in_reply_to":"9abb7d3a_3458f187","updated":"2016-06-01 12:39:33.000000000","message":"It\u0027s supported, but not enabled.","commit_id":"da3f13b07b8a35ab55bf8ffb6a0d292c98d4800b"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"83965ce9ecd76e040e65aa4a513123a0939310d0","unresolved":false,"context_lines":[{"line_number":1582,"context_line":"        if (CONF.libvirt.virt_type not in (\u0027kvm\u0027, \u0027qemu\u0027) or"},{"line_number":1583,"context_line":"                not self._host.has_min_version(MIN_LIBVIRT_SET_ADMIN_PASSWD) or"},{"line_number":1584,"context_line":"                not strutils.bool_from_string(hw_qga)):"},{"line_number":1585,"context_line":"            raise exception.SetAdminPasswdNotSupported()"},{"line_number":1586,"context_line":""},{"line_number":1587,"context_line":"    def set_admin_password(self, instance, new_pass):"},{"line_number":1588,"context_line":"        self._can_set_admin_password(instance.image_meta)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_09583355","line":1585,"range":{"start_line":1585,"start_character":12,"end_line":1585,"end_character":56},"in_reply_to":"9abb7d3a_498b5b1f","updated":"2016-06-01 13:34:32.000000000","message":"what benifits will we get by leaving this exception? we should start to handle it in compute manager then. Which makes us to expose hypervisor specific details","commit_id":"da3f13b07b8a35ab55bf8ffb6a0d292c98d4800b"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"cf836805514c6fe6dd3ba43a97b015abc3d35d14","unresolved":false,"context_lines":[{"line_number":1582,"context_line":"        if (CONF.libvirt.virt_type not in (\u0027kvm\u0027, \u0027qemu\u0027) or"},{"line_number":1583,"context_line":"                not self._host.has_min_version(MIN_LIBVIRT_SET_ADMIN_PASSWD) or"},{"line_number":1584,"context_line":"                not strutils.bool_from_string(hw_qga)):"},{"line_number":1585,"context_line":"            raise exception.SetAdminPasswdNotSupported()"},{"line_number":1586,"context_line":""},{"line_number":1587,"context_line":"    def set_admin_password(self, instance, new_pass):"},{"line_number":1588,"context_line":"        self._can_set_admin_password(instance.image_meta)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_498b5b1f","line":1585,"range":{"start_line":1585,"start_character":12,"end_line":1585,"end_character":56},"in_reply_to":"9abb7d3a_8fd6e84c","updated":"2016-06-01 13:28:57.000000000","message":"I\u0027d prefer not to hide the \"QemuGuestAgentNotEnabled\" situation.","commit_id":"da3f13b07b8a35ab55bf8ffb6a0d292c98d4800b"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"857ed0529f010095684d7f2014498f6921c39924","unresolved":false,"context_lines":[{"line_number":1582,"context_line":"        if (CONF.libvirt.virt_type not in (\u0027kvm\u0027, \u0027qemu\u0027) or"},{"line_number":1583,"context_line":"                not self._host.has_min_version(MIN_LIBVIRT_SET_ADMIN_PASSWD) or"},{"line_number":1584,"context_line":"                not strutils.bool_from_string(hw_qga)):"},{"line_number":1585,"context_line":"            raise exception.SetAdminPasswdNotSupported()"},{"line_number":1586,"context_line":""},{"line_number":1587,"context_line":"    def set_admin_password(self, instance, new_pass):"},{"line_number":1588,"context_line":"        self._can_set_admin_password(instance.image_meta)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_8fd6e84c","line":1585,"range":{"start_line":1585,"start_character":12,"end_line":1585,"end_character":56},"in_reply_to":"9abb7d3a_b41b4180","updated":"2016-06-01 12:43:56.000000000","message":"prior to this change scenario you mentioned above will fail. I don\u0027t understand, why I shouldn\u0027t retain this behaviour.","commit_id":"da3f13b07b8a35ab55bf8ffb6a0d292c98d4800b"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"562a6754b625a3719c0c681004ef2a1aa65c6e8f","unresolved":false,"context_lines":[{"line_number":1582,"context_line":"        if (CONF.libvirt.virt_type not in (\u0027kvm\u0027, \u0027qemu\u0027) or"},{"line_number":1583,"context_line":"                not self._host.has_min_version(MIN_LIBVIRT_SET_ADMIN_PASSWD) or"},{"line_number":1584,"context_line":"                not strutils.bool_from_string(hw_qga)):"},{"line_number":1585,"context_line":"            raise exception.SetAdminPasswdNotSupported()"},{"line_number":1586,"context_line":""},{"line_number":1587,"context_line":"    def set_admin_password(self, instance, new_pass):"},{"line_number":1588,"context_line":"        self._can_set_admin_password(instance.image_meta)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9abb7d3a_102490ad","line":1585,"updated":"2016-06-02 13:47:44.000000000","message":"You can\u0027t merge exception.QemuGuestAgentNotEnabled to exception.SetAdminPasswdNotSupported, The first one indicate that the image provided by user does not enable QGA whereas the second one indicate the host can\u0027t handle the request.","commit_id":"0de9e9b2e93a159f1dc9b486f94d7474c88717ef"}]}
