)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"change_message_id":"73f8061a830e3ebddffc022a0fffecebe236bcc9","unresolved":true,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Problem description"},{"line_number":10,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":11,"context_line":"Some OpenStack APIs do not always return exactly the"},{"line_number":12,"context_line":"same metadatas for all resources. As an example, we"},{"line_number":13,"context_line":"have the server API, which some times returns the"},{"line_number":14,"context_line":"\u0027OS-EXT-SRV-ATTR:host\u0027 attribute and some times not"},{"line_number":15,"context_line":"(it depends on the virtual machine status)."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Therefore, in these cases, if the operator configures"},{"line_number":18,"context_line":"to retrieve the value of the \u0027OS-EXT-SRV-ATTR:host\u0027"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"538cc341_14811b21","line":15,"range":{"start_line":11,"start_character":0,"end_line":15,"end_character":43},"updated":"2022-09-07 17:33:07.000000000","message":"Some OpenStack APIs do not always return exactly the same metadata for all resources. As an example, we have the server API, which might not return the \u0027OS-EXT-SRV-ATTR:host\u0027 attribute; it depends on the virtual machine status.","commit_id":"69268e6cada905b4c92060270e8b1dc515ccf46c"},{"author":{"_account_id":30695,"name":"Pedro Henrique Pereira Martins","email":"phpm13@gmail.com","username":"pedrohpmartins"},"change_message_id":"99c0fa18de99215835fffcbd102d1f75e6e002a2","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Problem description"},{"line_number":10,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":11,"context_line":"Some OpenStack APIs do not always return exactly the"},{"line_number":12,"context_line":"same metadatas for all resources. As an example, we"},{"line_number":13,"context_line":"have the server API, which some times returns the"},{"line_number":14,"context_line":"\u0027OS-EXT-SRV-ATTR:host\u0027 attribute and some times not"},{"line_number":15,"context_line":"(it depends on the virtual machine status)."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Therefore, in these cases, if the operator configures"},{"line_number":18,"context_line":"to retrieve the value of the \u0027OS-EXT-SRV-ATTR:host\u0027"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1573aa92_eacd6527","line":15,"range":{"start_line":11,"start_character":0,"end_line":15,"end_character":43},"in_reply_to":"538cc341_14811b21","updated":"2022-09-07 19:11:17.000000000","message":"Done","commit_id":"69268e6cada905b4c92060270e8b1dc515ccf46c"},{"author":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"change_message_id":"73f8061a830e3ebddffc022a0fffecebe236bcc9","unresolved":true,"context_lines":[{"line_number":14,"context_line":"\u0027OS-EXT-SRV-ATTR:host\u0027 attribute and some times not"},{"line_number":15,"context_line":"(it depends on the virtual machine status)."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Therefore, in these cases, if the operator configures"},{"line_number":18,"context_line":"to retrieve the value of the \u0027OS-EXT-SRV-ATTR:host\u0027"},{"line_number":19,"context_line":"attribute in the response, when the VM is in the"},{"line_number":20,"context_line":"\u0027RUNNING\u0027 state, it will work properly, ortherwise"},{"line_number":21,"context_line":"it will throw a \u0027key not found\u0027 error when we are"},{"line_number":22,"context_line":"collecting the extra_metadata_fields metadatas."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Proposal"},{"line_number":25,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"6783f77d_6cf06eec","line":22,"range":{"start_line":17,"start_character":0,"end_line":22,"end_character":47},"updated":"2022-09-07 17:33:07.000000000","message":"Therefore, if the operator configures to retrieve the value of the \u0027OS-EXT-SRV-ATTR:host\u0027 attribute in the response, when the VM is in the \u0027RUNNING\u0027 state, it will work properly; however, it it is in \u0027ERROR\u0027 or other state, it will throw a \u0027key not found\u0027 error when we are collecting the metadata.","commit_id":"69268e6cada905b4c92060270e8b1dc515ccf46c"},{"author":{"_account_id":30695,"name":"Pedro Henrique Pereira Martins","email":"phpm13@gmail.com","username":"pedrohpmartins"},"change_message_id":"99c0fa18de99215835fffcbd102d1f75e6e002a2","unresolved":false,"context_lines":[{"line_number":14,"context_line":"\u0027OS-EXT-SRV-ATTR:host\u0027 attribute and some times not"},{"line_number":15,"context_line":"(it depends on the virtual machine status)."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Therefore, in these cases, if the operator configures"},{"line_number":18,"context_line":"to retrieve the value of the \u0027OS-EXT-SRV-ATTR:host\u0027"},{"line_number":19,"context_line":"attribute in the response, when the VM is in the"},{"line_number":20,"context_line":"\u0027RUNNING\u0027 state, it will work properly, ortherwise"},{"line_number":21,"context_line":"it will throw a \u0027key not found\u0027 error when we are"},{"line_number":22,"context_line":"collecting the extra_metadata_fields metadatas."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Proposal"},{"line_number":25,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"e9f74e0d_391eda23","line":22,"range":{"start_line":17,"start_character":0,"end_line":22,"end_character":47},"in_reply_to":"6783f77d_6cf06eec","updated":"2022-09-07 19:11:17.000000000","message":"Done","commit_id":"69268e6cada905b4c92060270e8b1dc515ccf46c"},{"author":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"change_message_id":"73f8061a830e3ebddffc022a0fffecebe236bcc9","unresolved":true,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Proposal"},{"line_number":25,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":26,"context_line":"To allow operators to skip the extra_metadata_fields"},{"line_number":27,"context_line":"gathering based on the collected sample attributes, we"},{"line_number":28,"context_line":"propose to add a new \u0027extra_metadata_fields_skip\u0027 in"},{"line_number":29,"context_line":"the dynamic pollster YAML definition where operators"},{"line_number":30,"context_line":"can define some rules to skip gathering extra_metadatas"},{"line_number":31,"context_line":"for some samples based on their attributes."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Change-Id: I40176328e1863283890870098418c0944a75bad9"},{"line_number":34,"context_line":"Depends-On: https://review.opendev.org/c/openstack/ceilometer/+/852021"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"663389d6_5c4f6581","line":31,"range":{"start_line":26,"start_character":0,"end_line":31,"end_character":43},"updated":"2022-09-07 17:33:07.000000000","message":"To allow operators to skip the extra_metadata_fields\ngathering based on the collected sample attributes. We\npropose to add a new \u0027extra_metadata_fields_skip\u0027 in\nthe dynamic pollster YAML definition where operators\ncan define some rules to skip gathering extra_metadata\nfor some samples based on their attributes.","commit_id":"69268e6cada905b4c92060270e8b1dc515ccf46c"},{"author":{"_account_id":30695,"name":"Pedro Henrique Pereira Martins","email":"phpm13@gmail.com","username":"pedrohpmartins"},"change_message_id":"99c0fa18de99215835fffcbd102d1f75e6e002a2","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Proposal"},{"line_number":25,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":26,"context_line":"To allow operators to skip the extra_metadata_fields"},{"line_number":27,"context_line":"gathering based on the collected sample attributes, we"},{"line_number":28,"context_line":"propose to add a new \u0027extra_metadata_fields_skip\u0027 in"},{"line_number":29,"context_line":"the dynamic pollster YAML definition where operators"},{"line_number":30,"context_line":"can define some rules to skip gathering extra_metadatas"},{"line_number":31,"context_line":"for some samples based on their attributes."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Change-Id: I40176328e1863283890870098418c0944a75bad9"},{"line_number":34,"context_line":"Depends-On: https://review.opendev.org/c/openstack/ceilometer/+/852021"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"4c7628b9_d5f169a2","line":31,"range":{"start_line":26,"start_character":0,"end_line":31,"end_character":43},"in_reply_to":"663389d6_5c4f6581","updated":"2022-09-07 19:11:17.000000000","message":"Done","commit_id":"69268e6cada905b4c92060270e8b1dc515ccf46c"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"change_message_id":"73f8061a830e3ebddffc022a0fffecebe236bcc9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"d5d8572a_117afa8b","updated":"2022-09-07 17:33:07.000000000","message":"Thanks Pedro!\n\nI have some remarks though.","commit_id":"69268e6cada905b4c92060270e8b1dc515ccf46c"},{"author":{"_account_id":30695,"name":"Pedro Henrique Pereira Martins","email":"phpm13@gmail.com","username":"pedrohpmartins"},"change_message_id":"99c0fa18de99215835fffcbd102d1f75e6e002a2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"33f8d131_0a011b85","updated":"2022-09-07 19:11:17.000000000","message":"Thanks Rafael, I did some changes in this patch, could you check it again?","commit_id":"69268e6cada905b4c92060270e8b1dc515ccf46c"},{"author":{"_account_id":30695,"name":"Pedro Henrique Pereira Martins","email":"phpm13@gmail.com","username":"pedrohpmartins"},"change_message_id":"a8d91b087240f3c28982c497b6aff008078d5496","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"5245a324_376463b6","updated":"2022-09-07 17:25:46.000000000","message":"recheck","commit_id":"69268e6cada905b4c92060270e8b1dc515ccf46c"},{"author":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"change_message_id":"693578a62c4537fc572020ee260bb627fd775677","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"b5ac76f3_3f291bca","updated":"2022-10-11 13:24:37.000000000","message":"recheck","commit_id":"bff9879e3489bec94241afc0cdfc8472211f7aff"}],"ceilometer/polling/dynamic_pollster.py":[{"author":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"change_message_id":"73f8061a830e3ebddffc022a0fffecebe236bcc9","unresolved":true,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"def validate_extra_metadata_skip_samples(val):"},{"line_number":97,"context_line":"    if not isinstance(val, list) or not isinstance(val[0], dict):"},{"line_number":98,"context_line":"        raise declarative.DynamicPollsterDefinitionException("},{"line_number":99,"context_line":"            \"Invalid extra_metadata_fields_skip configuration.\""},{"line_number":100,"context_line":"            \" It must be a list of maps. Provided value type: %s.\" % type("}],"source_content_type":"text/x-python","patch_set":1,"id":"892f7151_66f09842","line":97,"range":{"start_line":97,"start_character":39,"end_line":97,"end_character":64},"updated":"2022-09-07 17:33:07.000000000","message":"Here you only check the first element to see if it is a dict. Would it be possible in YML to create a list where the first element is a map and the second one is a String, or another list?","commit_id":"69268e6cada905b4c92060270e8b1dc515ccf46c"},{"author":{"_account_id":30695,"name":"Pedro Henrique Pereira Martins","email":"phpm13@gmail.com","username":"pedrohpmartins"},"change_message_id":"99c0fa18de99215835fffcbd102d1f75e6e002a2","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"def validate_extra_metadata_skip_samples(val):"},{"line_number":97,"context_line":"    if not isinstance(val, list) or not isinstance(val[0], dict):"},{"line_number":98,"context_line":"        raise declarative.DynamicPollsterDefinitionException("},{"line_number":99,"context_line":"            \"Invalid extra_metadata_fields_skip configuration.\""},{"line_number":100,"context_line":"            \" It must be a list of maps. Provided value type: %s.\" % type("}],"source_content_type":"text/x-python","patch_set":1,"id":"791de355_9cbadfe0","line":97,"range":{"start_line":97,"start_character":39,"end_line":97,"end_character":64},"in_reply_to":"892f7151_66f09842","updated":"2022-09-07 19:11:17.000000000","message":"yes, it is possible, I will check it.","commit_id":"69268e6cada905b4c92060270e8b1dc515ccf46c"},{"author":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"change_message_id":"73f8061a830e3ebddffc022a0fffecebe236bcc9","unresolved":true,"context_lines":[{"line_number":97,"context_line":"    if not isinstance(val, list) or not isinstance(val[0], dict):"},{"line_number":98,"context_line":"        raise declarative.DynamicPollsterDefinitionException("},{"line_number":99,"context_line":"            \"Invalid extra_metadata_fields_skip configuration.\""},{"line_number":100,"context_line":"            \" It must be a list of maps. Provided value type: %s.\" % type("},{"line_number":101,"context_line":"                val).__name__)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"class ResponseHandlerChain(object):"}],"source_content_type":"text/x-python","patch_set":1,"id":"25fa4120_18b22333","line":101,"range":{"start_line":100,"start_character":68,"end_line":101,"end_character":29},"updated":"2022-09-07 17:33:07.000000000","message":"It might be interesting to show the value as well as the type here.","commit_id":"69268e6cada905b4c92060270e8b1dc515ccf46c"},{"author":{"_account_id":30695,"name":"Pedro Henrique Pereira Martins","email":"phpm13@gmail.com","username":"pedrohpmartins"},"change_message_id":"99c0fa18de99215835fffcbd102d1f75e6e002a2","unresolved":false,"context_lines":[{"line_number":97,"context_line":"    if not isinstance(val, list) or not isinstance(val[0], dict):"},{"line_number":98,"context_line":"        raise declarative.DynamicPollsterDefinitionException("},{"line_number":99,"context_line":"            \"Invalid extra_metadata_fields_skip configuration.\""},{"line_number":100,"context_line":"            \" It must be a list of maps. Provided value type: %s.\" % type("},{"line_number":101,"context_line":"                val).__name__)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"class ResponseHandlerChain(object):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ae8fa11_e4c1f8c8","line":101,"range":{"start_line":100,"start_character":68,"end_line":101,"end_character":29},"in_reply_to":"25fa4120_18b22333","updated":"2022-09-07 19:11:17.000000000","message":"Done","commit_id":"69268e6cada905b4c92060270e8b1dc515ccf46c"},{"author":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"change_message_id":"73f8061a830e3ebddffc022a0fffecebe236bcc9","unresolved":true,"context_lines":[{"line_number":585,"context_line":"                \"Required fields %s not specified.\""},{"line_number":586,"context_line":"                % missing, self.configurations)"},{"line_number":587,"context_line":""},{"line_number":588,"context_line":"    def should_skip_extra_metadata(self, skip, sample):"},{"line_number":589,"context_line":"        if skip \u003d\u003d sample:"},{"line_number":590,"context_line":"            return True"},{"line_number":591,"context_line":"        if not isinstance(skip, dict) or not isinstance(sample, dict):"}],"source_content_type":"text/x-python","patch_set":1,"id":"045032b9_6acc4acb","line":588,"range":{"start_line":588,"start_character":8,"end_line":588,"end_character":34},"updated":"2022-09-07 17:33:07.000000000","message":"Here, in each one of the IF (conditionals) where the processing breaks (decision happens), it might be interesting to have a DEBUG log message.","commit_id":"69268e6cada905b4c92060270e8b1dc515ccf46c"},{"author":{"_account_id":30695,"name":"Pedro Henrique Pereira Martins","email":"phpm13@gmail.com","username":"pedrohpmartins"},"change_message_id":"99c0fa18de99215835fffcbd102d1f75e6e002a2","unresolved":false,"context_lines":[{"line_number":585,"context_line":"                \"Required fields %s not specified.\""},{"line_number":586,"context_line":"                % missing, self.configurations)"},{"line_number":587,"context_line":""},{"line_number":588,"context_line":"    def should_skip_extra_metadata(self, skip, sample):"},{"line_number":589,"context_line":"        if skip \u003d\u003d sample:"},{"line_number":590,"context_line":"            return True"},{"line_number":591,"context_line":"        if not isinstance(skip, dict) or not isinstance(sample, dict):"}],"source_content_type":"text/x-python","patch_set":1,"id":"17eaacb2_453ebf34","line":588,"range":{"start_line":588,"start_character":8,"end_line":588,"end_character":34},"in_reply_to":"045032b9_6acc4acb","updated":"2022-09-07 19:11:17.000000000","message":"Done","commit_id":"69268e6cada905b4c92060270e8b1dc515ccf46c"},{"author":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"change_message_id":"73f8061a830e3ebddffc022a0fffecebe236bcc9","unresolved":true,"context_lines":[{"line_number":598,"context_line":"                return False"},{"line_number":599,"context_line":"        return True"},{"line_number":600,"context_line":""},{"line_number":601,"context_line":"    def skip_sample(self, request_sample, skips):"},{"line_number":602,"context_line":"        for skip in skips:"},{"line_number":603,"context_line":"            if not skip:"},{"line_number":604,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":1,"id":"1da54ba5_c89c9ba1","line":601,"range":{"start_line":601,"start_character":8,"end_line":601,"end_character":19},"updated":"2022-09-07 17:33:07.000000000","message":"same here. Logs might be needed to help operators to troubleshoot this one","commit_id":"69268e6cada905b4c92060270e8b1dc515ccf46c"},{"author":{"_account_id":30695,"name":"Pedro Henrique Pereira Martins","email":"phpm13@gmail.com","username":"pedrohpmartins"},"change_message_id":"99c0fa18de99215835fffcbd102d1f75e6e002a2","unresolved":false,"context_lines":[{"line_number":598,"context_line":"                return False"},{"line_number":599,"context_line":"        return True"},{"line_number":600,"context_line":""},{"line_number":601,"context_line":"    def skip_sample(self, request_sample, skips):"},{"line_number":602,"context_line":"        for skip in skips:"},{"line_number":603,"context_line":"            if not skip:"},{"line_number":604,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":1,"id":"483af3a3_2dcfe993","line":601,"range":{"start_line":601,"start_character":8,"end_line":601,"end_character":19},"in_reply_to":"1da54ba5_c89c9ba1","updated":"2022-09-07 19:11:17.000000000","message":"Done","commit_id":"69268e6cada905b4c92060270e8b1dc515ccf46c"}]}
