)]}'
{"nova/compute/manager.py":[{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"7a784a5b6bf2661fa2f3a0a6f5b906bd6e9ff3a3","unresolved":false,"context_lines":[{"line_number":1903,"context_line":"        if instance[\u0027power_state\u0027] !\u003d power_state.RUNNING:"},{"line_number":1904,"context_line":"            state \u003d instance[\u0027power_state\u0027]"},{"line_number":1905,"context_line":"            running \u003d power_state.RUNNING"},{"line_number":1906,"context_line":"            LOG.warn(_(\u0027trying to snapshot a non-running \u0027"},{"line_number":1907,"context_line":"                       \u0027instance: (state: %(state)s \u0027"},{"line_number":1908,"context_line":"                       \u0027expected: %(running)s)\u0027) % locals(),"},{"line_number":1909,"context_line":"                     instance\u003dinstance)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2Fvgc%3D","line":1906,"updated":"2013-06-23 13:56:43.000000000","message":"Why just log a warning here rather than fail the request - will the resutling snapshot still be usable from all hypervisors?\n\nThe API layer checks for Active or Paused - which seems to imply that a stopped VM is not valid.   An entry in the actions log showing a failure would seem more appropriate","commit_id":"9bd5780504f217b1e810cd15ecfb0e07f9784ec0"},{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"301c58b78cd246ee82b3731c33a78243ac2a9738","unresolved":false,"context_lines":[{"line_number":1903,"context_line":"        if instance[\u0027power_state\u0027] !\u003d power_state.RUNNING:"},{"line_number":1904,"context_line":"            state \u003d instance[\u0027power_state\u0027]"},{"line_number":1905,"context_line":"            running \u003d power_state.RUNNING"},{"line_number":1906,"context_line":"            LOG.warn(_(\u0027trying to snapshot a non-running \u0027"},{"line_number":1907,"context_line":"                       \u0027instance: (state: %(state)s \u0027"},{"line_number":1908,"context_line":"                       \u0027expected: %(running)s)\u0027) % locals(),"},{"line_number":1909,"context_line":"                     instance\u003dinstance)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2Fj7g%3D","line":1906,"in_reply_to":"AAAAPn%2F%2Fvgc%3D","updated":"2013-06-27 18:54:46.000000000","message":"i just copied exactly what regular snapshot does here","commit_id":"9bd5780504f217b1e810cd15ecfb0e07f9784ec0"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"f10839bb1f79a1cf426a03c895f6bb64a63c977f","unresolved":false,"context_lines":[{"line_number":1905,"context_line":"            running \u003d power_state.RUNNING"},{"line_number":1906,"context_line":"            LOG.warn(_(\u0027trying to snapshot a non-running \u0027"},{"line_number":1907,"context_line":"                       \u0027instance: (state: %(state)s \u0027"},{"line_number":1908,"context_line":"                       \u0027expected: %(running)s)\u0027) % locals(),"},{"line_number":1909,"context_line":"                     instance\u003dinstance)"},{"line_number":1910,"context_line":""},{"line_number":1911,"context_line":"        self._notify_about_instance_usage("}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2FviE%3D","line":1908,"updated":"2013-06-23 12:56:29.000000000","message":"Minor nit - please use dictionary instead of locals","commit_id":"9bd5780504f217b1e810cd15ecfb0e07f9784ec0"},{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"301c58b78cd246ee82b3731c33a78243ac2a9738","unresolved":false,"context_lines":[{"line_number":1905,"context_line":"            running \u003d power_state.RUNNING"},{"line_number":1906,"context_line":"            LOG.warn(_(\u0027trying to snapshot a non-running \u0027"},{"line_number":1907,"context_line":"                       \u0027instance: (state: %(state)s \u0027"},{"line_number":1908,"context_line":"                       \u0027expected: %(running)s)\u0027) % locals(),"},{"line_number":1909,"context_line":"                     instance\u003dinstance)"},{"line_number":1910,"context_line":""},{"line_number":1911,"context_line":"        self._notify_about_instance_usage("}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2Fj7c%3D","line":1908,"in_reply_to":"AAAAPn%2F%2FviE%3D","updated":"2013-06-27 18:54:46.000000000","message":"will fix","commit_id":"9bd5780504f217b1e810cd15ecfb0e07f9784ec0"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"f10839bb1f79a1cf426a03c895f6bb64a63c977f","unresolved":false,"context_lines":[{"line_number":1924,"context_line":"        # we\u0027re doing a fresh update here, we\u0027ll grab the changes."},{"line_number":1925,"context_line":""},{"line_number":1926,"context_line":"        instance \u003d self._instance_update(context, instance[\u0027uuid\u0027],"},{"line_number":1927,"context_line":"                task_state\u003dNone,"},{"line_number":1928,"context_line":"                expected_task_state\u003dtask_states.IMAGE_UPLOADING)"},{"line_number":1929,"context_line":""},{"line_number":1930,"context_line":"        self._notify_about_instance_usage("}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2FviA%3D","line":1927,"updated":"2013-06-23 12:56:29.000000000","message":"Should the task state be - IMAGE_LIVE_SNAPSHOT?","commit_id":"9bd5780504f217b1e810cd15ecfb0e07f9784ec0"},{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"301c58b78cd246ee82b3731c33a78243ac2a9738","unresolved":false,"context_lines":[{"line_number":1924,"context_line":"        # we\u0027re doing a fresh update here, we\u0027ll grab the changes."},{"line_number":1925,"context_line":""},{"line_number":1926,"context_line":"        instance \u003d self._instance_update(context, instance[\u0027uuid\u0027],"},{"line_number":1927,"context_line":"                task_state\u003dNone,"},{"line_number":1928,"context_line":"                expected_task_state\u003dtask_states.IMAGE_UPLOADING)"},{"line_number":1929,"context_line":""},{"line_number":1930,"context_line":"        self._notify_about_instance_usage("}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2Fj7Q%3D","line":1927,"in_reply_to":"AAAAPn%2F%2FvgQ%3D","updated":"2013-06-27 18:54:46.000000000","message":"copied from snaphsot, it will be UPLOADING at this place","commit_id":"9bd5780504f217b1e810cd15ecfb0e07f9784ec0"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"7a784a5b6bf2661fa2f3a0a6f5b906bd6e9ff3a3","unresolved":false,"context_lines":[{"line_number":1924,"context_line":"        # we\u0027re doing a fresh update here, we\u0027ll grab the changes."},{"line_number":1925,"context_line":""},{"line_number":1926,"context_line":"        instance \u003d self._instance_update(context, instance[\u0027uuid\u0027],"},{"line_number":1927,"context_line":"                task_state\u003dNone,"},{"line_number":1928,"context_line":"                expected_task_state\u003dtask_states.IMAGE_UPLOADING)"},{"line_number":1929,"context_line":""},{"line_number":1930,"context_line":"        self._notify_about_instance_usage("}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2FvgQ%3D","line":1927,"in_reply_to":"AAAAPn%2F%2FviA%3D","updated":"2013-06-23 13:56:43.000000000","message":"I\u0027m guessing the driver is going to move the state on (see the change in the fake driver) - but it could fail before it does so, and so the task state could be either IMAGE_LIVE_SNAPSHOT or IMAGE_UPLOADING","commit_id":"9bd5780504f217b1e810cd15ecfb0e07f9784ec0"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"fd81cdf4062dc39891a614691e48a42efa83ed0c","unresolved":false,"context_lines":[{"line_number":1905,"context_line":"        :param image_id: glance.db.sqlalchemy.models.Image.Id"},{"line_number":1906,"context_line":"        :param instance: an Instance dict"},{"line_number":1907,"context_line":"        \"\"\""},{"line_number":1908,"context_line":"        context \u003d context.elevated()"},{"line_number":1909,"context_line":""},{"line_number":1910,"context_line":"        current_power_state \u003d self._get_power_state(context, instance)"},{"line_number":1911,"context_line":"        instance \u003d self._instance_update(context, instance[\u0027uuid\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2FVaY%3D","line":1908,"updated":"2013-07-03 20:09:31.000000000","message":"Does the entire method need an elevated context?","commit_id":"865de217c8332882e88daddecef676267d262a8f"},{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"9d0061da6b535a8992a9df828b945161cee62383","unresolved":false,"context_lines":[{"line_number":1905,"context_line":"        :param image_id: glance.db.sqlalchemy.models.Image.Id"},{"line_number":1906,"context_line":"        :param instance: an Instance dict"},{"line_number":1907,"context_line":"        \"\"\""},{"line_number":1908,"context_line":"        context \u003d context.elevated()"},{"line_number":1909,"context_line":""},{"line_number":1910,"context_line":"        current_power_state \u003d self._get_power_state(context, instance)"},{"line_number":1911,"context_line":"        instance \u003d self._instance_update(context, instance[\u0027uuid\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2F1bM%3D","line":1908,"in_reply_to":"AAAAP3%2F%2F4AE%3D","updated":"2013-07-10 17:08:03.000000000","message":"so we elevate at the beginning of many of the compute manager methods (e.g. see snapshot_instance). I don\u0027t see the reason to make this one any different","commit_id":"865de217c8332882e88daddecef676267d262a8f"},{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"595f8e531cd3aaaa325a794a1f7df4123f6ad68d","unresolved":false,"context_lines":[{"line_number":1905,"context_line":"        :param image_id: glance.db.sqlalchemy.models.Image.Id"},{"line_number":1906,"context_line":"        :param instance: an Instance dict"},{"line_number":1907,"context_line":"        \"\"\""},{"line_number":1908,"context_line":"        context \u003d context.elevated()"},{"line_number":1909,"context_line":""},{"line_number":1910,"context_line":"        current_power_state \u003d self._get_power_state(context, instance)"},{"line_number":1911,"context_line":"        instance \u003d self._instance_update(context, instance[\u0027uuid\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2F4AE%3D","line":1908,"in_reply_to":"AAAAPn%2F%2FVaY%3D","updated":"2013-07-09 23:41:08.000000000","message":"Good point.  It doesn\u0027t look like it.  It would be good to localize it to where it\u0027s really needed.","commit_id":"865de217c8332882e88daddecef676267d262a8f"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"fd81cdf4062dc39891a614691e48a42efa83ed0c","unresolved":false,"context_lines":[{"line_number":1938,"context_line":"        # The instance could have changed from the driver.  But since"},{"line_number":1939,"context_line":"        # we\u0027re doing a fresh update here, we\u0027ll grab the changes."},{"line_number":1940,"context_line":""},{"line_number":1941,"context_line":"        instance \u003d self._instance_update(context, instance[\u0027uuid\u0027],"},{"line_number":1942,"context_line":"                task_state\u003dNone,"},{"line_number":1943,"context_line":"                expected_task_state\u003dtask_states.IMAGE_UPLOADING)"},{"line_number":1944,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2FVZ0%3D","line":1941,"updated":"2013-07-03 20:09:31.000000000","message":"Hmm.  The update_task_state wrapper method above looks good enough for general re-use. (DRY)","commit_id":"865de217c8332882e88daddecef676267d262a8f"},{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"87b32ec24e20b1e0ea3322ccd742955f236e0e72","unresolved":false,"context_lines":[{"line_number":1938,"context_line":"        # The instance could have changed from the driver.  But since"},{"line_number":1939,"context_line":"        # we\u0027re doing a fresh update here, we\u0027ll grab the changes."},{"line_number":1940,"context_line":""},{"line_number":1941,"context_line":"        instance \u003d self._instance_update(context, instance[\u0027uuid\u0027],"},{"line_number":1942,"context_line":"                task_state\u003dNone,"},{"line_number":1943,"context_line":"                expected_task_state\u003dtask_states.IMAGE_UPLOADING)"},{"line_number":1944,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2F1Z0%3D","line":1941,"in_reply_to":"AAAAP3%2F%2F1bE%3D","updated":"2013-07-10 17:12:28.000000000","message":"actually this is using the local expected_task_state which is different in each method. I could convert it to using some kind of functools.partial or a method that returns a method, but since the code is only two lines that seems like it will be less readable.","commit_id":"865de217c8332882e88daddecef676267d262a8f"},{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"9d0061da6b535a8992a9df828b945161cee62383","unresolved":false,"context_lines":[{"line_number":1938,"context_line":"        # The instance could have changed from the driver.  But since"},{"line_number":1939,"context_line":"        # we\u0027re doing a fresh update here, we\u0027ll grab the changes."},{"line_number":1940,"context_line":""},{"line_number":1941,"context_line":"        instance \u003d self._instance_update(context, instance[\u0027uuid\u0027],"},{"line_number":1942,"context_line":"                task_state\u003dNone,"},{"line_number":1943,"context_line":"                expected_task_state\u003dtask_states.IMAGE_UPLOADING)"},{"line_number":1944,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2F1bE%3D","line":1941,"in_reply_to":"AAAAPn%2F%2FVZ0%3D","updated":"2013-07-10 17:08:03.000000000","message":"ok will move it","commit_id":"865de217c8332882e88daddecef676267d262a8f"}]}
