)]}'
{"ceilometerclient/common/utils.py":[{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"1524b826b9e52927dc88bfdf2b141da38cdd41e2","unresolved":false,"context_lines":[{"line_number":154,"context_line":"    return kwargs"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"def args_array_to_list_of_dicts(kwargs, key_to_convert):"},{"line_number":158,"context_line":"    \"\"\"Converts [\u0027a\u003d1;b\u003d2\u0027,\u0027c\u003d3;d\u003d4\u0027] to [{a:1,b:2},{c:3,d:4}]"},{"line_number":159,"context_line":"    \"\"\""},{"line_number":160,"context_line":"    values_to_convert \u003d kwargs.get(key_to_convert)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAVn%2F%2Faa4%3D","line":157,"updated":"2014-03-06 08:31:01.000000000","message":"Can you add some tests just around this function in test_utils.py ?","commit_id":"2b17718ae2eada9fa21fcd2379efb736b6e5d4b8"},{"author":{"_account_id":9328,"name":"Uros Jovanovic","email":"uros.jovanovic@gmail.com","username":"urulama"},"change_message_id":"fa8e521683fb8406ee29a6338d493cdc04e070e5","unresolved":false,"context_lines":[{"line_number":154,"context_line":"    return kwargs"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"def args_array_to_list_of_dicts(kwargs, key_to_convert):"},{"line_number":158,"context_line":"    \"\"\"Converts [\u0027a\u003d1;b\u003d2\u0027,\u0027c\u003d3;d\u003d4\u0027] to [{a:1,b:2},{c:3,d:4}]"},{"line_number":159,"context_line":"    \"\"\""},{"line_number":160,"context_line":"    values_to_convert \u003d kwargs.get(key_to_convert)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAVn%2F%2FaBY%3D","line":157,"in_reply_to":"AAAAVn%2F%2Faa4%3D","updated":"2014-03-06 09:22:11.000000000","message":"Done","commit_id":"2b17718ae2eada9fa21fcd2379efb736b6e5d4b8"}],"ceilometerclient/tests/test_utils.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"2c550842ead5307ba8bdc7be98d7a3f03975d0ee","unresolved":false,"context_lines":[{"line_number":120,"context_line":"    def test_args_array_to_list_of_dicts(self):"},{"line_number":121,"context_line":"        starts \u003d [\u00270 11 * * *\u0027, \u0027\"0 11 * * *\"\u0027, \u0027\\\u00270 11 * * *\\\u0027\u0027]"},{"line_number":122,"context_line":"        timezones \u003d [None, \u0027US/Eastern\u0027, \u0027\"US/Eastern\"\u0027, \u0027\\\u0027US/Eastern\\\u0027\u0027]"},{"line_number":123,"context_line":"        descs \u003d [None, \u0027de sc\u0027, \u0027\"de sc\"\u0027, \u0027\\\u0027de sc\\\u0027\u0027]"},{"line_number":124,"context_line":"        for start, tz, desc in zip(starts, timezones, descs):"},{"line_number":125,"context_line":"            my_args \u003d {"},{"line_number":126,"context_line":"                \u0027time_constraints\u0027: [\u0027name\u003dconst1;start\u003d%s;duration\u003d1\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F%2BlVI%3D","line":123,"updated":"2014-03-25 18:53:30.000000000","message":"i\u0027m not sure the last values of timezones and descs are actually tested. starts has 3 items while the other lists have 4.","commit_id":"3627078f9fe4ef84042d531dd2ef94367d35664d"},{"author":{"_account_id":9328,"name":"Uros Jovanovic","email":"uros.jovanovic@gmail.com","username":"urulama"},"change_message_id":"2c8f0d4771d930f4497850ac53a2565d8386eb31","unresolved":false,"context_lines":[{"line_number":120,"context_line":"    def test_args_array_to_list_of_dicts(self):"},{"line_number":121,"context_line":"        starts \u003d [\u00270 11 * * *\u0027, \u0027\"0 11 * * *\"\u0027, \u0027\\\u00270 11 * * *\\\u0027\u0027]"},{"line_number":122,"context_line":"        timezones \u003d [None, \u0027US/Eastern\u0027, \u0027\"US/Eastern\"\u0027, \u0027\\\u0027US/Eastern\\\u0027\u0027]"},{"line_number":123,"context_line":"        descs \u003d [None, \u0027de sc\u0027, \u0027\"de sc\"\u0027, \u0027\\\u0027de sc\\\u0027\u0027]"},{"line_number":124,"context_line":"        for start, tz, desc in zip(starts, timezones, descs):"},{"line_number":125,"context_line":"            my_args \u003d {"},{"line_number":126,"context_line":"                \u0027time_constraints\u0027: [\u0027name\u003dconst1;start\u003d%s;duration\u003d1\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F%2BhN0%3D","line":123,"in_reply_to":"AAAAWH%2F%2BlVI%3D","updated":"2014-03-26 08:27:18.000000000","message":"Great catch, this zip was supposed to be a product.","commit_id":"3627078f9fe4ef84042d531dd2ef94367d35664d"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"87050f47b3018a16b6fcd91ac7e75ec4bfe41ddb","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        starts \u003d [\u00270 11 * * *\u0027, \u0027\"0 11 * * *\"\u0027, \u0027\\\u00270 11 * * *\\\u0027\u0027]"},{"line_number":123,"context_line":"        timezones \u003d [None, \u0027US/Eastern\u0027, \u0027\"US/Eastern\"\u0027, \u0027\\\u0027US/Eastern\\\u0027\u0027]"},{"line_number":124,"context_line":"        descs \u003d [None, \u0027de sc\u0027, \u0027\"de sc\"\u0027, \u0027\\\u0027de sc\\\u0027\u0027]"},{"line_number":125,"context_line":"        for start, tz, desc in itertools.product(starts, timezones, descs):"},{"line_number":126,"context_line":"            my_args \u003d {"},{"line_number":127,"context_line":"                \u0027time_constraints\u0027: [\u0027name\u003dconst1;start\u003d%s;duration\u003d1\u0027"},{"line_number":128,"context_line":"                                     % start],"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAWH%2F%2BfSE%3D","line":125,"updated":"2014-03-26 13:17:55.000000000","message":"this is cool. i should look into itertools more","commit_id":"7146571b702579fa1367598ab278ca2f8ec1e156"}],"ceilometerclient/tests/v2/test_alarms.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"2c550842ead5307ba8bdc7be98d7a3f03975d0ee","unresolved":false,"context_lines":[{"line_number":423,"context_line":""},{"line_number":424,"context_line":"    def setUp(self):"},{"line_number":425,"context_line":"        super(AlarmTimeConstraintTest, self).setUp()"},{"line_number":426,"context_line":"        self.alarm \u003d copy.deepcopy(AN_ALARM)"},{"line_number":427,"context_line":"        self.api \u003d utils.FakeAPI(fixtures)"},{"line_number":428,"context_line":"        self.mgr \u003d alarms.AlarmManager(self.api)"},{"line_number":429,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F%2BlYE%3D","line":426,"updated":"2014-03-25 18:53:30.000000000","message":"this doesn\u0027t seem to be used","commit_id":"3627078f9fe4ef84042d531dd2ef94367d35664d"},{"author":{"_account_id":9328,"name":"Uros Jovanovic","email":"uros.jovanovic@gmail.com","username":"urulama"},"change_message_id":"2c8f0d4771d930f4497850ac53a2565d8386eb31","unresolved":false,"context_lines":[{"line_number":423,"context_line":""},{"line_number":424,"context_line":"    def setUp(self):"},{"line_number":425,"context_line":"        super(AlarmTimeConstraintTest, self).setUp()"},{"line_number":426,"context_line":"        self.alarm \u003d copy.deepcopy(AN_ALARM)"},{"line_number":427,"context_line":"        self.api \u003d utils.FakeAPI(fixtures)"},{"line_number":428,"context_line":"        self.mgr \u003d alarms.AlarmManager(self.api)"},{"line_number":429,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F%2BhNo%3D","line":426,"in_reply_to":"AAAAWH%2F%2BlYE%3D","updated":"2014-03-26 08:27:18.000000000","message":"Done","commit_id":"3627078f9fe4ef84042d531dd2ef94367d35664d"}],"ceilometerclient/v2/alarms.py":[{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"5f12930a059df9b5ea87d8ce58aad8850220f77f","unresolved":false,"context_lines":[{"line_number":113,"context_line":"            kwargs[\u0027threshold_rule\u0027][\u0027query\u0027] \u003d query"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    @staticmethod"},{"line_number":116,"context_line":"    def _merge_time_constraints(dest, kwargs):"},{"line_number":117,"context_line":"        new_tcs \u003d kwargs.get(\u0027time_constraints\u0027, [])"},{"line_number":118,"context_line":"        if \u0027time_constraints\u0027 not in dest:"},{"line_number":119,"context_line":"            dest[\u0027time_constraints\u0027] \u003d new_tcs"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAWH%2F%2FXTM%3D","line":116,"updated":"2014-03-18 11:09:38.000000000","message":"Rather than doing the update in-situ, how about re-structuring this code so that it can be called like:\n\n  updated[\u0027time_constraints\u0027] \u003d self._merge_time_constraints(\n      updated[\u0027time_constraints\u0027],\n      kwargs\n  )\n\nThis adds more clarity to the intent IMO.","commit_id":"4a91ebba89e179ba2f03425c8cfece3094cebc34"},{"author":{"_account_id":9328,"name":"Uros Jovanovic","email":"uros.jovanovic@gmail.com","username":"urulama"},"change_message_id":"57727668a58177832a75be28ca9171b6192baeab","unresolved":false,"context_lines":[{"line_number":113,"context_line":"            kwargs[\u0027threshold_rule\u0027][\u0027query\u0027] \u003d query"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    @staticmethod"},{"line_number":116,"context_line":"    def _merge_time_constraints(dest, kwargs):"},{"line_number":117,"context_line":"        new_tcs \u003d kwargs.get(\u0027time_constraints\u0027, [])"},{"line_number":118,"context_line":"        if \u0027time_constraints\u0027 not in dest:"},{"line_number":119,"context_line":"            dest[\u0027time_constraints\u0027] \u003d new_tcs"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAWH%2F%2FVFs%3D","line":116,"in_reply_to":"AAAAWH%2F%2FXTM%3D","updated":"2014-03-18 15:33:26.000000000","message":"Done","commit_id":"4a91ebba89e179ba2f03425c8cfece3094cebc34"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"87baff0b808715c845dc3ab93f4d6a982fbaff90","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#, -*- encoding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright © 2013 Red Hat, Inc"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F%2BySY%3D","line":1,"updated":"2014-03-24 11:31:53.000000000","message":"what the \u0027,\u0027 for?","commit_id":"2a0afe6a977f6ed21654e8d9eaffb4000807db31"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"2c550842ead5307ba8bdc7be98d7a3f03975d0ee","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        else:"},{"line_number":121,"context_line":"            updated_tcs \u003d [dict(tc) for tc in existing_tcs]"},{"line_number":122,"context_line":"            for tc in new_tcs:"},{"line_number":123,"context_line":"                new \u003d True"},{"line_number":124,"context_line":"                for i, old_tc in enumerate(updated_tcs):"},{"line_number":125,"context_line":"                    if old_tc[\u0027name\u0027] \u003d\u003d tc[\u0027name\u0027]:  # if names match, merge"},{"line_number":126,"context_line":"                        utils.merge_nested_dict(updated_tcs[i], tc)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F%2BlOs%3D","line":123,"updated":"2014-03-25 18:53:30.000000000","message":"(nit) this can be done with a for-else condition so you don\u0027t need this new variable.\n\nie.\nfor tc in new_tcs:\n    for i, old_tc in enumerate(updated_tcs):\n        if old_tc[\u0027name\u0027] \u003d\u003d tc[\u0027name\u0027]:  # if names match, merge\n            utils.merge_nested_dict(updated_tcs[i], tc)\n            break\n    else:\n        updated_tcs.append(tc)","commit_id":"3627078f9fe4ef84042d531dd2ef94367d35664d"},{"author":{"_account_id":9328,"name":"Uros Jovanovic","email":"uros.jovanovic@gmail.com","username":"urulama"},"change_message_id":"2c8f0d4771d930f4497850ac53a2565d8386eb31","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        else:"},{"line_number":121,"context_line":"            updated_tcs \u003d [dict(tc) for tc in existing_tcs]"},{"line_number":122,"context_line":"            for tc in new_tcs:"},{"line_number":123,"context_line":"                new \u003d True"},{"line_number":124,"context_line":"                for i, old_tc in enumerate(updated_tcs):"},{"line_number":125,"context_line":"                    if old_tc[\u0027name\u0027] \u003d\u003d tc[\u0027name\u0027]:  # if names match, merge"},{"line_number":126,"context_line":"                        utils.merge_nested_dict(updated_tcs[i], tc)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F%2BhNY%3D","line":123,"in_reply_to":"AAAAWH%2F%2BlOs%3D","updated":"2014-03-26 08:27:18.000000000","message":"Done, nice trick!","commit_id":"3627078f9fe4ef84042d531dd2ef94367d35664d"}],"ceilometerclient/v2/shell.py":[{"author":{"_account_id":8052,"name":"Nejc Saje","email":"nejc@saje.info","username":"nsaje"},"change_message_id":"6173ec38ead3ec6d7f8cbce4708b17e5312e5486","unresolved":false,"context_lines":[{"line_number":177,"context_line":""},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"def _display_time_constraints(time_constraints):"},{"line_number":180,"context_line":"    return \u0027, \u0027.join(\u0027%(name)s at %(start)s %(timezone)s for %(duration)ss\u0027 %"},{"line_number":181,"context_line":"                     {"},{"line_number":182,"context_line":"                         \u0027name\u0027: tc[\u0027name\u0027],"},{"line_number":183,"context_line":"                         \u0027start\u0027: tc[\u0027start\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAVn%2F%2FaMg%3D","line":180,"updated":"2014-03-06 08:56:23.000000000","message":"I think this should return a string \u0027None\u0027 if there are no time constraints, as it is it returns just an empty string.","commit_id":"2b17718ae2eada9fa21fcd2379efb736b6e5d4b8"},{"author":{"_account_id":9328,"name":"Uros Jovanovic","email":"uros.jovanovic@gmail.com","username":"urulama"},"change_message_id":"fa8e521683fb8406ee29a6338d493cdc04e070e5","unresolved":false,"context_lines":[{"line_number":177,"context_line":""},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"def _display_time_constraints(time_constraints):"},{"line_number":180,"context_line":"    return \u0027, \u0027.join(\u0027%(name)s at %(start)s %(timezone)s for %(duration)ss\u0027 %"},{"line_number":181,"context_line":"                     {"},{"line_number":182,"context_line":"                         \u0027name\u0027: tc[\u0027name\u0027],"},{"line_number":183,"context_line":"                         \u0027start\u0027: tc[\u0027start\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAVn%2F%2FaBM%3D","line":180,"in_reply_to":"AAAAVn%2F%2FaMg%3D","updated":"2014-03-06 09:22:11.000000000","message":"Done","commit_id":"2b17718ae2eada9fa21fcd2379efb736b6e5d4b8"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"e9451b9aa4ef57da60a6218aa295f52a89350f11","unresolved":false,"context_lines":[{"line_number":324,"context_line":"                   metavar\u003d\u0027\u003cWebhook URL\u003e\u0027, action\u003d\u0027append\u0027, default\u003dNone,"},{"line_number":325,"context_line":"                   help\u003d(\u0027URL to invoke when state transitions to \u0027"},{"line_number":326,"context_line":"                         \u0027insufficient_data. May be used multiple times.\u0027))"},{"line_number":327,"context_line":"        @utils.arg(\u0027--time-constraint\u0027, dest\u003d\u0027time_constraints\u0027,"},{"line_number":328,"context_line":"                   metavar\u003d\u0027\u003cTime Constraint\u003e\u0027, action\u003d\u0027append\u0027,"},{"line_number":329,"context_line":"                   default\u003dNone,"},{"line_number":330,"context_line":"                   help\u003d(\u0027Only evaluate the alarm if the time at evaluation \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2FZ3Q%3D","line":327,"updated":"2014-03-06 09:49:02.000000000","message":"I\u0027m wondering how this would work for updates - do *all* other existing constraints for an alarm have be specified again when a single constraint is to be updated or dropped?","commit_id":"48d06543138025e406dd3fb06912b68eda0ed332"},{"author":{"_account_id":9328,"name":"Uros Jovanovic","email":"uros.jovanovic@gmail.com","username":"urulama"},"change_message_id":"73acab82e530b0931ff3ad8419d9c4e5b7f81497","unresolved":false,"context_lines":[{"line_number":324,"context_line":"                   metavar\u003d\u0027\u003cWebhook URL\u003e\u0027, action\u003d\u0027append\u0027, default\u003dNone,"},{"line_number":325,"context_line":"                   help\u003d(\u0027URL to invoke when state transitions to \u0027"},{"line_number":326,"context_line":"                         \u0027insufficient_data. May be used multiple times.\u0027))"},{"line_number":327,"context_line":"        @utils.arg(\u0027--time-constraint\u0027, dest\u003d\u0027time_constraints\u0027,"},{"line_number":328,"context_line":"                   metavar\u003d\u0027\u003cTime Constraint\u003e\u0027, action\u003d\u0027append\u0027,"},{"line_number":329,"context_line":"                   default\u003dNone,"},{"line_number":330,"context_line":"                   help\u003d(\u0027Only evaluate the alarm if the time at evaluation \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2FZRU%3D","line":327,"in_reply_to":"AAAAVn%2F%2FZ3Q%3D","updated":"2014-03-06 11:44:49.000000000","message":"Good point, I made the time constraints updatable by name in the latest patch.","commit_id":"48d06543138025e406dd3fb06912b68eda0ed332"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"e9451b9aa4ef57da60a6218aa295f52a89350f11","unresolved":false,"context_lines":[{"line_number":330,"context_line":"                   help\u003d(\u0027Only evaluate the alarm if the time at evaluation \u0027"},{"line_number":331,"context_line":"                         \u0027is within this time constraint. Start point(s) of \u0027"},{"line_number":332,"context_line":"                         \u0027the constraint are specified with a cron expression \u0027"},{"line_number":333,"context_line":"                         \u0027and its duration in seconds. Can be specified \u0027"},{"line_number":334,"context_line":"                         \u0027multiple times for multiple time constraints, format\u0027"},{"line_number":335,"context_line":"                         \u0027is: \u0027"},{"line_number":336,"context_line":"                         \u0027name\u003d\u003cCONSTRAINT_NAME\u003e;start\u003d\u003cCRON\u003e;\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2FZ3A%3D","line":333,"updated":"2014-03-06 09:49:02.000000000","message":"s/and its duration in seconds/, whereas its duration is given in seconds/","commit_id":"48d06543138025e406dd3fb06912b68eda0ed332"},{"author":{"_account_id":9328,"name":"Uros Jovanovic","email":"uros.jovanovic@gmail.com","username":"urulama"},"change_message_id":"73acab82e530b0931ff3ad8419d9c4e5b7f81497","unresolved":false,"context_lines":[{"line_number":330,"context_line":"                   help\u003d(\u0027Only evaluate the alarm if the time at evaluation \u0027"},{"line_number":331,"context_line":"                         \u0027is within this time constraint. Start point(s) of \u0027"},{"line_number":332,"context_line":"                         \u0027the constraint are specified with a cron expression \u0027"},{"line_number":333,"context_line":"                         \u0027and its duration in seconds. Can be specified \u0027"},{"line_number":334,"context_line":"                         \u0027multiple times for multiple time constraints, format\u0027"},{"line_number":335,"context_line":"                         \u0027is: \u0027"},{"line_number":336,"context_line":"                         \u0027name\u003d\u003cCONSTRAINT_NAME\u003e;start\u003d\u003cCRON\u003e;\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2FZQc%3D","line":333,"in_reply_to":"AAAAVn%2F%2FZ3A%3D","updated":"2014-03-06 11:44:49.000000000","message":"Done","commit_id":"48d06543138025e406dd3fb06912b68eda0ed332"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"e9451b9aa4ef57da60a6218aa295f52a89350f11","unresolved":false,"context_lines":[{"line_number":335,"context_line":"                         \u0027is: \u0027"},{"line_number":336,"context_line":"                         \u0027name\u003d\u003cCONSTRAINT_NAME\u003e;start\u003d\u003cCRON\u003e;\u0027"},{"line_number":337,"context_line":"                         \u0027duration\u003d\u003cSECONDS\u003e;[description\u003d\u003cDESCRIPTION\u003e;\u0027"},{"line_number":338,"context_line":"                         \u0027[timezone\u003d\u003cOLSON TZ\u003e]]\u0027))"},{"line_number":339,"context_line":"        @functools.wraps(func)"},{"line_number":340,"context_line":"        def _wrapped(*args, **kwargs):"},{"line_number":341,"context_line":"            return func(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2FZ3s%3D","line":338,"updated":"2014-03-06 09:49:02.000000000","message":"Would \"IANA Timezone\" be more understandable than \"OLSON TZ\"?","commit_id":"48d06543138025e406dd3fb06912b68eda0ed332"},{"author":{"_account_id":9328,"name":"Uros Jovanovic","email":"uros.jovanovic@gmail.com","username":"urulama"},"change_message_id":"73acab82e530b0931ff3ad8419d9c4e5b7f81497","unresolved":false,"context_lines":[{"line_number":335,"context_line":"                         \u0027is: \u0027"},{"line_number":336,"context_line":"                         \u0027name\u003d\u003cCONSTRAINT_NAME\u003e;start\u003d\u003cCRON\u003e;\u0027"},{"line_number":337,"context_line":"                         \u0027duration\u003d\u003cSECONDS\u003e;[description\u003d\u003cDESCRIPTION\u003e;\u0027"},{"line_number":338,"context_line":"                         \u0027[timezone\u003d\u003cOLSON TZ\u003e]]\u0027))"},{"line_number":339,"context_line":"        @functools.wraps(func)"},{"line_number":340,"context_line":"        def _wrapped(*args, **kwargs):"},{"line_number":341,"context_line":"            return func(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2FZQY%3D","line":338,"in_reply_to":"AAAAVn%2F%2FZ3s%3D","updated":"2014-03-06 11:44:49.000000000","message":"Done","commit_id":"48d06543138025e406dd3fb06912b68eda0ed332"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"e9451b9aa4ef57da60a6218aa295f52a89350f11","unresolved":false,"context_lines":[{"line_number":541,"context_line":"def do_alarm_combination_update(cc, args\u003d{}):"},{"line_number":542,"context_line":"    \u0027\u0027\u0027Update an existing alarm based on state of other alarms.\u0027\u0027\u0027"},{"line_number":543,"context_line":"    fields \u003d dict(filter(lambda x: not (x[1] is None), vars(args).items()))"},{"line_number":544,"context_line":"    fields \u003d utils.args_array_to_list_of_dicts(fields, \"time_constraints\")"},{"line_number":545,"context_line":"    fields \u003d utils.key_with_slash_to_nested_dict(fields)"},{"line_number":546,"context_line":"    fields.pop(\u0027alarm_id\u0027)"},{"line_number":547,"context_line":"    fields[\u0027type\u0027] \u003d \u0027combination\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2FZ2o%3D","line":544,"updated":"2014-03-06 09:49:02.000000000","message":"s/\"/\u0027/g for consistency.","commit_id":"48d06543138025e406dd3fb06912b68eda0ed332"},{"author":{"_account_id":9328,"name":"Uros Jovanovic","email":"uros.jovanovic@gmail.com","username":"urulama"},"change_message_id":"73acab82e530b0931ff3ad8419d9c4e5b7f81497","unresolved":false,"context_lines":[{"line_number":541,"context_line":"def do_alarm_combination_update(cc, args\u003d{}):"},{"line_number":542,"context_line":"    \u0027\u0027\u0027Update an existing alarm based on state of other alarms.\u0027\u0027\u0027"},{"line_number":543,"context_line":"    fields \u003d dict(filter(lambda x: not (x[1] is None), vars(args).items()))"},{"line_number":544,"context_line":"    fields \u003d utils.args_array_to_list_of_dicts(fields, \"time_constraints\")"},{"line_number":545,"context_line":"    fields \u003d utils.key_with_slash_to_nested_dict(fields)"},{"line_number":546,"context_line":"    fields.pop(\u0027alarm_id\u0027)"},{"line_number":547,"context_line":"    fields[\u0027type\u0027] \u003d \u0027combination\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2FZQA%3D","line":544,"in_reply_to":"AAAAVn%2F%2FZ2o%3D","updated":"2014-03-06 11:44:49.000000000","message":"Done","commit_id":"48d06543138025e406dd3fb06912b68eda0ed332"}]}
