)]}'
{"cinder/tests/test_volume.py":[{"author":{"_account_id":6939,"name":"Xiaoxi Chen","email":"superdebuger@gmail.com","username":"xiaoxi-chen"},"change_message_id":"2c80c335749f361758d5a9287930a563dc946edb","unresolved":false,"context_lines":[{"line_number":1359,"context_line":"        bs, count \u003d lvm_driver._calculate_count(\u002710M\u0027, 1)"},{"line_number":1360,"context_line":"        self.assertEquals(bs, \u002710M\u0027)"},{"line_number":1361,"context_line":"        self.assertEquals(count, 103)"},{"line_number":1362,"context_line":""},{"line_number":1363,"context_line":""},{"line_number":1364,"context_line":"class ISCSITestCase(DriverTestCase):"},{"line_number":1365,"context_line":"    \"\"\"Test Case for ISCSIDriver\"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPn%2F%2Fo8I%3D","line":1362,"updated":"2013-06-26 06:14:49.000000000","message":"Would you like to try some invalid bs such like :\n0B,0G ?\n-1B?\n12.34M?\n\nSince the variable blocksize directly load from config file, a stupid user may likely to put something wrong.","commit_id":"a08de7a57c7db164a1b7e37affbb657087286e47"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"d4106a9ade34092dc571d507631aef0a33ee583d","unresolved":false,"context_lines":[{"line_number":1359,"context_line":"        bs, count \u003d lvm_driver._calculate_count(\u002710M\u0027, 1)"},{"line_number":1360,"context_line":"        self.assertEquals(bs, \u002710M\u0027)"},{"line_number":1361,"context_line":"        self.assertEquals(count, 103)"},{"line_number":1362,"context_line":""},{"line_number":1363,"context_line":""},{"line_number":1364,"context_line":"class ISCSITestCase(DriverTestCase):"},{"line_number":1365,"context_line":"    \"\"\"Test Case for ISCSIDriver\"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPn%2F%2Fow0%3D","line":1362,"in_reply_to":"AAAAPn%2F%2Fo8I%3D","updated":"2013-06-26 08:09:03.000000000","message":"Done","commit_id":"a08de7a57c7db164a1b7e37affbb657087286e47"}],"cinder/volume/drivers/lvm.py":[{"author":{"_account_id":6939,"name":"Xiaoxi Chen","email":"superdebuger@gmail.com","username":"xiaoxi-chen"},"change_message_id":"6e4aba16d4a7ec1cf072f238266555c29483006e","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        size \u003d size_in_g + \u0027G\u0027"},{"line_number":103,"context_line":"        # Check if volume_dd_blocksize is valid"},{"line_number":104,"context_line":"        try:"},{"line_number":105,"context_line":"            bs \u003d strutils.to_bytes(blocksize)"},{"line_number":106,"context_line":"        except TypeError as ex:"},{"line_number":107,"context_line":"            msg \u003d _(\"Failed to read value from \\\u0027volume_dd_blocksize\\\u0027 \""},{"line_number":108,"context_line":"                    \"option, error: %(err)s\") % {\u0027err\u0027: ex.message}"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2Fv6Q%3D","line":105,"updated":"2013-06-22 18:38:37.000000000","message":"the strutils.to_bytes doesn\u0027t calculate the bytes as the same way DD does.\nin strutils.to_bytes, it treate GB and G the same, say \n   1G\u003d1GB\u003d1024**3\nhowever , in dd (refer to dd --help),\n   1G\u003d1024**3 \n   1GB\u003d1000**3","commit_id":"5a9c568a09bc8847f87f72fb2193e0e3ff1d4738"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"652dea7aacc4eba3b3685df8453a1869d9d57002","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        size \u003d size_in_g + \u0027G\u0027"},{"line_number":103,"context_line":"        # Check if volume_dd_blocksize is valid"},{"line_number":104,"context_line":"        try:"},{"line_number":105,"context_line":"            bs \u003d strutils.to_bytes(blocksize)"},{"line_number":106,"context_line":"        except TypeError as ex:"},{"line_number":107,"context_line":"            msg \u003d _(\"Failed to read value from \\\u0027volume_dd_blocksize\\\u0027 \""},{"line_number":108,"context_line":"                    \"option, error: %(err)s\") % {\u0027err\u0027: ex.message}"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2FvVQ%3D","line":105,"in_reply_to":"AAAAPn%2F%2Fv6Q%3D","updated":"2013-06-23 17:50:38.000000000","message":"I\u0027ve reported a bug to Oslo for striutils.  Hopefully Zhongyue will fix it soon.","commit_id":"5a9c568a09bc8847f87f72fb2193e0e3ff1d4738"},{"author":{"_account_id":7708,"name":"Sergey Vilgelm","username":"svilgelm","inactive":true},"change_message_id":"ed13f9c5710d2168c2c59f9a458493c9fe5372bb","unresolved":false,"context_lines":[{"line_number":108,"context_line":"                    \"option, error: %(err)s\") % {\u0027err\u0027: ex.message}"},{"line_number":109,"context_line":"            LOG.warn(msg)"},{"line_number":110,"context_line":"            # Fall back to default blocksize"},{"line_number":111,"context_line":"            bs \u003d 1024 ** 2"},{"line_number":112,"context_line":"            blocksize \u003d \u00271M\u0027"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        count \u003d math.ceil(strutils.to_bytes(size) / float(bs))"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2F4AU%3D","line":111,"updated":"2013-06-19 09:25:28.000000000","message":"Please use less magic numbers.\n\nfrom cinder import units\n\nbs \u003d units.MiB","commit_id":"5a9c568a09bc8847f87f72fb2193e0e3ff1d4738"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"652dea7aacc4eba3b3685df8453a1869d9d57002","unresolved":false,"context_lines":[{"line_number":108,"context_line":"                    \"option, error: %(err)s\") % {\u0027err\u0027: ex.message}"},{"line_number":109,"context_line":"            LOG.warn(msg)"},{"line_number":110,"context_line":"            # Fall back to default blocksize"},{"line_number":111,"context_line":"            bs \u003d 1024 ** 2"},{"line_number":112,"context_line":"            blocksize \u003d \u00271M\u0027"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        count \u003d math.ceil(strutils.to_bytes(size) / float(bs))"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2Fvps%3D","line":111,"in_reply_to":"AAAAPn%2F%2F4AU%3D","updated":"2013-06-23 17:50:38.000000000","message":"Done","commit_id":"5a9c568a09bc8847f87f72fb2193e0e3ff1d4738"},{"author":{"_account_id":7708,"name":"Sergey Vilgelm","username":"svilgelm","inactive":true},"change_message_id":"ed13f9c5710d2168c2c59f9a458493c9fe5372bb","unresolved":false,"context_lines":[{"line_number":111,"context_line":"            bs \u003d 1024 ** 2"},{"line_number":112,"context_line":"            blocksize \u003d \u00271M\u0027"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        count \u003d math.ceil(strutils.to_bytes(size) / float(bs))"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        return blocksize, int(count)"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2F3%2F4%3D","line":114,"updated":"2013-06-19 09:25:28.000000000","message":"count \u003d math.ceil(size_in_g * units.GiB / float(bs))","commit_id":"5a9c568a09bc8847f87f72fb2193e0e3ff1d4738"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"652dea7aacc4eba3b3685df8453a1869d9d57002","unresolved":false,"context_lines":[{"line_number":111,"context_line":"            bs \u003d 1024 ** 2"},{"line_number":112,"context_line":"            blocksize \u003d \u00271M\u0027"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        count \u003d math.ceil(strutils.to_bytes(size) / float(bs))"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        return blocksize, int(count)"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2Fvpo%3D","line":114,"in_reply_to":"AAAAPn%2F%2F3%2F4%3D","updated":"2013-06-23 17:50:38.000000000","message":"Done","commit_id":"5a9c568a09bc8847f87f72fb2193e0e3ff1d4738"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"b476c7daa7442612acaed23f77d2c439af6e747e","unresolved":false,"context_lines":[{"line_number":113,"context_line":"            LOG.warn(msg)"},{"line_number":114,"context_line":"            # Fall back to default blocksize"},{"line_number":115,"context_line":"            bs \u003d units.MiB"},{"line_number":116,"context_line":"            blocksize \u003d \u00271M\u0027"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        count \u003d math.ceil(size_in_g * units.GiB / float(bs))"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPn%2F%2FrQI%3D","line":116,"updated":"2013-06-25 14:14:50.000000000","message":"I wonder if it\u0027s possible to read the default from the StrOpt rather than listing it again.  Not sure if oslo.config supports/encourages this.","commit_id":"fdd83ae9956445a57dfaeac84941641c4fce5562"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"053513a69ecf8e20d44b1e3c55ef82d628032931","unresolved":false,"context_lines":[{"line_number":113,"context_line":"            LOG.warn(msg)"},{"line_number":114,"context_line":"            # Fall back to default blocksize"},{"line_number":115,"context_line":"            bs \u003d units.MiB"},{"line_number":116,"context_line":"            blocksize \u003d \u00271M\u0027"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        count \u003d math.ceil(size_in_g * units.GiB / float(bs))"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPn%2F%2Fq%2BI%3D","line":116,"in_reply_to":"AAAAPn%2F%2FrQI%3D","updated":"2013-06-25 15:25:42.000000000","message":"Yes, that makes sense.  Will do that. Thx.","commit_id":"fdd83ae9956445a57dfaeac84941641c4fce5562"},{"author":{"_account_id":1994,"name":"Zhongyue Luo","email":"zhongyue.luo@gmail.com","username":"zyluo"},"change_message_id":"cd5ae060b80d9f56fc84586598beed81883017d1","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        try:"},{"line_number":109,"context_line":"            # Rule out zero-sized/negative dd blocksize which"},{"line_number":110,"context_line":"            # cannot be caught by strutils"},{"line_number":111,"context_line":"            if blocksize[0] \u003d\u003d \u0027-\u0027 or blocksize[0] \u003d\u003d \u00270\u0027:"},{"line_number":112,"context_line":"                raise ValueError"},{"line_number":113,"context_line":"            bs \u003d strutils.to_bytes(blocksize)"},{"line_number":114,"context_line":"        except (ValueError, TypeError):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAPn%2F%2Fouc%3D","line":111,"updated":"2013-06-26 08:34:23.000000000","message":"How about:\n\n if blocksize.startswith((\u0027-\u0027. \u00270\u0027)):","commit_id":"ee2f3f664c407d4ffdcfd63f4c88c6a23e30d26e"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"219c0d8e04e07ab54a86423b6dc464d3049586a9","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        try:"},{"line_number":109,"context_line":"            # Rule out zero-sized/negative dd blocksize which"},{"line_number":110,"context_line":"            # cannot be caught by strutils"},{"line_number":111,"context_line":"            if blocksize[0] \u003d\u003d \u0027-\u0027 or blocksize[0] \u003d\u003d \u00270\u0027:"},{"line_number":112,"context_line":"                raise ValueError"},{"line_number":113,"context_line":"            bs \u003d strutils.to_bytes(blocksize)"},{"line_number":114,"context_line":"        except (ValueError, TypeError):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAPn%2F%2Fosc%3D","line":111,"in_reply_to":"AAAAPn%2F%2FouI%3D","updated":"2013-06-26 08:44:38.000000000","message":"well, it\u0027s said that array works faster but anyway.  Done.","commit_id":"ee2f3f664c407d4ffdcfd63f4c88c6a23e30d26e"},{"author":{"_account_id":1994,"name":"Zhongyue Luo","email":"zhongyue.luo@gmail.com","username":"zyluo"},"change_message_id":"804b6c096d9e4c992cc0a2f35a817f288e4a26a8","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        try:"},{"line_number":109,"context_line":"            # Rule out zero-sized/negative dd blocksize which"},{"line_number":110,"context_line":"            # cannot be caught by strutils"},{"line_number":111,"context_line":"            if blocksize[0] \u003d\u003d \u0027-\u0027 or blocksize[0] \u003d\u003d \u00270\u0027:"},{"line_number":112,"context_line":"                raise ValueError"},{"line_number":113,"context_line":"            bs \u003d strutils.to_bytes(blocksize)"},{"line_number":114,"context_line":"        except (ValueError, TypeError):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAPn%2F%2FouI%3D","line":111,"in_reply_to":"AAAAPn%2F%2Fouc%3D","updated":"2013-06-26 08:35:18.000000000","message":"oops. s/\\./\\,/g","commit_id":"ee2f3f664c407d4ffdcfd63f4c88c6a23e30d26e"}]}
