)]}'
{"heat/engine/resources/ceilometer/alarm.py":[{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"adcd7c892eacb973445171863ee8d4803c63c729","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    DESCRIPTION, ENABLED"},{"line_number":26,"context_line":") \u003d ("},{"line_number":27,"context_line":"    \u0027alarm_actions\u0027, \u0027ok_actions\u0027, \u0027repeat_actions\u0027,"},{"line_number":28,"context_line":"    \u0027insufficient_data_actions\u0027, \u0027description\u0027, \u0027enabled\u0027"},{"line_number":29,"context_line":")"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F8yDU%3D","line":28,"updated":"2013-12-20 12:31:08.000000000","message":"Missed comma in the end of line.\n\nI know, that it\u0027s not important changes (does not break resource or something else),\nbut I prefer to see similar description in all resources.","commit_id":"aceaa0a6baf0d72ea539a07a241ef08e17eb5529"},{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"adcd7c892eacb973445171863ee8d4803c63c729","unresolved":false,"context_lines":[{"line_number":178,"context_line":"        if prop_diff:"},{"line_number":179,"context_line":"            kwargs \u003d {\u0027alarm_id\u0027: self.resource_id}"},{"line_number":180,"context_line":"            kwargs.update(prop_diff)"},{"line_number":181,"context_line":"            client \u003d self.ceilometer().alarms"},{"line_number":182,"context_line":"            client.update(**actions_to_urls(self.stack, kwargs))"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    def handle_suspend(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F8yFk%3D","line":181,"updated":"2013-12-20 12:31:08.000000000","message":"Why are alarms named client? It\u0027s confused for me. I prefer use alarms or other name.","commit_id":"aceaa0a6baf0d72ea539a07a241ef08e17eb5529"},{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"unresolved":false,"context_lines":[{"line_number":178,"context_line":"        if prop_diff:"},{"line_number":179,"context_line":"            kwargs \u003d {\u0027alarm_id\u0027: self.resource_id}"},{"line_number":180,"context_line":"            kwargs.update(prop_diff)"},{"line_number":181,"context_line":"            client \u003d self.ceilometer().alarms"},{"line_number":182,"context_line":"            client.update(**actions_to_urls(self.stack, kwargs))"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    def handle_suspend(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F8ruM%3D","line":181,"in_reply_to":"AAAATn%2F8yFk%3D","updated":"2013-12-23 09:38:20.000000000","message":"Well it\u0027s a ceilometer API client. I renamed it to alarms_client.","commit_id":"aceaa0a6baf0d72ea539a07a241ef08e17eb5529"},{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"adcd7c892eacb973445171863ee8d4803c63c729","unresolved":false,"context_lines":[{"line_number":205,"context_line":""},{"line_number":206,"context_line":"class CombinationAlarm(resource.Resource):"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"    PROPERTIES \u003d (ALARM_IDS, OPERATOR) \u003d (\u0027alarm_ids\u0027, \u0027operator\u0027)"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"    properties_schema \u003d {"},{"line_number":211,"context_line":"        ALARM_IDS: properties.Schema("}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F8yFc%3D","line":208,"updated":"2013-12-20 12:31:08.000000000","message":"How about making this line format similar on other. F.e. https://github.com/openstack/heat/blob/master/heat/engine/resources/wait_condition.py#L135.\nIMO, It makes code more comfortable for reading.)","commit_id":"aceaa0a6baf0d72ea539a07a241ef08e17eb5529"},{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"unresolved":false,"context_lines":[{"line_number":205,"context_line":""},{"line_number":206,"context_line":"class CombinationAlarm(resource.Resource):"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"    PROPERTIES \u003d (ALARM_IDS, OPERATOR) \u003d (\u0027alarm_ids\u0027, \u0027operator\u0027)"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"    properties_schema \u003d {"},{"line_number":211,"context_line":"        ALARM_IDS: properties.Schema("}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F8ruA%3D","line":208,"in_reply_to":"AAAATn%2F8yFc%3D","updated":"2013-12-23 09:38:20.000000000","message":"I gave in, but I don\u0027t really agree.","commit_id":"aceaa0a6baf0d72ea539a07a241ef08e17eb5529"},{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"adcd7c892eacb973445171863ee8d4803c63c729","unresolved":false,"context_lines":[{"line_number":218,"context_line":"            properties.Schema.STRING,"},{"line_number":219,"context_line":"            _(\u0027Operator used to combine the alarms.\u0027),"},{"line_number":220,"context_line":"            constraints\u003d[constraints.AllowedValues([\u0027and\u0027, \u0027or\u0027])],"},{"line_number":221,"context_line":"            required\u003dTrue,"},{"line_number":222,"context_line":"            update_allowed\u003dTrue)"},{"line_number":223,"context_line":"    }"},{"line_number":224,"context_line":"    properties_schema.update(common_properties_schema)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F8yBI%3D","line":221,"updated":"2013-12-20 12:31:08.000000000","message":"AFAIK, \u0027operator\u0027 in ceilometer is not required option.\n\nAnd in default value equal \u0027and\u0027.\n\nShould we have similar format for parameters ?","commit_id":"aceaa0a6baf0d72ea539a07a241ef08e17eb5529"},{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"unresolved":false,"context_lines":[{"line_number":218,"context_line":"            properties.Schema.STRING,"},{"line_number":219,"context_line":"            _(\u0027Operator used to combine the alarms.\u0027),"},{"line_number":220,"context_line":"            constraints\u003d[constraints.AllowedValues([\u0027and\u0027, \u0027or\u0027])],"},{"line_number":221,"context_line":"            required\u003dTrue,"},{"line_number":222,"context_line":"            update_allowed\u003dTrue)"},{"line_number":223,"context_line":"    }"},{"line_number":224,"context_line":"    properties_schema.update(common_properties_schema)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F8rtc%3D","line":221,"in_reply_to":"AAAATn%2F8yBI%3D","updated":"2013-12-23 09:38:20.000000000","message":"You\u0027re right, removed the required.","commit_id":"aceaa0a6baf0d72ea539a07a241ef08e17eb5529"},{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"adcd7c892eacb973445171863ee8d4803c63c729","unresolved":false,"context_lines":[{"line_number":253,"context_line":"            client.update(**self._reformat_properties("},{"line_number":254,"context_line":"                actions_to_urls(self.stack, kwargs)))"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"    def handle_suspend(self):"},{"line_number":257,"context_line":"        self.ceilometer().alarms.update("},{"line_number":258,"context_line":"            alarm_id\u003dself.resource_id, enabled\u003dFalse)"},{"line_number":259,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F8x9g%3D","line":256,"updated":"2013-12-20 12:31:08.000000000","message":"Is it normal, that we have not checking:\n\n if self.resource_id is not None:","commit_id":"aceaa0a6baf0d72ea539a07a241ef08e17eb5529"},{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"unresolved":false,"context_lines":[{"line_number":253,"context_line":"            client.update(**self._reformat_properties("},{"line_number":254,"context_line":"                actions_to_urls(self.stack, kwargs)))"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"    def handle_suspend(self):"},{"line_number":257,"context_line":"        self.ceilometer().alarms.update("},{"line_number":258,"context_line":"            alarm_id\u003dself.resource_id, enabled\u003dFalse)"},{"line_number":259,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F8rtY%3D","line":256,"in_reply_to":"AAAATn%2F8x9g%3D","updated":"2013-12-23 09:38:20.000000000","message":"AFAICT there is no real justification of that.","commit_id":"aceaa0a6baf0d72ea539a07a241ef08e17eb5529"}],"heat/tests/test_ceilometer_alarm.py":[{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"adcd7c892eacb973445171863ee8d4803c63c729","unresolved":false,"context_lines":[{"line_number":247,"context_line":"    def setUp(self):"},{"line_number":248,"context_line":"        super(CombinationAlarmTest, self).setUp()"},{"line_number":249,"context_line":"        self.fc \u003d FakeCeilometerClient()"},{"line_number":250,"context_line":"        self.m.StubOutWithMock(clients.OpenStackClients, \u0027ceilometer\u0027)"},{"line_number":251,"context_line":"        utils.setup_dummy_db()"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"    def create_alarm(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F8xz0%3D","line":250,"updated":"2013-12-20 12:31:08.000000000","message":"Could you move mocking separate function of client in setUp?\n\n\nLike as here: https://github.com/openstack/heat/blob/master/heat/tests/test_volume.py#L84","commit_id":"aceaa0a6baf0d72ea539a07a241ef08e17eb5529"},{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"unresolved":false,"context_lines":[{"line_number":247,"context_line":"    def setUp(self):"},{"line_number":248,"context_line":"        super(CombinationAlarmTest, self).setUp()"},{"line_number":249,"context_line":"        self.fc \u003d FakeCeilometerClient()"},{"line_number":250,"context_line":"        self.m.StubOutWithMock(clients.OpenStackClients, \u0027ceilometer\u0027)"},{"line_number":251,"context_line":"        utils.setup_dummy_db()"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"    def create_alarm(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F8rtI%3D","line":250,"in_reply_to":"AAAATn%2F8xz0%3D","updated":"2013-12-23 09:38:20.000000000","message":"I don\u0027t understand.","commit_id":"aceaa0a6baf0d72ea539a07a241ef08e17eb5529"}]}
