)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"51b4e2350bbf744b6aaec9e1c9c7c298d5a44d40","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP]Refactor volume status in managing vol"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This feature introduce \u0027manage_starting\u0027 and"},{"line_number":10,"context_line":"\u0027error_managing\u0027 status into managing process"},{"line_number":11,"context_line":"to fix the quota decrease issue when some"},{"line_number":12,"context_line":"exception is raised in c-vol. If volume is"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1aa78d24_1df17f6b","line":9,"range":{"start_line":9,"start_character":24,"end_line":9,"end_character":39},"updated":"2016-07-07 13:14:09.000000000","message":"\"managing\" sounds a lot better. :)","commit_id":"f200fa03bfe7aa7c9b633584b917c69b6953db42"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"45866c6647607318fa16e30fe4e47f6da6ece16e","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP]Refactor volume status in managing vol"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This feature introduce \u0027manage_starting\u0027 and"},{"line_number":10,"context_line":"\u0027error_managing\u0027 status into managing process"},{"line_number":11,"context_line":"to fix the quota decrease issue when some"},{"line_number":12,"context_line":"exception is raised in c-vol. If volume is"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1aa78d24_4f2af130","line":9,"range":{"start_line":9,"start_character":24,"end_line":9,"end_character":39},"in_reply_to":"1aa78d24_1df17f6b","updated":"2016-07-14 09:41:39.000000000","message":"okay, I\u0027m fine with it.","commit_id":"f200fa03bfe7aa7c9b633584b917c69b6953db42"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"080cdbfab0d7b12d8df1332fdbed681d1d232632","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: I5887c5f2ded6d6a18f497a018d5bf6105bc5afd7"},{"line_number":21,"context_line":"Closes-Bug: #1504007"},{"line_number":22,"context_line":"Implements: blueprint refactor volume status in managing vol."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"dada55a8_487d891b","line":22,"range":{"start_line":22,"start_character":22,"end_line":22,"end_character":60},"updated":"2016-07-19 11:23:12.000000000","message":"Not a valid blueprint name, please fix it.","commit_id":"1cd4b5f15017cfcd2061202b8861833b29babf78"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"bbe9452056e38d53cca29875b2fce7329e72c0fc","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: I5887c5f2ded6d6a18f497a018d5bf6105bc5afd7"},{"line_number":21,"context_line":"Closes-Bug: #1504007"},{"line_number":22,"context_line":"Implements: blueprint refactor volume status in managing vol."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"dada55a8_fdba1822","line":22,"range":{"start_line":22,"start_character":22,"end_line":22,"end_character":60},"in_reply_to":"dada55a8_487d891b","updated":"2016-07-21 01:00:23.000000000","message":"Done","commit_id":"1cd4b5f15017cfcd2061202b8861833b29babf78"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9eff65eb5d3b5de485d51d543105af56b4538a28","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Status are changed to \u0027managing\u0027 and \u0027error_managing\u0027"},{"line_number":19,"context_line":"from 3.15 api version."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"APIImpact:"},{"line_number":22,"context_line":"Change volume status \u0027creating\u0027 and \u0027error\u0027"},{"line_number":23,"context_line":"to \u0027managing\u0027 and \u0027error_managing\u0027 from"},{"line_number":24,"context_line":"3.15 api version."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Change-Id: I5887c5f2ded6d6a18f497a018d5bf6105bc5afd7"},{"line_number":27,"context_line":"Closes-Bug: #1504007"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":19,"id":"9a89bdaa_6da89b20","line":24,"range":{"start_line":21,"start_character":0,"end_line":24,"end_character":17},"updated":"2016-09-05 11:27:12.000000000","message":"This isn\u0027t true now.","commit_id":"da8d1b861b08d4c34a48ebd045139e92547ded73"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"450912aaaffcfafd8eacf1a326b229ed164d9818","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Status are changed to \u0027managing\u0027 and \u0027error_managing\u0027"},{"line_number":19,"context_line":"from 3.15 api version."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"APIImpact:"},{"line_number":22,"context_line":"Change volume status \u0027creating\u0027 and \u0027error\u0027"},{"line_number":23,"context_line":"to \u0027managing\u0027 and \u0027error_managing\u0027 from"},{"line_number":24,"context_line":"3.15 api version."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Change-Id: I5887c5f2ded6d6a18f497a018d5bf6105bc5afd7"},{"line_number":27,"context_line":"Closes-Bug: #1504007"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":19,"id":"9a89bdaa_6c6ec730","line":24,"range":{"start_line":21,"start_character":0,"end_line":24,"end_character":17},"in_reply_to":"9a89bdaa_6da89b20","updated":"2016-09-06 00:36:06.000000000","message":"oh, forgot this, update it soon.","commit_id":"da8d1b861b08d4c34a48ebd045139e92547ded73"}],"cinder/api/contrib/admin_actions.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"51b4e2350bbf744b6aaec9e1c9c7c298d5a44d40","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    # FIXME(clayg): this will be hard to keep up-to-date"},{"line_number":42,"context_line":"    # Concrete classes can expand or over-ride"},{"line_number":43,"context_line":"    valid_status \u003d set([\u0027creating\u0027,"},{"line_number":44,"context_line":"                        \u0027available\u0027,"},{"line_number":45,"context_line":"                        \u0027deleting\u0027,"},{"line_number":46,"context_line":"                        \u0027error\u0027,"},{"line_number":47,"context_line":"                        \u0027error_deleting\u0027,"},{"line_number":48,"context_line":"                        \u0027error_managing\u0027, ])"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":51,"context_line":"        super(AdminController, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_3dea7b74","line":48,"range":{"start_line":43,"start_character":0,"end_line":48,"end_character":44},"updated":"2016-07-07 13:14:09.000000000","message":"Aren\u0027t we missing \"manage_starting\" (or \"managing\" as I suggest) here?","commit_id":"f200fa03bfe7aa7c9b633584b917c69b6953db42"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"45866c6647607318fa16e30fe4e47f6da6ece16e","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    # FIXME(clayg): this will be hard to keep up-to-date"},{"line_number":42,"context_line":"    # Concrete classes can expand or over-ride"},{"line_number":43,"context_line":"    valid_status \u003d set([\u0027creating\u0027,"},{"line_number":44,"context_line":"                        \u0027available\u0027,"},{"line_number":45,"context_line":"                        \u0027deleting\u0027,"},{"line_number":46,"context_line":"                        \u0027error\u0027,"},{"line_number":47,"context_line":"                        \u0027error_deleting\u0027,"},{"line_number":48,"context_line":"                        \u0027error_managing\u0027, ])"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":51,"context_line":"        super(AdminController, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_ef011d08","line":48,"range":{"start_line":43,"start_character":0,"end_line":48,"end_character":44},"in_reply_to":"1aa78d24_3dea7b74","updated":"2016-07-14 09:41:39.000000000","message":"emm, it should be here","commit_id":"f200fa03bfe7aa7c9b633584b917c69b6953db42"}],"cinder/api/v2/views/volumes.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"511734d8bd9711a319865e883a9a50bde083d5a5","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        # NOTE(wanghao): for fixing bug 1504007, we introduce \u0027managing\u0027 and"},{"line_number":54,"context_line":"        # \u0027error_managing\u0027 status into managing process, but still expose"},{"line_number":55,"context_line":"        # \u0027creating\u0027 and \u0027error\u0027 status to user for API compatibility."},{"line_number":56,"context_line":"        vol_status \u003d volume.get(\u0027status\u0027)"},{"line_number":57,"context_line":"        if vol_status \u003d\u003d \u0027managing\u0027:"},{"line_number":58,"context_line":"            vol_status \u003d \u0027creating\u0027"},{"line_number":59,"context_line":"        elif vol_status \u003d\u003d \u0027error_managing\u0027:"},{"line_number":60,"context_line":"            vol_status \u003d \u0027error\u0027"},{"line_number":61,"context_line":"        return vol_status"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def detail(self, request, volume):"},{"line_number":64,"context_line":"        \"\"\"Detailed view of a single volume.\"\"\""}],"source_content_type":"text/x-python","patch_set":20,"id":"9a89bdaa_352a312d","line":61,"range":{"start_line":56,"start_character":0,"end_line":61,"end_character":25},"updated":"2016-09-06 11:00:16.000000000","message":"Something like:\n\n        status_map \u003d {\n            \u0027managing\u0027: \u0027creating\u0027,\n            \u0027error_managing\u0027: \u0027error\u0027,\n        }\n        vol_status \u003d volume.get(\u0027status\u0027)\n        return status_map.get(vol_status, vol_status)\n\ncould be cleaner, but it\u0027s nothing very important.","commit_id":"19a0bc68dee182a050afc5fbc21f3242d5f92856"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"5f75cb10b2b5b77f0ec9198659b7a392778fb58a","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        # NOTE(wanghao): for fixing bug 1504007, we introduce \u0027managing\u0027 and"},{"line_number":54,"context_line":"        # \u0027error_managing\u0027 status into managing process, but still expose"},{"line_number":55,"context_line":"        # \u0027creating\u0027 and \u0027error\u0027 status to user for API compatibility."},{"line_number":56,"context_line":"        vol_status \u003d volume.get(\u0027status\u0027)"},{"line_number":57,"context_line":"        if vol_status \u003d\u003d \u0027managing\u0027:"},{"line_number":58,"context_line":"            vol_status \u003d \u0027creating\u0027"},{"line_number":59,"context_line":"        elif vol_status \u003d\u003d \u0027error_managing\u0027:"},{"line_number":60,"context_line":"            vol_status \u003d \u0027error\u0027"},{"line_number":61,"context_line":"        return vol_status"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def detail(self, request, volume):"},{"line_number":64,"context_line":"        \"\"\"Detailed view of a single volume.\"\"\""}],"source_content_type":"text/x-python","patch_set":20,"id":"9a89bdaa_5c00b5aa","line":61,"range":{"start_line":56,"start_character":0,"end_line":61,"end_character":25},"in_reply_to":"9a89bdaa_352a312d","updated":"2016-09-06 12:45:24.000000000","message":"Sure, will update in next patch.","commit_id":"19a0bc68dee182a050afc5fbc21f3242d5f92856"}],"cinder/scheduler/manager.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"511734d8bd9711a319865e883a9a50bde083d5a5","unresolved":false,"context_lines":[{"line_number":304,"context_line":""},{"line_number":305,"context_line":"        def _manage_existing_set_error(self, context, ex, request_spec):"},{"line_number":306,"context_line":"            volume_state \u003d {\u0027volume_state\u0027: {\u0027status\u0027: \u0027error_managing\u0027}}"},{"line_number":307,"context_line":"            self._set_volume_state_and_notify(\u0027manage_existing\u0027, volume_state,"},{"line_number":308,"context_line":"                                              context, ex, request_spec)"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":20,"id":"9a89bdaa_d58f4521","line":307,"range":{"start_line":307,"start_character":65,"end_line":307,"end_character":77},"updated":"2016-09-06 11:00:16.000000000","message":"Hm, I wonder if we shouldn\u0027t hide the status string change in notification too.","commit_id":"19a0bc68dee182a050afc5fbc21f3242d5f92856"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"5f75cb10b2b5b77f0ec9198659b7a392778fb58a","unresolved":false,"context_lines":[{"line_number":304,"context_line":""},{"line_number":305,"context_line":"        def _manage_existing_set_error(self, context, ex, request_spec):"},{"line_number":306,"context_line":"            volume_state \u003d {\u0027volume_state\u0027: {\u0027status\u0027: \u0027error_managing\u0027}}"},{"line_number":307,"context_line":"            self._set_volume_state_and_notify(\u0027manage_existing\u0027, volume_state,"},{"line_number":308,"context_line":"                                              context, ex, request_spec)"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":20,"id":"9a89bdaa_fc21894e","line":307,"range":{"start_line":307,"start_character":65,"end_line":307,"end_character":77},"in_reply_to":"9a89bdaa_d58f4521","updated":"2016-09-06 12:45:24.000000000","message":"I think a while for this question, finally, I prefer to keep \u0027error\u0027 in notification, since maybe some client use the notification info, we shouldn\u0027t change it.","commit_id":"19a0bc68dee182a050afc5fbc21f3242d5f92856"}],"cinder/tests/unit/test_volume.py":[{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"f78f389753534e905de4a4efefb7e7e93ab26363","unresolved":false,"context_lines":[{"line_number":4636,"context_line":"        self.volume_params[\u0027status\u0027] \u003d \u0027managing\u0027"},{"line_number":4637,"context_line":"        test_vol \u003d tests_utils.create_volume(self.context,"},{"line_number":4638,"context_line":"                                             **self.volume_params)"},{"line_number":4639,"context_line":"        test_vol_id \u003d test_vol[\u0027id\u0027]"},{"line_number":4640,"context_line":"        mock_execute.side_effect \u003d exception.VolumeBackendAPIException("},{"line_number":4641,"context_line":"            data\u003d\"volume driver got exception\")"},{"line_number":4642,"context_line":"        mock_driver_get_size.return_value \u003d 1"}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_c6c18182","line":4639,"range":{"start_line":4639,"start_character":22,"end_line":4639,"end_character":36},"updated":"2016-07-19 01:06:06.000000000","message":"Should we use test_vol.id since we already used versionedObject?","commit_id":"1cd4b5f15017cfcd2061202b8861833b29babf78"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"bbe9452056e38d53cca29875b2fce7329e72c0fc","unresolved":false,"context_lines":[{"line_number":4636,"context_line":"        self.volume_params[\u0027status\u0027] \u003d \u0027managing\u0027"},{"line_number":4637,"context_line":"        test_vol \u003d tests_utils.create_volume(self.context,"},{"line_number":4638,"context_line":"                                             **self.volume_params)"},{"line_number":4639,"context_line":"        test_vol_id \u003d test_vol[\u0027id\u0027]"},{"line_number":4640,"context_line":"        mock_execute.side_effect \u003d exception.VolumeBackendAPIException("},{"line_number":4641,"context_line":"            data\u003d\"volume driver got exception\")"},{"line_number":4642,"context_line":"        mock_driver_get_size.return_value \u003d 1"}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_58809246","line":4639,"range":{"start_line":4639,"start_character":22,"end_line":4639,"end_character":36},"in_reply_to":"dada55a8_c6c18182","updated":"2016-07-21 01:00:23.000000000","message":"Yes, you\u0027re right.","commit_id":"1cd4b5f15017cfcd2061202b8861833b29babf78"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"080cdbfab0d7b12d8df1332fdbed681d1d232632","unresolved":false,"context_lines":[{"line_number":4650,"context_line":"        usage \u003d db.quota_usage_get(self.context, project_id, \u0027gigabytes\u0027)"},{"line_number":4651,"context_line":"        gigabytes_in_use \u003d usage.in_use"},{"line_number":4652,"context_line":""},{"line_number":4653,"context_line":"        self.assertRaises(exception.VolumeBackendAPIException,"},{"line_number":4654,"context_line":"                          self.volume.manage_existing,"},{"line_number":4655,"context_line":"                          self.context, test_vol_id,"},{"line_number":4656,"context_line":"                          \u0027volume_ref\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_f37c3274","line":4653,"updated":"2016-07-19 11:23:12.000000000","message":"We should also assert that the volume state is now \u0027error_managing\u0027.","commit_id":"1cd4b5f15017cfcd2061202b8861833b29babf78"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"bbe9452056e38d53cca29875b2fce7329e72c0fc","unresolved":false,"context_lines":[{"line_number":4650,"context_line":"        usage \u003d db.quota_usage_get(self.context, project_id, \u0027gigabytes\u0027)"},{"line_number":4651,"context_line":"        gigabytes_in_use \u003d usage.in_use"},{"line_number":4652,"context_line":""},{"line_number":4653,"context_line":"        self.assertRaises(exception.VolumeBackendAPIException,"},{"line_number":4654,"context_line":"                          self.volume.manage_existing,"},{"line_number":4655,"context_line":"                          self.context, test_vol_id,"},{"line_number":4656,"context_line":"                          \u0027volume_ref\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_98d96a86","line":4653,"in_reply_to":"dada55a8_f37c3274","updated":"2016-07-21 01:00:23.000000000","message":"Done","commit_id":"1cd4b5f15017cfcd2061202b8861833b29babf78"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"f78f389753534e905de4a4efefb7e7e93ab26363","unresolved":false,"context_lines":[{"line_number":4659,"context_line":"        self.volume.delete_volume(self.context, test_vol_id, volume\u003dtest_vol)"},{"line_number":4660,"context_line":"        vol \u003d db.volume_get(context.get_admin_context(read_deleted\u003d\u0027yes\u0027),"},{"line_number":4661,"context_line":"                            test_vol_id)"},{"line_number":4662,"context_line":"        self.assertEqual(vol[\u0027status\u0027], \u0027deleted\u0027)"},{"line_number":4663,"context_line":"        # Get in_use number after deleting error_managing volume"},{"line_number":4664,"context_line":"        usage \u003d db.quota_usage_get(self.context, project_id, \u0027volumes\u0027)"},{"line_number":4665,"context_line":"        volumes_in_use_new \u003d usage.in_use"}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_86466921","line":4662,"range":{"start_line":4662,"start_character":25,"end_line":4662,"end_character":49},"updated":"2016-07-19 01:06:06.000000000","message":"Expected value should be the first parameter.","commit_id":"1cd4b5f15017cfcd2061202b8861833b29babf78"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"bbe9452056e38d53cca29875b2fce7329e72c0fc","unresolved":false,"context_lines":[{"line_number":4659,"context_line":"        self.volume.delete_volume(self.context, test_vol_id, volume\u003dtest_vol)"},{"line_number":4660,"context_line":"        vol \u003d db.volume_get(context.get_admin_context(read_deleted\u003d\u0027yes\u0027),"},{"line_number":4661,"context_line":"                            test_vol_id)"},{"line_number":4662,"context_line":"        self.assertEqual(vol[\u0027status\u0027], \u0027deleted\u0027)"},{"line_number":4663,"context_line":"        # Get in_use number after deleting error_managing volume"},{"line_number":4664,"context_line":"        usage \u003d db.quota_usage_get(self.context, project_id, \u0027volumes\u0027)"},{"line_number":4665,"context_line":"        volumes_in_use_new \u003d usage.in_use"}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_38eafe0f","line":4662,"range":{"start_line":4662,"start_character":25,"end_line":4662,"end_character":49},"in_reply_to":"dada55a8_86466921","updated":"2016-07-21 01:00:23.000000000","message":"Done","commit_id":"1cd4b5f15017cfcd2061202b8861833b29babf78"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"f78f389753534e905de4a4efefb7e7e93ab26363","unresolved":false,"context_lines":[{"line_number":4678,"context_line":"        # create source volume"},{"line_number":4679,"context_line":"        test_vol \u003d tests_utils.create_volume(self.context,"},{"line_number":4680,"context_line":"                                             **self.volume_params)"},{"line_number":4681,"context_line":"        test_vol_id \u003d test_vol[\u0027id\u0027]"},{"line_number":4682,"context_line":"        mock_driver_get_size.side_effect \u003d exception.VolumeBackendAPIException("},{"line_number":4683,"context_line":"            data\u003d\"volume driver got exception\")"},{"line_number":4684,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_665ed5ea","line":4681,"range":{"start_line":4681,"start_character":22,"end_line":4681,"end_character":36},"updated":"2016-07-19 01:06:06.000000000","message":"test_vol.id","commit_id":"1cd4b5f15017cfcd2061202b8861833b29babf78"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"bbe9452056e38d53cca29875b2fce7329e72c0fc","unresolved":false,"context_lines":[{"line_number":4678,"context_line":"        # create source volume"},{"line_number":4679,"context_line":"        test_vol \u003d tests_utils.create_volume(self.context,"},{"line_number":4680,"context_line":"                                             **self.volume_params)"},{"line_number":4681,"context_line":"        test_vol_id \u003d test_vol[\u0027id\u0027]"},{"line_number":4682,"context_line":"        mock_driver_get_size.side_effect \u003d exception.VolumeBackendAPIException("},{"line_number":4683,"context_line":"            data\u003d\"volume driver got exception\")"},{"line_number":4684,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_d8e3e231","line":4681,"range":{"start_line":4681,"start_character":22,"end_line":4681,"end_character":36},"in_reply_to":"dada55a8_665ed5ea","updated":"2016-07-21 01:00:23.000000000","message":"Done","commit_id":"1cd4b5f15017cfcd2061202b8861833b29babf78"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"080cdbfab0d7b12d8df1332fdbed681d1d232632","unresolved":false,"context_lines":[{"line_number":4692,"context_line":"        usage \u003d db.quota_usage_get(self.context, project_id, \u0027gigabytes\u0027)"},{"line_number":4693,"context_line":"        gigabytes_in_use \u003d usage.in_use"},{"line_number":4694,"context_line":""},{"line_number":4695,"context_line":"        self.assertRaises(exception.VolumeBackendAPIException,"},{"line_number":4696,"context_line":"                          self.volume.manage_existing,"},{"line_number":4697,"context_line":"                          self.context, test_vol_id,"},{"line_number":4698,"context_line":"                          \u0027volume_ref\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_b35e3ae7","line":4695,"updated":"2016-07-19 11:23:12.000000000","message":"We should also assert that the volume state is now \u0027error_managing\u0027.","commit_id":"1cd4b5f15017cfcd2061202b8861833b29babf78"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"bbe9452056e38d53cca29875b2fce7329e72c0fc","unresolved":false,"context_lines":[{"line_number":4692,"context_line":"        usage \u003d db.quota_usage_get(self.context, project_id, \u0027gigabytes\u0027)"},{"line_number":4693,"context_line":"        gigabytes_in_use \u003d usage.in_use"},{"line_number":4694,"context_line":""},{"line_number":4695,"context_line":"        self.assertRaises(exception.VolumeBackendAPIException,"},{"line_number":4696,"context_line":"                          self.volume.manage_existing,"},{"line_number":4697,"context_line":"                          self.context, test_vol_id,"},{"line_number":4698,"context_line":"                          \u0027volume_ref\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_18d45a45","line":4695,"in_reply_to":"dada55a8_b35e3ae7","updated":"2016-07-21 01:00:23.000000000","message":"Done","commit_id":"1cd4b5f15017cfcd2061202b8861833b29babf78"}],"cinder/volume/api.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"51b4e2350bbf744b6aaec9e1c9c7c298d5a44d40","unresolved":false,"context_lines":[{"line_number":345,"context_line":"            # Note(zhiteng): update volume quota reservation"},{"line_number":346,"context_line":"            try:"},{"line_number":347,"context_line":"                reservations \u003d None"},{"line_number":348,"context_line":"                if volume.status !\u003d \u0027error_managing\u0027:"},{"line_number":349,"context_line":"                    reserve_opts \u003d {\u0027volumes\u0027: -1, \u0027gigabytes\u0027: -volume.size}"},{"line_number":350,"context_line":"                    QUOTAS.add_volume_type_opts(context,"},{"line_number":351,"context_line":"                                                reserve_opts,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_9db3af97","line":348,"range":{"start_line":348,"start_character":16,"end_line":348,"end_character":53},"updated":"2016-07-07 13:14:09.000000000","message":"Can we log on DEBUG level that we\u0027re not decreasing quotas as it was manage error?","commit_id":"f200fa03bfe7aa7c9b633584b917c69b6953db42"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"45866c6647607318fa16e30fe4e47f6da6ece16e","unresolved":false,"context_lines":[{"line_number":345,"context_line":"            # Note(zhiteng): update volume quota reservation"},{"line_number":346,"context_line":"            try:"},{"line_number":347,"context_line":"                reservations \u003d None"},{"line_number":348,"context_line":"                if volume.status !\u003d \u0027error_managing\u0027:"},{"line_number":349,"context_line":"                    reserve_opts \u003d {\u0027volumes\u0027: -1, \u0027gigabytes\u0027: -volume.size}"},{"line_number":350,"context_line":"                    QUOTAS.add_volume_type_opts(context,"},{"line_number":351,"context_line":"                                                reserve_opts,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_72a2324d","line":348,"range":{"start_line":348,"start_character":16,"end_line":348,"end_character":53},"in_reply_to":"1aa78d24_9db3af97","updated":"2016-07-14 09:41:39.000000000","message":"Sure.","commit_id":"f200fa03bfe7aa7c9b633584b917c69b6953db42"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"d740b1cf653fb4999cad84ae676820742fd59386","unresolved":false,"context_lines":[{"line_number":360,"context_line":"            try:"},{"line_number":361,"context_line":"                reservations \u003d None"},{"line_number":362,"context_line":"                if volume.status !\u003d \u0027error_managing\u0027:"},{"line_number":363,"context_line":"                    LOG.debug(\"Decrease volume quotas only if status is not \""},{"line_number":364,"context_line":"                              \"error_managing.\")"},{"line_number":365,"context_line":"                    reserve_opts \u003d {\u0027volumes\u0027: -1, \u0027gigabytes\u0027: -volume.size}"},{"line_number":366,"context_line":"                    QUOTAS.add_volume_type_opts(context,"},{"line_number":367,"context_line":"                                                reserve_opts,"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa7ab95a_a444cd49","line":364,"range":{"start_line":363,"start_character":0,"end_line":364,"end_character":48},"updated":"2016-08-31 12:53:48.000000000","message":"It would probably be more useful to log that only in case of not decreasing quota usages.","commit_id":"5f68814ffa55b2a80073fc1b2d23a3174a0621ea"}],"cinder/volume/flows/manager/manage_existing.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"51b4e2350bbf744b6aaec9e1c9c7c298d5a44d40","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        try:"},{"line_number":59,"context_line":"            size \u003d self.driver.manage_existing_get_size(volume_ref,"},{"line_number":60,"context_line":"                                                        manage_existing_ref)"},{"line_number":61,"context_line":"        except Exception:"},{"line_number":62,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":63,"context_line":"                flow_common.error_out_volume(context, self.db, volume_id,"},{"line_number":64,"context_line":"                                             reason\u003d_(\"Volume driver %s \""},{"line_number":65,"context_line":"                                                      \"get exception.\") %"},{"line_number":66,"context_line":"                                             driver_name,"},{"line_number":67,"context_line":"                                             status\u003d\u0027error_managing\u0027)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        return {\u0027size\u0027: size,"},{"line_number":70,"context_line":"                \u0027volume_type_id\u0027: volume_ref.volume_type_id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_7d2363bd","line":67,"range":{"start_line":61,"start_character":0,"end_line":67,"end_character":69},"updated":"2016-07-07 13:14:09.000000000","message":"Awesome! :)","commit_id":"f200fa03bfe7aa7c9b633584b917c69b6953db42"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"51b4e2350bbf744b6aaec9e1c9c7c298d5a44d40","unresolved":false,"context_lines":[{"line_number":73,"context_line":"                                \u0027volume_name\u0027: volume_ref.name,"},{"line_number":74,"context_line":"                                \u0027volume_id\u0027: volume_ref.id}}"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def revert(self, context, result, **kwargs):"},{"line_number":77,"context_line":"        if isinstance(result, ft.Failure):"},{"line_number":78,"context_line":"            return"},{"line_number":79,"context_line":"        volume_ref \u003d result[\u0027volume_properties\u0027]"},{"line_number":80,"context_line":"        flow_common.error_out_volume(context, self.db, volume_ref.id,"},{"line_number":81,"context_line":"                                     status\u003d\u0027error_managing\u0027)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"class ManageExistingTask(flow_utils.CinderTask):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_2050940a","line":81,"range":{"start_line":76,"start_character":0,"end_line":81,"end_character":61},"updated":"2016-07-07 13:14:09.000000000","message":"Awesome again - we\u0027ve had a bug that volumes that failed during manage in manager wasn\u0027t errored-out. :)","commit_id":"f200fa03bfe7aa7c9b633584b917c69b6953db42"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"080cdbfab0d7b12d8df1332fdbed681d1d232632","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    def execute(self, context, volume_ref, manage_existing_ref):"},{"line_number":45,"context_line":"        volume_id \u003d volume_ref.id"},{"line_number":46,"context_line":"        if not self.driver.initialized:"},{"line_number":47,"context_line":"            driver_name \u003d self.driver.__class__.__name__"},{"line_number":48,"context_line":"            LOG.error(_LE(\"Unable to manage existing volume. \""},{"line_number":49,"context_line":"                          \"Volume driver %s not initialized.\") % driver_name)"},{"line_number":50,"context_line":"            flow_common.error_out_volume(context, self.db, volume_id,"}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_8859415d","line":47,"updated":"2016-07-19 11:23:12.000000000","message":"nit: move this outside the if statement and use it in line 66.","commit_id":"1cd4b5f15017cfcd2061202b8861833b29babf78"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"bbe9452056e38d53cca29875b2fce7329e72c0fc","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    def execute(self, context, volume_ref, manage_existing_ref):"},{"line_number":45,"context_line":"        volume_id \u003d volume_ref.id"},{"line_number":46,"context_line":"        if not self.driver.initialized:"},{"line_number":47,"context_line":"            driver_name \u003d self.driver.__class__.__name__"},{"line_number":48,"context_line":"            LOG.error(_LE(\"Unable to manage existing volume. \""},{"line_number":49,"context_line":"                          \"Volume driver %s not initialized.\") % driver_name)"},{"line_number":50,"context_line":"            flow_common.error_out_volume(context, self.db, volume_id,"}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_18be1ad4","line":47,"in_reply_to":"dada55a8_8859415d","updated":"2016-07-21 01:00:23.000000000","message":"Done","commit_id":"1cd4b5f15017cfcd2061202b8861833b29babf78"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"080cdbfab0d7b12d8df1332fdbed681d1d232632","unresolved":false,"context_lines":[{"line_number":62,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":63,"context_line":"                flow_common.error_out_volume(context, self.db, volume_id,"},{"line_number":64,"context_line":"                                             reason\u003d_(\"Volume driver %s \""},{"line_number":65,"context_line":"                                                      \"get exception.\") %"},{"line_number":66,"context_line":"                                             self.driver.__class__.__name__,"},{"line_number":67,"context_line":"                                             status\u003d\u0027error_managing\u0027)"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_08b71187","line":65,"range":{"start_line":65,"start_character":55,"end_line":65,"end_character":69},"updated":"2016-07-19 11:23:12.000000000","message":"Please fix this.","commit_id":"1cd4b5f15017cfcd2061202b8861833b29babf78"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"bbe9452056e38d53cca29875b2fce7329e72c0fc","unresolved":false,"context_lines":[{"line_number":62,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":63,"context_line":"                flow_common.error_out_volume(context, self.db, volume_id,"},{"line_number":64,"context_line":"                                             reason\u003d_(\"Volume driver %s \""},{"line_number":65,"context_line":"                                                      \"get exception.\") %"},{"line_number":66,"context_line":"                                             self.driver.__class__.__name__,"},{"line_number":67,"context_line":"                                             status\u003d\u0027error_managing\u0027)"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_b8cf0e7e","line":65,"range":{"start_line":65,"start_character":55,"end_line":65,"end_character":69},"in_reply_to":"dada55a8_08b71187","updated":"2016-07-21 01:00:23.000000000","message":"Done","commit_id":"1cd4b5f15017cfcd2061202b8861833b29babf78"}],"cinder/volume/manager.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"51b4e2350bbf744b6aaec9e1c9c7c298d5a44d40","unresolved":false,"context_lines":[{"line_number":705,"context_line":"            try:"},{"line_number":706,"context_line":"                reservations \u003d None"},{"line_number":707,"context_line":"                if volume.status !\u003d \u0027error_managing\u0027:"},{"line_number":708,"context_line":"                    reserve_opts \u003d {\u0027volumes\u0027: -1,"},{"line_number":709,"context_line":"                                    \u0027gigabytes\u0027: -volume.size}"},{"line_number":710,"context_line":"                    QUOTAS.add_volume_type_opts(context,"},{"line_number":711,"context_line":"                                                reserve_opts,"},{"line_number":712,"context_line":"                                                volume.volume_type_id)"},{"line_number":713,"context_line":"                    reservations \u003d QUOTAS.reserve(context,"},{"line_number":714,"context_line":"                                                  project_id\u003dproject_id,"},{"line_number":715,"context_line":"                                                  **reserve_opts)"},{"line_number":716,"context_line":"            except Exception:"},{"line_number":717,"context_line":"                LOG.exception(_LE(\"Failed to update usages deleting volume.\"),"},{"line_number":718,"context_line":"                              resource\u003dvolume)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_40ccc0ba","line":715,"range":{"start_line":708,"start_character":0,"end_line":715,"end_character":65},"updated":"2016-07-07 13:14:09.000000000","message":"Can you explain that same thing is done in cinder.volume.api? I\u0027ve got lost on that.","commit_id":"f200fa03bfe7aa7c9b633584b917c69b6953db42"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"45866c6647607318fa16e30fe4e47f6da6ece16e","unresolved":false,"context_lines":[{"line_number":705,"context_line":"            try:"},{"line_number":706,"context_line":"                reservations \u003d None"},{"line_number":707,"context_line":"                if volume.status !\u003d \u0027error_managing\u0027:"},{"line_number":708,"context_line":"                    reserve_opts \u003d {\u0027volumes\u0027: -1,"},{"line_number":709,"context_line":"                                    \u0027gigabytes\u0027: -volume.size}"},{"line_number":710,"context_line":"                    QUOTAS.add_volume_type_opts(context,"},{"line_number":711,"context_line":"                                                reserve_opts,"},{"line_number":712,"context_line":"                                                volume.volume_type_id)"},{"line_number":713,"context_line":"                    reservations \u003d QUOTAS.reserve(context,"},{"line_number":714,"context_line":"                                                  project_id\u003dproject_id,"},{"line_number":715,"context_line":"                                                  **reserve_opts)"},{"line_number":716,"context_line":"            except Exception:"},{"line_number":717,"context_line":"                LOG.exception(_LE(\"Failed to update usages deleting volume.\"),"},{"line_number":718,"context_line":"                              resource\u003dvolume)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_f8f72157","line":715,"range":{"start_line":708,"start_character":0,"end_line":715,"end_character":65},"in_reply_to":"1aa78d24_40ccc0ba","updated":"2016-07-14 09:41:39.000000000","message":"In api we handle the case that volume.host is not existing, that will not go to manager and just decrease the quota and delete it from db successfully.  Here we handle the case that volume. host is existing and need driver to delete the volume first, and then decrease the quota and destroy it.","commit_id":"f200fa03bfe7aa7c9b633584b917c69b6953db42"}]}
