)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"65b66b78b79301aabc3894cca0db46b00132b448","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Giulio Fidente \u003cgfidente@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-12-03 13:44:20 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"fixes POOL free space reporting"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"this change adds a hidden method which calculates the actual thin"},{"line_number":10,"context_line":"pool free space from the data_percent LVM helper and reports it"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F9%2FzM%3D","line":7,"updated":"2013-12-03 16:53:49.000000000","message":"Should mention thin in the summary.","commit_id":"b843b936d2ee293c0ce4c0e66e8ba047f31aa56b"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"afe381bd7d56af008cb7007bec065fa253bcda2f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Giulio Fidente \u003cgfidente@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-12-03 13:44:20 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"fixes POOL free space reporting"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"this change adds a hidden method which calculates the actual thin"},{"line_number":10,"context_line":"pool free space from the data_percent LVM helper and reports it"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F9%2FvY%3D","line":7,"in_reply_to":"AAAATn%2F9%2FzM%3D","updated":"2013-12-03 17:01:59.000000000","message":"Done","commit_id":"b843b936d2ee293c0ce4c0e66e8ba047f31aa56b"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"65b66b78b79301aabc3894cca0db46b00132b448","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"this change adds a hidden method which calculates the actual thin"},{"line_number":10,"context_line":"pool free space from the data_percent LVM helper and reports it"},{"line_number":11,"context_line":"accordingly"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Id6a69644505ca10811db458ea90ed10f643054b2"},{"line_number":14,"context_line":"Closes-Bug: 1257252"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F9%2Fys%3D","line":11,"updated":"2013-12-03 16:53:49.000000000","message":"Please start this with a capital letter and end with a period.","commit_id":"b843b936d2ee293c0ce4c0e66e8ba047f31aa56b"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"afe381bd7d56af008cb7007bec065fa253bcda2f","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"this change adds a hidden method which calculates the actual thin"},{"line_number":10,"context_line":"pool free space from the data_percent LVM helper and reports it"},{"line_number":11,"context_line":"accordingly"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Id6a69644505ca10811db458ea90ed10f643054b2"},{"line_number":14,"context_line":"Closes-Bug: 1257252"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F9%2FvU%3D","line":11,"in_reply_to":"AAAATn%2F9%2Fys%3D","updated":"2013-12-03 17:01:59.000000000","message":"Done","commit_id":"b843b936d2ee293c0ce4c0e66e8ba047f31aa56b"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"3ab245fcb4f72ccd4d8242c3b3b1704fd52d7e40","unresolved":false,"context_lines":[{"line_number":11,"context_line":"accordingly."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Id6a69644505ca10811db458ea90ed10f643054b2"},{"line_number":14,"context_line":"Closes-Bug: 1257252"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"AAAATn%2F9%2BvQ%3D","line":14,"updated":"2013-12-03 20:06:22.000000000","message":"This is an alternative fix for 1249782, should link to that bug.\n\n(Also commit messages don\u0027t typically end in periods, just a nit, but since we\u0027re here anyway.)","commit_id":"8aedfe6d8549f051cebc688a783fceb2b476ef56"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"bf8177cca8f81acf1d686d9eb4f9aef6c26ddf4a","unresolved":false,"context_lines":[{"line_number":11,"context_line":"accordingly."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Id6a69644505ca10811db458ea90ed10f643054b2"},{"line_number":14,"context_line":"Closes-Bug: 1257252"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"AAAATn%2F996Q%3D","line":14,"in_reply_to":"AAAATn%2F9%2BvQ%3D","updated":"2013-12-03 22:25:44.000000000","message":"Done","commit_id":"8aedfe6d8549f051cebc688a783fceb2b476ef56"}],"cinder/brick/local_dev/lvm.py":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"65b66b78b79301aabc3894cca0db46b00132b448","unresolved":false,"context_lines":[{"line_number":127,"context_line":"                                  vg_name,"},{"line_number":128,"context_line":"                                  thin_pool_name,"},{"line_number":129,"context_line":"                                  no_suffix\u003dTrue):"},{"line_number":130,"context_line":"        \"\"\"Returns available ."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        :param root_helper: root_helper to use for execute"},{"line_number":133,"context_line":"        :param vg_name: the vg where the pool is placed"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2BAMc%3D","line":130,"updated":"2013-12-03 16:53:49.000000000","message":"Shouldn\u0027t have a space before the \u0027.\u0027 .  Also should describe what is returned.  \u0027Returns available thing pool free space.\u0027","commit_id":"b843b936d2ee293c0ce4c0e66e8ba047f31aa56b"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"afe381bd7d56af008cb7007bec065fa253bcda2f","unresolved":false,"context_lines":[{"line_number":127,"context_line":"                                  vg_name,"},{"line_number":128,"context_line":"                                  thin_pool_name,"},{"line_number":129,"context_line":"                                  no_suffix\u003dTrue):"},{"line_number":130,"context_line":"        \"\"\"Returns available ."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        :param root_helper: root_helper to use for execute"},{"line_number":133,"context_line":"        :param vg_name: the vg where the pool is placed"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9%2Fu4%3D","line":130,"in_reply_to":"AAAATn%2F%2BAMc%3D","updated":"2013-12-03 17:01:59.000000000","message":"Done","commit_id":"b843b936d2ee293c0ce4c0e66e8ba047f31aa56b"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"65b66b78b79301aabc3894cca0db46b00132b448","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        :param root_helper: root_helper to use for execute"},{"line_number":133,"context_line":"        :param vg_name: the vg where the pool is placed"},{"line_number":134,"context_line":"        :param thin_pool_name: the thin pool to gather info for"},{"line_number":135,"context_line":"        :param no_suffix: optional, reports sizes in g with no suffix"},{"line_number":136,"context_line":"        :returns: Free space, calculated after the data_percent value"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2BAM8%3D","line":135,"updated":"2013-12-03 16:53:49.000000000","message":"Why do you have this option if you are going to override it anyway?","commit_id":"b843b936d2ee293c0ce4c0e66e8ba047f31aa56b"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"afe381bd7d56af008cb7007bec065fa253bcda2f","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        :param root_helper: root_helper to use for execute"},{"line_number":133,"context_line":"        :param vg_name: the vg where the pool is placed"},{"line_number":134,"context_line":"        :param thin_pool_name: the thin pool to gather info for"},{"line_number":135,"context_line":"        :param no_suffix: optional, reports sizes in g with no suffix"},{"line_number":136,"context_line":"        :returns: Free space, calculated after the data_percent value"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9%2Fuk%3D","line":135,"in_reply_to":"AAAATn%2F%2BAM8%3D","updated":"2013-12-03 17:01:59.000000000","message":"I\u0027m not overriding the functionality, I need the nosuffix appended regardless so that calculation can happen correctly, but later I add the \"g\" suffix if no_suffix is False","commit_id":"b843b936d2ee293c0ce4c0e66e8ba047f31aa56b"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"255f029101c7ca636be589e26a4642ef7cef5965","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        :param root_helper: root_helper to use for execute"},{"line_number":133,"context_line":"        :param vg_name: the vg where the pool is placed"},{"line_number":134,"context_line":"        :param thin_pool_name: the thin pool to gather info for"},{"line_number":135,"context_line":"        :param no_suffix: optional, reports sizes in g with no suffix"},{"line_number":136,"context_line":"        :returns: Free space, calculated after the data_percent value"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9%2Fm4%3D","line":135,"in_reply_to":"AAAATn%2F9%2Fuk%3D","updated":"2013-12-03 17:19:03.000000000","message":"Got it.  I see that now.  Thanks!","commit_id":"b843b936d2ee293c0ce4c0e66e8ba047f31aa56b"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"65b66b78b79301aabc3894cca0db46b00132b448","unresolved":false,"context_lines":[{"line_number":152,"context_line":"        free_space \u003d 0"},{"line_number":153,"context_line":"        if out is not None:"},{"line_number":154,"context_line":"            data \u003d out.split()"},{"line_number":155,"context_line":"            consumed_space \u003d float(data[0])/100*(float(data[1]))"},{"line_number":156,"context_line":"            free_space \u003d float(data[0]) - consumed_space"},{"line_number":157,"context_line":"            free_space \u003d str(round(free_space, 2))"},{"line_number":158,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9%2Fzo%3D","line":155,"updated":"2013-12-03 16:53:49.000000000","message":"PEP8 fails.","commit_id":"b843b936d2ee293c0ce4c0e66e8ba047f31aa56b"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"afe381bd7d56af008cb7007bec065fa253bcda2f","unresolved":false,"context_lines":[{"line_number":152,"context_line":"        free_space \u003d 0"},{"line_number":153,"context_line":"        if out is not None:"},{"line_number":154,"context_line":"            data \u003d out.split()"},{"line_number":155,"context_line":"            consumed_space \u003d float(data[0])/100*(float(data[1]))"},{"line_number":156,"context_line":"            free_space \u003d float(data[0]) - consumed_space"},{"line_number":157,"context_line":"            free_space \u003d str(round(free_space, 2))"},{"line_number":158,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9%2Fug%3D","line":155,"in_reply_to":"AAAATn%2F9%2Fzo%3D","updated":"2013-12-03 17:01:59.000000000","message":"Done","commit_id":"b843b936d2ee293c0ce4c0e66e8ba047f31aa56b"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"19e37e4184d68d9857b5e11320e2ab0409da217b","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        if not no_suffix:"},{"line_number":160,"context_line":"            free_space \u003d free_space + \"g\""},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        return free_space"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    @staticmethod"},{"line_number":165,"context_line":"    def get_lvm_version(root_helper):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9%2FlE%3D","line":162,"updated":"2013-12-03 17:22:12.000000000","message":"I am wondering if the lvs command should be in a try block.  If something goes wrong you can handle the exception and print an appropriate error message and then 0 will be returned for the free space.  That seems better than an exception being sent further up the stack here.  I could be wrong though.","commit_id":"0107af1e13f49707629c4de3a50b06ff38957974"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"727881c3383ab9c430d7e6f2e95c377317ae19b4","unresolved":false,"context_lines":[{"line_number":125,"context_line":"    def _get_thin_pool_free_space(self,"},{"line_number":126,"context_line":"                                  vg_name,"},{"line_number":127,"context_line":"                                  thin_pool_name,"},{"line_number":128,"context_line":"                                  no_suffix\u003dTrue):"},{"line_number":129,"context_line":"        \"\"\"Returns available thin pool free space."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        :param vg_name: the vg where the pool is placed"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F95mE%3D","line":128,"updated":"2013-12-04 18:07:58.000000000","message":"Should remove the no_suffix parameter, doesn\u0027t seem to be needed.  (Esp. since this method should probably return an int rather than a string, see below comments.)","commit_id":"0f50daf09a8d6f4b36f15193812aefacafb81c4c"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"71922b5d20221b9a87272933da26d68ceba2ffed","unresolved":false,"context_lines":[{"line_number":125,"context_line":"    def _get_thin_pool_free_space(self,"},{"line_number":126,"context_line":"                                  vg_name,"},{"line_number":127,"context_line":"                                  thin_pool_name,"},{"line_number":128,"context_line":"                                  no_suffix\u003dTrue):"},{"line_number":129,"context_line":"        \"\"\"Returns available thin pool free space."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        :param vg_name: the vg where the pool is placed"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F9yck%3D","line":128,"in_reply_to":"AAAATn%2F95mE%3D","updated":"2013-12-05 22:04:02.000000000","message":"That\u0027s there for a number of reasons and is used, please don\u0027t remove.","commit_id":"0f50daf09a8d6f4b36f15193812aefacafb81c4c"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"84566aac197d072a5d74b71d299a2ad4960b3ec6","unresolved":false,"context_lines":[{"line_number":125,"context_line":"    def _get_thin_pool_free_space(self,"},{"line_number":126,"context_line":"                                  vg_name,"},{"line_number":127,"context_line":"                                  thin_pool_name,"},{"line_number":128,"context_line":"                                  no_suffix\u003dTrue):"},{"line_number":129,"context_line":"        \"\"\"Returns available thin pool free space."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        :param vg_name: the vg where the pool is placed"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F9yiE%3D","line":128,"in_reply_to":"AAAATn%2F95mE%3D","updated":"2013-12-06 00:18:46.000000000","message":"if we need to keep this, I\u0027ll have to return a string","commit_id":"0f50daf09a8d6f4b36f15193812aefacafb81c4c"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"85d6b005537d3f1862dba8ddc146045a3498daa5","unresolved":false,"context_lines":[{"line_number":125,"context_line":"    def _get_thin_pool_free_space(self,"},{"line_number":126,"context_line":"                                  vg_name,"},{"line_number":127,"context_line":"                                  thin_pool_name,"},{"line_number":128,"context_line":"                                  no_suffix\u003dTrue):"},{"line_number":129,"context_line":"        \"\"\"Returns available thin pool free space."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        :param vg_name: the vg where the pool is placed"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F9uzo%3D","line":128,"in_reply_to":"AAAATn%2F9yck%3D","updated":"2013-12-06 16:10:05.000000000","message":"My bad... no need for no_suffix on the internal method here.","commit_id":"0f50daf09a8d6f4b36f15193812aefacafb81c4c"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"866bc065b8c3cfe85bd816ab1556097a15736635","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        :returns: Free space, calculated after the data_percent value"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        \"\"\""},{"line_number":137,"context_line":"        cmd \u003d [\u0027lvs\u0027, \u0027--noheadings\u0027, \u0027--unit\u003dg\u0027, \u0027-o\u0027, \u0027size,data_percent\u0027]"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        # NOTE(gfidente): data_percent only applies to some types of LV so we"},{"line_number":140,"context_line":"        # make sure to append the actual thin pool name"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F9yKk%3D","line":137,"updated":"2013-12-05 23:01:38.000000000","message":"This needs to be called with env LC_ALL\u003dC LANG\u003dC like other commands.  Otherwise your calculations break on locales that use commas as decimal separators when trying to cast to floats.\n\nPlease also add \"--separator :\" both for consistency and more reliable parsing.","commit_id":"0f50daf09a8d6f4b36f15193812aefacafb81c4c"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"84566aac197d072a5d74b71d299a2ad4960b3ec6","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        :returns: Free space, calculated after the data_percent value"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        \"\"\""},{"line_number":137,"context_line":"        cmd \u003d [\u0027lvs\u0027, \u0027--noheadings\u0027, \u0027--unit\u003dg\u0027, \u0027-o\u0027, \u0027size,data_percent\u0027]"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        # NOTE(gfidente): data_percent only applies to some types of LV so we"},{"line_number":140,"context_line":"        # make sure to append the actual thin pool name"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F9yKU%3D","line":137,"in_reply_to":"AAAATn%2F9yKk%3D","updated":"2013-12-06 00:18:46.000000000","message":"Done","commit_id":"0f50daf09a8d6f4b36f15193812aefacafb81c4c"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"0b0fc6ef794bcf0d323ae0e7aedbf205f0f95a4f","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        # make sure to append the actual thin pool name"},{"line_number":141,"context_line":"        cmd.append(\"/dev/%s/%s\" % (vg_name, thin_pool_name))"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        # NOTE(gfidente): we need to append this for the math to work"},{"line_number":144,"context_line":"        cmd.append(\u0027--nosuffix\u0027)"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        free_space \u003d str(0)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F9yLM%3D","line":143,"updated":"2013-12-05 22:58:51.000000000","message":"Probably can just stick this in the cmd \u003d list, I don\u0027t think it requires a comment.","commit_id":"0f50daf09a8d6f4b36f15193812aefacafb81c4c"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"84566aac197d072a5d74b71d299a2ad4960b3ec6","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        # make sure to append the actual thin pool name"},{"line_number":141,"context_line":"        cmd.append(\"/dev/%s/%s\" % (vg_name, thin_pool_name))"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        # NOTE(gfidente): we need to append this for the math to work"},{"line_number":144,"context_line":"        cmd.append(\u0027--nosuffix\u0027)"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        free_space \u003d str(0)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F9x7w%3D","line":143,"in_reply_to":"AAAATn%2F9yLM%3D","updated":"2013-12-06 00:18:46.000000000","message":"Done","commit_id":"0f50daf09a8d6f4b36f15193812aefacafb81c4c"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"727881c3383ab9c430d7e6f2e95c377317ae19b4","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        # NOTE(gfidente): we need to append this for the math to work"},{"line_number":144,"context_line":"        cmd.append(\u0027--nosuffix\u0027)"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        free_space \u003d str(0)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        try:"},{"line_number":149,"context_line":"            (out, err) \u003d self._execute(*cmd,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F95l0%3D","line":146,"updated":"2013-12-04 18:07:58.000000000","message":"Probably more straightforward as \u003d \u00270\u0027.  But I think this should be an integer anyway (see below comments).","commit_id":"0f50daf09a8d6f4b36f15193812aefacafb81c4c"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"84566aac197d072a5d74b71d299a2ad4960b3ec6","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        # NOTE(gfidente): we need to append this for the math to work"},{"line_number":144,"context_line":"        cmd.append(\u0027--nosuffix\u0027)"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        free_space \u003d str(0)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        try:"},{"line_number":149,"context_line":"            (out, err) \u003d self._execute(*cmd,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F9yiM%3D","line":146,"in_reply_to":"AAAATn%2F95l0%3D","updated":"2013-12-06 00:18:46.000000000","message":"Done","commit_id":"0f50daf09a8d6f4b36f15193812aefacafb81c4c"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"34905fbf5acb2bf2fb917e79d0f1adfdfe573e65","unresolved":false,"context_lines":[{"line_number":158,"context_line":"            LOG.exception(_(\u0027Error querying thin pool about data_percent\u0027))"},{"line_number":159,"context_line":"            LOG.error(_(\u0027Cmd     :%s\u0027) % err.cmd)"},{"line_number":160,"context_line":"            LOG.error(_(\u0027StdOut  :%s\u0027) % err.stdout)"},{"line_number":161,"context_line":"            LOG.error(_(\u0027StdErr  :%s\u0027) % err.stderr)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        if no_suffix is False:"},{"line_number":164,"context_line":"            free_space \u003d free_space + \"g\""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F98p4%3D","line":161,"updated":"2013-12-04 05:49:59.000000000","message":"Want to raise an exception here?","commit_id":"0f50daf09a8d6f4b36f15193812aefacafb81c4c"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"23637e02337babde103f01fd9ef3c65326a1ea04","unresolved":false,"context_lines":[{"line_number":158,"context_line":"            LOG.exception(_(\u0027Error querying thin pool about data_percent\u0027))"},{"line_number":159,"context_line":"            LOG.error(_(\u0027Cmd     :%s\u0027) % err.cmd)"},{"line_number":160,"context_line":"            LOG.error(_(\u0027StdOut  :%s\u0027) % err.stdout)"},{"line_number":161,"context_line":"            LOG.error(_(\u0027StdErr  :%s\u0027) % err.stderr)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        if no_suffix is False:"},{"line_number":164,"context_line":"            free_space \u003d free_space + \"g\""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F97a8%3D","line":161,"in_reply_to":"AAAATn%2F98p4%3D","updated":"2013-12-04 11:25:11.000000000","message":"No I catched it intentionally so that it will not raise but just return no free space in case of errors here","commit_id":"0f50daf09a8d6f4b36f15193812aefacafb81c4c"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"727881c3383ab9c430d7e6f2e95c377317ae19b4","unresolved":false,"context_lines":[{"line_number":160,"context_line":"            LOG.error(_(\u0027StdOut  :%s\u0027) % err.stdout)"},{"line_number":161,"context_line":"            LOG.error(_(\u0027StdErr  :%s\u0027) % err.stderr)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        if no_suffix is False:"},{"line_number":164,"context_line":"            free_space \u003d free_space + \"g\""},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        return free_space"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F95lQ%3D","line":163,"updated":"2013-12-04 18:07:58.000000000","message":"Remove","commit_id":"0f50daf09a8d6f4b36f15193812aefacafb81c4c"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"3bc1f638e5c2681f8bc4d2a4d8edeaa76badc8a7","unresolved":false,"context_lines":[{"line_number":160,"context_line":"            LOG.error(_(\u0027StdOut  :%s\u0027) % err.stdout)"},{"line_number":161,"context_line":"            LOG.error(_(\u0027StdErr  :%s\u0027) % err.stderr)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        if no_suffix is False:"},{"line_number":164,"context_line":"            free_space \u003d free_space + \"g\""},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        return free_space"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F9yJg%3D","line":163,"in_reply_to":"AAAATn%2F95lQ%3D","updated":"2013-12-05 23:07:46.000000000","message":"Based on John\u0027s comment above, I think this should also be left then?","commit_id":"0f50daf09a8d6f4b36f15193812aefacafb81c4c"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"84566aac197d072a5d74b71d299a2ad4960b3ec6","unresolved":false,"context_lines":[{"line_number":160,"context_line":"            LOG.error(_(\u0027StdOut  :%s\u0027) % err.stdout)"},{"line_number":161,"context_line":"            LOG.error(_(\u0027StdErr  :%s\u0027) % err.stderr)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        if no_suffix is False:"},{"line_number":164,"context_line":"            free_space \u003d free_space + \"g\""},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        return free_space"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F9yiI%3D","line":163,"in_reply_to":"AAAATn%2F95lQ%3D","updated":"2013-12-06 00:18:46.000000000","message":"sure in that case we\u0027ll want to keep this but then the method will be returning a string ... judging from line 394 it seems we actually return the \"available\" space in a VG as a string too, is that correct?","commit_id":"0f50daf09a8d6f4b36f15193812aefacafb81c4c"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"727881c3383ab9c430d7e6f2e95c377317ae19b4","unresolved":false,"context_lines":[{"line_number":401,"context_line":"                    self.vg_thin_pool_size \u003d lv[\u0027size\u0027]"},{"line_number":402,"context_line":"                    tpfs \u003d self._get_thin_pool_free_space(self.vg_name,"},{"line_number":403,"context_line":"                                                          self.vg_thin_pool)"},{"line_number":404,"context_line":"                    self.vg_thin_pool_free_space \u003d tpfs"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"    def create_thin_pool(self, name\u003dNone, size_str\u003d0):"},{"line_number":407,"context_line":"        \"\"\"Creates a thin provisioning pool for this VG."}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F95lg%3D","line":404,"updated":"2013-12-04 18:07:58.000000000","message":"self.vg_thin_pool_free_space is initialized to 0 (integer) but this sets it to a string.  This should also set it to an integer.","commit_id":"0f50daf09a8d6f4b36f15193812aefacafb81c4c"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"84566aac197d072a5d74b71d299a2ad4960b3ec6","unresolved":false,"context_lines":[{"line_number":401,"context_line":"                    self.vg_thin_pool_size \u003d lv[\u0027size\u0027]"},{"line_number":402,"context_line":"                    tpfs \u003d self._get_thin_pool_free_space(self.vg_name,"},{"line_number":403,"context_line":"                                                          self.vg_thin_pool)"},{"line_number":404,"context_line":"                    self.vg_thin_pool_free_space \u003d tpfs"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"    def create_thin_pool(self, name\u003dNone, size_str\u003d0):"},{"line_number":407,"context_line":"        \"\"\"Creates a thin provisioning pool for this VG."}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F9yiA%3D","line":404,"in_reply_to":"AAAATn%2F95lg%3D","updated":"2013-12-06 00:18:46.000000000","message":"Done","commit_id":"0f50daf09a8d6f4b36f15193812aefacafb81c4c"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"e8fe9c0ec8fc8f3e04a7c64b73c16faaaa7465fb","unresolved":false,"context_lines":[{"line_number":148,"context_line":"                data \u003d out.split(\u0027:\u0027)"},{"line_number":149,"context_line":"                consumed_space \u003d float(data[0]) / 100 * (float(data[1]))"},{"line_number":150,"context_line":"                free_space \u003d float(data[0]) - consumed_space"},{"line_number":151,"context_line":"                free_space \u003d round(free_space, 2)"},{"line_number":152,"context_line":"        except putils.ProcessExecutionError as err:"},{"line_number":153,"context_line":"            LOG.exception(_(\u0027Error querying thin pool about data_percent\u0027))"},{"line_number":154,"context_line":"            LOG.error(_(\u0027Cmd     :%s\u0027) % err.cmd)"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F9t2Y%3D","line":151,"updated":"2013-12-06 19:39:55.000000000","message":"The capacity filters and weighers in the scheduler floor() this to an integer anyway.","commit_id":"1679acd53d1f0c330edf583afe8b347a7304499c"}]}
