)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"be5cd643db8874be9cfa9b6ade096b160e5c6555","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The scheduler filter MetricsFilter filters out those hosts which don\u0027t"},{"line_number":10,"context_line":"have the metrics data available, so the metrics scheduler weigher won\u0027t"},{"line_number":11,"context_line":"fail during the following weighing process."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This is part of the blueprint utilization-aware-scheduling."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F9H4I%3D","line":11,"updated":"2013-12-16 15:50:16.000000000","message":"What failure?\n\nThe metrics weigher appears to raise an exception if and only if you configure for a metric that isn\u0027t presented by the compute node.  (i.e. by design)","commit_id":"c9ed32ecade3a9f0eaf1b30898caf4854c1ea717"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"c03c63715b4d610dfc5b55321aa17bcf40187a32","unresolved":false,"context_lines":[{"line_number":10,"context_line":"have the metrics data available, so the metrics scheduler weigher won\u0027t"},{"line_number":11,"context_line":"fail during the following weighing process."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This is part of the blueprint utilization-aware-scheduling."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ib4a898774daf683c4496ef3e9953d23027f11ac0"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F9K9I%3D","line":13,"updated":"2013-12-16 02:26:07.000000000","message":"DocImpact","commit_id":"c9ed32ecade3a9f0eaf1b30898caf4854c1ea717"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"d2b499cc93bda8a6a1c93a704b5b5182e1448520","unresolved":false,"context_lines":[{"line_number":10,"context_line":"have the metrics data available, so the metrics scheduler weigher won\u0027t"},{"line_number":11,"context_line":"fail during the following weighing process."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This is part of the blueprint utilization-aware-scheduling."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ib4a898774daf683c4496ef3e9953d23027f11ac0"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F8%2FNw%3D","line":13,"in_reply_to":"AAAATn%2F9K9I%3D","updated":"2013-12-18 02:26:56.000000000","message":"Done","commit_id":"c9ed32ecade3a9f0eaf1b30898caf4854c1ea717"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"081919a01b8ec98f9cefecdecfe0f8e4c312bd2e","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This is part of the blueprint utilization-aware-scheduling."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"DocImpact"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: Ib4a898774daf683c4496ef3e9953d23027f11ac0"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"AAAAUH%2F%2FZzI%3D","line":14,"updated":"2014-01-14 04:27:08.000000000","message":"It is better give some explanation for DocImpact.","commit_id":"9ca228f363d94d7dedec3cbc5c57ff3d903d94ea"}],"nova/scheduler/filters/metrics_filter.py":[{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"c03c63715b4d610dfc5b55321aa17bcf40187a32","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright (c) 2013 Intel, Inc."},{"line_number":4,"context_line":"# Copyright (c) 2012 OpenStack Foundation"},{"line_number":5,"context_line":"# All Rights Reserved."},{"line_number":6,"context_line":"#"},{"line_number":7,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9Rp0%3D","line":4,"updated":"2013-12-16 02:26:07.000000000","message":"2013?","commit_id":"c9ed32ecade3a9f0eaf1b30898caf4854c1ea717"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"d2b499cc93bda8a6a1c93a704b5b5182e1448520","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright (c) 2013 Intel, Inc."},{"line_number":4,"context_line":"# Copyright (c) 2012 OpenStack Foundation"},{"line_number":5,"context_line":"# All Rights Reserved."},{"line_number":6,"context_line":"#"},{"line_number":7,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F8%2FN0%3D","line":4,"in_reply_to":"AAAATn%2F9Rp0%3D","updated":"2013-12-18 02:26:56.000000000","message":"Done","commit_id":"c9ed32ecade3a9f0eaf1b30898caf4854c1ea717"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"6914666474817324f66ac6f9fe7cb42181426426","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def __init__(self):"},{"line_number":39,"context_line":"        super(MetricsFilter, self).__init__()"},{"line_number":40,"context_line":"        good \u003d utils.parse_options(CONF.metrics.weight_setting,"},{"line_number":41,"context_line":"                                   sep\u003d\u0027\u003d\u0027,"},{"line_number":42,"context_line":"                                   convertor\u003dfloat,"},{"line_number":43,"context_line":"                                   name\u003d\"metrics.weight_setting\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F82I4%3D","line":40,"updated":"2013-12-19 16:16:55.000000000","message":"Sorry, nit picky but \u0027good\u0027 is not a clear name.  \u0027opts\u0027 would be better. (or \u0027settings\u0027, as used in the weigher)","commit_id":"4a623187b253c89e664e9e322890d0be68b5ac2f"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"19368b1a80e19087775c0b602760aa9019f944e0","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def __init__(self):"},{"line_number":39,"context_line":"        super(MetricsFilter, self).__init__()"},{"line_number":40,"context_line":"        good \u003d utils.parse_options(CONF.metrics.weight_setting,"},{"line_number":41,"context_line":"                                   sep\u003d\u0027\u003d\u0027,"},{"line_number":42,"context_line":"                                   convertor\u003dfloat,"},{"line_number":43,"context_line":"                                   name\u003d\"metrics.weight_setting\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F80Bg%3D","line":40,"in_reply_to":"AAAATn%2F82I4%3D","updated":"2013-12-20 02:24:41.000000000","message":"Done","commit_id":"4a623187b253c89e664e9e322890d0be68b5ac2f"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"ea646087c7366144cf9f70e84e2ddaca65ed3e1c","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        self.keys \u003d [x[0] for x in good]"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def host_passes(self, host_state, filter_properties):"},{"line_number":44,"context_line":"        return all(key in host_state.metrics for key in self.keys)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FabA%3D","line":44,"updated":"2014-01-14 00:49:57.000000000","message":"Can u please add some log messages when the filter failed?","commit_id":"9ca228f363d94d7dedec3cbc5c57ff3d903d94ea"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"0bcffa6a17cf61c7150c5cca6b125d732d8a6e44","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        self.keys \u003d [x[0] for x in good]"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def host_passes(self, host_state, filter_properties):"},{"line_number":44,"context_line":"        return all(key in host_state.metrics for key in self.keys)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FZ4g%3D","line":44,"in_reply_to":"AAAAUH%2F%2FabA%3D","updated":"2014-01-14 03:51:56.000000000","message":"Done","commit_id":"9ca228f363d94d7dedec3cbc5c57ff3d903d94ea"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"f89bc17f958999c5f2add690a887dba62060d0e1","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def __init__(self):"},{"line_number":40,"context_line":"        super(MetricsFilter, self).__init__()"},{"line_number":41,"context_line":"        good \u003d utils.parse_options(CONF.metrics.weight_setting,"},{"line_number":42,"context_line":"                                   sep\u003d\u0027\u003d\u0027,"},{"line_number":43,"context_line":"                                   convertor\u003dfloat,"},{"line_number":44,"context_line":"                                   name\u003d\"metrics.weight_setting\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2FRfI%3D","line":41,"updated":"2014-01-15 16:13:31.000000000","message":"Rename \u0027good\u0027.  Perhaps \u0027opts\u0027?","commit_id":"f10620c51e366dfaaf85d8c6e9077ed6e12f30e2"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"c2ed0ab453c6148e5735e13340f9b8e5e78e5adc","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def __init__(self):"},{"line_number":40,"context_line":"        super(MetricsFilter, self).__init__()"},{"line_number":41,"context_line":"        good \u003d utils.parse_options(CONF.metrics.weight_setting,"},{"line_number":42,"context_line":"                                   sep\u003d\u0027\u003d\u0027,"},{"line_number":43,"context_line":"                                   convertor\u003dfloat,"},{"line_number":44,"context_line":"                                   name\u003d\"metrics.weight_setting\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2FPPw%3D","line":41,"in_reply_to":"AAAAUH%2F%2FRfI%3D","updated":"2014-01-16 02:46:39.000000000","message":"Done","commit_id":"f10620c51e366dfaaf85d8c6e9077ed6e12f30e2"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"8ab33a3d251ed292b6766185382eb800f483b731","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            LOG.debug(_(\"%(host_state)s does not have the metrics \""},{"line_number":51,"context_line":"                        \"%(metrics)s available\"),"},{"line_number":52,"context_line":"                      {\u0027host_state\u0027: host_state,"},{"line_number":53,"context_line":"                       \u0027metrics\u0027: \u0027,\u0027.join(unavail)})"},{"line_number":54,"context_line":"        return len(unavail) \u003d\u003d 0"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2B1A0%3D","line":53,"updated":"2014-01-21 17:01:39.000000000","message":"Let me suggest:\n\n    LOG.debug(_(\"%host_state)s does not have the following metrics: \"\n                \"%(metrics)s\"),\n              {\u0027host_state\u0027: host_state,\n               \u0027metrics\u0027: \u0027, \u0027.join(unavail)})\n\nI\u0027m using \u0027, \u0027 (comma space) to make the list of metrics a bit more readable.","commit_id":"1534f37c424cad95ef170ad93ef47fc1990d80da"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"faf3c1ef84d909357b82ec497a5418c097837f8b","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            LOG.debug(_(\"%(host_state)s does not have the metrics \""},{"line_number":51,"context_line":"                        \"%(metrics)s available\"),"},{"line_number":52,"context_line":"                      {\u0027host_state\u0027: host_state,"},{"line_number":53,"context_line":"                       \u0027metrics\u0027: \u0027,\u0027.join(unavail)})"},{"line_number":54,"context_line":"        return len(unavail) \u003d\u003d 0"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2By0M%3D","line":53,"in_reply_to":"AAAAUH%2F%2B1A0%3D","updated":"2014-01-22 03:26:44.000000000","message":"Done","commit_id":"1534f37c424cad95ef170ad93ef47fc1990d80da"}],"nova/scheduler/utils.py":[{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"2c5af10ea6e11fe12fd6cec5a2aece33a1703735","unresolved":false,"context_lines":[{"line_number":161,"context_line":"            good.append((key, value))"},{"line_number":162,"context_line":"        else:"},{"line_number":163,"context_line":"            bad.append(opt)"},{"line_number":164,"context_line":"    return (good, bad)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F86y8%3D","line":164,"updated":"2013-12-18 19:48:18.000000000","message":"What about just logging warnings about the \u0027bad\u0027 options here?  I can\u0027t imagine the caller would have any user for them.","commit_id":"9549310dcc7bfcbc3fd9fa9555269747f923f55e"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"509f6b521a70f8c2a56d62c2e70c15d5bf3fa699","unresolved":false,"context_lines":[{"line_number":161,"context_line":"            good.append((key, value))"},{"line_number":162,"context_line":"        else:"},{"line_number":163,"context_line":"            bad.append(opt)"},{"line_number":164,"context_line":"    return (good, bad)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F85WY%3D","line":164,"in_reply_to":"AAAATn%2F86y8%3D","updated":"2013-12-19 02:31:55.000000000","message":"Done","commit_id":"9549310dcc7bfcbc3fd9fa9555269747f923f55e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"f365b6d653de3c7ed0bbe57e335126cd0db618ca","unresolved":false,"context_lines":[{"line_number":164,"context_line":"    if bad:"},{"line_number":165,"context_line":"        LOG.warn(_(\"Ignoring the invalid elements of the option \""},{"line_number":166,"context_line":"                   \"%(name)s: %(options)s\"),"},{"line_number":167,"context_line":"                    dict(name\u003dname, opitons\u003d\",\".join(bad)))"},{"line_number":168,"context_line":"    return good"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F%2Ftuk%3D","line":167,"updated":"2014-01-09 09:42:35.000000000","message":"opitons \u003d\u003e options","commit_id":"6d9feddabc9bf8a748c52f27e669592fb69062a4"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"7f6d0742799db95d5ae8378184ee538a06a8e2a9","unresolved":false,"context_lines":[{"line_number":164,"context_line":"    if bad:"},{"line_number":165,"context_line":"        LOG.warn(_(\"Ignoring the invalid elements of the option \""},{"line_number":166,"context_line":"                   \"%(name)s: %(options)s\"),"},{"line_number":167,"context_line":"                    dict(name\u003dname, opitons\u003d\",\".join(bad)))"},{"line_number":168,"context_line":"    return good"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F%2FtsQ%3D","line":167,"in_reply_to":"AAAAUH%2F%2Ftuk%3D","updated":"2014-01-09 10:05:56.000000000","message":"Done","commit_id":"6d9feddabc9bf8a748c52f27e669592fb69062a4"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"ea646087c7366144cf9f70e84e2ddaca65ed3e1c","unresolved":false,"context_lines":[{"line_number":164,"context_line":"    if bad:"},{"line_number":165,"context_line":"        LOG.warn(_(\"Ignoring the invalid elements of the option \""},{"line_number":166,"context_line":"                   \"%(name)s: %(options)s\"),"},{"line_number":167,"context_line":"                    dict(name\u003dname, options\u003d\",\".join(bad)))"},{"line_number":168,"context_line":"    return good"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FaaY%3D","line":167,"updated":"2014-01-14 00:49:57.000000000","message":"Suggest use:\n{\u0027a\u0027: \u0027a1\u0027, \u0027b\u0027: \u0027b1\u0027}","commit_id":"9ca228f363d94d7dedec3cbc5c57ff3d903d94ea"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"0bcffa6a17cf61c7150c5cca6b125d732d8a6e44","unresolved":false,"context_lines":[{"line_number":164,"context_line":"    if bad:"},{"line_number":165,"context_line":"        LOG.warn(_(\"Ignoring the invalid elements of the option \""},{"line_number":166,"context_line":"                   \"%(name)s: %(options)s\"),"},{"line_number":167,"context_line":"                    dict(name\u003dname, options\u003d\",\".join(bad)))"},{"line_number":168,"context_line":"    return good"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FZ4c%3D","line":167,"in_reply_to":"AAAAUH%2F%2FaaY%3D","updated":"2014-01-14 03:51:56.000000000","message":"Done","commit_id":"9ca228f363d94d7dedec3cbc5c57ff3d903d94ea"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"f89bc17f958999c5f2add690a887dba62060d0e1","unresolved":false,"context_lines":[{"line_number":136,"context_line":"    hosts.append([host, node])"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"def parse_options(opts, sep\u003d\u0027\u003d\u0027, convertor\u003dstr, name\u003d\"\"):"},{"line_number":140,"context_line":"    \"\"\"Parse a list of options, each in the format of \u003ckey\u003e\u003csep\u003e\u003cvalue\u003e. Also"},{"line_number":141,"context_line":"    use the convertor to convert the value into desired type."},{"line_number":142,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2FReI%3D","line":139,"updated":"2014-01-15 16:13:31.000000000","message":"s/convertor/converter","commit_id":"f10620c51e366dfaaf85d8c6e9077ed6e12f30e2"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"c2ed0ab453c6148e5735e13340f9b8e5e78e5adc","unresolved":false,"context_lines":[{"line_number":136,"context_line":"    hosts.append([host, node])"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"def parse_options(opts, sep\u003d\u0027\u003d\u0027, convertor\u003dstr, name\u003d\"\"):"},{"line_number":140,"context_line":"    \"\"\"Parse a list of options, each in the format of \u003ckey\u003e\u003csep\u003e\u003cvalue\u003e. Also"},{"line_number":141,"context_line":"    use the convertor to convert the value into desired type."},{"line_number":142,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2FPPA%3D","line":139,"in_reply_to":"AAAAUH%2F%2FReI%3D","updated":"2014-01-16 02:46:39.000000000","message":"Done","commit_id":"f10620c51e366dfaaf85d8c6e9077ed6e12f30e2"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"f89bc17f958999c5f2add690a887dba62060d0e1","unresolved":false,"context_lines":[{"line_number":155,"context_line":"            key, _sep, value \u003d opt.partition(sep)"},{"line_number":156,"context_line":"            value \u003d convertor(value)"},{"line_number":157,"context_line":"        except ValueError:"},{"line_number":158,"context_line":"                key \u003d None"},{"line_number":159,"context_line":"                value \u003d None"},{"line_number":160,"context_line":"        if key and _sep and value is not None:"},{"line_number":161,"context_line":"            good.append((key, value))"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2FRdg%3D","line":158,"updated":"2014-01-15 16:13:31.000000000","message":"fix indent","commit_id":"f10620c51e366dfaaf85d8c6e9077ed6e12f30e2"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"c2ed0ab453c6148e5735e13340f9b8e5e78e5adc","unresolved":false,"context_lines":[{"line_number":155,"context_line":"            key, _sep, value \u003d opt.partition(sep)"},{"line_number":156,"context_line":"            value \u003d convertor(value)"},{"line_number":157,"context_line":"        except ValueError:"},{"line_number":158,"context_line":"                key \u003d None"},{"line_number":159,"context_line":"                value \u003d None"},{"line_number":160,"context_line":"        if key and _sep and value is not None:"},{"line_number":161,"context_line":"            good.append((key, value))"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2FPO8%3D","line":158,"in_reply_to":"AAAAUH%2F%2FRdg%3D","updated":"2014-01-16 02:46:39.000000000","message":"Done","commit_id":"f10620c51e366dfaaf85d8c6e9077ed6e12f30e2"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"8ab33a3d251ed292b6766185382eb800f483b731","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"def parse_options(opts, sep\u003d\u0027\u003d\u0027, converter\u003dstr, name\u003d\"\"):"},{"line_number":140,"context_line":"    \"\"\"Parse a list of options, each in the format of \u003ckey\u003e\u003csep\u003e\u003cvalue\u003e. Also"},{"line_number":141,"context_line":"    use the convertor to convert the value into desired type."},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    :params opts: list of options, e.g. from oslo.config.cfg.ListOpt"},{"line_number":144,"context_line":"    :params sep: the seperator"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2B1C8%3D","line":141,"updated":"2014-01-21 17:01:39.000000000","message":"For consistency, s/convertor/converter/","commit_id":"1534f37c424cad95ef170ad93ef47fc1990d80da"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"faf3c1ef84d909357b82ec497a5418c097837f8b","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"def parse_options(opts, sep\u003d\u0027\u003d\u0027, converter\u003dstr, name\u003d\"\"):"},{"line_number":140,"context_line":"    \"\"\"Parse a list of options, each in the format of \u003ckey\u003e\u003csep\u003e\u003cvalue\u003e. Also"},{"line_number":141,"context_line":"    use the convertor to convert the value into desired type."},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    :params opts: list of options, e.g. from oslo.config.cfg.ListOpt"},{"line_number":144,"context_line":"    :params sep: the seperator"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2By0A%3D","line":141,"in_reply_to":"AAAAUH%2F%2B1C8%3D","updated":"2014-01-22 03:26:44.000000000","message":"Done","commit_id":"1534f37c424cad95ef170ad93ef47fc1990d80da"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"8ab33a3d251ed292b6766185382eb800f483b731","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    use the convertor to convert the value into desired type."},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    :params opts: list of options, e.g. from oslo.config.cfg.ListOpt"},{"line_number":144,"context_line":"    :params sep: the seperator"},{"line_number":145,"context_line":"    :params converter: callable object to convert the value, should raise"},{"line_number":146,"context_line":"                       ValueError for conversion falure"},{"line_number":147,"context_line":"    :params name: name of the option"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2B1Cw%3D","line":144,"updated":"2014-01-21 17:01:39.000000000","message":"s/seperator/separator/ (spelling)","commit_id":"1534f37c424cad95ef170ad93ef47fc1990d80da"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"faf3c1ef84d909357b82ec497a5418c097837f8b","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    use the convertor to convert the value into desired type."},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    :params opts: list of options, e.g. from oslo.config.cfg.ListOpt"},{"line_number":144,"context_line":"    :params sep: the seperator"},{"line_number":145,"context_line":"    :params converter: callable object to convert the value, should raise"},{"line_number":146,"context_line":"                       ValueError for conversion falure"},{"line_number":147,"context_line":"    :params name: name of the option"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2Byz8%3D","line":144,"in_reply_to":"AAAAUH%2F%2B1Cw%3D","updated":"2014-01-22 03:26:44.000000000","message":"Done","commit_id":"1534f37c424cad95ef170ad93ef47fc1990d80da"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"8ab33a3d251ed292b6766185382eb800f483b731","unresolved":false,"context_lines":[{"line_number":143,"context_line":"    :params opts: list of options, e.g. from oslo.config.cfg.ListOpt"},{"line_number":144,"context_line":"    :params sep: the seperator"},{"line_number":145,"context_line":"    :params converter: callable object to convert the value, should raise"},{"line_number":146,"context_line":"                       ValueError for conversion falure"},{"line_number":147,"context_line":"    :params name: name of the option"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    :returns: a lists of tuple of valie (key, converted_value)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2B1Ck%3D","line":146,"updated":"2014-01-21 17:01:39.000000000","message":"s/falure/failure/ (spelling)","commit_id":"1534f37c424cad95ef170ad93ef47fc1990d80da"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"faf3c1ef84d909357b82ec497a5418c097837f8b","unresolved":false,"context_lines":[{"line_number":143,"context_line":"    :params opts: list of options, e.g. from oslo.config.cfg.ListOpt"},{"line_number":144,"context_line":"    :params sep: the seperator"},{"line_number":145,"context_line":"    :params converter: callable object to convert the value, should raise"},{"line_number":146,"context_line":"                       ValueError for conversion falure"},{"line_number":147,"context_line":"    :params name: name of the option"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    :returns: a lists of tuple of valie (key, converted_value)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2Byzw%3D","line":146,"in_reply_to":"AAAAUH%2F%2B1Ck%3D","updated":"2014-01-22 03:26:44.000000000","message":"Done","commit_id":"1534f37c424cad95ef170ad93ef47fc1990d80da"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"8ab33a3d251ed292b6766185382eb800f483b731","unresolved":false,"context_lines":[{"line_number":146,"context_line":"                       ValueError for conversion falure"},{"line_number":147,"context_line":"    :params name: name of the option"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    :returns: a lists of tuple of valie (key, converted_value)"},{"line_number":150,"context_line":"    \"\"\""},{"line_number":151,"context_line":"    good \u003d []"},{"line_number":152,"context_line":"    bad \u003d []"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2B1B8%3D","line":149,"updated":"2014-01-21 17:01:39.000000000","message":"s/valie/values/","commit_id":"1534f37c424cad95ef170ad93ef47fc1990d80da"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"faf3c1ef84d909357b82ec497a5418c097837f8b","unresolved":false,"context_lines":[{"line_number":146,"context_line":"                       ValueError for conversion falure"},{"line_number":147,"context_line":"    :params name: name of the option"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    :returns: a lists of tuple of valie (key, converted_value)"},{"line_number":150,"context_line":"    \"\"\""},{"line_number":151,"context_line":"    good \u003d []"},{"line_number":152,"context_line":"    bad \u003d []"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2Byzs%3D","line":149,"in_reply_to":"AAAAUH%2F%2B1B8%3D","updated":"2014-01-22 03:26:44.000000000","message":"Done","commit_id":"1534f37c424cad95ef170ad93ef47fc1990d80da"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"8ab33a3d251ed292b6766185382eb800f483b731","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    bad \u003d []"},{"line_number":153,"context_line":"    for opt in opts:"},{"line_number":154,"context_line":"        try:"},{"line_number":155,"context_line":"            key, _sep, value \u003d opt.partition(sep)"},{"line_number":156,"context_line":"            value \u003d converter(value)"},{"line_number":157,"context_line":"        except ValueError:"},{"line_number":158,"context_line":"            key \u003d None"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2B1CM%3D","line":155,"updated":"2014-01-21 17:01:39.000000000","message":"The \"_sep\" convention is intended to signal that we never use _sep; however, you use it on line 160.  I would rather you s/_sep/sep/","commit_id":"1534f37c424cad95ef170ad93ef47fc1990d80da"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"faf3c1ef84d909357b82ec497a5418c097837f8b","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    bad \u003d []"},{"line_number":153,"context_line":"    for opt in opts:"},{"line_number":154,"context_line":"        try:"},{"line_number":155,"context_line":"            key, _sep, value \u003d opt.partition(sep)"},{"line_number":156,"context_line":"            value \u003d converter(value)"},{"line_number":157,"context_line":"        except ValueError:"},{"line_number":158,"context_line":"            key \u003d None"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2Byy4%3D","line":155,"in_reply_to":"AAAAUH%2F%2B1CM%3D","updated":"2014-01-22 03:26:44.000000000","message":"Done","commit_id":"1534f37c424cad95ef170ad93ef47fc1990d80da"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"ead24acb917bb2e9cf9afb95f71dfd204defe162","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    bad \u003d []"},{"line_number":153,"context_line":"    for opt in opts:"},{"line_number":154,"context_line":"        try:"},{"line_number":155,"context_line":"            key, _sep, value \u003d opt.partition(sep)"},{"line_number":156,"context_line":"            value \u003d converter(value)"},{"line_number":157,"context_line":"        except ValueError:"},{"line_number":158,"context_line":"            key \u003d None"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2Byxw%3D","line":155,"in_reply_to":"AAAAUH%2F%2Byy4%3D","updated":"2014-01-22 03:36:20.000000000","message":"I\u0027d like to use seen_sep instead of sep. When we encounter a bad option, using sep might prohibit the following options to be parsed properly because the sep variable would be set to empty string.","commit_id":"1534f37c424cad95ef170ad93ef47fc1990d80da"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"8ab33a3d251ed292b6766185382eb800f483b731","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        LOG.warn(_(\"Ignoring the invalid elements of the option \""},{"line_number":166,"context_line":"                   \"%(name)s: %(options)s\"),"},{"line_number":167,"context_line":"                {\u0027name\u0027: name,"},{"line_number":168,"context_line":"                 \u0027options\u0027: \",\".join(bad)})"},{"line_number":169,"context_line":"    return good"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2B1Bs%3D","line":168,"updated":"2014-01-21 17:01:39.000000000","message":"I like to use \", \" (comma space), where possible, in messages meant to be read by users.","commit_id":"1534f37c424cad95ef170ad93ef47fc1990d80da"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"faf3c1ef84d909357b82ec497a5418c097837f8b","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        LOG.warn(_(\"Ignoring the invalid elements of the option \""},{"line_number":166,"context_line":"                   \"%(name)s: %(options)s\"),"},{"line_number":167,"context_line":"                {\u0027name\u0027: name,"},{"line_number":168,"context_line":"                 \u0027options\u0027: \",\".join(bad)})"},{"line_number":169,"context_line":"    return good"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2Byy8%3D","line":168,"in_reply_to":"AAAAUH%2F%2B1Bs%3D","updated":"2014-01-22 03:26:44.000000000","message":"Done","commit_id":"1534f37c424cad95ef170ad93ef47fc1990d80da"}]}
