)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"fd210de7f556ed89cf5953b1a7853688fe249d46","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Gary W. Smith \u003cgary.w.smith@hp.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-12-19 16:04:24 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Expose cinder\u0027s scheduler pool stats API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The scheduler pool stats API needs to be available to other clients."},{"line_number":10,"context_line":"This API is not included via the command line since there is no use case"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3a961159_8729ce8b","line":7,"updated":"2014-12-26 10:21:34.000000000","message":"I know the docs are not up to the mark, but a DocImpact flag is still required for this blueprint I think","commit_id":"d4f26db3cf5f1acb62b54016dfce9068a1f2f823"},{"author":{"_account_id":6825,"name":"Gary W. Smith","email":"garysmith123@gmail.com","username":"gary-w-smith"},"change_message_id":"85360d149361a2a0a4ae2abe75112dc0d4c8d7f9","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Gary W. Smith \u003cgary.w.smith@hp.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-12-19 16:04:24 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Expose cinder\u0027s scheduler pool stats API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The scheduler pool stats API needs to be available to other clients."},{"line_number":10,"context_line":"This API is not included via the command line since there is no use case"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3a961159_545067d4","line":7,"in_reply_to":"3a961159_8729ce8b","updated":"2014-12-27 22:31:37.000000000","message":"Done","commit_id":"d4f26db3cf5f1acb62b54016dfce9068a1f2f823"}],"cinderclient/v2/client.py":[{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"0cf8e17689035ff80ec745dee01b38652c920984","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        self.cgsnapshots \u003d cgsnapshots.CgsnapshotManager(self)"},{"line_number":77,"context_line":"        self.availability_zones \u003d \\"},{"line_number":78,"context_line":"            availability_zones.AvailabilityZoneManager(self)"},{"line_number":79,"context_line":"        self.scheduler_pool_stats \u003d \\"},{"line_number":80,"context_line":"            scheduler_pool_stats.SchedulerPoolStatsManager(self)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        # Add in any extensions..."}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_1d2d98fe","line":79,"updated":"2014-12-11 21:05:33.000000000","message":"Maybe since this is the first API call related to scheduler information we should make this a bit more generic.\n\nself.scheduler \u003d scheduler.SchedulerManager(self)\n\nAnd, then just add an API inside the SchedulerManager called get_pool_stats() ?\n\nThat way, any future scheduler related stuff can just go into the same SchedulerManager","commit_id":"f88438e4e9fdd31effd930c1c3f9fa06abe9d200"},{"author":{"_account_id":6825,"name":"Gary W. Smith","email":"garysmith123@gmail.com","username":"gary-w-smith"},"change_message_id":"50b614ee2171e659b80a9631305c8f69a03b1647","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        self.cgsnapshots \u003d cgsnapshots.CgsnapshotManager(self)"},{"line_number":77,"context_line":"        self.availability_zones \u003d \\"},{"line_number":78,"context_line":"            availability_zones.AvailabilityZoneManager(self)"},{"line_number":79,"context_line":"        self.scheduler_pool_stats \u003d \\"},{"line_number":80,"context_line":"            scheduler_pool_stats.SchedulerPoolStatsManager(self)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        # Add in any extensions..."}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_bd6ba41c","line":79,"in_reply_to":"3a961159_1d2d98fe","updated":"2014-12-11 21:09:31.000000000","message":"ok","commit_id":"f88438e4e9fdd31effd930c1c3f9fa06abe9d200"}],"cinderclient/v2/pools.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"67b95f23e2311d5eeb1e55776449f5f514700879","unresolved":false,"context_lines":[{"line_number":41,"context_line":"            # up to attributes of the pool object"},{"line_number":42,"context_line":"            for pool in pools:"},{"line_number":43,"context_line":"                if hasattr(pool, \u0027capabilities\u0027):"},{"line_number":44,"context_line":"                    for (k, v) in pool.capabilities.items():"},{"line_number":45,"context_line":"                        setattr(pool, k, v)"},{"line_number":46,"context_line":"                    del pool.capabilities"},{"line_number":47,"context_line":"            return pools"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a961159_c55eb512","line":44,"updated":"2015-01-16 08:37:58.000000000","message":"Why don\u0027t use six.iteritems here? Generator will be more memory efficient. Also in (k, v) parentheses are not necessary.","commit_id":"f795f505e99f28b5405ce4b92221574a6f262646"},{"author":{"_account_id":6825,"name":"Gary W. Smith","email":"garysmith123@gmail.com","username":"gary-w-smith"},"change_message_id":"3fbfb53925df0cf4597cd0e4ce1769c18e5eaaa9","unresolved":false,"context_lines":[{"line_number":41,"context_line":"            # up to attributes of the pool object"},{"line_number":42,"context_line":"            for pool in pools:"},{"line_number":43,"context_line":"                if hasattr(pool, \u0027capabilities\u0027):"},{"line_number":44,"context_line":"                    for (k, v) in pool.capabilities.items():"},{"line_number":45,"context_line":"                        setattr(pool, k, v)"},{"line_number":46,"context_line":"                    del pool.capabilities"},{"line_number":47,"context_line":"            return pools"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a961159_38194d7a","line":44,"in_reply_to":"3a961159_c55eb512","updated":"2015-01-16 17:30:12.000000000","message":"Done","commit_id":"f795f505e99f28b5405ce4b92221574a6f262646"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"67b95f23e2311d5eeb1e55776449f5f514700879","unresolved":false,"context_lines":[{"line_number":42,"context_line":"            for pool in pools:"},{"line_number":43,"context_line":"                if hasattr(pool, \u0027capabilities\u0027):"},{"line_number":44,"context_line":"                    for (k, v) in pool.capabilities.items():"},{"line_number":45,"context_line":"                        setattr(pool, k, v)"},{"line_number":46,"context_line":"                    del pool.capabilities"},{"line_number":47,"context_line":"            return pools"},{"line_number":48,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a961159_658341cb","line":45,"updated":"2015-01-16 08:37:58.000000000","message":"You\u0027re not checking if this won\u0027t overwrite an attribute. Is that correct?","commit_id":"f795f505e99f28b5405ce4b92221574a6f262646"},{"author":{"_account_id":6825,"name":"Gary W. Smith","email":"garysmith123@gmail.com","username":"gary-w-smith"},"change_message_id":"3fbfb53925df0cf4597cd0e4ce1769c18e5eaaa9","unresolved":false,"context_lines":[{"line_number":42,"context_line":"            for pool in pools:"},{"line_number":43,"context_line":"                if hasattr(pool, \u0027capabilities\u0027):"},{"line_number":44,"context_line":"                    for (k, v) in pool.capabilities.items():"},{"line_number":45,"context_line":"                        setattr(pool, k, v)"},{"line_number":46,"context_line":"                    del pool.capabilities"},{"line_number":47,"context_line":"            return pools"},{"line_number":48,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a961159_989ec1b6","line":45,"in_reply_to":"3a961159_658341cb","updated":"2015-01-16 17:30:12.000000000","message":"Yes.  This logic matches what is done in the command line interface (see do_get_pools in cinderclient/v2/shell.py).  Added a comment to clarify this.","commit_id":"f795f505e99f28b5405ce4b92221574a6f262646"},{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"189e91056d4888526dc4473891ca15cb3a7c8b0e","unresolved":false,"context_lines":[{"line_number":43,"context_line":"                if hasattr(pool, \u0027capabilities\u0027):"},{"line_number":44,"context_line":"                    for (k, v) in pool.capabilities.items():"},{"line_number":45,"context_line":"                        setattr(pool, k, v)"},{"line_number":46,"context_line":"                    del pool.capabilities"},{"line_number":47,"context_line":"            return pools"},{"line_number":48,"context_line":"        else:"},{"line_number":49,"context_line":"            return self._list(\"/scheduler-stats/get_pools\", \"pools\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a961159_85a3cd9c","line":46,"updated":"2015-01-16 08:33:56.000000000","message":"why should we need to extract capabilities elements here?","commit_id":"f795f505e99f28b5405ce4b92221574a6f262646"},{"author":{"_account_id":6825,"name":"Gary W. Smith","email":"garysmith123@gmail.com","username":"gary-w-smith"},"change_message_id":"3fbfb53925df0cf4597cd0e4ce1769c18e5eaaa9","unresolved":false,"context_lines":[{"line_number":43,"context_line":"                if hasattr(pool, \u0027capabilities\u0027):"},{"line_number":44,"context_line":"                    for (k, v) in pool.capabilities.items():"},{"line_number":45,"context_line":"                        setattr(pool, k, v)"},{"line_number":46,"context_line":"                    del pool.capabilities"},{"line_number":47,"context_line":"            return pools"},{"line_number":48,"context_line":"        else:"},{"line_number":49,"context_line":"            return self._list(\"/scheduler-stats/get_pools\", \"pools\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a961159_18aad1d1","line":46,"in_reply_to":"3a961159_85a3cd9c","updated":"2015-01-16 17:30:12.000000000","message":"Ditto","commit_id":"f795f505e99f28b5405ce4b92221574a6f262646"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"95ede0e13dafd295056a8be517efe8d494ee811c","unresolved":false,"context_lines":[{"line_number":45,"context_line":"            # be attributes of the pool itself."},{"line_number":46,"context_line":"            for pool in pools:"},{"line_number":47,"context_line":"                if hasattr(pool, \u0027capabilities\u0027):"},{"line_number":48,"context_line":"                    for k, v in six.iteritems(pool.capabilities):"},{"line_number":49,"context_line":"                        setattr(pool, k, v)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"                    # Remove the capabilities dictionary since all of its"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a961159_01614ed4","line":48,"updated":"2015-01-19 18:13:36.000000000","message":"Using six here - good catch, thanks!","commit_id":"0d38c0b7277d38dcf6a3a62ed43e1400b7286331"}],"cinderclient/v2/shell.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"787ef87b91070da28524f24fc8fd1ffe4ef7d5e7","unresolved":false,"context_lines":[{"line_number":1928,"context_line":""},{"line_number":1929,"context_line":""},{"line_number":1930,"context_line":"@utils.service_type(\u0027volumev2\u0027)"},{"line_number":1931,"context_line":"def do_stat_list(cs, _args):"},{"line_number":1932,"context_line":"    \"\"\"Lists all stats zones.\"\"\""},{"line_number":1933,"context_line":"    result \u003d cs.scheduler.get_pool_stats(detailed\u003dTrue)"},{"line_number":1934,"context_line":"    utils.print_list(result, [\u0027Name\u0027, \u0027Capabilities\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_1d1e8d5f","line":1931,"updated":"2014-12-19 12:23:44.000000000","message":"This function needs very simple test.","commit_id":"8f3abcdd50371f3a9131ef7ef45cf72b5f1f8c2b"}]}
