)]}'
{"ceilometer/agent/plugin_base.py":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"e658e6ac80891b03f084f8d3e9aae24cec0e4b33","unresolved":false,"context_lines":[{"line_number":249,"context_line":"        \"\"\"Return a list of stevedore extensions."},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"        The returned stevedore extensions wrap the pollster object instances"},{"line_number":252,"context_line":"        returne by build_pollsters."},{"line_number":253,"context_line":"        \"\"\""},{"line_number":254,"context_line":"        extensions \u003d []"},{"line_number":255,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_87728448","line":252,"updated":"2015-09-01 18:43:41.000000000","message":"\"returned\"","commit_id":"1bada399c8d96f8a92354ca52bea655a59fbb9aa"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"4bf6c8b1248370cf04677956c42d8644f2ff42fe","unresolved":false,"context_lines":[{"line_number":249,"context_line":"        \"\"\"Return a list of stevedore extensions."},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"        The returned stevedore extensions wrap the pollster object instances"},{"line_number":252,"context_line":"        returne by build_pollsters."},{"line_number":253,"context_line":"        \"\"\""},{"line_number":254,"context_line":"        extensions \u003d []"},{"line_number":255,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_1510d1a7","line":252,"in_reply_to":"da20952f_87728448","updated":"2015-09-02 01:18:02.000000000","message":"Done","commit_id":"1bada399c8d96f8a92354ca52bea655a59fbb9aa"}],"ceilometer/hardware/inspector/base.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"5cdceae1dc87a4f1c57da2f932ba5bc3be2f70e8","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        \"\"\""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def prepare_params(self, param):"},{"line_number":45,"context_line":"        \"\"\"parse the params to a format which the inspector itself recognized"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        :param param: inspector params from meter difinition file"},{"line_number":48,"context_line":"        :return: a dict of param which the inspector recognized"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_f4162cf0","line":45,"updated":"2015-08-28 14:39:45.000000000","message":"s/Parse/parse/\n\ns/recognized/recognizes./","commit_id":"c5fd3c653e88afa7240ea17cf4459526afc5fc6d"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"ce6b3856480ec63df87b9f3e4b53dcd6609e3832","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        \"\"\""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def prepare_params(self, param):"},{"line_number":45,"context_line":"        \"\"\"parse the params to a format which the inspector itself recognized"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        :param param: inspector params from meter difinition file"},{"line_number":48,"context_line":"        :return: a dict of param which the inspector recognized"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_b814ec4c","line":45,"in_reply_to":"da20952f_f4162cf0","updated":"2015-08-31 04:46:06.000000000","message":"Done","commit_id":"c5fd3c653e88afa7240ea17cf4459526afc5fc6d"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"e658e6ac80891b03f084f8d3e9aae24cec0e4b33","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        :param identifier: the identifier of the metric"},{"line_number":35,"context_line":"        :param cache: cache passed from the pollster"},{"line_number":36,"context_line":"        :param extra_metadata: extra dict to be used as metadata"},{"line_number":37,"context_line":"        :param param: inspector specific param"},{"line_number":38,"context_line":"        :return: an iterator of (value, metadata, extra)"},{"line_number":39,"context_line":"        :return value: the sample value"},{"line_number":40,"context_line":"        :return metadata: dict to construct sample\u0027s metadata"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_a7c9c85c","line":37,"updated":"2015-09-01 18:43:41.000000000","message":"If you\u0027re going to go to the trouble of adding a docstring (thank you!) then it might make sense in this particular case to say what its type is, if it is always the same. I\u0027m sort of assuming \u0027dict\u0027 but I don\u0027t know.","commit_id":"1bada399c8d96f8a92354ca52bea655a59fbb9aa"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"4bf6c8b1248370cf04677956c42d8644f2ff42fe","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        :param identifier: the identifier of the metric"},{"line_number":35,"context_line":"        :param cache: cache passed from the pollster"},{"line_number":36,"context_line":"        :param extra_metadata: extra dict to be used as metadata"},{"line_number":37,"context_line":"        :param param: inspector specific param"},{"line_number":38,"context_line":"        :return: an iterator of (value, metadata, extra)"},{"line_number":39,"context_line":"        :return value: the sample value"},{"line_number":40,"context_line":"        :return metadata: dict to construct sample\u0027s metadata"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_158771d8","line":37,"in_reply_to":"da20952f_a7c9c85c","updated":"2015-09-02 01:18:02.000000000","message":"Done","commit_id":"1bada399c8d96f8a92354ca52bea655a59fbb9aa"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"e658e6ac80891b03f084f8d3e9aae24cec0e4b33","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    def prepare_params(self, param):"},{"line_number":45,"context_line":"        \"\"\"Parse the params to a format which the inspector itself recognizes."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        :param param: inspector params from meter difinition file"},{"line_number":48,"context_line":"        :return: a dict of param which the inspector recognized"},{"line_number":49,"context_line":"        \"\"\""},{"line_number":50,"context_line":"        return {}"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_c79f1c4f","line":47,"updated":"2015-09-01 18:43:41.000000000","message":"\"definition\"","commit_id":"1bada399c8d96f8a92354ca52bea655a59fbb9aa"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"4bf6c8b1248370cf04677956c42d8644f2ff42fe","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    def prepare_params(self, param):"},{"line_number":45,"context_line":"        \"\"\"Parse the params to a format which the inspector itself recognizes."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        :param param: inspector params from meter difinition file"},{"line_number":48,"context_line":"        :return: a dict of param which the inspector recognized"},{"line_number":49,"context_line":"        \"\"\""},{"line_number":50,"context_line":"        return {}"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_355f1577","line":47,"in_reply_to":"da20952f_c79f1c4f","updated":"2015-09-02 01:18:02.000000000","message":"Done","commit_id":"1bada399c8d96f8a92354ca52bea655a59fbb9aa"}],"ceilometer/hardware/inspector/snmp.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"5cdceae1dc87a4f1c57da2f932ba5bc3be2f70e8","unresolved":false,"context_lines":[{"line_number":371,"context_line":"                new_oids.append(metadata[0])"},{"line_number":372,"context_line":"        return new_oids"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"    def inspect_generic(self, host, identifier, cache,"},{"line_number":375,"context_line":"                        extra_metadata\u003dNone,"},{"line_number":376,"context_line":"                        param\u003dNone):"},{"line_number":377,"context_line":"        # the snmp definition for the corresponding meter"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_b4be74d2","line":374,"updated":"2015-08-28 14:39:45.000000000","message":"this is a little strange that identifier is required but if param is passed, it\u0027s not used","commit_id":"c5fd3c653e88afa7240ea17cf4459526afc5fc6d"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"ce6b3856480ec63df87b9f3e4b53dcd6609e3832","unresolved":false,"context_lines":[{"line_number":371,"context_line":"                new_oids.append(metadata[0])"},{"line_number":372,"context_line":"        return new_oids"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"    def inspect_generic(self, host, identifier, cache,"},{"line_number":375,"context_line":"                        extra_metadata\u003dNone,"},{"line_number":376,"context_line":"                        param\u003dNone):"},{"line_number":377,"context_line":"        # the snmp definition for the corresponding meter"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_98232858","line":374,"in_reply_to":"da20952f_b4be74d2","updated":"2015-08-31 04:46:06.000000000","message":"@gordc, The reason I kept identifier here is to keep backward compatibility.","commit_id":"c5fd3c653e88afa7240ea17cf4459526afc5fc6d"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"03c193ea99669d13e5144a1d79d5585875dc6f0a","unresolved":false,"context_lines":[{"line_number":395,"context_line":"            meter_def[\u0027metric_oid\u0027][0],"},{"line_number":396,"context_line":"            meter_def[\u0027matching_type\u0027],"},{"line_number":397,"context_line":"            False)"},{"line_number":398,"context_line":"        input_extra_metadata \u003d extra_metadata"},{"line_number":399,"context_line":""},{"line_number":400,"context_line":"        for oid in oids_for_sample_values:"},{"line_number":401,"context_line":"            suffix \u003d oid[len(meter_def[\u0027metric_oid\u0027][0]):]"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_4a78f18f","line":398,"updated":"2015-09-01 19:18:07.000000000","message":"(nit) can we just drop this\n\nand below we just use:\n\nextra_metadata_copy \u003d copy.deepcopy(extra_metadata) or {}","commit_id":"1bada399c8d96f8a92354ca52bea655a59fbb9aa"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"4bf6c8b1248370cf04677956c42d8644f2ff42fe","unresolved":false,"context_lines":[{"line_number":395,"context_line":"            meter_def[\u0027metric_oid\u0027][0],"},{"line_number":396,"context_line":"            meter_def[\u0027matching_type\u0027],"},{"line_number":397,"context_line":"            False)"},{"line_number":398,"context_line":"        input_extra_metadata \u003d extra_metadata"},{"line_number":399,"context_line":""},{"line_number":400,"context_line":"        for oid in oids_for_sample_values:"},{"line_number":401,"context_line":"            suffix \u003d oid[len(meter_def[\u0027metric_oid\u0027][0]):]"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_957dc1b3","line":398,"in_reply_to":"da20952f_4a78f18f","updated":"2015-09-02 01:18:02.000000000","message":"I\u0027m sorry that we can\u0027t do this. The post_op func is allowed to change the extra_metadata. So if we don\u0027t keep an original copy, the for loop would result the 2nd call to post_op modifying the extra_metadata returned by the 1st call, which is not our initial purpose.","commit_id":"1bada399c8d96f8a92354ca52bea655a59fbb9aa"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"227f50db633151487c3a2508e0725dc25d425068","unresolved":false,"context_lines":[{"line_number":395,"context_line":"            meter_def[\u0027metric_oid\u0027][0],"},{"line_number":396,"context_line":"            meter_def[\u0027matching_type\u0027],"},{"line_number":397,"context_line":"            False)"},{"line_number":398,"context_line":"        input_extra_metadata \u003d extra_metadata"},{"line_number":399,"context_line":""},{"line_number":400,"context_line":"        for oid in oids_for_sample_values:"},{"line_number":401,"context_line":"            suffix \u003d oid[len(meter_def[\u0027metric_oid\u0027][0]):]"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_3e6cd107","line":398,"in_reply_to":"da20952f_957dc1b3","updated":"2015-09-02 03:01:34.000000000","message":"i understand, what i meant is since we are creating the copy of the parameter in the loop, this line isn\u0027t actually needed.","commit_id":"1bada399c8d96f8a92354ca52bea655a59fbb9aa"}],"ceilometer/hardware/pollsters/data/snmp.yaml":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"03c193ea99669d13e5144a1d79d5585875dc6f0a","unresolved":false,"context_lines":[{"line_number":69,"context_line":"          type: \"int\""},{"line_number":70,"context_line":"          post_op: \"_post_op_memory_avail_to_used\""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    - name: hardware.swap.memory.total"},{"line_number":73,"context_line":"      unit: KB"},{"line_number":74,"context_line":"      type: gauge"},{"line_number":75,"context_line":"      snmp_inspector:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"da20952f_eafc6574","line":72,"updated":"2015-09-01 19:18:07.000000000","message":"this changed: hardware.memory.swap.total","commit_id":"1bada399c8d96f8a92354ca52bea655a59fbb9aa"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"4bf6c8b1248370cf04677956c42d8644f2ff42fe","unresolved":false,"context_lines":[{"line_number":69,"context_line":"          type: \"int\""},{"line_number":70,"context_line":"          post_op: \"_post_op_memory_avail_to_used\""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    - name: hardware.swap.memory.total"},{"line_number":73,"context_line":"      unit: KB"},{"line_number":74,"context_line":"      type: gauge"},{"line_number":75,"context_line":"      snmp_inspector:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"da20952f_153770e4","line":72,"in_reply_to":"da20952f_eafc6574","updated":"2015-09-02 01:18:02.000000000","message":"Done","commit_id":"1bada399c8d96f8a92354ca52bea655a59fbb9aa"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"03c193ea99669d13e5144a1d79d5585875dc6f0a","unresolved":false,"context_lines":[{"line_number":77,"context_line":"          oid:  \"1.3.6.1.4.1.2021.4.3.0\""},{"line_number":78,"context_line":"          type: \"int\""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    - name: hardware.swap.memory.avail"},{"line_number":81,"context_line":"      unit: KB"},{"line_number":82,"context_line":"      type: gauge"},{"line_number":83,"context_line":"      snmp_inspector:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"da20952f_aaf74d8b","line":80,"updated":"2015-09-01 19:18:07.000000000","message":"this changed: hardware.memory.swap.avail","commit_id":"1bada399c8d96f8a92354ca52bea655a59fbb9aa"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"4bf6c8b1248370cf04677956c42d8644f2ff42fe","unresolved":false,"context_lines":[{"line_number":77,"context_line":"          oid:  \"1.3.6.1.4.1.2021.4.3.0\""},{"line_number":78,"context_line":"          type: \"int\""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    - name: hardware.swap.memory.avail"},{"line_number":81,"context_line":"      unit: KB"},{"line_number":82,"context_line":"      type: gauge"},{"line_number":83,"context_line":"      snmp_inspector:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"da20952f_d53018eb","line":80,"in_reply_to":"da20952f_aaf74d8b","updated":"2015-09-02 01:18:02.000000000","message":"Done","commit_id":"1bada399c8d96f8a92354ca52bea655a59fbb9aa"}],"ceilometer/hardware/pollsters/generic.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"5cdceae1dc87a4f1c57da2f932ba5bc3be2f70e8","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                setattr(self, fname, fval)"},{"line_number":65,"context_line":"            else:"},{"line_number":66,"context_line":"                raise MeterDefinitionException("},{"line_number":67,"context_line":"                    _LE(\"Unrecognized field %s\") % fname, self.cfg)"},{"line_number":68,"context_line":"        for fname in self.required_fields:"},{"line_number":69,"context_line":"            if not getattr(self, fname, None):"},{"line_number":70,"context_line":"                raise MeterDefinitionException("}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_546ef801","line":67,"updated":"2015-08-28 14:39:45.000000000","message":"should we just ignore rather than raise an error?","commit_id":"c5fd3c653e88afa7240ea17cf4459526afc5fc6d"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"ce6b3856480ec63df87b9f3e4b53dcd6609e3832","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                setattr(self, fname, fval)"},{"line_number":65,"context_line":"            else:"},{"line_number":66,"context_line":"                raise MeterDefinitionException("},{"line_number":67,"context_line":"                    _LE(\"Unrecognized field %s\") % fname, self.cfg)"},{"line_number":68,"context_line":"        for fname in self.required_fields:"},{"line_number":69,"context_line":"            if not getattr(self, fname, None):"},{"line_number":70,"context_line":"                raise MeterDefinitionException("}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_533c93c7","line":67,"in_reply_to":"da20952f_546ef801","updated":"2015-08-31 04:46:06.000000000","message":"How about log a warning messing and continue?","commit_id":"c5fd3c653e88afa7240ea17cf4459526afc5fc6d"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"5cdceae1dc87a4f1c57da2f932ba5bc3be2f70e8","unresolved":false,"context_lines":[{"line_number":87,"context_line":"    def _update_meter_definitions(self, definitions):"},{"line_number":88,"context_line":"        self.meters_definitions \u003d definitions"},{"line_number":89,"context_line":"        self.supported_meters \u003d self.meters_definitions.keys()"},{"line_number":90,"context_line":"        self.cached_inspector_params \u003d {}"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    @property"},{"line_number":93,"context_line":"    def default_discovery(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_d719a57a","line":90,"updated":"2015-08-28 14:39:45.000000000","message":"is there a reason this needs to be a separate method? it\u0027s not reused anywhere","commit_id":"c5fd3c653e88afa7240ea17cf4459526afc5fc6d"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"ce6b3856480ec63df87b9f3e4b53dcd6609e3832","unresolved":false,"context_lines":[{"line_number":87,"context_line":"    def _update_meter_definitions(self, definitions):"},{"line_number":88,"context_line":"        self.meters_definitions \u003d definitions"},{"line_number":89,"context_line":"        self.supported_meters \u003d self.meters_definitions.keys()"},{"line_number":90,"context_line":"        self.cached_inspector_params \u003d {}"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    @property"},{"line_number":93,"context_line":"    def default_discovery(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_d3d18358","line":90,"in_reply_to":"da20952f_d719a57a","updated":"2015-08-31 04:46:06.000000000","message":"@gordc, the direct reason I split it into a separate method is to set the definitions in a single call in unit test cases.","commit_id":"c5fd3c653e88afa7240ea17cf4459526afc5fc6d"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"5cdceae1dc87a4f1c57da2f932ba5bc3be2f70e8","unresolved":false,"context_lines":[{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        if isinstance(res, dict):"},{"line_number":111,"context_line":"            if \u0027resource_url\u0027 not in res or \u0027resource_id\u0027 not in res:"},{"line_number":112,"context_line":"                LOG.exception(_(\u0027Passed resource dict must contain keys \u0027"},{"line_number":113,"context_line":"                                \u0027resource_id and resource_url.\u0027))"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"            metadata \u003d res"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_fa14d344","line":112,"updated":"2015-08-28 14:39:45.000000000","message":"_LE","commit_id":"c5fd3c653e88afa7240ea17cf4459526afc5fc6d"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"ce6b3856480ec63df87b9f3e4b53dcd6609e3832","unresolved":false,"context_lines":[{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        if isinstance(res, dict):"},{"line_number":111,"context_line":"            if \u0027resource_url\u0027 not in res or \u0027resource_id\u0027 not in res:"},{"line_number":112,"context_line":"                LOG.exception(_(\u0027Passed resource dict must contain keys \u0027"},{"line_number":113,"context_line":"                                \u0027resource_id and resource_url.\u0027))"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"            metadata \u003d res"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_53225353","line":112,"in_reply_to":"da20952f_fa14d344","updated":"2015-08-31 04:46:06.000000000","message":"Done","commit_id":"c5fd3c653e88afa7240ea17cf4459526afc5fc6d"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"5cdceae1dc87a4f1c57da2f932ba5bc3be2f70e8","unresolved":false,"context_lines":[{"line_number":128,"context_line":"                driver \u003d insloader.get_inspector(parsed_url)"},{"line_number":129,"context_line":"                self.inspectors[parsed_url.scheme] \u003d driver"},{"line_number":130,"context_line":"            except Exception as err:"},{"line_number":131,"context_line":"                LOG.exception(_(\"Can NOT load inspector %(name)s: %(err)s\"),"},{"line_number":132,"context_line":"                              dict(name\u003dparsed_url.scheme,"},{"line_number":133,"context_line":"                                   err\u003derr))"},{"line_number":134,"context_line":"                raise err"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_852778b5","line":131,"updated":"2015-08-28 14:39:45.000000000","message":"_LE\n\ns/Can NOT/Cannot/","commit_id":"c5fd3c653e88afa7240ea17cf4459526afc5fc6d"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"ce6b3856480ec63df87b9f3e4b53dcd6609e3832","unresolved":false,"context_lines":[{"line_number":128,"context_line":"                driver \u003d insloader.get_inspector(parsed_url)"},{"line_number":129,"context_line":"                self.inspectors[parsed_url.scheme] \u003d driver"},{"line_number":130,"context_line":"            except Exception as err:"},{"line_number":131,"context_line":"                LOG.exception(_(\"Can NOT load inspector %(name)s: %(err)s\"),"},{"line_number":132,"context_line":"                              dict(name\u003dparsed_url.scheme,"},{"line_number":133,"context_line":"                                   err\u003derr))"},{"line_number":134,"context_line":"                raise err"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_93322b5d","line":131,"in_reply_to":"da20952f_852778b5","updated":"2015-08-31 04:46:06.000000000","message":"Done","commit_id":"c5fd3c653e88afa7240ea17cf4459526afc5fc6d"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"5cdceae1dc87a4f1c57da2f932ba5bc3be2f70e8","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        # Get the meter identifiers to poll"},{"line_number":151,"context_line":"        identifiers \u003d []"},{"line_number":152,"context_line":"        for meter in self.meters_definitions:"},{"line_number":153,"context_line":"            if pipeline_source.support_meter(meter):"},{"line_number":154,"context_line":"                identifiers.append(meter)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        for element in itertools.product(resources, identifiers):"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_e59bd470","line":153,"updated":"2015-08-28 14:39:45.000000000","message":"should this be done on init?","commit_id":"c5fd3c653e88afa7240ea17cf4459526afc5fc6d"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"ce6b3856480ec63df87b9f3e4b53dcd6609e3832","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        # Get the meter identifiers to poll"},{"line_number":151,"context_line":"        identifiers \u003d []"},{"line_number":152,"context_line":"        for meter in self.meters_definitions:"},{"line_number":153,"context_line":"            if pipeline_source.support_meter(meter):"},{"line_number":154,"context_line":"                identifiers.append(meter)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        for element in itertools.product(resources, identifiers):"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_f3c04752","line":153,"in_reply_to":"da20952f_e59bd470","updated":"2015-08-31 04:46:06.000000000","message":"I don\u0027t think so.The pollster object is initialized when stevedore loads it in, at which time we don\u0027t know which meters to poll from pipeline source file.","commit_id":"c5fd3c653e88afa7240ea17cf4459526afc5fc6d"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"5cdceae1dc87a4f1c57da2f932ba5bc3be2f70e8","unresolved":false,"context_lines":[{"line_number":153,"context_line":"            if pipeline_source.support_meter(meter):"},{"line_number":154,"context_line":"                identifiers.append(meter)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        for element in itertools.product(resources, identifiers):"},{"line_number":157,"context_line":"            (resource, identifier) \u003d element"},{"line_number":158,"context_line":"            parsed_url, res, extra_metadata \u003d self._parse_resource(resource)"},{"line_number":159,"context_line":"            ins \u003d self._get_inspector(parsed_url)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_6071f2df","line":156,"updated":"2015-08-28 14:39:45.000000000","message":"you can change element -\u003e resource, identifier since you never use element","commit_id":"c5fd3c653e88afa7240ea17cf4459526afc5fc6d"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"ce6b3856480ec63df87b9f3e4b53dcd6609e3832","unresolved":false,"context_lines":[{"line_number":153,"context_line":"            if pipeline_source.support_meter(meter):"},{"line_number":154,"context_line":"                identifiers.append(meter)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        for element in itertools.product(resources, identifiers):"},{"line_number":157,"context_line":"            (resource, identifier) \u003d element"},{"line_number":158,"context_line":"            parsed_url, res, extra_metadata \u003d self._parse_resource(resource)"},{"line_number":159,"context_line":"            ins \u003d self._get_inspector(parsed_url)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_d3a2e3ad","line":156,"in_reply_to":"da20952f_6071f2df","updated":"2015-08-31 04:46:06.000000000","message":"Done","commit_id":"c5fd3c653e88afa7240ea17cf4459526afc5fc6d"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"5cdceae1dc87a4f1c57da2f932ba5bc3be2f70e8","unresolved":false,"context_lines":[{"line_number":160,"context_line":"            try:"},{"line_number":161,"context_line":"                # Call hardware inspector to poll for the data"},{"line_number":162,"context_line":"                i_cache \u003d h_cache.setdefault(res, {})"},{"line_number":163,"context_line":"                # Get the meter difinition"},{"line_number":164,"context_line":"                definition \u003d self.meters_definitions.get(identifier)"},{"line_number":165,"context_line":"                # Prepare inspector parameters and cache it for performance"},{"line_number":166,"context_line":"                param_key \u003d parsed_url.scheme + \u0027.\u0027 + identifier"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_4084eed2","line":163,"updated":"2015-08-28 14:39:45.000000000","message":"s/difinition/defintion/","commit_id":"c5fd3c653e88afa7240ea17cf4459526afc5fc6d"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"ce6b3856480ec63df87b9f3e4b53dcd6609e3832","unresolved":false,"context_lines":[{"line_number":160,"context_line":"            try:"},{"line_number":161,"context_line":"                # Call hardware inspector to poll for the data"},{"line_number":162,"context_line":"                i_cache \u003d h_cache.setdefault(res, {})"},{"line_number":163,"context_line":"                # Get the meter difinition"},{"line_number":164,"context_line":"                definition \u003d self.meters_definitions.get(identifier)"},{"line_number":165,"context_line":"                # Prepare inspector parameters and cache it for performance"},{"line_number":166,"context_line":"                param_key \u003d parsed_url.scheme + \u0027.\u0027 + identifier"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_f3a7e7ba","line":163,"in_reply_to":"da20952f_4084eed2","updated":"2015-08-31 04:46:06.000000000","message":"Done","commit_id":"c5fd3c653e88afa7240ea17cf4459526afc5fc6d"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"5cdceae1dc87a4f1c57da2f932ba5bc3be2f70e8","unresolved":false,"context_lines":[{"line_number":186,"context_line":"                        i_cache[identifier],"},{"line_number":187,"context_line":"                        definition))"},{"line_number":188,"context_line":"            except Exception as err:"},{"line_number":189,"context_line":"                LOG.exception(_(\u0027inspector call failed for %(ident)s \u0027"},{"line_number":190,"context_line":"                                \u0027host %(host)s: %(err)s\u0027),"},{"line_number":191,"context_line":"                              dict(ident\u003didentifier,"},{"line_number":192,"context_line":"                                   host\u003dparsed_url.hostname,"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_a0038a0c","line":189,"updated":"2015-08-28 14:39:45.000000000","message":"_LE","commit_id":"c5fd3c653e88afa7240ea17cf4459526afc5fc6d"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"ce6b3856480ec63df87b9f3e4b53dcd6609e3832","unresolved":false,"context_lines":[{"line_number":186,"context_line":"                        i_cache[identifier],"},{"line_number":187,"context_line":"                        definition))"},{"line_number":188,"context_line":"            except Exception as err:"},{"line_number":189,"context_line":"                LOG.exception(_(\u0027inspector call failed for %(ident)s \u0027"},{"line_number":190,"context_line":"                                \u0027host %(host)s: %(err)s\u0027),"},{"line_number":191,"context_line":"                              dict(ident\u003didentifier,"},{"line_number":192,"context_line":"                                   host\u003dparsed_url.hostname,"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_73943742","line":189,"in_reply_to":"da20952f_a0038a0c","updated":"2015-08-31 04:46:06.000000000","message":"Done","commit_id":"c5fd3c653e88afa7240ea17cf4459526afc5fc6d"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"5cdceae1dc87a4f1c57da2f932ba5bc3be2f70e8","unresolved":false,"context_lines":[{"line_number":215,"context_line":""},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"def get_config_file():"},{"line_number":218,"context_line":"    config_file \u003d cfg.CONF.hardware.hardware_meter_definitions_file"},{"line_number":219,"context_line":"    if not os.path.exists(config_file):"},{"line_number":220,"context_line":"        config_file \u003d cfg.CONF.find_file(config_file)"},{"line_number":221,"context_line":"    if not config_file:"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_dfff81a8","line":218,"updated":"2015-08-28 14:39:45.000000000","message":"i think we should drop the \u0027hardware_\u0027 from option name","commit_id":"c5fd3c653e88afa7240ea17cf4459526afc5fc6d"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"ce6b3856480ec63df87b9f3e4b53dcd6609e3832","unresolved":false,"context_lines":[{"line_number":215,"context_line":""},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"def get_config_file():"},{"line_number":218,"context_line":"    config_file \u003d cfg.CONF.hardware.hardware_meter_definitions_file"},{"line_number":219,"context_line":"    if not os.path.exists(config_file):"},{"line_number":220,"context_line":"        config_file \u003d cfg.CONF.find_file(config_file)"},{"line_number":221,"context_line":"    if not config_file:"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_937f8b16","line":218,"in_reply_to":"da20952f_dfff81a8","updated":"2015-08-31 04:46:06.000000000","message":"Done","commit_id":"c5fd3c653e88afa7240ea17cf4459526afc5fc6d"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"5cdceae1dc87a4f1c57da2f932ba5bc3be2f70e8","unresolved":false,"context_lines":[{"line_number":252,"context_line":"            raise"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"    else:"},{"line_number":255,"context_line":"        LOG.info(_LI(\"No Meter Definitions configuration file found!\"))"},{"line_number":256,"context_line":"        meters_config \u003d {}"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    LOG.info(_LI(\"Meter Definitions: %s\") % meters_config)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_3f831d06","line":255,"updated":"2015-08-28 14:39:45.000000000","message":"should we still continue?","commit_id":"c5fd3c653e88afa7240ea17cf4459526afc5fc6d"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"ce6b3856480ec63df87b9f3e4b53dcd6609e3832","unresolved":false,"context_lines":[{"line_number":252,"context_line":"            raise"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"    else:"},{"line_number":255,"context_line":"        LOG.info(_LI(\"No Meter Definitions configuration file found!\"))"},{"line_number":256,"context_line":"        meters_config \u003d {}"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    LOG.info(_LI(\"Meter Definitions: %s\") % meters_config)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_b3e96fb9","line":255,"in_reply_to":"da20952f_3f831d06","updated":"2015-08-31 04:46:06.000000000","message":"Agreed. If config_file is empty, we should let the exception to raised from setup_environment which would prevent loading this unusedful pollster.","commit_id":"c5fd3c653e88afa7240ea17cf4459526afc5fc6d"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"5cdceae1dc87a4f1c57da2f932ba5bc3be2f70e8","unresolved":false,"context_lines":[{"line_number":262,"context_line":""},{"line_number":263,"context_line":"def load_definition(config_def):"},{"line_number":264,"context_line":"    mappings \u003d {}"},{"line_number":265,"context_line":"    for meter_def in reversed(config_def.get(\u0027metric\u0027, [])):"},{"line_number":266,"context_line":"        meter \u003d MeterDefinition(meter_def)"},{"line_number":267,"context_line":"        mappings[meter.name] \u003d meter"},{"line_number":268,"context_line":"    return mappings"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_7fb755d8","line":265,"updated":"2015-08-28 14:39:45.000000000","message":"do we actually need it in reverse order?","commit_id":"c5fd3c653e88afa7240ea17cf4459526afc5fc6d"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"ce6b3856480ec63df87b9f3e4b53dcd6609e3832","unresolved":false,"context_lines":[{"line_number":262,"context_line":""},{"line_number":263,"context_line":"def load_definition(config_def):"},{"line_number":264,"context_line":"    mappings \u003d {}"},{"line_number":265,"context_line":"    for meter_def in reversed(config_def.get(\u0027metric\u0027, [])):"},{"line_number":266,"context_line":"        meter \u003d MeterDefinition(meter_def)"},{"line_number":267,"context_line":"        mappings[meter.name] \u003d meter"},{"line_number":268,"context_line":"    return mappings"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_53a5739f","line":265,"in_reply_to":"da20952f_7fb755d8","updated":"2015-08-31 04:46:06.000000000","message":"Done","commit_id":"c5fd3c653e88afa7240ea17cf4459526afc5fc6d"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"03c193ea99669d13e5144a1d79d5585875dc6f0a","unresolved":false,"context_lines":[{"line_number":107,"context_line":"            if \u0027resource_url\u0027 not in res or \u0027resource_id\u0027 not in res:"},{"line_number":108,"context_line":"                LOG.exception(_LE(\u0027Passed resource dict must contain keys \u0027"},{"line_number":109,"context_line":"                                  \u0027resource_id and resource_url.\u0027))"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"            metadata \u003d res"},{"line_number":112,"context_line":"            parsed_url \u003d netutils.urlsplit(res[\u0027resource_url\u0027])"},{"line_number":113,"context_line":"            resource_id \u003d res[\u0027resource_id\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_0de1b3fe","line":110,"updated":"2015-09-01 19:18:07.000000000","message":"should this raise something?it seems like it just carries on (and will crash)","commit_id":"1bada399c8d96f8a92354ca52bea655a59fbb9aa"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"4bf6c8b1248370cf04677956c42d8644f2ff42fe","unresolved":false,"context_lines":[{"line_number":107,"context_line":"            if \u0027resource_url\u0027 not in res or \u0027resource_id\u0027 not in res:"},{"line_number":108,"context_line":"                LOG.exception(_LE(\u0027Passed resource dict must contain keys \u0027"},{"line_number":109,"context_line":"                                  \u0027resource_id and resource_url.\u0027))"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"            metadata \u003d res"},{"line_number":112,"context_line":"            parsed_url \u003d netutils.urlsplit(res[\u0027resource_url\u0027])"},{"line_number":113,"context_line":"            resource_id \u003d res[\u0027resource_id\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_d5eed8b3","line":110,"in_reply_to":"da20952f_0de1b3fe","updated":"2015-09-02 01:18:02.000000000","message":"correct, I didn\u0027t notice this when I copy the code from ceilometer.hardware.plugin","commit_id":"1bada399c8d96f8a92354ca52bea655a59fbb9aa"}]}
