)]}'
{"ceilometer/alarm/storage/impl_hbase.py":[{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"32779deec5ce6a3d60e600ac9d00f3be78b49490","unresolved":false,"context_lines":[{"line_number":200,"context_line":"                    alarms,"},{"line_number":201,"context_line":"                    key\u003dlambda data:"},{"line_number":202,"context_line":"                    (data.get(\u0027timestamp\u0027) or"},{"line_number":203,"context_line":"                     datetime.datetime(datetime.MINYEAR, 1, 1)),"},{"line_number":204,"context_line":"                    reverse\u003dTrue):"},{"line_number":205,"context_line":"                yield models.Alarm(**alarm)"},{"line_number":206,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa7fdbe_92ad6434","line":203,"updated":"2014-10-21 08:22:04.000000000","message":"is there alarm has no timestamp? and if so should we assume the alarm as the earliest one (1970.1.1)?  just feel a little strange :)","commit_id":"6574d54516a72beb809315cbeb715b71b0ea5753"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"eb98590a9b99d2c6bcb5d6406faf62dc63f211ff","unresolved":false,"context_lines":[{"line_number":200,"context_line":"                    alarms,"},{"line_number":201,"context_line":"                    key\u003dlambda data:"},{"line_number":202,"context_line":"                    (data.get(\u0027timestamp\u0027) or"},{"line_number":203,"context_line":"                     datetime.datetime(datetime.MINYEAR, 1, 1)),"},{"line_number":204,"context_line":"                    reverse\u003dTrue):"},{"line_number":205,"context_line":"                yield models.Alarm(**alarm)"},{"line_number":206,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa7fdbe_cc0e4c32","line":203,"in_reply_to":"9aa7fdbe_92ad6434","updated":"2014-10-22 09:12:34.000000000","message":"agree with liusheng, why do we set 1970.1.1 to alarms without timestamp? And other nit is that probably will be better to write \ndata.get(\u0027timestamp\u0027, datetime.datetime(datetime.MINYEAR, 1, 1))","commit_id":"6574d54516a72beb809315cbeb715b71b0ea5753"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"beaf40812c0373e65b29ed4deb511a9001e82777","unresolved":false,"context_lines":[{"line_number":200,"context_line":"                    alarms,"},{"line_number":201,"context_line":"                    key\u003dlambda data:"},{"line_number":202,"context_line":"                    (data.get(\u0027timestamp\u0027) or"},{"line_number":203,"context_line":"                     datetime.datetime(datetime.MINYEAR, 1, 1)),"},{"line_number":204,"context_line":"                    reverse\u003dTrue):"},{"line_number":205,"context_line":"                yield models.Alarm(**alarm)"},{"line_number":206,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa7fdbe_a3781790","line":203,"in_reply_to":"9aa7fdbe_cc0e4c32","updated":"2014-10-23 08:00:59.000000000","message":"well, I suppose the reason is that if won\u0027t set this only possible minimum epoch value, we\u0027ll need to skip this alarm at all, or use smth like utc.now - that might be not correct as well, i\u0027m not sure what solution is the worst/best here :)","commit_id":"6574d54516a72beb809315cbeb715b71b0ea5753"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"a37f33a57e62d2b3d1ff31b900407cdecb35f983","unresolved":false,"context_lines":[{"line_number":200,"context_line":"                    alarms,"},{"line_number":201,"context_line":"                    key\u003dlambda data:"},{"line_number":202,"context_line":"                    (data.get(\u0027timestamp\u0027) or"},{"line_number":203,"context_line":"                     datetime.datetime(datetime.MINYEAR, 1, 1)),"},{"line_number":204,"context_line":"                    reverse\u003dTrue):"},{"line_number":205,"context_line":"                yield models.Alarm(**alarm)"},{"line_number":206,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7a8c0949_9a964793","line":203,"updated":"2014-11-05 06:02:57.000000000","message":"Sorry, I find that liusheng and Igor Degtiarov\u0027s comment has not been addressed yet, I think their opinion is reasonable.\n\nWhen alarm is created or updated, we will set its timestamp, then pass it to database, so timestamp field definitely exists.\n\nsee: \n\n* https://github.com/openstack/ceilometer/blob/master/ceilometer/api/controllers/v2.py#L2030\n* https://github.com/openstack/ceilometer/blob/master/ceilometer/api/controllers/v2.py#L2192","commit_id":"0fc57a6ca46643a7f7f166f92ca1d0a006732b16"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"ba60ef47cd39be9687e3c319c6677bff38de9df4","unresolved":false,"context_lines":[{"line_number":200,"context_line":"                    alarms,"},{"line_number":201,"context_line":"                    key\u003dlambda data:"},{"line_number":202,"context_line":"                    (data.get(\u0027timestamp\u0027) or"},{"line_number":203,"context_line":"                     datetime.datetime(datetime.MINYEAR, 1, 1)),"},{"line_number":204,"context_line":"                    reverse\u003dTrue):"},{"line_number":205,"context_line":"                yield models.Alarm(**alarm)"},{"line_number":206,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7a8c0949_5b3bfe9b","line":203,"in_reply_to":"7a8c0949_9a964793","updated":"2014-11-05 11:55:51.000000000","message":"Hi, in seceral unittests we update_alarm with None timestamp through connection.update_alarm, these alarms have timestamp\u003dNone and sorting raise TypeError","commit_id":"0fc57a6ca46643a7f7f166f92ca1d0a006732b16"}],"ceilometer/tests/storage/test_storage_scenarios.py":[{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"88b905c30f494a9c81c163eb9f8a9cfe4564c3a4","unresolved":false,"context_lines":[{"line_number":2406,"context_line":"        alarms \u003d list(self.alarm_conn.get_alarms())"},{"line_number":2407,"context_line":"        self.assertEqual(len(alarms), 3)"},{"line_number":2408,"context_line":""},{"line_number":2409,"context_line":"    def test_list_ordered_by_timestamp(self):"},{"line_number":2410,"context_line":"        self.add_some_alarms()"},{"line_number":2411,"context_line":"        alarms \u003d list(self.alarm_conn.get_alarms())"},{"line_number":2412,"context_line":"        self.assertEqual(len(alarms), 3)"}],"source_content_type":"text/x-python","patch_set":1,"id":"baa201ad_912de848","line":2409,"updated":"2014-10-16 08:17:59.000000000","message":"I think you need to change the creation of alarms in this test cases, because all 3 alarms created here have timestamp None.","commit_id":"cd9dc05a9ea1c3250fa582ed7aa3e54a071b4ab4"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"49fba227e925d391614015c32dbcd0aee7619977","unresolved":false,"context_lines":[{"line_number":2412,"context_line":"        self.assertEqual(len(alarms), 3)"},{"line_number":2413,"context_line":"        alarm_l \u003d [a.timestamp for a in alarms]"},{"line_number":2414,"context_line":"        alarm_l_sorted \u003d sorted(alarm_l, reverse\u003dTrue)"},{"line_number":2415,"context_line":"        self.assertEqual(alarm_l, alarm_l_sorted)"},{"line_number":2416,"context_line":""},{"line_number":2417,"context_line":"    def test_list_enabled(self):"},{"line_number":2418,"context_line":"        self.add_some_alarms()"}],"source_content_type":"text/x-python","patch_set":1,"id":"baa201ad_592d45a7","line":2415,"updated":"2014-10-17 11:39:27.000000000","message":"Agreed with Lianhao you tests here two lists with None as a members.","commit_id":"cd9dc05a9ea1c3250fa582ed7aa3e54a071b4ab4"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"a47096ce3e9e4117e896820ad8c601d50dcffb02","unresolved":false,"context_lines":[{"line_number":2417,"context_line":"        alarm_l_ordered \u003d [datetime.datetime(2015, 7, 2, 10, 40),"},{"line_number":2418,"context_line":"                           datetime.datetime(2015, 7, 2, 10, 25),"},{"line_number":2419,"context_line":"                           datetime.datetime(2015, 7, 2, 10, 10)]"},{"line_number":2420,"context_line":"        self.assertEqual(alarm_l, alarm_l_ordered)"},{"line_number":2421,"context_line":""},{"line_number":2422,"context_line":"    def test_list_enabled(self):"},{"line_number":2423,"context_line":"        self.add_some_alarms()"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a8c0949_26c5433c","line":2420,"updated":"2014-11-04 14:19:21.000000000","message":"-1: since we already have agreement on order of arguments in assertEqual, please use:\n\n    self.assertEqual(alarm_l_ordered, alarm_l)","commit_id":"e907c65df86a82296d21301f81e0875ae4ae87b2"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"a47096ce3e9e4117e896820ad8c601d50dcffb02","unresolved":false,"context_lines":[{"line_number":2608,"context_line":"        name_index \u003d {}"},{"line_number":2609,"context_line":"        name_index[\u0027red-alert\u0027] \u003d 0"},{"line_number":2610,"context_line":"        name_index[\u0027orange-alert\u0027] \u003d 1"},{"line_number":2611,"context_line":"        name_index[\u0027yellow-alert\u0027] \u003d 2"},{"line_number":2612,"context_line":""},{"line_number":2613,"context_line":"        for alarm in alarms:"},{"line_number":2614,"context_line":"            i \u003d name_index[alarm.name]"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a8c0949_c6eb9fae","line":2611,"updated":"2014-11-04 14:19:21.000000000","message":"It would be better for dict initialization if:\n\n    name_index \u003d {\n        \u0027red-alert\u0027: 0,\n        \u0027orange_alert\u0027: 1,\n        \u0027yellow-alert\u0027: 2\n    }","commit_id":"e907c65df86a82296d21301f81e0875ae4ae87b2"}]}
