)]}'
{"cinder/tests/unit/test_solidfire.py":[{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"8bea19eeea9aa1462caff5f38b7adab18e0e660c","unresolved":false,"context_lines":[{"line_number":170,"context_line":"                             \u0027name\u0027: test_name,"},{"line_number":171,"context_line":"                             \u0027accountID\u0027: 25,"},{"line_number":172,"context_line":"                             \u0027sliceCount\u0027: 1,"},{"line_number":173,"context_line":"                             \u0027totalSize\u0027: int(1.75 * units.Gi),"},{"line_number":174,"context_line":"                             \u0027enable512e\u0027: True,"},{"line_number":175,"context_line":"                             \u0027access\u0027: \"readWrite\","},{"line_number":176,"context_line":"                             \u0027status\u0027: \"active\","}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_ebfb6cbf","line":173,"updated":"2016-05-31 11:32:47.000000000","message":"Do we need to change this? We only need to set the expectation for \u0027ListActiveVolumes\u0027.","commit_id":"515812abb781baa2333735ac75b91d8090952ad5"},{"author":{"_account_id":20146,"name":"yuyafei","email":"yu.yafei@foxmail.com","username":"yuyafei"},"change_message_id":"a32a419488808d18034870ebbdf9955743c39ccd","unresolved":false,"context_lines":[{"line_number":170,"context_line":"                             \u0027name\u0027: test_name,"},{"line_number":171,"context_line":"                             \u0027accountID\u0027: 25,"},{"line_number":172,"context_line":"                             \u0027sliceCount\u0027: 1,"},{"line_number":173,"context_line":"                             \u0027totalSize\u0027: int(1.75 * units.Gi),"},{"line_number":174,"context_line":"                             \u0027enable512e\u0027: True,"},{"line_number":175,"context_line":"                             \u0027access\u0027: \"readWrite\","},{"line_number":176,"context_line":"                             \u0027status\u0027: \"active\","}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_2b9294f6","line":173,"in_reply_to":"9abb7d3a_ebfb6cbf","updated":"2016-05-31 11:39:04.000000000","message":"Sorry, it is my fault.","commit_id":"515812abb781baa2333735ac75b91d8090952ad5"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"8bea19eeea9aa1462caff5f38b7adab18e0e660c","unresolved":false,"context_lines":[{"line_number":805,"context_line":"        external_ref \u003d {\u0027name\u0027: \u0027existing volume\u0027, \u0027source-id\u0027: 5}"},{"line_number":806,"context_line":"        testvol \u003d {\u0027project_id\u0027: \u0027testprjid\u0027,"},{"line_number":807,"context_line":"                   \u0027name\u0027: \u0027testvol\u0027,"},{"line_number":808,"context_line":"                   \u0027size\u0027: 1.75,"},{"line_number":809,"context_line":"                   \u0027id\u0027: \u0027a720b3c0-d1f0-11e1-9b23-0800200c9a66\u0027,"},{"line_number":810,"context_line":"                   \u0027created_at\u0027: timeutils.utcnow()}"},{"line_number":811,"context_line":"        self.stubs.Set(solidfire.SolidFireDriver,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_eb224c51","line":808,"updated":"2016-05-31 11:32:47.000000000","message":"Why do we need to change this? This is the volume meta-data input from the manager, I don\u0027t think size will be a fraction.","commit_id":"515812abb781baa2333735ac75b91d8090952ad5"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"8bea19eeea9aa1462caff5f38b7adab18e0e660c","unresolved":false,"context_lines":[{"line_number":820,"context_line":"        external_ref \u003d {\u0027name\u0027: \u0027existing volume\u0027, \u0027source-id\u0027: 5}"},{"line_number":821,"context_line":"        testvol \u003d {\u0027project_id\u0027: \u0027testprjid\u0027,"},{"line_number":822,"context_line":"                   \u0027name\u0027: \u0027testvol\u0027,"},{"line_number":823,"context_line":"                   \u0027size\u0027: 1.75,"},{"line_number":824,"context_line":"                   \u0027id\u0027: \u0027a720b3c0-d1f0-11e1-9b23-0800200c9a66\u0027,"},{"line_number":825,"context_line":"                   \u0027created_at\u0027: timeutils.utcnow()}"},{"line_number":826,"context_line":"        self.stubs.Set(solidfire.SolidFireDriver,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_6bbc9cdc","line":823,"range":{"start_line":823,"start_character":27,"end_line":823,"end_character":31},"updated":"2016-05-31 11:32:47.000000000","message":"same comment","commit_id":"515812abb781baa2333735ac75b91d8090952ad5"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"3f7be798f8a0796c85793bacd01991693051d92d","unresolved":false,"context_lines":[{"line_number":823,"context_line":"                   \u0027size\u0027: 1,"},{"line_number":824,"context_line":"                   \u0027id\u0027: \u0027a720b3c0-d1f0-11e1-9b23-0800200c9a66\u0027,"},{"line_number":825,"context_line":"                   \u0027created_at\u0027: timeutils.utcnow()}"},{"line_number":826,"context_line":"        self.stubs.Set(solidfire.SolidFireDriver,"},{"line_number":827,"context_line":"                       \u0027_issue_api_request\u0027,"},{"line_number":828,"context_line":"                       self.fake_issue_api_request)"},{"line_number":829,"context_line":"        sfv \u003d solidfire.SolidFireDriver(configuration\u003dself.configuration)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_9b4478b7","line":826,"range":{"start_line":826,"start_character":8,"end_line":826,"end_character":49},"updated":"2016-06-01 09:01:01.000000000","message":"-1: No mox usage in new code, mock should be used instead.  Using `self.mock_object` with the same arguments should work.","commit_id":"3c6cbe90fffcd21c804c263948e1ee0d5063ec1a"},{"author":{"_account_id":20146,"name":"yuyafei","email":"yu.yafei@foxmail.com","username":"yuyafei"},"change_message_id":"a0ddac49f7c2837285d2d4d4b1360d0a0e291108","unresolved":false,"context_lines":[{"line_number":823,"context_line":"                   \u0027size\u0027: 1,"},{"line_number":824,"context_line":"                   \u0027id\u0027: \u0027a720b3c0-d1f0-11e1-9b23-0800200c9a66\u0027,"},{"line_number":825,"context_line":"                   \u0027created_at\u0027: timeutils.utcnow()}"},{"line_number":826,"context_line":"        self.stubs.Set(solidfire.SolidFireDriver,"},{"line_number":827,"context_line":"                       \u0027_issue_api_request\u0027,"},{"line_number":828,"context_line":"                       self.fake_issue_api_request)"},{"line_number":829,"context_line":"        sfv \u003d solidfire.SolidFireDriver(configuration\u003dself.configuration)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_7abf0d61","line":826,"range":{"start_line":826,"start_character":8,"end_line":826,"end_character":49},"in_reply_to":"9abb7d3a_9b4478b7","updated":"2016-06-01 09:31:42.000000000","message":"Thank you for your advice. I fixed it.","commit_id":"3c6cbe90fffcd21c804c263948e1ee0d5063ec1a"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"59a18598876f95995ad4d79c4626cb78a845acc6","unresolved":false,"context_lines":[{"line_number":825,"context_line":"                   \u0027created_at\u0027: timeutils.utcnow()}"},{"line_number":826,"context_line":"        mock_issue_api_request \u003d self.mock_object(solidfire.SolidFireDriver,"},{"line_number":827,"context_line":"                                                  \u0027_issue_api_request\u0027)"},{"line_number":828,"context_line":"        mock_issue_api_request.side_effect \u003d self.fake_issue_api_request"},{"line_number":829,"context_line":"        sfv \u003d solidfire.SolidFireDriver(configuration\u003dself.configuration)"},{"line_number":830,"context_line":"        size \u003d sfv.manage_existing_get_size(testvol, external_ref)"},{"line_number":831,"context_line":"        self.assertEqual(2, size)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9abb7d3a_8661bcab","line":828,"range":{"start_line":828,"start_character":8,"end_line":828,"end_character":72},"updated":"2016-06-01 10:32:58.000000000","message":"nit: This is a little convoluted, if you pass self.fake_issue_api_request as the 3rd parameter to the mock_object method it will have the same effect.","commit_id":"1fd0e27bb2ed27a950a32b5eb6ab6b997ecfd4f7"}],"cinder/volume/drivers/solidfire.py":[{"author":{"_account_id":19846,"name":"yuan.han@zte.com.cn","email":"yuan.han@zte.com.cn","username":"Michael-ZTE"},"change_message_id":"20af3e1be2bc321216b5c99fac084b86fe6c5961","unresolved":false,"context_lines":[{"line_number":1827,"context_line":"                  \u0027limit\u0027: 1}"},{"line_number":1828,"context_line":"        vols \u003d self._issue_api_request("},{"line_number":1829,"context_line":"            \u0027ListActiveVolumes\u0027, params)[\u0027result\u0027][\u0027volumes\u0027]"},{"line_number":1830,"context_line":"        return int(math.ceil(float(vols[0][\u0027totalSize\u0027]) / units.Gi))"},{"line_number":1831,"context_line":""},{"line_number":1832,"context_line":"    def unmanage(self, volume):"},{"line_number":1833,"context_line":"        \"\"\"Mark SolidFire Volume as unmanaged (export from Cinder).\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_4348ab87","line":1830,"range":{"start_line":1830,"start_character":19,"end_line":1830,"end_character":28},"updated":"2016-05-31 09:16:14.000000000","message":"Why is math.ceil used here? Not math.floor? Is there any special reason?","commit_id":"d0e7db1af48f6ca5515a6662de99ca86646cd6c1"},{"author":{"_account_id":21239,"name":"Alex Szarka","email":"szarka@inf.u-szeged.hu","username":"xavvior"},"change_message_id":"ba3c8ed44b257f3aece19a2b101f89f28dc4ba01","unresolved":false,"context_lines":[{"line_number":1827,"context_line":"                  \u0027limit\u0027: 1}"},{"line_number":1828,"context_line":"        vols \u003d self._issue_api_request("},{"line_number":1829,"context_line":"            \u0027ListActiveVolumes\u0027, params)[\u0027result\u0027][\u0027volumes\u0027]"},{"line_number":1830,"context_line":"        return int(math.ceil(float(vols[0][\u0027totalSize\u0027]) / units.Gi))"},{"line_number":1831,"context_line":""},{"line_number":1832,"context_line":"    def unmanage(self, volume):"},{"line_number":1833,"context_line":"        \"\"\"Mark SolidFire Volume as unmanaged (export from Cinder).\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_2265a0b4","line":1830,"range":{"start_line":1830,"start_character":15,"end_line":1830,"end_character":18},"updated":"2016-05-31 09:39:10.000000000","message":"float??? int??? decide which want you use. Float or int?","commit_id":"d0e7db1af48f6ca5515a6662de99ca86646cd6c1"},{"author":{"_account_id":20146,"name":"yuyafei","email":"yu.yafei@foxmail.com","username":"yuyafei"},"change_message_id":"cdf995665a14d9f9163de7770cde5e7773604164","unresolved":false,"context_lines":[{"line_number":1827,"context_line":"                  \u0027limit\u0027: 1}"},{"line_number":1828,"context_line":"        vols \u003d self._issue_api_request("},{"line_number":1829,"context_line":"            \u0027ListActiveVolumes\u0027, params)[\u0027result\u0027][\u0027volumes\u0027]"},{"line_number":1830,"context_line":"        return int(math.ceil(float(vols[0][\u0027totalSize\u0027]) / units.Gi))"},{"line_number":1831,"context_line":""},{"line_number":1832,"context_line":"    def unmanage(self, volume):"},{"line_number":1833,"context_line":"        \"\"\"Mark SolidFire Volume as unmanaged (export from Cinder).\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_d4a56aa2","line":1830,"range":{"start_line":1830,"start_character":15,"end_line":1830,"end_character":18},"in_reply_to":"9abb7d3a_2265a0b4","updated":"2016-05-31 11:06:34.000000000","message":"Thank you for your advice. If inside does not use float would return the floor of volume size. It is just like rbd driver: https://review.openstack.org/#/c/319764/","commit_id":"d0e7db1af48f6ca5515a6662de99ca86646cd6c1"},{"author":{"_account_id":20146,"name":"yuyafei","email":"yu.yafei@foxmail.com","username":"yuyafei"},"change_message_id":"7db70110d8c33fe2759ba7e59fd1393a7554cca6","unresolved":false,"context_lines":[{"line_number":1827,"context_line":"                  \u0027limit\u0027: 1}"},{"line_number":1828,"context_line":"        vols \u003d self._issue_api_request("},{"line_number":1829,"context_line":"            \u0027ListActiveVolumes\u0027, params)[\u0027result\u0027][\u0027volumes\u0027]"},{"line_number":1830,"context_line":"        return int(math.ceil(float(vols[0][\u0027totalSize\u0027]) / units.Gi))"},{"line_number":1831,"context_line":""},{"line_number":1832,"context_line":"    def unmanage(self, volume):"},{"line_number":1833,"context_line":"        \"\"\"Mark SolidFire Volume as unmanaged (export from Cinder).\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_ffc68f66","line":1830,"range":{"start_line":1830,"start_character":19,"end_line":1830,"end_character":28},"in_reply_to":"9abb7d3a_4348ab87","updated":"2016-05-31 09:25:20.000000000","message":"If the volume is less than 1024MB, the return size would be 0G.\nAnd most of cinder drivers get ceiling of volume size such as lvm, rbd, ibm, vmware, hpe and so on. Also I think it it more acceptable to get ceiling of volume size and we should keep consistent.","commit_id":"d0e7db1af48f6ca5515a6662de99ca86646cd6c1"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"7afd7996a1879d1dde132aeb50200ab777c6885d","unresolved":false,"context_lines":[{"line_number":1827,"context_line":"                  \u0027limit\u0027: 1}"},{"line_number":1828,"context_line":"        vols \u003d self._issue_api_request("},{"line_number":1829,"context_line":"            \u0027ListActiveVolumes\u0027, params)[\u0027result\u0027][\u0027volumes\u0027]"},{"line_number":1830,"context_line":"        return int(math.ceil(float(vols[0][\u0027totalSize\u0027]) / units.Gi))"},{"line_number":1831,"context_line":""},{"line_number":1832,"context_line":"    def unmanage(self, volume):"},{"line_number":1833,"context_line":"        \"\"\"Mark SolidFire Volume as unmanaged (export from Cinder).\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_68c94226","line":1830,"range":{"start_line":1830,"start_character":15,"end_line":1830,"end_character":18},"in_reply_to":"9abb7d3a_d4a56aa2","updated":"2016-05-31 11:32:24.000000000","message":"This is a contract of the driver API.\n\n\"When calculating the size, round up to the next GB.\"\n\nSee https://github.com/openstack/cinder/blob/master/cinder/volume/driver.py#L1814","commit_id":"d0e7db1af48f6ca5515a6662de99ca86646cd6c1"}]}
