)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"0bf35c908665da51a41fc1fe068ee2f2a84ec4d4","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"According to the rfc 2578, the rules used to check:"},{"line_number":16,"context_line":"    a. The oid should be sperated by \u0027.\u0027."},{"line_number":17,"context_line":"    b. The first sub-identifier should be 0, 1, 2."},{"line_number":18,"context_line":"    c. The oid should contain two sub-identifiers at least."},{"line_number":19,"context_line":"    d. The value of each sub-identifier should be non-negative"},{"line_number":20,"context_line":"       number, between 0 and 4294967295."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa69d971_75f564c9","line":17,"range":{"start_line":17,"start_character":39,"end_line":17,"end_character":44},"updated":"2016-01-04 02:57:25.000000000","message":"0 is reserved and to my knowledge never been used.","commit_id":"e0ef50e847dfcc324b97806ea61a0e1a4d012a85"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"de24591e506ac982ea7161f0ad818e1a0871f5e6","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"According to the rfc 2578, the rules used to check:"},{"line_number":16,"context_line":"    a. The oid should be sperated by \u0027.\u0027."},{"line_number":17,"context_line":"    b. The first sub-identifier should be 0, 1, 2."},{"line_number":18,"context_line":"    c. The oid should contain two sub-identifiers at least."},{"line_number":19,"context_line":"    d. The value of each sub-identifier should be non-negative"},{"line_number":20,"context_line":"       number, between 0 and 4294967295."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa69d971_ffd7dcea","line":17,"range":{"start_line":17,"start_character":39,"end_line":17,"end_character":44},"in_reply_to":"fa69d971_75f564c9","updated":"2016-01-04 15:22:10.000000000","message":"Hi Eric\n\nThanks for your comments. After checking the rfc 1065/1066, 0 is reserved for ccitt.","commit_id":"e0ef50e847dfcc324b97806ea61a0e1a4d012a85"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"0bf35c908665da51a41fc1fe068ee2f2a84ec4d4","unresolved":false,"context_lines":[{"line_number":17,"context_line":"    b. The first sub-identifier should be 0, 1, 2."},{"line_number":18,"context_line":"    c. The oid should contain two sub-identifiers at least."},{"line_number":19,"context_line":"    d. The value of each sub-identifier should be non-negative"},{"line_number":20,"context_line":"       number, between 0 and 4294967295."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"This change set only covers the situation \u0027type_exact\u0027. The situation"},{"line_number":23,"context_line":"\u0027type_prefix\u0027 will be covered in another change set."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa69d971_55faa0be","line":20,"range":{"start_line":20,"start_character":15,"end_line":20,"end_character":24},"updated":"2016-01-04 02:57:25.000000000","message":"So technically this is slightly incorrect.  An OID can only end with 0 to indicate an instance of an object (leaf). There should never be a 0 in between (non-leaves).","commit_id":"e0ef50e847dfcc324b97806ea61a0e1a4d012a85"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"de24591e506ac982ea7161f0ad818e1a0871f5e6","unresolved":false,"context_lines":[{"line_number":17,"context_line":"    b. The first sub-identifier should be 0, 1, 2."},{"line_number":18,"context_line":"    c. The oid should contain two sub-identifiers at least."},{"line_number":19,"context_line":"    d. The value of each sub-identifier should be non-negative"},{"line_number":20,"context_line":"       number, between 0 and 4294967295."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"This change set only covers the situation \u0027type_exact\u0027. The situation"},{"line_number":23,"context_line":"\u0027type_prefix\u0027 will be covered in another change set."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa69d971_ff459cb2","line":20,"range":{"start_line":20,"start_character":15,"end_line":20,"end_character":24},"in_reply_to":"fa69d971_55faa0be","updated":"2016-01-04 15:22:10.000000000","message":"Hi Eric\n\nThanks for your comment. You are right. I will change the code.\n\nThanks","commit_id":"e0ef50e847dfcc324b97806ea61a0e1a4d012a85"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"1fcac211e88da04bdc41a862e2880941b408ed42","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"16e12c62_875ec9a0","updated":"2024-12-17 10:06:29.000000000","message":"We\u0027ve removed Generic Declarative Pollster (It was designed for TripleO, which was retired) and SNMP metrics so this may no longer be merged.","commit_id":"0662a95c9c029fd7cb9411686857902f54674de1"}],"ceilometer/hardware/inspector/snmp.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"cbbc6804ebef6a1a887ac35a53f71e1e743c2167","unresolved":false,"context_lines":[{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    def inspect_generic(self, host, cache, extra_metadata, param):"},{"line_number":219,"context_line":"        # check whether the SNMP definition is correct"},{"line_number":220,"context_line":"        SNMPMeterDefinition().validate_definition(param)"},{"line_number":221,"context_line":"        # the snmp definition for the corresponding meter"},{"line_number":222,"context_line":"        meter_def \u003d param"},{"line_number":223,"context_line":"        # collect oids that needs to be queried"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a68dd71_3618b8d2","line":220,"updated":"2016-01-25 21:47:40.000000000","message":"we shouldn\u0027t be validating every poll... the definition should be validated when loaded\n\nhttps://github.com/openstack/ceilometer/blob/master/ceilometer/hardware/pollsters/generic.py#L224","commit_id":"05db12313d66af031e9a8f6173d52fcadb701d2c"}],"ceilometer/hardware/inspector/snmp_validator.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"cbbc6804ebef6a1a887ac35a53f71e1e743c2167","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        self.message \u003d message"},{"line_number":31,"context_line":"        self.snmp_definition \u003d snmp_definition"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def __str__(self):"},{"line_number":34,"context_line":"        return \u0027%s %s: %s\u0027 % (self.__class__.__name__,"},{"line_number":35,"context_line":"                              self.snmp_definition, self.message)"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a68dd71_96a644ac","line":33,"updated":"2016-01-25 21:47:40.000000000","message":"i don\u0027t think you need this. just build message in __init__ and pass it to super","commit_id":"05db12313d66af031e9a8f6173d52fcadb701d2c"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"cbbc6804ebef6a1a887ac35a53f71e1e743c2167","unresolved":false,"context_lines":[{"line_number":38,"context_line":"class SNMPMeterDefinition(object):"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def __init__(self):"},{"line_number":41,"context_line":"        super(SNMPMeterDefinition, self).__init__()"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def validate_definition(self, snmp_definition):"},{"line_number":44,"context_line":"        \"\"\"Check whether the snmp definition is valid."}],"source_content_type":"text/x-python","patch_set":4,"id":"9a68dd71_56ac4c8b","line":41,"updated":"2016-01-25 21:47:40.000000000","message":"not needed","commit_id":"05db12313d66af031e9a8f6173d52fcadb701d2c"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"4fe3070609fc1a4381c0d3d040780e4bf5420377","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"class SNMPMeterDefinition(base.InspectorMeterDefinition):"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def validate_definition(self, snmp_definition):"},{"line_number":45,"context_line":"        \"\"\"Check whether the snmp definition is valid."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"           :param snmp_definition: The value of snmp meter definition."}],"source_content_type":"text/x-python","patch_set":6,"id":"7af24918_a95fdde3","line":44,"range":{"start_line":44,"start_character":34,"end_line":44,"end_character":49},"updated":"2016-03-02 15:52:32.000000000","message":"we could have default value for snmp_definition and check do we have anything to validate before we start","commit_id":"26d95ae43215cbe124bf2b71659a1185fe7fc8ff"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"4fe3070609fc1a4381c0d3d040780e4bf5420377","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        oid \u003d snmp_definition.get(\u0027oid\u0027)"},{"line_number":74,"context_line":"        self._check_oid_value(oid, snmp_definition)"},{"line_number":75,"context_line":"        # Check the oid value in the metadata"},{"line_number":76,"context_line":"        metadata \u003d snmp_definition.get(\u0027metadata\u0027, {})"},{"line_number":77,"context_line":"        if metadata !\u003d {}:"},{"line_number":78,"context_line":"            for k, v in six.iteritems(metadata):"},{"line_number":79,"context_line":"                meta_oid \u003d v.get(\u0027oid\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7af24918_a94ebd6c","line":76,"range":{"start_line":76,"start_character":51,"end_line":76,"end_character":53},"updated":"2016-03-02 15:52:32.000000000","message":"we could leave only get(\u0027metadata\u0027) and use Ilya\u0027s propose for 77 and it would be good add check metadata is instance of dict:\nif metadata and isinstance(metadata, dict)","commit_id":"26d95ae43215cbe124bf2b71659a1185fe7fc8ff"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"ec71aff9e3248b8bd8c56a071c30961fdc66c999","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        self._check_oid_value(oid, snmp_definition)"},{"line_number":75,"context_line":"        # Check the oid value in the metadata"},{"line_number":76,"context_line":"        metadata \u003d snmp_definition.get(\u0027metadata\u0027, {})"},{"line_number":77,"context_line":"        if metadata !\u003d {}:"},{"line_number":78,"context_line":"            for k, v in six.iteritems(metadata):"},{"line_number":79,"context_line":"                meta_oid \u003d v.get(\u0027oid\u0027)"},{"line_number":80,"context_line":"                self._check_oid_value(meta_oid, snmp_definition)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9aed3d3a_caf36009","line":77,"updated":"2016-02-26 14:07:04.000000000","message":"I think \"if not metadata\" is more clean.","commit_id":"26d95ae43215cbe124bf2b71659a1185fe7fc8ff"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"4fe3070609fc1a4381c0d3d040780e4bf5420377","unresolved":false,"context_lines":[{"line_number":79,"context_line":"                meta_oid \u003d v.get(\u0027oid\u0027)"},{"line_number":80,"context_line":"                self._check_oid_value(meta_oid, snmp_definition)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def _check_oid_value(self, oid, snmp_definition):"},{"line_number":83,"context_line":"        \"\"\"Check whether the oid is valid."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        According to the rfc 2578, the rules used to check:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7af24918_69f315d7","line":82,"range":{"start_line":82,"start_character":31,"end_line":82,"end_character":51},"updated":"2016-03-02 15:52:32.000000000","message":"it seems it would be usefull to have default values of parameters here too","commit_id":"26d95ae43215cbe124bf2b71659a1185fe7fc8ff"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"ec71aff9e3248b8bd8c56a071c30961fdc66c999","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        \"\"\"Check whether the oid is valid."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        According to the rfc 2578, the rules used to check:"},{"line_number":86,"context_line":"            a. The oid should be sperated by \u0027.\u0027"},{"line_number":87,"context_line":"            b. The first sub-identifier should be 1, 2"},{"line_number":88,"context_line":"            c. The oid should contain two sub-identifiers at least"},{"line_number":89,"context_line":"            d. The value of each sub-identifier should be non-negative"}],"source_content_type":"text/x-python","patch_set":6,"id":"9aed3d3a_6a6334b2","line":86,"range":{"start_line":86,"start_character":33,"end_line":86,"end_character":41},"updated":"2016-02-26 14:07:04.000000000","message":"separated","commit_id":"26d95ae43215cbe124bf2b71659a1185fe7fc8ff"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"ec71aff9e3248b8bd8c56a071c30961fdc66c999","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        # The sub-identifier 0 should be the last one for the OID"},{"line_number":121,"context_line":"        # object instance"},{"line_number":122,"context_line":"        sub_identifier_num \u003d 0"},{"line_number":123,"context_line":"        for sub_identifier in sub_identifiers:"},{"line_number":124,"context_line":"            sub_identifier_num \u003d sub_identifier_num + 1"},{"line_number":125,"context_line":"            if sub_identifier.isdigit():"},{"line_number":126,"context_line":"                sub_identifier_value \u003d int(sub_identifier)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9aed3d3a_65a087f5","line":123,"updated":"2016-02-26 14:07:04.000000000","message":"Maybe it\u0027s possible to use \nfor sub_identifier_num, sub_identifier in enumerate(sub_identifiers):","commit_id":"26d95ae43215cbe124bf2b71659a1185fe7fc8ff"}],"ceilometer/hardware/pollsters/generic.py":[{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"0bf35c908665da51a41fc1fe068ee2f2a84ec4d4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright 2015 Intel Corp."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_b5b99c7b","line":2,"range":{"start_line":2,"start_character":12,"end_line":2,"end_character":16},"updated":"2016-01-04 02:57:25.000000000","message":"2016","commit_id":"e0ef50e847dfcc324b97806ea61a0e1a4d012a85"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"0bf35c908665da51a41fc1fe068ee2f2a84ec4d4","unresolved":false,"context_lines":[{"line_number":78,"context_line":"            raise MeterDefinitionException("},{"line_number":79,"context_line":"                _LE(\"Unrecognized type value %s\") % self.type, self.cfg)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def __check_inspector_oids(self, inspector_value):"},{"line_number":82,"context_line":"        \"\"\"Check whether the oids are vaild in the inspectors."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"           :param inspector_value: The value of entry \u0027*_inspector\u0027 in the"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_358feccd","line":81,"range":{"start_line":81,"start_character":8,"end_line":81,"end_character":10},"updated":"2016-01-04 02:57:25.000000000","message":"Single _ is fine.","commit_id":"e0ef50e847dfcc324b97806ea61a0e1a4d012a85"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"de24591e506ac982ea7161f0ad818e1a0871f5e6","unresolved":false,"context_lines":[{"line_number":78,"context_line":"            raise MeterDefinitionException("},{"line_number":79,"context_line":"                _LE(\"Unrecognized type value %s\") % self.type, self.cfg)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def __check_inspector_oids(self, inspector_value):"},{"line_number":82,"context_line":"        \"\"\"Check whether the oids are vaild in the inspectors."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"           :param inspector_value: The value of entry \u0027*_inspector\u0027 in the"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_1f043048","line":81,"range":{"start_line":81,"start_character":8,"end_line":81,"end_character":10},"in_reply_to":"fa69d971_358feccd","updated":"2016-01-04 15:22:10.000000000","message":"Thanks for your comments","commit_id":"e0ef50e847dfcc324b97806ea61a0e1a4d012a85"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"0bf35c908665da51a41fc1fe068ee2f2a84ec4d4","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        if match_type \u003d\u003d PREFIX:"},{"line_number":103,"context_line":"            pass"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def __check_oid_value(self, oid):"},{"line_number":106,"context_line":"        \"\"\"Check whether the oid is valid."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        According to the rfc 2578, the rules used to check:"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_d5bc506e","line":105,"range":{"start_line":105,"start_character":8,"end_line":105,"end_character":10},"updated":"2016-01-04 02:57:25.000000000","message":"Single _ is fine.","commit_id":"e0ef50e847dfcc324b97806ea61a0e1a4d012a85"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"de24591e506ac982ea7161f0ad818e1a0871f5e6","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        if match_type \u003d\u003d PREFIX:"},{"line_number":103,"context_line":"            pass"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def __check_oid_value(self, oid):"},{"line_number":106,"context_line":"        \"\"\"Check whether the oid is valid."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        According to the rfc 2578, the rules used to check:"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_9f96e0ee","line":105,"range":{"start_line":105,"start_character":8,"end_line":105,"end_character":10},"in_reply_to":"fa69d971_d5bc506e","updated":"2016-01-04 15:22:10.000000000","message":"Thanks for your comments.","commit_id":"e0ef50e847dfcc324b97806ea61a0e1a4d012a85"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"0bf35c908665da51a41fc1fe068ee2f2a84ec4d4","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        for sub_identifier in sub_identifiers:"},{"line_number":134,"context_line":"            if sub_identifier.isdigit():"},{"line_number":135,"context_line":"                sub_identifier_value \u003d int(sub_identifier)"},{"line_number":136,"context_line":"                if (sub_identifier_value \u003c MIN_VALUE and"},{"line_number":137,"context_line":"                        sub_identifier_value \u003e MAX_VALUE):"},{"line_number":138,"context_line":"                    raise MeterDefinitionException("},{"line_number":139,"context_line":"                        _LE(\"The sub-identifier: %s is out of \""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_959fb802","line":136,"range":{"start_line":136,"start_character":20,"end_line":136,"end_character":52},"updated":"2016-01-04 02:57:25.000000000","message":"Only the leaf OID should be zero.  And only if an object instance and not a table index.","commit_id":"e0ef50e847dfcc324b97806ea61a0e1a4d012a85"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"de24591e506ac982ea7161f0ad818e1a0871f5e6","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        for sub_identifier in sub_identifiers:"},{"line_number":134,"context_line":"            if sub_identifier.isdigit():"},{"line_number":135,"context_line":"                sub_identifier_value \u003d int(sub_identifier)"},{"line_number":136,"context_line":"                if (sub_identifier_value \u003c MIN_VALUE and"},{"line_number":137,"context_line":"                        sub_identifier_value \u003e MAX_VALUE):"},{"line_number":138,"context_line":"                    raise MeterDefinitionException("},{"line_number":139,"context_line":"                        _LE(\"The sub-identifier: %s is out of \""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_bfc084e1","line":136,"range":{"start_line":136,"start_character":20,"end_line":136,"end_character":52},"in_reply_to":"fa69d971_959fb802","updated":"2016-01-04 15:22:10.000000000","message":"Hi Eric\n\nThanks for your comments. I will change the code.\n\nThanks","commit_id":"e0ef50e847dfcc324b97806ea61a0e1a4d012a85"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"edd6b278fb67df089b31466edc5000bb4ffc0fa9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright 2015 Intel Corp."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":3,"id":"da6ed579_f6dbc419","line":2,"range":{"start_line":2,"start_character":12,"end_line":2,"end_character":16},"updated":"2016-01-12 16:56:50.000000000","message":"2016","commit_id":"6eb1ecd04a5b053e087e760ddae2d51618ee8b32"},{"author":{"_account_id":17081,"name":"Chaozhe Chen(ccz)","email":"chaozhe.chen@easystack.cn","username":"Chaozhe.Chen"},"change_message_id":"31b85941e6cd3726f15a54926a07c065fe604186","unresolved":false,"context_lines":[{"line_number":123,"context_line":"            raise MeterDefinitionException("},{"line_number":124,"context_line":"                _LE(\"The length of oid is less than 2.\"), self.cfg)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        # The first sub-identifier should be 0, 1, 2"},{"line_number":127,"context_line":"        if sub_identifiers[0] not in [\u00271\u0027, \u00272\u0027]:"},{"line_number":128,"context_line":"            raise MeterDefinitionException("},{"line_number":129,"context_line":"                _LE(\"The first sub-identifier: %s is not \""}],"source_content_type":"text/x-python","patch_set":3,"id":"da6ed579_dc13640c","line":126,"range":{"start_line":126,"start_character":45,"end_line":126,"end_character":52},"updated":"2016-01-12 10:52:17.000000000","message":"should be 1, 2.  Not a big deal.","commit_id":"6eb1ecd04a5b053e087e760ddae2d51618ee8b32"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"edd6b278fb67df089b31466edc5000bb4ffc0fa9","unresolved":false,"context_lines":[{"line_number":148,"context_line":"                if (sub_identifier_value \u003d\u003d 0 and"},{"line_number":149,"context_line":"                        sub_identifier_num !\u003d len(sub_identifiers)):"},{"line_number":150,"context_line":"                    raise MeterDefinitionException("},{"line_number":151,"context_line":"                        _LE(\"The sub-identifier 0 should not be \""},{"line_number":152,"context_line":"                            \"in the middle.\"), self.cfg)"},{"line_number":153,"context_line":"            else:"},{"line_number":154,"context_line":"                raise MeterDefinitionException("},{"line_number":155,"context_line":"                    _LE(\"The sub-identifier: %s is not a non-negative\""}],"source_content_type":"text/x-python","patch_set":3,"id":"da6ed579_f658a458","line":152,"range":{"start_line":151,"start_character":29,"end_line":152,"end_character":43},"updated":"2016-01-12 16:56:50.000000000","message":"Can this be rephrased?  Maybe \"The value of 0 is reserved for object instances and not as a sub-identifier.","commit_id":"6eb1ecd04a5b053e087e760ddae2d51618ee8b32"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"d69fbda79082d72b5a867e6bd397413947bdaa9e","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def __init__(self, definition_cfg):"},{"line_number":59,"context_line":"        self.cfg \u003d definition_cfg"},{"line_number":60,"context_line":"        self.validator \u003d snmp_validator.SNMPMeterDefinition()"},{"line_number":61,"context_line":"        for fname, fval in self.cfg.items():"},{"line_number":62,"context_line":"            if (isinstance(fname, six.string_types) and"},{"line_number":63,"context_line":"                (fname in self.required_fields or"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a5ae5dd_2cea4e10","line":60,"range":{"start_line":60,"start_character":59,"end_line":60,"end_character":61},"updated":"2016-02-04 05:47:29.000000000","message":"Let\u0027s not make the generic pollster dependent on snmp, it\u0027s not what is designed for","commit_id":"26d95ae43215cbe124bf2b71659a1185fe7fc8ff"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"2161bd4aca7f980e1e6b18eb80ccf179ff35c922","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def __init__(self, definition_cfg):"},{"line_number":59,"context_line":"        self.cfg \u003d definition_cfg"},{"line_number":60,"context_line":"        self.validator \u003d snmp_validator.SNMPMeterDefinition()"},{"line_number":61,"context_line":"        for fname, fval in self.cfg.items():"},{"line_number":62,"context_line":"            if (isinstance(fname, six.string_types) and"},{"line_number":63,"context_line":"                (fname in self.required_fields or"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a5ae5dd_b49672ee","line":60,"range":{"start_line":60,"start_character":59,"end_line":60,"end_character":61},"in_reply_to":"5a5ae5dd_2cea4e10","updated":"2016-02-04 14:04:30.000000000","message":"Hi Lian Hao\n\nThanks for your suggestions. I will try it :). \n\nI have registered a blueprint about https://blueprints.launchpad.net/ceilometer/+spec/extend-validation-for-generic-pollster and will write the design about our thought. \n\nI think it will help the contributors who want to implement the new inspector in the future.","commit_id":"26d95ae43215cbe124bf2b71659a1185fe7fc8ff"}]}
