)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"a5e33ab3573e4407b8650246f3a8d423f5ad6d88","unresolved":false,"context_lines":[{"line_number":11,"context_line":"contain the updated_at property."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The updated_at time is an important information to end user, for example,"},{"line_number":14,"context_line":"they can delete the useless volumes by checking if their have been updated"},{"line_number":15,"context_line":"in a period time. We shouldn\u0027t miss this property."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"APIImpact"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a41bdd9_6b50b6d4","line":14,"updated":"2015-07-15 13:27:21.000000000","message":"This needs to be reworded.  their -\u003e the volumes","commit_id":"edb9e2bd793c7d25ec76e71237aa47e5217ed444"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"7cdb33e5c3e99aebc2a99e4887147e647c39e301","unresolved":false,"context_lines":[{"line_number":11,"context_line":"contain the updated_at property."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The updated_at time is an important information to end user, for example,"},{"line_number":14,"context_line":"they can delete the useless volumes by checking if their have been updated"},{"line_number":15,"context_line":"in a period time. We shouldn\u0027t miss this property."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"APIImpact"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a41bdd9_97b89812","line":14,"in_reply_to":"9a41bdd9_6b50b6d4","updated":"2015-07-16 04:17:31.000000000","message":"Done","commit_id":"edb9e2bd793c7d25ec76e71237aa47e5217ed444"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"6a710a5b9b30fe787731b5bcc9d7b78f24483d95","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Add \"updated_at: XXX\" into response of querying resource detail"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: I8353e95f5a962f3b89132a65c31999218cbe79dc"},{"line_number":21,"context_line":"Implements: improve-timestamp-in-response-when-querying-cinder-resources"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9a41bdd9_dbfc0274","line":21,"updated":"2015-07-16 09:04:35.000000000","message":"Implements: blueprint","commit_id":"1f75abee6905c08c99cd62a9c2a6cae3c4e66bb0"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"6fde2de8dd5c6604298e2a3aab20259b697d0c5c","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Add \"updated_at: XXX\" into response of querying resource detail"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: I8353e95f5a962f3b89132a65c31999218cbe79dc"},{"line_number":21,"context_line":"Implements: improve-timestamp-in-response-when-querying-cinder-resources"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9a41bdd9_36a745be","line":21,"in_reply_to":"9a41bdd9_dbfc0274","updated":"2015-07-16 09:24:40.000000000","message":"Done","commit_id":"1f75abee6905c08c99cd62a9c2a6cae3c4e66bb0"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"1c6c1797ca9df0bc7a253b020b2956ca5964480c","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     wanghao \u003cwanghao749@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-07-22 12:08:18 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add updated_at into response of listing detail"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Now when query cinder resource(volume/snapshot/backup) detail, the"},{"line_number":10,"context_line":"response of this resource just show created_at to end user, and do not"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3a50d1a3_16001733","line":7,"updated":"2015-07-29 10:53:48.000000000","message":"updated_at, attached_at","commit_id":"5f77d981e0253f1a0a0a01bfd19014e9c81c415c"}],"cinder/tests/unit/api/contrib/test_backups.py":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"a5e33ab3573e4407b8650246f3a8d423f5ad6d88","unresolved":false,"context_lines":[{"line_number":1505,"context_line":"                         \"request body.\","},{"line_number":1506,"context_line":"                         res_dict[\u0027badRequest\u0027][\u0027message\u0027])"},{"line_number":1507,"context_line":""},{"line_number":1508,"context_line":"    @mock.patch(\u0027cinder.backup.rpcapi.BackupAPI.check_support_to_force_delete\u0027,"},{"line_number":1509,"context_line":"                return_value\u003dFalse)"},{"line_number":1510,"context_line":"    def test_force_delete_with_not_supported_operation(self,"},{"line_number":1511,"context_line":"                                                       mock_check_support):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_8bfbbac0","side":"PARENT","line":1508,"updated":"2015-07-15 13:27:21.000000000","message":"Why was this removed?","commit_id":"db0cca532b774970b2fa15776ab935b276c40838"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"7cdb33e5c3e99aebc2a99e4887147e647c39e301","unresolved":false,"context_lines":[{"line_number":1505,"context_line":"                         \"request body.\","},{"line_number":1506,"context_line":"                         res_dict[\u0027badRequest\u0027][\u0027message\u0027])"},{"line_number":1507,"context_line":""},{"line_number":1508,"context_line":"    @mock.patch(\u0027cinder.backup.rpcapi.BackupAPI.check_support_to_force_delete\u0027,"},{"line_number":1509,"context_line":"                return_value\u003dFalse)"},{"line_number":1510,"context_line":"    def test_force_delete_with_not_supported_operation(self,"},{"line_number":1511,"context_line":"                                                       mock_check_support):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_97fdf8b2","side":"PARENT","line":1508,"in_reply_to":"9a41bdd9_8bfbbac0","updated":"2015-07-16 04:17:31.000000000","message":"....It\u0027s something wrong when I committed this patch.","commit_id":"db0cca532b774970b2fa15776ab935b276c40838"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"642a9652da25b6964c1622a74c97c1d57412406e","unresolved":false,"context_lines":[{"line_number":1263,"context_line":""},{"line_number":1264,"context_line":"        self.assertEqual(400, res.status_int)"},{"line_number":1265,"context_line":"        self.assertEqual(400, res_dict[\u0027badRequest\u0027][\u0027code\u0027])"},{"line_number":1266,"context_line":"        self.assertEqual(\u0027Invalid volume: volume size %d is too \u0027"},{"line_number":1267,"context_line":"                         \u0027small to restore backup of size %d.\u0027"},{"line_number":1268,"context_line":"                         % (volume_size, backup_size),"},{"line_number":1269,"context_line":"                         res_dict[\u0027badRequest\u0027][\u0027message\u0027])"}],"source_content_type":"text/x-python","patch_set":17,"id":"fa1b9901_8d725c7b","line":1266,"updated":"2015-08-24 22:31:03.000000000","message":"While Jenkins seems to be passing, I still think this blank line should get removed. Thanks!","commit_id":"7fe12bcb835a369e64ccd1841f468e2202f35d97"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"7eeb6b4f9fc6920e73d424ca32524ad882fcebd5","unresolved":false,"context_lines":[{"line_number":1263,"context_line":""},{"line_number":1264,"context_line":"        self.assertEqual(400, res.status_int)"},{"line_number":1265,"context_line":"        self.assertEqual(400, res_dict[\u0027badRequest\u0027][\u0027code\u0027])"},{"line_number":1266,"context_line":"        self.assertEqual(\u0027Invalid volume: volume size %d is too \u0027"},{"line_number":1267,"context_line":"                         \u0027small to restore backup of size %d.\u0027"},{"line_number":1268,"context_line":"                         % (volume_size, backup_size),"},{"line_number":1269,"context_line":"                         res_dict[\u0027badRequest\u0027][\u0027message\u0027])"}],"source_content_type":"text/x-python","patch_set":17,"id":"da20952f_d84be085","line":1266,"in_reply_to":"fa1b9901_8d725c7b","updated":"2015-08-31 02:30:01.000000000","message":"Sorry I didn\u0027t get your point, no changes in here, and I didn\u0027t find where the blank line is ....","commit_id":"7fe12bcb835a369e64ccd1841f468e2202f35d97"}],"cinder/tests/unit/api/v2/test_snapshots.py":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"a5e33ab3573e4407b8650246f3a8d423f5ad6d88","unresolved":false,"context_lines":[{"line_number":31,"context_line":"from cinder.tests.unit import fake_volume"},{"line_number":32,"context_line":"from cinder import volume"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"UUID \u003d \u002700000000-0000-0000-0000-000000000001\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_ebdfe637","line":34,"updated":"2015-07-15 13:27:21.000000000","message":"Was this added for debugging?  Should be removed.","commit_id":"edb9e2bd793c7d25ec76e71237aa47e5217ed444"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"7cdb33e5c3e99aebc2a99e4887147e647c39e301","unresolved":false,"context_lines":[{"line_number":31,"context_line":"from cinder.tests.unit import fake_volume"},{"line_number":32,"context_line":"from cinder import volume"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"UUID \u003d \u002700000000-0000-0000-0000-000000000001\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_d7938059","line":34,"in_reply_to":"9a41bdd9_ebdfe637","updated":"2015-07-16 04:17:31.000000000","message":"It shouldn\u0027t here, I will remove it.","commit_id":"edb9e2bd793c7d25ec76e71237aa47e5217ed444"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"67e7e6488f1f551ea513196e70b112e9428b2250","unresolved":false,"context_lines":[{"line_number":32,"context_line":"from cinder import volume"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"UUID \u003d \u002700000000-0000-0000-0000-000000000001\u0027"},{"line_number":38,"context_line":"INVALID_UUID \u003d \u002700000000-0000-0000-0000-000000000002\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_872f2e3e","line":35,"updated":"2015-07-15 13:42:43.000000000","message":"I agree with Jay, there shouldn\u0027t be any logging going on in tests, all logging should be in the code that you are testing.","commit_id":"edb9e2bd793c7d25ec76e71237aa47e5217ed444"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"6a710a5b9b30fe787731b5bcc9d7b78f24483d95","unresolved":false,"context_lines":[{"line_number":111,"context_line":"                         snapshot_name)"},{"line_number":112,"context_line":"        self.assertEqual(resp_dict[\u0027snapshot\u0027][\u0027description\u0027],"},{"line_number":113,"context_line":"                         snapshot_description)"},{"line_number":114,"context_line":"        self.assertIn(\u0027updated_at\u0027, resp_dict[\u0027snapshot\u0027])"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    def test_snapshot_create_force(self):"},{"line_number":117,"context_line":"        self.stubs.Set(volume.api.API, \"create_snapshot_force\","}],"source_content_type":"text/x-python","patch_set":3,"id":"9a41bdd9_1bf10a6b","line":114,"updated":"2015-07-16 09:04:35.000000000","message":"Can we use self.assertIsNotNone(resp_dict[\u0027snapshot\u0027][\u0027updated_at\u0027])?","commit_id":"1f75abee6905c08c99cd62a9c2a6cae3c4e66bb0"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"6fde2de8dd5c6604298e2a3aab20259b697d0c5c","unresolved":false,"context_lines":[{"line_number":111,"context_line":"                         snapshot_name)"},{"line_number":112,"context_line":"        self.assertEqual(resp_dict[\u0027snapshot\u0027][\u0027description\u0027],"},{"line_number":113,"context_line":"                         snapshot_description)"},{"line_number":114,"context_line":"        self.assertIn(\u0027updated_at\u0027, resp_dict[\u0027snapshot\u0027])"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    def test_snapshot_create_force(self):"},{"line_number":117,"context_line":"        self.stubs.Set(volume.api.API, \"create_snapshot_force\","}],"source_content_type":"text/x-python","patch_set":3,"id":"9a41bdd9_96a651ac","line":114,"in_reply_to":"9a41bdd9_1bf10a6b","updated":"2015-07-16 09:24:40.000000000","message":"Done","commit_id":"1f75abee6905c08c99cd62a9c2a6cae3c4e66bb0"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"1c6c1797ca9df0bc7a253b020b2956ca5964480c","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        \u0027status\u0027: \u0027available\u0027,"},{"line_number":43,"context_line":"        \u0027volume_size\u0027: 100,"},{"line_number":44,"context_line":"        \u0027created_at\u0027: None,"},{"line_number":45,"context_line":"        \u0027updated_at\u0027: None,"},{"line_number":46,"context_line":"        \u0027user_id\u0027: \u0027bcb7746c7a41472d88a1ffac89ba6a9b\u0027,"},{"line_number":47,"context_line":"        \u0027project_id\u0027: \u00277ffe17a15c724e2aa79fc839540aec15\u0027,"},{"line_number":48,"context_line":"        \u0027display_name\u0027: \u0027Default name\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a50d1a3_967e67e2","line":45,"updated":"2015-07-29 10:53:48.000000000","message":"Why can\u0027t we set this to some value and assert for NotNone in the tests below?","commit_id":"5f77d981e0253f1a0a0a01bfd19014e9c81c415c"}],"cinder/tests/unit/api/v2/test_volumes.py":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"a5e33ab3573e4407b8650246f3a8d423f5ad6d88","unresolved":false,"context_lines":[{"line_number":1619,"context_line":"            sort_keys\u003d[\u0027created_at\u0027], sort_dirs\u003d[\u0027desc\u0027],"},{"line_number":1620,"context_line":"            filters\u003d{\u0027availability_zone\u0027: \u0027nova\u0027}, viewable_admin_meta\u003dTrue)"},{"line_number":1621,"context_line":""},{"line_number":1622,"context_line":"    @mock.patch(\u0027cinder.volume.api.API.get_all\u0027)"},{"line_number":1623,"context_line":"    def test_get_volumes_sort_by_name(self, get_all):"},{"line_number":1624,"context_line":"        \"\"\"Name in client means display_name in database.\"\"\""},{"line_number":1625,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_ab7b1e27","side":"PARENT","line":1622,"updated":"2015-07-15 13:27:21.000000000","message":"Why was this removed?","commit_id":"db0cca532b774970b2fa15776ab935b276c40838"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"7cdb33e5c3e99aebc2a99e4887147e647c39e301","unresolved":false,"context_lines":[{"line_number":1619,"context_line":"            sort_keys\u003d[\u0027created_at\u0027], sort_dirs\u003d[\u0027desc\u0027],"},{"line_number":1620,"context_line":"            filters\u003d{\u0027availability_zone\u0027: \u0027nova\u0027}, viewable_admin_meta\u003dTrue)"},{"line_number":1621,"context_line":""},{"line_number":1622,"context_line":"    @mock.patch(\u0027cinder.volume.api.API.get_all\u0027)"},{"line_number":1623,"context_line":"    def test_get_volumes_sort_by_name(self, get_all):"},{"line_number":1624,"context_line":"        \"\"\"Name in client means display_name in database.\"\"\""},{"line_number":1625,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_3792ec4c","side":"PARENT","line":1622,"in_reply_to":"9a41bdd9_ab7b1e27","updated":"2015-07-16 04:17:31.000000000","message":"Oh boy! I don\u0027t know what\u0027s happened.","commit_id":"db0cca532b774970b2fa15776ab935b276c40838"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"adee61a87c8533f7af0b75340b90fb2a8bbcfaf3","unresolved":false,"context_lines":[{"line_number":663,"context_line":"                          }],"},{"line_number":664,"context_line":"            metadata\u003d{\u0027key\u0027: \u0027value\u0027, \u0027readonly\u0027: \u0027True\u0027},"},{"line_number":665,"context_line":"            with_migration_status\u003dTrue)"},{"line_number":666,"context_line":"        expected[\u0027volume\u0027][\u0027updated_at\u0027] \u003d volume_tmp[\u0027updated_at\u0027]"},{"line_number":667,"context_line":"        self.assertEqual(expected, res_dict)"},{"line_number":668,"context_line":"        self.assertEqual(2, len(self.notifier.notifications))"},{"line_number":669,"context_line":"        self.assertTrue(mock_validate.called)"}],"source_content_type":"text/x-python","patch_set":19,"id":"7a2fa921_9d1b0781","line":666,"updated":"2015-10-09 07:37:31.000000000","message":"We should pass volume_tmp[\u0027updated_at\u0027] to _expected_vol_from_controller instead of modifying the dictionary here.","commit_id":"9fe92e1474765b31d4ac76a218ddf1e11cddd0ea"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"adee61a87c8533f7af0b75340b90fb2a8bbcfaf3","unresolved":false,"context_lines":[{"line_number":776,"context_line":"                          }],"},{"line_number":777,"context_line":"            metadata\u003d{\u0027key\u0027: \u0027value\u0027, \u0027readonly\u0027: \u0027True\u0027},"},{"line_number":778,"context_line":"            with_migration_status\u003dTrue)"},{"line_number":779,"context_line":"        exp_vol[\u0027volume\u0027][\u0027updated_at\u0027] \u003d volume_tmp[\u0027updated_at\u0027]"},{"line_number":780,"context_line":"        expected \u003d {\u0027volumes\u0027: [exp_vol[\u0027volume\u0027]]}"},{"line_number":781,"context_line":"        self.assertEqual(expected, res_dict)"},{"line_number":782,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"7a2fa921_3d0bd32b","line":779,"updated":"2015-10-09 07:37:31.000000000","message":"Same comment.","commit_id":"9fe92e1474765b31d4ac76a218ddf1e11cddd0ea"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"adee61a87c8533f7af0b75340b90fb2a8bbcfaf3","unresolved":false,"context_lines":[{"line_number":1197,"context_line":"                          }],"},{"line_number":1198,"context_line":"            metadata\u003d{\u0027key\u0027: \u0027value\u0027, \u0027readonly\u0027: \u0027True\u0027},"},{"line_number":1199,"context_line":"            with_migration_status\u003dTrue)"},{"line_number":1200,"context_line":"        expected[\u0027volume\u0027][\u0027updated_at\u0027] \u003d volume_tmp[\u0027updated_at\u0027]"},{"line_number":1201,"context_line":"        self.assertEqual(expected, res_dict)"},{"line_number":1202,"context_line":""},{"line_number":1203,"context_line":"    def test_volume_show_with_encrypted_volume(self):"}],"source_content_type":"text/x-python","patch_set":19,"id":"7a2fa921_fd00fb03","line":1200,"updated":"2015-10-09 07:37:31.000000000","message":"Same comment.","commit_id":"9fe92e1474765b31d4ac76a218ddf1e11cddd0ea"}]}
