)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":12637,"name":"Srinivas Sakhamuri","email":"srini.openstack@gmail.com","username":"srsakhamuri"},"change_message_id":"c34a3b74e6096731b327cdcb13b8cff2c0a6e4c2","unresolved":false,"context_lines":[{"line_number":3,"context_line":"AuthorDate: 2016-11-15 14:00:30 -0800"},{"line_number":4,"context_line":"Commit:     Joseph Davis \u003cjoseph.a.davis@hpe.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-02-10 17:14:37 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Adding capabilities to ceilosca to be able to query metrics that"},{"line_number":8,"context_line":"are already being collected by monasca using mappings files"},{"line_number":9,"context_line":"there are two types of mappings:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"ba2be162_cc96e693","line":6,"updated":"2017-03-01 17:06:24.000000000","message":"No heading, entire message is treated as header by git CLI","commit_id":"acac1f37e052450cbc3a3e0259725bf618b2ae66"}],"ceilosca/ceilometer/ceilosca_mapping/data/ceilosca_mapping.yaml":[{"author":{"_account_id":7052,"name":"Fabio Giannetti","email":"fgiannet@cisco.com","username":"fabgia"},"change_message_id":"03c5b5aa3868273723e76a8582478fbd55c150c7","unresolved":false,"context_lines":[{"line_number":3,"context_line":"meter_metric_map:"},{"line_number":4,"context_line":"  - name: \"network.outgoing.rate\""},{"line_number":5,"context_line":"    monasca_metric_name: \"vm.net.out_rate\""},{"line_number":6,"context_line":"    resource_id: $.dimensions.resource_id"},{"line_number":7,"context_line":"    project_id: $.dimensions.project_id"},{"line_number":8,"context_line":"    user_id: $.dimensions.user_id"},{"line_number":9,"context_line":"    region: \"NA\""}],"source_content_type":"text/x-yaml","patch_set":7,"id":"fa31d9ce_815629cc","line":6,"range":{"start_line":6,"start_character":17,"end_line":6,"end_character":41},"updated":"2017-02-14 00:13:09.000000000","message":"Is this a JSON Path?\nIf we are using JSON path wouldn\u0027t it make more sense to define these mappings as JSON?","commit_id":"acac1f37e052450cbc3a3e0259725bf618b2ae66"},{"author":{"_account_id":11580,"name":"Ashwin Agate","email":"agateaaa@gmail.com","username":"agateaaa"},"change_message_id":"33de5b4ed685243642ade36f09be4700b68b1900","unresolved":false,"context_lines":[{"line_number":3,"context_line":"meter_metric_map:"},{"line_number":4,"context_line":"  - name: \"network.outgoing.rate\""},{"line_number":5,"context_line":"    monasca_metric_name: \"vm.net.out_rate\""},{"line_number":6,"context_line":"    resource_id: $.dimensions.resource_id"},{"line_number":7,"context_line":"    project_id: $.dimensions.project_id"},{"line_number":8,"context_line":"    user_id: $.dimensions.user_id"},{"line_number":9,"context_line":"    region: \"NA\""}],"source_content_type":"text/x-yaml","patch_set":7,"id":"fa31d9ce_6ce3c8a4","line":6,"range":{"start_line":6,"start_character":17,"end_line":6,"end_character":41},"in_reply_to":"fa31d9ce_815629cc","updated":"2017-02-14 16:43:31.000000000","message":"Yes its JSON path. I think we just were trying to follow same pattern and convention as https://github.com/openstack/ceilometer/blob/stable/newton/ceilometer/meter/data/meters.yaml","commit_id":"acac1f37e052450cbc3a3e0259725bf618b2ae66"}],"ceilosca/ceilometer/storage/impl_monasca.py":[{"author":{"_account_id":12637,"name":"Srinivas Sakhamuri","email":"srini.openstack@gmail.com","username":"srsakhamuri"},"change_message_id":"c34a3b74e6096731b327cdcb13b8cff2c0a6e4c2","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"import ceilometer"},{"line_number":33,"context_line":"from ceilometer.ceilosca_mapping.ceilometer_static_info_mapping import ("},{"line_number":34,"context_line":"    ProcessMappedCeilometerStaticInfo)"},{"line_number":35,"context_line":"from ceilometer.ceilosca_mapping.ceilosca_mapping import ("},{"line_number":36,"context_line":"    ProcessMappedCeiloscaMetric)"},{"line_number":37,"context_line":"from ceilometer.ceilosca_mapping.ceilosca_mapping import PipelineReader"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba2be162_e26ad119","line":34,"updated":"2017-03-01 17:06:24.000000000","message":"I think it will be more clear to have ceilosca_mapping as part storage, since it is used while retrieval. Just for a better structure and easy to follow. Having it as a separate module doesn\u0027t serve a purpose unless I miss something.","commit_id":"acac1f37e052450cbc3a3e0259725bf618b2ae66"},{"author":{"_account_id":7052,"name":"Fabio Giannetti","email":"fgiannet@cisco.com","username":"fabgia"},"change_message_id":"3cfc44d988ff9b7f14a27295330720e40c8d9501","unresolved":false,"context_lines":[{"line_number":191,"context_line":"            filter_val \u003d search_args2[\u0027dimensions\u0027].pop(source_dimension, None)"},{"line_number":192,"context_line":"            search_args2[\u0027dimensions\u0027][mapped_dimension] \u003d filter_val"},{"line_number":193,"context_line":"            metric_list \u003d self.mc.metrics_list(**search_args2)"},{"line_number":194,"context_line":"            if metric_list is None:"},{"line_number":195,"context_line":"                return []"},{"line_number":196,"context_line":"            else:"},{"line_number":197,"context_line":"                return metric_list"},{"line_number":198,"context_line":"        return []"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    def get_metric_names_with_mapped_dimensions("}],"source_content_type":"text/x-python","patch_set":7,"id":"ba2be162_f47b9d79","line":197,"range":{"start_line":194,"start_character":12,"end_line":197,"end_character":34},"updated":"2017-02-28 18:41:04.000000000","message":"this could be changed in a simpler:\nif metric_list is not None:\n    return metric_list\n\nand you won\u0027t need an else","commit_id":"acac1f37e052450cbc3a3e0259725bf618b2ae66"},{"author":{"_account_id":7052,"name":"Fabio Giannetti","email":"fgiannet@cisco.com","username":"fabgia"},"change_message_id":"3cfc44d988ff9b7f14a27295330720e40c8d9501","unresolved":false,"context_lines":[{"line_number":205,"context_line":"            filter_val \u003d search_args2[\u0027dimensions\u0027].pop(source_dimension, None)"},{"line_number":206,"context_line":"            search_args2[\u0027dimensions\u0027][mapped_dimension] \u003d filter_val"},{"line_number":207,"context_line":"            metric_names_list \u003d self.mc.metric_names_list(**search_args2)"},{"line_number":208,"context_line":"            if metric_names_list is None:"},{"line_number":209,"context_line":"                return []"},{"line_number":210,"context_line":"            else:"},{"line_number":211,"context_line":"                return metric_names_list"},{"line_number":212,"context_line":"        return []"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    def get_resources(self, user\u003dNone, project\u003dNone, source\u003dNone,"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba2be162_1481114b","line":211,"range":{"start_line":208,"start_character":12,"end_line":211,"end_character":40},"updated":"2017-02-28 18:41:04.000000000","message":"same as above","commit_id":"acac1f37e052450cbc3a3e0259725bf618b2ae66"},{"author":{"_account_id":12637,"name":"Srinivas Sakhamuri","email":"srini.openstack@gmail.com","username":"srsakhamuri"},"change_message_id":"c34a3b74e6096731b327cdcb13b8cff2c0a6e4c2","unresolved":false,"context_lines":[{"line_number":321,"context_line":"                continue"},{"line_number":322,"context_line":"            else:"},{"line_number":323,"context_line":"                meter_names.append(metric[\u0027name\u0027])"},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"        for meter_name in meter_names:"},{"line_number":326,"context_line":"            _search_args[\u0027name\u0027] \u003d meter_name"},{"line_number":327,"context_line":"            _search_args[\u0027group_by\u0027] \u003d \u0027*\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba2be162_f007f87e","line":324,"updated":"2017-03-01 17:06:24.000000000","message":"I think the following code is little difficult to follow for an untrained eye, if we can separate out building the query and process the results into their own functions it makes it easy to follow, but for time being if we can add comments and create visual blocks of code it will look better.","commit_id":"acac1f37e052450cbc3a3e0259725bf618b2ae66"},{"author":{"_account_id":12637,"name":"Srinivas Sakhamuri","email":"srini.openstack@gmail.com","username":"srsakhamuri"},"change_message_id":"c34a3b74e6096731b327cdcb13b8cff2c0a6e4c2","unresolved":false,"context_lines":[{"line_number":327,"context_line":"            _search_args[\u0027group_by\u0027] \u003d \u0027*\u0027"},{"line_number":328,"context_line":"            _search_args.pop(\u0027dimensions\u0027, None)"},{"line_number":329,"context_line":"            _search_args[\u0027dimensions\u0027] \u003d dims_filter"},{"line_number":330,"context_line":"            if (meter_name not in"},{"line_number":331,"context_line":"                    self.ceilosca_mapper.get_list_monasca_metrics()):"},{"line_number":332,"context_line":"                try:"},{"line_number":333,"context_line":"                    if meter_name not in self.meters_from_pipeline:"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba2be162_5118cd84","line":330,"updated":"2017-03-01 17:06:24.000000000","message":"A comment here distinguishing if else would be useful to understand quickly between ceilometer and monasca data","commit_id":"acac1f37e052450cbc3a3e0259725bf618b2ae66"}],"etc/ceilometer/monasca_pipeline.yaml":[{"author":{"_account_id":10311,"name":"Joseph Davis","email":"joseph.davis@suse.com","username":"joadavis"},"change_message_id":"0399466900c0e34224be28af644ea0bda2992fb2","unresolved":false,"context_lines":[{"line_number":4,"context_line":"      interval: 60"},{"line_number":5,"context_line":"      meters:"},{"line_number":6,"context_line":"          - \"testbatch\""},{"line_number":7,"context_line":"          - \"testbatch2\""},{"line_number":8,"context_line":"      sinks:"},{"line_number":9,"context_line":"          - meter_sink"},{"line_number":10,"context_line":"sinks:"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"fa31d9ce_2a53e2e2","line":7,"range":{"start_line":7,"start_character":23,"end_line":7,"end_character":24},"updated":"2017-02-11 01:20:31.000000000","message":"These values were required to make the gate test work.  However, there is a \u0027leak\u0027 between the functional tests run by the gate and the unit tests being run.  If anyone knows how to disable the functional tests in the gate, please do.  I spent far too long trying to figure out how to isolate the tests or get the functional tests to clean up the PipelineReader singleton.","commit_id":"acac1f37e052450cbc3a3e0259725bf618b2ae66"},{"author":{"_account_id":11580,"name":"Ashwin Agate","email":"agateaaa@gmail.com","username":"agateaaa"},"change_message_id":"df1815ca5bdf53b36b2e083a6a7a5a1a7f46d766","unresolved":false,"context_lines":[{"line_number":4,"context_line":"      interval: 60"},{"line_number":5,"context_line":"      meters:"},{"line_number":6,"context_line":"          - \"testbatch\""},{"line_number":7,"context_line":"          - \"testbatch2\""},{"line_number":8,"context_line":"      sinks:"},{"line_number":9,"context_line":"          - meter_sink"},{"line_number":10,"context_line":"sinks:"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"fa31d9ce_3105e079","line":7,"range":{"start_line":7,"start_character":23,"end_line":7,"end_character":24},"in_reply_to":"fa31d9ce_2a53e2e2","updated":"2017-02-13 16:32:41.000000000","message":"Thanks Joseph! I am good with this workaround","commit_id":"acac1f37e052450cbc3a3e0259725bf618b2ae66"}],"monasca_test_setup.py":[{"author":{"_account_id":12637,"name":"Srinivas Sakhamuri","email":"srini.openstack@gmail.com","username":"srsakhamuri"},"change_message_id":"c34a3b74e6096731b327cdcb13b8cff2c0a6e4c2","unresolved":false,"context_lines":[{"line_number":38,"context_line":"shutil.rmtree(ceilo_dir + \"/ceilosca_mapping/\", True)"},{"line_number":39,"context_line":"shutil.copytree(\u0027ceilosca/ceilometer/ceilosca_mapping\u0027,"},{"line_number":40,"context_line":"                ceilo_dir + \"/ceilosca_mapping/\")"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"ceilo_parent_dir \u003d os.path.dirname(os.path.abspath("},{"line_number":43,"context_line":"    os.path.dirname(ceilometer.__file__)))"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba2be162_13949de0","line":41,"updated":"2017-03-01 17:06:24.000000000","message":"The above module copy should be part of code block in 21-30. It is all part of ceilosca code, don\u0027t see a reason why we need another method to copy the code to ceilometer.","commit_id":"acac1f37e052450cbc3a3e0259725bf618b2ae66"},{"author":{"_account_id":10311,"name":"Joseph Davis","email":"joseph.davis@suse.com","username":"joadavis"},"change_message_id":"5a5751a95cc0771ae17bf60ea94a4a968fac9eb7","unresolved":false,"context_lines":[{"line_number":38,"context_line":"shutil.rmtree(ceilo_dir + \"/ceilosca_mapping/\", True)"},{"line_number":39,"context_line":"shutil.copytree(\u0027ceilosca/ceilometer/ceilosca_mapping\u0027,"},{"line_number":40,"context_line":"                ceilo_dir + \"/ceilosca_mapping/\")"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"ceilo_parent_dir \u003d os.path.dirname(os.path.abspath("},{"line_number":43,"context_line":"    os.path.dirname(ceilometer.__file__)))"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba2be162_656984be","line":41,"in_reply_to":"ba2be162_13949de0","updated":"2017-03-01 21:26:01.000000000","message":"I found it worked to have it separate because the ceilosca_mapping directory doesn\u0027t exist in ceilometer, so the .copyfile command would fail.  We can look at refactoring this if we change the module over to storage as you suggested in another comment.","commit_id":"acac1f37e052450cbc3a3e0259725bf618b2ae66"},{"author":{"_account_id":12637,"name":"Srinivas Sakhamuri","email":"srini.openstack@gmail.com","username":"srsakhamuri"},"change_message_id":"c2a32d54af918b3c0c3c8fb52091784df8aa4ebb","unresolved":false,"context_lines":[{"line_number":38,"context_line":"shutil.rmtree(ceilo_dir + \"/ceilosca_mapping/\", True)"},{"line_number":39,"context_line":"shutil.copytree(\u0027ceilosca/ceilometer/ceilosca_mapping\u0027,"},{"line_number":40,"context_line":"                ceilo_dir + \"/ceilosca_mapping/\")"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"ceilo_parent_dir \u003d os.path.dirname(os.path.abspath("},{"line_number":43,"context_line":"    os.path.dirname(ceilometer.__file__)))"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba2be162_87de523d","line":41,"in_reply_to":"ba2be162_656984be","updated":"2017-03-02 13:27:20.000000000","message":"I was thinking create the directory, before the for loop and have the files as part of ceilosca_files. But I am ok with this.","commit_id":"acac1f37e052450cbc3a3e0259725bf618b2ae66"}]}
