)]}'
{"ceilometer/polling/dynamic_pollster.py":[{"author":{"_account_id":30695,"name":"Pedro Henrique Pereira Martins","email":"phpm13@gmail.com","username":"pedrohpmartins"},"change_message_id":"12bb14df7f3fffe216a47c526951de428737e512","unresolved":false,"context_lines":[{"line_number":271,"context_line":"        nested_keys \u003d attribute_key.split(\".\")"},{"line_number":272,"context_line":"        value \u003d reduce(operator.getitem, nested_keys, json_object)"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"        # We have operations to be execute against the value extracted"},{"line_number":275,"context_line":"        if len(keys_and_operations) \u003e 1:"},{"line_number":276,"context_line":"            for operation in keys_and_operations[1::]:"},{"line_number":277,"context_line":"                # The operation must be performed onto the \u0027value\u0027 variable"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_23834105","line":274,"updated":"2019-11-21 14:56:35.000000000","message":"I think that there is a typo here. \n\nexecute -\u003e executed","commit_id":"eea5b3e623387fa6151db88e24a3be876ea0993a"},{"author":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"change_message_id":"25e6efa8258eddda68f8408a80238567bade2dfd","unresolved":false,"context_lines":[{"line_number":271,"context_line":"        nested_keys \u003d attribute_key.split(\".\")"},{"line_number":272,"context_line":"        value \u003d reduce(operator.getitem, nested_keys, json_object)"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"        # We have operations to be execute against the value extracted"},{"line_number":275,"context_line":"        if len(keys_and_operations) \u003e 1:"},{"line_number":276,"context_line":"            for operation in keys_and_operations[1::]:"},{"line_number":277,"context_line":"                # The operation must be performed onto the \u0027value\u0027 variable"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_d7cf837c","line":274,"in_reply_to":"3fa7e38b_23834105","updated":"2019-11-21 17:02:18.000000000","message":"Yes, you are right. \nFixed.","commit_id":"eea5b3e623387fa6151db88e24a3be876ea0993a"}],"ceilometer/tests/unit/polling/test_dynamic_pollster.py":[{"author":{"_account_id":30695,"name":"Pedro Henrique Pereira Martins","email":"phpm13@gmail.com","username":"pedrohpmartins"},"change_message_id":"12bb14df7f3fffe216a47c526951de428737e512","unresolved":false,"context_lines":[{"line_number":452,"context_line":""},{"line_number":453,"context_line":"        self.assertEqual(sub_value, returned_value)"},{"line_number":454,"context_line":""},{"line_number":455,"context_line":"    def test_retrieve_attribute_nested_value_with_operation_on_attribute(self):"},{"line_number":456,"context_line":"        # spaces here are added on purpose at the end to make sure we"},{"line_number":457,"context_line":"        # execute the strip in the code before the eval"},{"line_number":458,"context_line":"        key \u003d \"key.subKey | value + 1|value / 2    \""}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_86c1e331","line":455,"updated":"2019-11-21 14:56:35.000000000","message":"I think that a another test with a modified output will be a good one.\n\nWith just this test, we cannot ensure that the operations were effectively executed, so if someone removes the \"eval\" function, this test will continue succeeding","commit_id":"eea5b3e623387fa6151db88e24a3be876ea0993a"},{"author":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"change_message_id":"25e6efa8258eddda68f8408a80238567bade2dfd","unresolved":false,"context_lines":[{"line_number":452,"context_line":""},{"line_number":453,"context_line":"        self.assertEqual(sub_value, returned_value)"},{"line_number":454,"context_line":""},{"line_number":455,"context_line":"    def test_retrieve_attribute_nested_value_with_operation_on_attribute(self):"},{"line_number":456,"context_line":"        # spaces here are added on purpose at the end to make sure we"},{"line_number":457,"context_line":"        # execute the strip in the code before the eval"},{"line_number":458,"context_line":"        key \u003d \"key.subKey | value + 1|value / 2    \""}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_f78f1f2b","line":455,"in_reply_to":"3fa7e38b_86c1e331","updated":"2019-11-21 17:02:18.000000000","message":"Got it. You are right. \nI will amend that as well.","commit_id":"eea5b3e623387fa6151db88e24a3be876ea0993a"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"4ffef469b080889ba8898982c1797d254ce434d8","unresolved":false,"context_lines":[{"line_number":452,"context_line":""},{"line_number":453,"context_line":"        self.assertEqual(sub_value, returned_value)"},{"line_number":454,"context_line":""},{"line_number":455,"context_line":"    def test_retrieve_attribute_nested_value_with_operation_on_attribute(self):"},{"line_number":456,"context_line":"        # spaces here are added on purpose at the end to make sure we"},{"line_number":457,"context_line":"        # execute the strip in the code before the eval"},{"line_number":458,"context_line":"        key \u003d \"key.subKey | value + 1|value / 2  |  value * 3\""}],"source_content_type":"text/x-python","patch_set":8,"id":"3fa7e38b_88169ea6","line":455,"updated":"2019-11-26 02:16:59.000000000","message":"Could you please add one more test for a real example like `resource_id_attribute: \"user | value.split (\u0027$\u0027) | value[0] | value.strip()\"`?","commit_id":"a7cb44972072454e6511b79d9adf2405ec0fc80c"},{"author":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"change_message_id":"fb8846aa24e2077753f49c84c3bb1ccf012d2497","unresolved":false,"context_lines":[{"line_number":452,"context_line":""},{"line_number":453,"context_line":"        self.assertEqual(sub_value, returned_value)"},{"line_number":454,"context_line":""},{"line_number":455,"context_line":"    def test_retrieve_attribute_nested_value_with_operation_on_attribute(self):"},{"line_number":456,"context_line":"        # spaces here are added on purpose at the end to make sure we"},{"line_number":457,"context_line":"        # execute the strip in the code before the eval"},{"line_number":458,"context_line":"        key \u003d \"key.subKey | value + 1|value / 2  |  value * 3\""}],"source_content_type":"text/x-python","patch_set":8,"id":"3fa7e38b_6de9ed17","line":455,"in_reply_to":"3fa7e38b_88169ea6","updated":"2019-11-26 12:19:40.000000000","message":"Sure, why not.","commit_id":"a7cb44972072454e6511b79d9adf2405ec0fc80c"}],"doc/source/admin/telemetry-dynamic-pollster.rst":[{"author":{"_account_id":30695,"name":"Pedro Henrique Pereira Martins","email":"phpm13@gmail.com","username":"pedrohpmartins"},"change_message_id":"12bb14df7f3fffe216a47c526951de428737e512","unresolved":false,"context_lines":[{"line_number":330,"context_line":"Operations on extracted attributes"},{"line_number":331,"context_line":"----------------------------------"},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"The dynamic pollster system can execute Python operation to transform the"},{"line_number":334,"context_line":"attributes that are extracted from the JSON response that the system handles."},{"line_number":335,"context_line":""},{"line_number":336,"context_line":"One example of use case is the RadosGW that uses \u003cproject_id$project_id\u003e as the"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3fa7e38b_26e6efe8","line":333,"updated":"2019-11-21 14:56:35.000000000","message":"operation -\u003e operations","commit_id":"eea5b3e623387fa6151db88e24a3be876ea0993a"},{"author":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"change_message_id":"25e6efa8258eddda68f8408a80238567bade2dfd","unresolved":false,"context_lines":[{"line_number":330,"context_line":"Operations on extracted attributes"},{"line_number":331,"context_line":"----------------------------------"},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"The dynamic pollster system can execute Python operation to transform the"},{"line_number":334,"context_line":"attributes that are extracted from the JSON response that the system handles."},{"line_number":335,"context_line":""},{"line_number":336,"context_line":"One example of use case is the RadosGW that uses \u003cproject_id$project_id\u003e as the"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3fa7e38b_97558b20","line":333,"in_reply_to":"3fa7e38b_26e6efe8","updated":"2019-11-21 17:02:18.000000000","message":"Done","commit_id":"eea5b3e623387fa6151db88e24a3be876ea0993a"}]}
