)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"5c0dc3d73a07fe6a14677ba36b7ca9d75ee32e10","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Now notify message to ceilometer do not contain volume and snapshot"},{"line_number":10,"context_line":"metadata, which is useful to bill and enrich resource information in"},{"line_number":11,"context_line":"ceilometer."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This feature will add the volume and snpahost metadata to"},{"line_number":14,"context_line":"notification usage info."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1aca2d91_8df8557e","line":11,"updated":"2015-05-06 06:33:29.000000000","message":"I\u0027m confused by this. The volume and snap metadata are entirely tenant controller, and therefore useless for billing. Did you mean to include the glance_metadata instead / as well? That would be the normal source of billing info","commit_id":"ec313a160df438deb575e8a5ff5cb0467ee41cb5"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"80b89a2359744f62a2f66b8095d0685106c2b4bf","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Now notify message to ceilometer do not contain volume and snapshot"},{"line_number":10,"context_line":"metadata, which is useful to bill and enrich resource information in"},{"line_number":11,"context_line":"ceilometer."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This feature will add the volume and snpahost metadata to"},{"line_number":14,"context_line":"notification usage info."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1aca2d91_1c9b54cb","line":11,"in_reply_to":"1aca2d91_8df8557e","updated":"2015-05-06 07:25:36.000000000","message":"Emm, Tenant or 3rd party management system may put the billing info like orders id into metadata I think. It\u0027s just a possibility. But glance_metadata should be added into as well. That\u0027s helpful.","commit_id":"ec313a160df438deb575e8a5ff5cb0467ee41cb5"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"b6e274d558b32b3f7e9b25bff372c73d2f53ff8c","unresolved":false,"context_lines":[{"line_number":10,"context_line":"metadata/glance_metadata and snapshot metadata, which are"},{"line_number":11,"context_line":"useful to bill and enrich resource information in ceilometer."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This feature will add the volume and snpahost metadata to"},{"line_number":14,"context_line":"notification usage info."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I04097be9f2da1d6bc45a2d5770bcd543a3f41887"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1aca2d91_eb4e75c0","line":13,"updated":"2015-05-06 17:34:42.000000000","message":"s/snpahost/snapshot/","commit_id":"f40d66f35a64122c0c0b99463813bc94dfb120d4"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"215edf938c1ed79ba4d76bf3cf6dd9aa31777490","unresolved":false,"context_lines":[{"line_number":10,"context_line":"metadata/glance_metadata and snapshot metadata, which are"},{"line_number":11,"context_line":"useful to bill and enrich resource information in ceilometer."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This feature will add the volume and snpahost metadata to"},{"line_number":14,"context_line":"notification usage info."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I04097be9f2da1d6bc45a2d5770bcd543a3f41887"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1aca2d91_985863fc","line":13,"in_reply_to":"1aca2d91_eb4e75c0","updated":"2015-05-07 04:06:44.000000000","message":"Thanks","commit_id":"f40d66f35a64122c0c0b99463813bc94dfb120d4"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"cbdab4149a98341ac7ab80417af671ff0e346a29","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     wanghao \u003cwanghao749@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-05-12 19:19:22 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Notification with volume and snaphost metadata"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Now notify message to ceilometer do not contain volume"},{"line_number":10,"context_line":"metadata/glance_metadata and snapshot metadata, which are"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"9a0c5dc1_b6233f05","line":7,"updated":"2015-05-12 14:54:31.000000000","message":"snaphost -\u003e snapshot","commit_id":"1b3f4b9ad9b832517334659c22149760fc077325"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"cafe2f7a2d284033b1e7d2c682e1ce6d70cc59c8","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     wanghao \u003cwanghao749@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-05-12 19:19:22 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Notification with volume and snaphost metadata"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Now notify message to ceilometer do not contain volume"},{"line_number":10,"context_line":"metadata/glance_metadata and snapshot metadata, which are"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"7a016987_afa41908","line":7,"in_reply_to":"9a0c5dc1_b6233f05","updated":"2015-05-14 01:07:11.000000000","message":"Thanks","commit_id":"1b3f4b9ad9b832517334659c22149760fc077325"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"49b9700bb1be48ac188fbf5e393e0a103e944845","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Now notify message to ceilometer do not contain volume"},{"line_number":10,"context_line":"metadata/glance_metadata and snapshot metadata, which are"},{"line_number":11,"context_line":"useful to bill and enrich resource information in ceilometer."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This feature will add the volume and snapshot metadata to"},{"line_number":14,"context_line":"notification usage info."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"7a016987_01ce8e62","line":11,"updated":"2015-05-22 13:03:34.000000000","message":"It would be nice if you add an example why volume metadata is useful for billing. Since most billing info are numbers that keeps changing if you use more resource, but metadata looks static.","commit_id":"2e0e3d934836f3ffba44eb730da6b3e12a8801d6"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"5de911a890d8741bdec034358e388da1332daa8b","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Now notify message to ceilometer do not contain volume"},{"line_number":10,"context_line":"metadata/glance_metadata and snapshot metadata, which are"},{"line_number":11,"context_line":"useful to bill and enrich resource information in ceilometer."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This feature will add the volume and snapshot metadata to"},{"line_number":14,"context_line":"notification usage info."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"7a016987_d6115053","line":11,"in_reply_to":"7a016987_01ce8e62","updated":"2015-05-22 20:44:44.000000000","message":"Glance metadata for billing is covered in the glance docs (see protected properties), I don\u0027t think it needs covering here, it is documented practice for billable images in the cloud already.","commit_id":"2e0e3d934836f3ffba44eb730da6b3e12a8801d6"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"65decb32f424d6a36f7c59223b77ab12579531a3","unresolved":false,"context_lines":[{"line_number":10,"context_line":"metadata/glance_metadata and snapshot metadata, which are"},{"line_number":11,"context_line":"useful to bill and enrich resource information in ceilometer."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This feature will add the volume and snapshot metadata to"},{"line_number":14,"context_line":"notification usage info."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I04097be9f2da1d6bc45a2d5770bcd543a3f41887"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":18,"id":"7a016987_7818e675","line":13,"updated":"2015-05-27 13:45:21.000000000","message":"glance metadata is missing here","commit_id":"2e244860e7ce04e5121b39d26232612104c070e6"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"2185e6c2fa4a272b7585c2d0fba02f8dd6f0ffd0","unresolved":false,"context_lines":[{"line_number":10,"context_line":"metadata/glance_metadata and snapshot metadata, which are"},{"line_number":11,"context_line":"useful to bill and enrich resource information in ceilometer."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This feature will add the volume metadata/glance_metadata"},{"line_number":14,"context_line":"and snapshot metadata to notification usage info."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I04097be9f2da1d6bc45a2d5770bcd543a3f41887"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":20,"id":"7a016987_305c6118","line":13,"updated":"2015-05-29 16:03:49.000000000","message":"\u0027glance_metadata\u0027 has an underscore but \u0027volume metadata\u0027 not?","commit_id":"b2ec70e996d689e8f014cebb3d152417efd52e74"}],"cinder/tests/unit/test_volume_utils.py":[{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"698d1a28e81a63554ad3398e7277cffa3652b629","unresolved":false,"context_lines":[{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    @mock.patch(\u0027cinder.volume.utils._usage_from_volume\u0027)"},{"line_number":230,"context_line":"    def test_usage_from_volume(self, mock_usage):"},{"line_number":231,"context_line":"        mock_usage.return_value \u003d {\u0027glance_metadata\u0027: {\u0027image_id\u0027: \u0027123456\u0027}}"},{"line_number":232,"context_line":"        raw_volume \u003d {"},{"line_number":233,"context_line":"            \u0027project_id\u0027: \u002712b0330ec2584a\u0027,"},{"line_number":234,"context_line":"            \u0027user_id\u0027: \u0027158cba1b8c2bb6008e\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aca2d91_f2189886","line":231,"updated":"2015-05-07 01:42:19.000000000","message":"since you have mocked the cinder.volume.utils._usage_from_volume with fixed return value, the line 262 will definitely fail","commit_id":"f40d66f35a64122c0c0b99463813bc94dfb120d4"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"215edf938c1ed79ba4d76bf3cf6dd9aa31777490","unresolved":false,"context_lines":[{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    @mock.patch(\u0027cinder.volume.utils._usage_from_volume\u0027)"},{"line_number":230,"context_line":"    def test_usage_from_volume(self, mock_usage):"},{"line_number":231,"context_line":"        mock_usage.return_value \u003d {\u0027glance_metadata\u0027: {\u0027image_id\u0027: \u0027123456\u0027}}"},{"line_number":232,"context_line":"        raw_volume \u003d {"},{"line_number":233,"context_line":"            \u0027project_id\u0027: \u002712b0330ec2584a\u0027,"},{"line_number":234,"context_line":"            \u0027user_id\u0027: \u0027158cba1b8c2bb6008e\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aca2d91_b8367f01","line":231,"in_reply_to":"1aca2d91_f2189886","updated":"2015-05-07 04:06:44.000000000","message":"It should mock _get_volume_image_metadata method. I will fix it. Thanks","commit_id":"f40d66f35a64122c0c0b99463813bc94dfb120d4"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"698d1a28e81a63554ad3398e7277cffa3652b629","unresolved":false,"context_lines":[{"line_number":256,"context_line":"            \u0027display_name\u0027: \u002711\u0027,"},{"line_number":257,"context_line":"            \u0027created_at\u0027: \u00272014-12-11T10:10:00\u0027,"},{"line_number":258,"context_line":"            \u0027status\u0027: \u0027available\u0027,"},{"line_number":259,"context_line":"            \u0027volume_metadata\u0027: {\u0027123\u0027: \u0027456\u0027},"},{"line_number":260,"context_line":"            \u0027glance_metadata\u0027: {\u0027image_id\u0027: \u0027123456\u0027},"},{"line_number":261,"context_line":"        }"},{"line_number":262,"context_line":"        self.assertEqual(expected_volume, usage_info)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aca2d91_7226c8cf","line":259,"updated":"2015-05-07 01:42:19.000000000","message":"the code in volume.utils just has metadata, no volume_metadata","commit_id":"f40d66f35a64122c0c0b99463813bc94dfb120d4"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"215edf938c1ed79ba4d76bf3cf6dd9aa31777490","unresolved":false,"context_lines":[{"line_number":256,"context_line":"            \u0027display_name\u0027: \u002711\u0027,"},{"line_number":257,"context_line":"            \u0027created_at\u0027: \u00272014-12-11T10:10:00\u0027,"},{"line_number":258,"context_line":"            \u0027status\u0027: \u0027available\u0027,"},{"line_number":259,"context_line":"            \u0027volume_metadata\u0027: {\u0027123\u0027: \u0027456\u0027},"},{"line_number":260,"context_line":"            \u0027glance_metadata\u0027: {\u0027image_id\u0027: \u0027123456\u0027},"},{"line_number":261,"context_line":"        }"},{"line_number":262,"context_line":"        self.assertEqual(expected_volume, usage_info)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aca2d91_23dc8411","line":259,"in_reply_to":"1aca2d91_7226c8cf","updated":"2015-05-07 04:06:44.000000000","message":"Done","commit_id":"f40d66f35a64122c0c0b99463813bc94dfb120d4"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"65decb32f424d6a36f7c59223b77ab12579531a3","unresolved":false,"context_lines":[{"line_number":265,"context_line":"            \u0027replication_extended_status\u0027: None,"},{"line_number":266,"context_line":"            \u0027replication_driver_data\u0027: None,"},{"line_number":267,"context_line":"            \u0027status\u0027: \u0027available\u0027,"},{"line_number":268,"context_line":"            \u0027metadata\u0027: {\u0027123\u0027: \u0027456\u0027},"},{"line_number":269,"context_line":"            \u0027glance_metadata\u0027: {\u0027image_id\u0027: \u0027123456\u0027},"},{"line_number":270,"context_line":"        }"},{"line_number":271,"context_line":"        self.assertEqual(expected_volume, usage_info)"}],"source_content_type":"text/x-python","patch_set":18,"id":"7a016987_d52563c2","line":268,"updated":"2015-05-27 13:45:21.000000000","message":"Can we change this to volume_metadata?","commit_id":"2e244860e7ce04e5121b39d26232612104c070e6"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"7163d36e6a04bde6a652b7abd61576eae59b7750","unresolved":false,"context_lines":[{"line_number":265,"context_line":"            \u0027replication_extended_status\u0027: None,"},{"line_number":266,"context_line":"            \u0027replication_driver_data\u0027: None,"},{"line_number":267,"context_line":"            \u0027status\u0027: \u0027available\u0027,"},{"line_number":268,"context_line":"            \u0027metadata\u0027: {\u0027123\u0027: \u0027456\u0027},"},{"line_number":269,"context_line":"            \u0027glance_metadata\u0027: {\u0027image_id\u0027: \u0027123456\u0027},"},{"line_number":270,"context_line":"        }"},{"line_number":271,"context_line":"        self.assertEqual(expected_volume, usage_info)"}],"source_content_type":"text/x-python","patch_set":18,"id":"7a016987_f60dd03e","line":268,"in_reply_to":"7a016987_11f639f9","updated":"2015-05-28 16:06:42.000000000","message":"Mmmmm, I\u0027m clearly not understanding your question, sorry. :(\n\nWe use the name \u0027metadata\u0027 instead of \u0027volume_metadata\u0027 because that\u0027s how it is being called everywhere else in the code, the API and the CLI.\n\nWhy would we want to change the name to something different? Then we would have to wonder when we see this as \"volume_metadata\" if these 2 things are the same thing or if this \"volume_metadata\" has additional information or is mapped somehow from the original \"metadata\".\n\nIt\u0027s for consistency: The same thing is called the same way across different parts of the program.","commit_id":"2e244860e7ce04e5121b39d26232612104c070e6"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"17326538e2d4b85b2d8ae400debee9f120d252d8","unresolved":false,"context_lines":[{"line_number":265,"context_line":"            \u0027replication_extended_status\u0027: None,"},{"line_number":266,"context_line":"            \u0027replication_driver_data\u0027: None,"},{"line_number":267,"context_line":"            \u0027status\u0027: \u0027available\u0027,"},{"line_number":268,"context_line":"            \u0027metadata\u0027: {\u0027123\u0027: \u0027456\u0027},"},{"line_number":269,"context_line":"            \u0027glance_metadata\u0027: {\u0027image_id\u0027: \u0027123456\u0027},"},{"line_number":270,"context_line":"        }"},{"line_number":271,"context_line":"        self.assertEqual(expected_volume, usage_info)"}],"source_content_type":"text/x-python","patch_set":18,"id":"7a016987_76ba03e3","line":268,"in_reply_to":"7a016987_3bf3560c","updated":"2015-05-28 14:53:01.000000000","message":"We don\u0027t change it for consistency. We have the same name in the API, the CLI...","commit_id":"2e244860e7ce04e5121b39d26232612104c070e6"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"9344693dc27ccff7a366c05cd94351d8c13f27f6","unresolved":false,"context_lines":[{"line_number":265,"context_line":"            \u0027replication_extended_status\u0027: None,"},{"line_number":266,"context_line":"            \u0027replication_driver_data\u0027: None,"},{"line_number":267,"context_line":"            \u0027status\u0027: \u0027available\u0027,"},{"line_number":268,"context_line":"            \u0027metadata\u0027: {\u0027123\u0027: \u0027456\u0027},"},{"line_number":269,"context_line":"            \u0027glance_metadata\u0027: {\u0027image_id\u0027: \u0027123456\u0027},"},{"line_number":270,"context_line":"        }"},{"line_number":271,"context_line":"        self.assertEqual(expected_volume, usage_info)"}],"source_content_type":"text/x-python","patch_set":18,"id":"7a016987_3bf3560c","line":268,"in_reply_to":"7a016987_400f3de1","updated":"2015-05-28 14:32:54.000000000","message":"I know that, I was suggesting to change it everywhere necessary to improve readability. We have volume_id, volume_type and glance_metadata, then why not volume_metadata?","commit_id":"2e244860e7ce04e5121b39d26232612104c070e6"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"4661cd7a1cfb90308073b0d1c866b96d25ff6fcf","unresolved":false,"context_lines":[{"line_number":265,"context_line":"            \u0027replication_extended_status\u0027: None,"},{"line_number":266,"context_line":"            \u0027replication_driver_data\u0027: None,"},{"line_number":267,"context_line":"            \u0027status\u0027: \u0027available\u0027,"},{"line_number":268,"context_line":"            \u0027metadata\u0027: {\u0027123\u0027: \u0027456\u0027},"},{"line_number":269,"context_line":"            \u0027glance_metadata\u0027: {\u0027image_id\u0027: \u0027123456\u0027},"},{"line_number":270,"context_line":"        }"},{"line_number":271,"context_line":"        self.assertEqual(expected_volume, usage_info)"}],"source_content_type":"text/x-python","patch_set":18,"id":"7a016987_11f639f9","line":268,"in_reply_to":"7a016987_76ba03e3","updated":"2015-05-28 15:07:53.000000000","message":"But that doesn\u0027t explain why we shouldn\u0027t have the key \u0027volume_metadata\u0027 in usage_info dict.","commit_id":"2e244860e7ce04e5121b39d26232612104c070e6"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"0c3919ed12e105e42808c710d33da98c17ecc74f","unresolved":false,"context_lines":[{"line_number":265,"context_line":"            \u0027replication_extended_status\u0027: None,"},{"line_number":266,"context_line":"            \u0027replication_driver_data\u0027: None,"},{"line_number":267,"context_line":"            \u0027status\u0027: \u0027available\u0027,"},{"line_number":268,"context_line":"            \u0027metadata\u0027: {\u0027123\u0027: \u0027456\u0027},"},{"line_number":269,"context_line":"            \u0027glance_metadata\u0027: {\u0027image_id\u0027: \u0027123456\u0027},"},{"line_number":270,"context_line":"        }"},{"line_number":271,"context_line":"        self.assertEqual(expected_volume, usage_info)"}],"source_content_type":"text/x-python","patch_set":18,"id":"7a016987_400f3de1","line":268,"in_reply_to":"7a016987_d52563c2","updated":"2015-05-28 14:16:50.000000000","message":"Not correct.  L63 in utils.py switches the key name: metadata\u003dvolume_ref.get(\u0027volume_metadata\u0027)","commit_id":"2e244860e7ce04e5121b39d26232612104c070e6"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"2185e6c2fa4a272b7585c2d0fba02f8dd6f0ffd0","unresolved":false,"context_lines":[{"line_number":233,"context_line":"            \u0027user_id\u0027: \u0027158cba1b8c2bb6008e\u0027,"},{"line_number":234,"context_line":"            \u0027host\u0027: \u0027fake_host\u0027,"},{"line_number":235,"context_line":"            \u0027availability_zone\u0027: \u0027nova\u0027,"},{"line_number":236,"context_line":"            \u0027volume_type_id\u0027: \u0027123456\u0027,"},{"line_number":237,"context_line":"            \u0027id\u0027: \u0027654321\u0027,"},{"line_number":238,"context_line":"            \u0027size\u0027: 1,"},{"line_number":239,"context_line":"            \u0027display_name\u0027: \u002711\u0027,"}],"source_content_type":"text/x-python","patch_set":20,"id":"7a016987_501a3d70","line":236,"updated":"2015-05-29 16:03:49.000000000","message":"I would like to see the test value to be changed to something meaningful instead of just \u00271234..\u0027. Checkout the other literal values in this file. They look more elegant.","commit_id":"b2ec70e996d689e8f014cebb3d152417efd52e74"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"2185e6c2fa4a272b7585c2d0fba02f8dd6f0ffd0","unresolved":false,"context_lines":[{"line_number":234,"context_line":"            \u0027host\u0027: \u0027fake_host\u0027,"},{"line_number":235,"context_line":"            \u0027availability_zone\u0027: \u0027nova\u0027,"},{"line_number":236,"context_line":"            \u0027volume_type_id\u0027: \u0027123456\u0027,"},{"line_number":237,"context_line":"            \u0027id\u0027: \u0027654321\u0027,"},{"line_number":238,"context_line":"            \u0027size\u0027: 1,"},{"line_number":239,"context_line":"            \u0027display_name\u0027: \u002711\u0027,"},{"line_number":240,"context_line":"            \u0027created_at\u0027: datetime.datetime(2015, 1, 1, 1, 1, 1),"}],"source_content_type":"text/x-python","patch_set":20,"id":"7a016987_102725b7","line":237,"updated":"2015-05-29 16:03:49.000000000","message":"Ditto.","commit_id":"b2ec70e996d689e8f014cebb3d152417efd52e74"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"2185e6c2fa4a272b7585c2d0fba02f8dd6f0ffd0","unresolved":false,"context_lines":[{"line_number":236,"context_line":"            \u0027volume_type_id\u0027: \u0027123456\u0027,"},{"line_number":237,"context_line":"            \u0027id\u0027: \u0027654321\u0027,"},{"line_number":238,"context_line":"            \u0027size\u0027: 1,"},{"line_number":239,"context_line":"            \u0027display_name\u0027: \u002711\u0027,"},{"line_number":240,"context_line":"            \u0027created_at\u0027: datetime.datetime(2015, 1, 1, 1, 1, 1),"},{"line_number":241,"context_line":"            \u0027launched_at\u0027: datetime.datetime(2015, 1, 1, 1, 1, 1),"},{"line_number":242,"context_line":"            \u0027snapshot_id\u0027: None,"}],"source_content_type":"text/x-python","patch_set":20,"id":"7a016987_f02b6980","line":239,"updated":"2015-05-29 16:03:49.000000000","message":"Ditto.","commit_id":"b2ec70e996d689e8f014cebb3d152417efd52e74"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"2185e6c2fa4a272b7585c2d0fba02f8dd6f0ffd0","unresolved":false,"context_lines":[{"line_number":244,"context_line":"            \u0027replication_extended_status\u0027: None,"},{"line_number":245,"context_line":"            \u0027replication_driver_data\u0027: None,"},{"line_number":246,"context_line":"            \u0027status\u0027: \u0027available\u0027,"},{"line_number":247,"context_line":"            \u0027volume_metadata\u0027: {\u0027123\u0027: \u0027456\u0027},"},{"line_number":248,"context_line":"        }"},{"line_number":249,"context_line":"        usage_info \u003d volume_utils._usage_from_volume("},{"line_number":250,"context_line":"            mock.sentinel.context,"}],"source_content_type":"text/x-python","patch_set":20,"id":"7a016987_9578a7c5","line":247,"updated":"2015-05-29 16:03:49.000000000","message":"Ditto.","commit_id":"b2ec70e996d689e8f014cebb3d152417efd52e74"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"2185e6c2fa4a272b7585c2d0fba02f8dd6f0ffd0","unresolved":false,"context_lines":[{"line_number":254,"context_line":"            \u0027user_id\u0027: \u0027158cba1b8c2bb6008e\u0027,"},{"line_number":255,"context_line":"            \u0027host\u0027: \u0027fake_host\u0027,"},{"line_number":256,"context_line":"            \u0027availability_zone\u0027: \u0027nova\u0027,"},{"line_number":257,"context_line":"            \u0027volume_type\u0027: \u0027123456\u0027,"},{"line_number":258,"context_line":"            \u0027volume_id\u0027: \u0027654321\u0027,"},{"line_number":259,"context_line":"            \u0027size\u0027: 1,"},{"line_number":260,"context_line":"            \u0027display_name\u0027: \u002711\u0027,"}],"source_content_type":"text/x-python","patch_set":20,"id":"7a016987_5590efec","line":257,"updated":"2015-05-29 16:03:49.000000000","message":"Ditto.","commit_id":"b2ec70e996d689e8f014cebb3d152417efd52e74"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"2185e6c2fa4a272b7585c2d0fba02f8dd6f0ffd0","unresolved":false,"context_lines":[{"line_number":255,"context_line":"            \u0027host\u0027: \u0027fake_host\u0027,"},{"line_number":256,"context_line":"            \u0027availability_zone\u0027: \u0027nova\u0027,"},{"line_number":257,"context_line":"            \u0027volume_type\u0027: \u0027123456\u0027,"},{"line_number":258,"context_line":"            \u0027volume_id\u0027: \u0027654321\u0027,"},{"line_number":259,"context_line":"            \u0027size\u0027: 1,"},{"line_number":260,"context_line":"            \u0027display_name\u0027: \u002711\u0027,"},{"line_number":261,"context_line":"            \u0027created_at\u0027: \u00272015-01-01T01:01:01\u0027,"}],"source_content_type":"text/x-python","patch_set":20,"id":"7a016987_f5c11be5","line":258,"updated":"2015-05-29 16:03:49.000000000","message":"Ditto.","commit_id":"b2ec70e996d689e8f014cebb3d152417efd52e74"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"2185e6c2fa4a272b7585c2d0fba02f8dd6f0ffd0","unresolved":false,"context_lines":[{"line_number":257,"context_line":"            \u0027volume_type\u0027: \u0027123456\u0027,"},{"line_number":258,"context_line":"            \u0027volume_id\u0027: \u0027654321\u0027,"},{"line_number":259,"context_line":"            \u0027size\u0027: 1,"},{"line_number":260,"context_line":"            \u0027display_name\u0027: \u002711\u0027,"},{"line_number":261,"context_line":"            \u0027created_at\u0027: \u00272015-01-01T01:01:01\u0027,"},{"line_number":262,"context_line":"            \u0027launched_at\u0027: \u00272015-01-01T01:01:01\u0027,"},{"line_number":263,"context_line":"            \u0027snapshot_id\u0027: None,"}],"source_content_type":"text/x-python","patch_set":20,"id":"7a016987_b5b72384","line":260,"updated":"2015-05-29 16:03:49.000000000","message":"Ditto.","commit_id":"b2ec70e996d689e8f014cebb3d152417efd52e74"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"2185e6c2fa4a272b7585c2d0fba02f8dd6f0ffd0","unresolved":false,"context_lines":[{"line_number":265,"context_line":"            \u0027replication_extended_status\u0027: None,"},{"line_number":266,"context_line":"            \u0027replication_driver_data\u0027: None,"},{"line_number":267,"context_line":"            \u0027status\u0027: \u0027available\u0027,"},{"line_number":268,"context_line":"            \u0027metadata\u0027: {\u0027123\u0027: \u0027456\u0027},"},{"line_number":269,"context_line":"            \u0027glance_metadata\u0027: {\u0027image_id\u0027: \u0027123456\u0027},"},{"line_number":270,"context_line":"        }"},{"line_number":271,"context_line":"        self.assertEqual(expected_volume, usage_info)"}],"source_content_type":"text/x-python","patch_set":20,"id":"7a016987_75ae4b2f","line":268,"updated":"2015-05-29 16:03:49.000000000","message":"Ditto.","commit_id":"b2ec70e996d689e8f014cebb3d152417efd52e74"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"2185e6c2fa4a272b7585c2d0fba02f8dd6f0ffd0","unresolved":false,"context_lines":[{"line_number":266,"context_line":"            \u0027replication_driver_data\u0027: None,"},{"line_number":267,"context_line":"            \u0027status\u0027: \u0027available\u0027,"},{"line_number":268,"context_line":"            \u0027metadata\u0027: {\u0027123\u0027: \u0027456\u0027},"},{"line_number":269,"context_line":"            \u0027glance_metadata\u0027: {\u0027image_id\u0027: \u0027123456\u0027},"},{"line_number":270,"context_line":"        }"},{"line_number":271,"context_line":"        self.assertEqual(expected_volume, usage_info)"},{"line_number":272,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"7a016987_55a7cf4f","line":269,"updated":"2015-05-29 16:03:49.000000000","message":"Ditto.","commit_id":"b2ec70e996d689e8f014cebb3d152417efd52e74"}],"cinder/volume/utils.py":[{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"698d1a28e81a63554ad3398e7277cffa3652b629","unresolved":false,"context_lines":[{"line_number":30,"context_line":"from cinder.i18n import _, _LI"},{"line_number":31,"context_line":"from cinder import rpc"},{"line_number":32,"context_line":"from cinder import utils"},{"line_number":33,"context_line":"from cinder import volume as cinder_volume"},{"line_number":34,"context_line":"from cinder.volume import throttling"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1aca2d91_f231b80c","line":33,"updated":"2015-05-07 01:42:19.000000000","message":"I think this will introduce circle import issue, which is the main reason why gate fail so much","commit_id":"f40d66f35a64122c0c0b99463813bc94dfb120d4"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"a5a7d223cb2bb73eb2810520f5e93b79b4c520b9","unresolved":false,"context_lines":[{"line_number":30,"context_line":"from cinder.i18n import _, _LI"},{"line_number":31,"context_line":"from cinder import rpc"},{"line_number":32,"context_line":"from cinder import utils"},{"line_number":33,"context_line":"from cinder import volume as cinder_volume"},{"line_number":34,"context_line":"from cinder.volume import throttling"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1aca2d91_fd1749eb","line":33,"in_reply_to":"1aca2d91_f231b80c","updated":"2015-05-07 01:57:43.000000000","message":"As a workaround, use `import cinder.volume` instead, the recursive import issue in cinder can be handled in another patch","commit_id":"f40d66f35a64122c0c0b99463813bc94dfb120d4"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"215edf938c1ed79ba4d76bf3cf6dd9aa31777490","unresolved":false,"context_lines":[{"line_number":30,"context_line":"from cinder.i18n import _, _LI"},{"line_number":31,"context_line":"from cinder import rpc"},{"line_number":32,"context_line":"from cinder import utils"},{"line_number":33,"context_line":"from cinder import volume as cinder_volume"},{"line_number":34,"context_line":"from cinder.volume import throttling"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1aca2d91_23f364a0","line":33,"in_reply_to":"1aca2d91_fd1749eb","updated":"2015-05-07 04:06:44.000000000","message":"Sure.","commit_id":"f40d66f35a64122c0c0b99463813bc94dfb120d4"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"cc344301a5f7f5160fcdb3cc43e63fb9f6de86d4","unresolved":false,"context_lines":[{"line_number":30,"context_line":"from cinder.i18n import _, _LI"},{"line_number":31,"context_line":"from cinder import rpc"},{"line_number":32,"context_line":"from cinder import utils"},{"line_number":33,"context_line":"import cinder.volume as cinder_volume"},{"line_number":34,"context_line":"from cinder.volume import throttling"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1aca2d91_21beb2d4","line":33,"updated":"2015-05-07 10:59:45.000000000","message":"do not use alias, just use `import cinder.volume`\n\nwithout the import issue, it seems your code still lead to problem with existent test, see the trace below\n\n      File \"cinder/volume/flows/manager/create_volume.py\", line 323, in execute\n        host\u003dvolume_ref[\u0027host\u0027])\n      File \"cinder/volume/utils.py\", line 108, in notify_about_volume_usage\n        usage_info \u003d _usage_from_volume(context, volume, **extra_usage_info)\n      File \"cinder/volume/utils.py\", line 77, in _usage_from_volume\n        usage_info.update(_get_volume_image_metadata(context, volume_ref[\u0027id\u0027]))\n      File \"cinder/volume/utils.py\", line 50, in _get_volume_image_metadata\n        volume_api.get_volume_image_metadata(context, volume_id))\n      File \"cinder/volume/api.py\", line 94, in wrapped\n        check_policy(context, func.__name__, target_obj)\n      File \"cinder/volume/api.py\", line 110, in check_policy\n        target.update(target_obj or {})\n    ValueError: dictionary update sequence element #0 has length 1; 2 is required\n\n\u003d\u003d\u003d\u003d\u003d\u003d\nTotals\n\u003d\u003d\u003d\u003d\u003d\u003d\nRan: 5353 tests in 343.0000 sec.\n - Passed: 5245\n - Skipped: 9\n - Expected Fail: 0\n - Unexpected Success: 0\n - Failed: 99\nSum of execute time for each test: 329.1358 sec.","commit_id":"cf517e84a8ec796c551477d8035970a69e5bd412"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"c2f0f5f76ace0e09bc71234b99f79c23ddb5396e","unresolved":false,"context_lines":[{"line_number":30,"context_line":"from cinder.i18n import _, _LI"},{"line_number":31,"context_line":"from cinder import rpc"},{"line_number":32,"context_line":"from cinder import utils"},{"line_number":33,"context_line":"import cinder.volume as cinder_volume"},{"line_number":34,"context_line":"from cinder.volume import throttling"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1aca2d91_2a868765","line":33,"in_reply_to":"1aca2d91_21beb2d4","updated":"2015-05-07 11:55:53.000000000","message":"Emm, maybe using API is not good. I change the code to using db.volume_glance_metadata_get directly.","commit_id":"cf517e84a8ec796c551477d8035970a69e5bd412"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"cc344301a5f7f5160fcdb3cc43e63fb9f6de86d4","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    return str(s) if s else \u0027\u0027"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"def _get_volume_image_metadata(context, volume_id):"},{"line_number":47,"context_line":"    volume_api \u003d cinder_volume.API()"},{"line_number":48,"context_line":"    return dict(glance_metadata\u003d"},{"line_number":49,"context_line":"                volume_api.get_volume_image_metadata(context, volume_id))"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aca2d91_41964ef1","line":46,"updated":"2015-05-07 10:59:45.000000000","message":"plz change the second parameter to volume","commit_id":"cf517e84a8ec796c551477d8035970a69e5bd412"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"cc344301a5f7f5160fcdb3cc43e63fb9f6de86d4","unresolved":false,"context_lines":[{"line_number":46,"context_line":"def _get_volume_image_metadata(context, volume_id):"},{"line_number":47,"context_line":"    volume_api \u003d cinder_volume.API()"},{"line_number":48,"context_line":"    return dict(glance_metadata\u003d"},{"line_number":49,"context_line":"                volume_api.get_volume_image_metadata(context, volume_id))"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"def _usage_from_volume(context, volume_ref, **kw):"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aca2d91_c1dc9ee6","line":49,"updated":"2015-05-07 10:59:45.000000000","message":"-1: I think get_volume_image_metadata need a volume object instead of volume uuid, see the trace I pasted in above comment\n\nafter fix this, the failed test reduced to 75 but mainly caused by: cinder.exception.PolicyNotAuthorized: Policy doesn\u0027t allow volume:get_volume_image_metadata to be performed.\n\nI don\u0027t know the further details, seems context or policy need some change. Is the glance metadata required?","commit_id":"cf517e84a8ec796c551477d8035970a69e5bd412"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"6332035e26b43d114fa9d2f50a14cbc87568eec7","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    return str(s) if s else \u0027\u0027"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"def _get_volume_image_metadata(context, volume_id):"},{"line_number":47,"context_line":"    return dict(glance_metadata\u003d"},{"line_number":48,"context_line":"                db.volume_glance_metadata_get(context, volume_id))"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1aca2d91_16fccdb6","line":46,"updated":"2015-05-09 10:06:13.000000000","message":"Please, don\u0027t create methods that is called only once","commit_id":"2abebef126cd456d0b779087534f7571b98dc30c"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"175998ea24051ec8a6ef07b58246255f6db8ce8c","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    return str(s) if s else \u0027\u0027"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"def _get_volume_image_metadata(context, volume_id):"},{"line_number":47,"context_line":"    return dict(glance_metadata\u003d"},{"line_number":48,"context_line":"                db.volume_glance_metadata_get(context, volume_id))"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9af37de9_3131a3ed","line":46,"in_reply_to":"1aca2d91_16fccdb6","updated":"2015-05-11 02:16:10.000000000","message":"OK","commit_id":"2abebef126cd456d0b779087534f7571b98dc30c"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"6332035e26b43d114fa9d2f50a14cbc87568eec7","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        usage_info.update(_get_volume_image_metadata(context,"},{"line_number":77,"context_line":"                                                     volume_ref[\u0027id\u0027]))"},{"line_number":78,"context_line":"    except exception.GlanceMetadataNotFound:"},{"line_number":79,"context_line":"        pass"},{"line_number":80,"context_line":"    except exception.VolumeNotFound:"},{"line_number":81,"context_line":"        pass"},{"line_number":82,"context_line":"    return usage_info"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aca2d91_f6f831c5","line":79,"updated":"2015-05-09 10:06:13.000000000","message":"Please, add debug logging in exception handlers","commit_id":"2abebef126cd456d0b779087534f7571b98dc30c"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"175998ea24051ec8a6ef07b58246255f6db8ce8c","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        usage_info.update(_get_volume_image_metadata(context,"},{"line_number":77,"context_line":"                                                     volume_ref[\u0027id\u0027]))"},{"line_number":78,"context_line":"    except exception.GlanceMetadataNotFound:"},{"line_number":79,"context_line":"        pass"},{"line_number":80,"context_line":"    except exception.VolumeNotFound:"},{"line_number":81,"context_line":"        pass"},{"line_number":82,"context_line":"    return usage_info"}],"source_content_type":"text/x-python","patch_set":8,"id":"9af37de9_f151db0f","line":79,"in_reply_to":"1aca2d91_f6f831c5","updated":"2015-05-11 02:16:10.000000000","message":"Sure","commit_id":"2abebef126cd456d0b779087534f7571b98dc30c"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"95f0ff0188120ebac52ecce6dde4e7ca0f75b934","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        usage_info.update(dict(glance_metadata\u003d"},{"line_number":68,"context_line":"                               db.volume_glance_metadata_get(context,"},{"line_number":69,"context_line":"                                                             volume_ref[\u0027id\u0027]))"},{"line_number":70,"context_line":"                          )"},{"line_number":71,"context_line":"    except exception.GlanceMetadataNotFound:"},{"line_number":72,"context_line":"        LOG.debug(\"Can not find glance metadata of volume %s at notify usage\","},{"line_number":73,"context_line":"                  volume_ref[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":11,"id":"5ad58531_0d00d1a9","line":70,"updated":"2015-05-11 19:20:39.000000000","message":"I don\u0027t really care to see this in debug messages. There\u0027s not much point I can see.","commit_id":"66fa058477ad7eb2be793fe1e4d8a04bfb62199c"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"babf6fda80fb9f8e9364518d75ad8c2348cf79dc","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        usage_info.update(dict(glance_metadata\u003d"},{"line_number":68,"context_line":"                               db.volume_glance_metadata_get(context,"},{"line_number":69,"context_line":"                                                             volume_ref[\u0027id\u0027]))"},{"line_number":70,"context_line":"                          )"},{"line_number":71,"context_line":"    except exception.GlanceMetadataNotFound:"},{"line_number":72,"context_line":"        LOG.debug(\"Can not find glance metadata of volume %s at notify usage\","},{"line_number":73,"context_line":"                  volume_ref[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":11,"id":"9a0c5dc1_f0cb111d","line":70,"in_reply_to":"5ad58531_0d00d1a9","updated":"2015-05-12 07:59:35.000000000","message":"These were added because Ivan requested them in patch set 8. Particularly the second case (volume not found) shouldn\u0027t happen under any normal circumstance, so I\u0027d really like to see it left in. The metadata not found one can go since it will trigger for every normal, none-boot volume","commit_id":"66fa058477ad7eb2be793fe1e4d8a04bfb62199c"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"99a0f884638e03001b940cc1f378ce6f25eb9be2","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        usage_info.update(dict(glance_metadata\u003d"},{"line_number":68,"context_line":"                               db.volume_glance_metadata_get(context,"},{"line_number":69,"context_line":"                                                             volume_ref[\u0027id\u0027]))"},{"line_number":70,"context_line":"                          )"},{"line_number":71,"context_line":"    except exception.GlanceMetadataNotFound:"},{"line_number":72,"context_line":"        LOG.debug(\"Can not find glance metadata of volume %s at notify usage\","},{"line_number":73,"context_line":"                  volume_ref[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":11,"id":"9a0c5dc1_aa0bef7c","line":70,"in_reply_to":"5ad58531_0d00d1a9","updated":"2015-05-12 01:49:42.000000000","message":"Well...I will remove the log message.","commit_id":"66fa058477ad7eb2be793fe1e4d8a04bfb62199c"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"95f0ff0188120ebac52ecce6dde4e7ca0f75b934","unresolved":false,"context_lines":[{"line_number":73,"context_line":"                  volume_ref[\u0027id\u0027])"},{"line_number":74,"context_line":"        pass"},{"line_number":75,"context_line":"    except exception.VolumeNotFound:"},{"line_number":76,"context_line":"        LOG.debug(\"Can not find volume %s at notify usage\","},{"line_number":77,"context_line":"                  volume_ref[\u0027id\u0027])"},{"line_number":78,"context_line":"        pass"},{"line_number":79,"context_line":"    return usage_info"}],"source_content_type":"text/x-python","patch_set":11,"id":"5ad58531_cd3089a1","line":76,"updated":"2015-05-11 19:20:39.000000000","message":"same","commit_id":"66fa058477ad7eb2be793fe1e4d8a04bfb62199c"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"20bc32c122275e243c0f6cba55fe29e0c085757b","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    usage_info.update(kw)"},{"line_number":66,"context_line":"    try:"},{"line_number":67,"context_line":"        usage_info.update(dict(glance_metadata\u003d"},{"line_number":68,"context_line":"                               db.volume_glance_metadata_get(context,"},{"line_number":69,"context_line":"                                                             volume_ref[\u0027id\u0027]))"},{"line_number":70,"context_line":"                          )"}],"source_content_type":"text/x-python","patch_set":17,"id":"7a016987_7967ef25","line":67,"updated":"2015-05-26 17:54:06.000000000","message":"This is quite the line... It would be easier to read if it\u0027s split into 2: first assign to variable, then update dict.\n\nAnd it\u0027s overkill to create a dict for just 1 entry. It\u0027s better (faster and easier to read) to just do: `usage_info[\u0027glance_metadata\u0027] \u003d db.volume_glance_metadata_get(context, volume_ref[\u0027id\u0027])`","commit_id":"f6a8d0cb1db3d6add10283bf810671005cc57f5d"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"ac473e1ea2405298b85b801b17f4c70ac2709da1","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    usage_info.update(kw)"},{"line_number":66,"context_line":"    try:"},{"line_number":67,"context_line":"        usage_info.update(dict(glance_metadata\u003d"},{"line_number":68,"context_line":"                               db.volume_glance_metadata_get(context,"},{"line_number":69,"context_line":"                                                             volume_ref[\u0027id\u0027]))"},{"line_number":70,"context_line":"                          )"}],"source_content_type":"text/x-python","patch_set":17,"id":"7a016987_01e2b29f","line":67,"in_reply_to":"7a016987_3f24b7ad","updated":"2015-05-27 01:30:44.000000000","message":"Emm, I really think it\u0027s fine...., but will update it if need commit a new patch. Thanks your guys.","commit_id":"f6a8d0cb1db3d6add10283bf810671005cc57f5d"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"26e92d23cd62ea6a6fae8644d6c9e510f03e40d1","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    usage_info.update(kw)"},{"line_number":66,"context_line":"    try:"},{"line_number":67,"context_line":"        usage_info.update(dict(glance_metadata\u003d"},{"line_number":68,"context_line":"                               db.volume_glance_metadata_get(context,"},{"line_number":69,"context_line":"                                                             volume_ref[\u0027id\u0027]))"},{"line_number":70,"context_line":"                          )"}],"source_content_type":"text/x-python","patch_set":17,"id":"7a016987_3f24b7ad","line":67,"in_reply_to":"7a016987_7967ef25","updated":"2015-05-26 18:17:15.000000000","message":"+1","commit_id":"f6a8d0cb1db3d6add10283bf810671005cc57f5d"},{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"26e92d23cd62ea6a6fae8644d6c9e510f03e40d1","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    except exception.VolumeNotFound:"},{"line_number":74,"context_line":"        LOG.debug(\"Can not find volume %s at notify usage\","},{"line_number":75,"context_line":"                  volume_ref[\u0027id\u0027])"},{"line_number":76,"context_line":"        pass"},{"line_number":77,"context_line":"    return usage_info"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"7a016987_c4f8364c","line":76,"updated":"2015-05-26 18:17:15.000000000","message":"Here, this pass really required?","commit_id":"f6a8d0cb1db3d6add10283bf810671005cc57f5d"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"ac473e1ea2405298b85b801b17f4c70ac2709da1","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    except exception.VolumeNotFound:"},{"line_number":74,"context_line":"        LOG.debug(\"Can not find volume %s at notify usage\","},{"line_number":75,"context_line":"                  volume_ref[\u0027id\u0027])"},{"line_number":76,"context_line":"        pass"},{"line_number":77,"context_line":"    return usage_info"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"7a016987_81b462d1","line":76,"in_reply_to":"7a016987_c4f8364c","updated":"2015-05-27 01:30:44.000000000","message":"Well, not necessary, but also not bad impact. Will update it if need commit a new patch.","commit_id":"f6a8d0cb1db3d6add10283bf810671005cc57f5d"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"65decb32f424d6a36f7c59223b77ab12579531a3","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        replication_status\u003dvolume_ref[\u0027replication_status\u0027],"},{"line_number":61,"context_line":"        replication_extended_status\u003dvolume_ref[\u0027replication_extended_status\u0027],"},{"line_number":62,"context_line":"        replication_driver_data\u003dvolume_ref[\u0027replication_driver_data\u0027],"},{"line_number":63,"context_line":"        metadata\u003dvolume_ref.get(\u0027volume_metadata\u0027),)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    usage_info.update(kw)"},{"line_number":66,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":18,"id":"7a016987_f5b85f77","line":63,"updated":"2015-05-27 13:45:21.000000000","message":"nit: consider adding ) to the next line so that this line won\u0027t change when we add keys in future.","commit_id":"2e244860e7ce04e5121b39d26232612104c070e6"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"65decb32f424d6a36f7c59223b77ab12579531a3","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    except exception.GlanceMetadataNotFound:"},{"line_number":71,"context_line":"        pass"},{"line_number":72,"context_line":"    except exception.VolumeNotFound:"},{"line_number":73,"context_line":"        LOG.debug(\"Can not find volume %s at notify usage\", volume_ref[\u0027id\u0027])"},{"line_number":74,"context_line":"    return usage_info"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"7a016987_d577a3d2","line":73,"updated":"2015-05-27 13:45:21.000000000","message":"Should this be a warning? Also, end the message with period.","commit_id":"2e244860e7ce04e5121b39d26232612104c070e6"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"4d7957dc71636ac8df3425fdc02206f1933ae89b","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    except exception.GlanceMetadataNotFound:"},{"line_number":71,"context_line":"        pass"},{"line_number":72,"context_line":"    except exception.VolumeNotFound:"},{"line_number":73,"context_line":"        LOG.debug(\"Can not find volume %s at notify usage\", volume_ref[\u0027id\u0027])"},{"line_number":74,"context_line":"    return usage_info"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"7a016987_4f577302","line":73,"in_reply_to":"7a016987_34f6cef9","updated":"2015-05-28 11:56:49.000000000","message":"Ok, got it. Thanks.","commit_id":"2e244860e7ce04e5121b39d26232612104c070e6"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"c40ead52b46967baaafb51a3c1de5cdbd4e3ad5b","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    except exception.GlanceMetadataNotFound:"},{"line_number":71,"context_line":"        pass"},{"line_number":72,"context_line":"    except exception.VolumeNotFound:"},{"line_number":73,"context_line":"        LOG.debug(\"Can not find volume %s at notify usage\", volume_ref[\u0027id\u0027])"},{"line_number":74,"context_line":"    return usage_info"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"7a016987_34f6cef9","line":73,"in_reply_to":"7a016987_d577a3d2","updated":"2015-05-28 11:51:59.000000000","message":"No it shouldn\u0027t be a warning, since it isn\u0027t something the admin/operator is expected to be able to do anything about","commit_id":"2e244860e7ce04e5121b39d26232612104c070e6"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"2185e6c2fa4a272b7585c2d0fba02f8dd6f0ffd0","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    usage_info.update(kw)"},{"line_number":69,"context_line":"    try:"},{"line_number":70,"context_line":"        meta \u003d db.volume_glance_metadata_get(context, volume_ref[\u0027id\u0027])"},{"line_number":71,"context_line":"        if meta:"},{"line_number":72,"context_line":"            usage_info[\u0027glance_metadata\u0027] \u003d meta"},{"line_number":73,"context_line":"    except exception.GlanceMetadataNotFound:"}],"source_content_type":"text/x-python","patch_set":20,"id":"7a016987_50e47d3a","line":70,"updated":"2015-05-29 16:03:49.000000000","message":"I think the old name \u0027glance_metadata\u0027 is better than just \u0027meta\u0027.","commit_id":"b2ec70e996d689e8f014cebb3d152417efd52e74"}]}
