)]}'
{"devstack/files/monasca-api/python/api-config.conf":[{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"2fc61b4aa78d8750cd8bd706bad3ecc4ffb696c9","unresolved":false,"context_lines":[{"line_number":50,"context_line":"# The driver to use for the alarm definitions repository"},{"line_number":51,"context_line":"alarm_definitions_driver \u003d monasca_api.common.repositories.sqla.alarm_definitions_repository:AlarmDefinitionsRepository"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"# The driver to use for the alarm definitions repository"},{"line_number":54,"context_line":"alarm_grouping_managers_driver \u003d monasca_api.common.repositories.sqla.alarm_grouping_managers_repository:AlarmGroupingManagersRepository"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"# The driver to use for the alarms repository"}],"source_content_type":"text/plain","patch_set":8,"id":"fa31d9ce_a1c45040","line":53,"range":{"start_line":53,"start_character":34,"end_line":53,"end_character":45},"updated":"2017-02-17 23:12:23.000000000","message":"should be alarm grouping manager","commit_id":"4a9ea2736cbc0bcfdd43bc3241866051ffa16711"}],"devstack/files/schema/mon_mysql.sql":[{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"97b43d2c3f8a5afc29a0e91b8525e3f06fc27e51","unresolved":false,"context_lines":[{"line_number":180,"context_line":"  CONSTRAINT `fk_sub_alarm_expr` FOREIGN KEY (`sub_expression_id`) REFERENCES `sub_alarm_definition` (`id`)"},{"line_number":181,"context_line":");"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"CREATE TABLE `alarm_grouping_manager` ("},{"line_number":184,"context_line":"  `id` varchar(36) COLLATE utf8mb4_unicode_ci NOT NULL,"},{"line_number":185,"context_line":"  `tenant_id` varchar(36) COLLATE utf8mb4_unicode_ci NOT NULL,"},{"line_number":186,"context_line":"  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT \u0027\u0027,"}],"source_content_type":"text/x-sql","patch_set":2,"id":"fa31d9ce_87210bfe","line":183,"updated":"2017-02-13 05:32:08.000000000","message":"Could you add those tables there as well to mon_postgresql ?","commit_id":"3a05d4f3df668242a57fa7fac8d99f739bc36486"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"7681572e81170810993961eade5b9f51cae3a017","unresolved":false,"context_lines":[{"line_number":180,"context_line":"  CONSTRAINT `fk_sub_alarm_expr` FOREIGN KEY (`sub_expression_id`) REFERENCES `sub_alarm_definition` (`id`)"},{"line_number":181,"context_line":");"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"CREATE TABLE `alarm_grouping_manager` ("},{"line_number":184,"context_line":"  `id` varchar(36) COLLATE utf8mb4_unicode_ci NOT NULL,"},{"line_number":185,"context_line":"  `tenant_id` varchar(36) COLLATE utf8mb4_unicode_ci NOT NULL,"},{"line_number":186,"context_line":"  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT \u0027\u0027,"}],"source_content_type":"text/x-sql","patch_set":2,"id":"fa31d9ce_732acb91","line":183,"in_reply_to":"fa31d9ce_87210bfe","updated":"2017-02-14 15:56:12.000000000","message":"Will do! Thank you!","commit_id":"3a05d4f3df668242a57fa7fac8d99f739bc36486"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"379f0e98a14f31a03e424f2273323a457ffb2d4b","unresolved":false,"context_lines":[{"line_number":183,"context_line":"CREATE TABLE `alarm_grouping_manager` ("},{"line_number":184,"context_line":"  `id` varchar(36) COLLATE utf8mb4_unicode_ci NOT NULL,"},{"line_number":185,"context_line":"  `tenant_id` varchar(36) COLLATE utf8mb4_unicode_ci NOT NULL,"},{"line_number":186,"context_line":"  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT \u0027\u0027,"},{"line_number":187,"context_line":"  `matchers` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,"},{"line_number":188,"context_line":"  `group_wait` varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT \u002730s\u0027,"},{"line_number":189,"context_line":"  `repeat_interval` varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT \u00272h\u0027,"}],"source_content_type":"text/x-sql","patch_set":9,"id":"da36d5c6_d229ff8a","line":186,"range":{"start_line":186,"start_character":58,"end_line":186,"end_character":68},"updated":"2017-02-21 22:12:13.000000000","message":"Remove","commit_id":"71ef0e50396dcc0f6265628659b8ba38edc206dd"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"8a35a858b5b42de52d74976fa89807687b334ee0","unresolved":false,"context_lines":[{"line_number":185,"context_line":"  `tenant_id` varchar(36) COLLATE utf8mb4_unicode_ci NOT NULL,"},{"line_number":186,"context_line":"  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT \u0027\u0027,"},{"line_number":187,"context_line":"  `matchers` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,"},{"line_number":188,"context_line":"  `group_wait` varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT \u002730s\u0027,"},{"line_number":189,"context_line":"  `repeat_interval` varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT \u00272h\u0027,"},{"line_number":190,"context_line":"  `created_at` datetime NOT NULL,"},{"line_number":191,"context_line":"  `updated_at` datetime NOT NULL,"}],"source_content_type":"text/x-sql","patch_set":9,"id":"da36d5c6_c9c82d25","line":188,"range":{"start_line":188,"start_character":23,"end_line":188,"end_character":24},"updated":"2017-02-23 17:43:08.000000000","message":"10","commit_id":"71ef0e50396dcc0f6265628659b8ba38edc206dd"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"379f0e98a14f31a03e424f2273323a457ffb2d4b","unresolved":false,"context_lines":[{"line_number":204,"context_line":") ENGINE\u003dInnoDB DEFAULT CHARSET\u003dutf8mb4 COLLATE\u003dutf8mb4_unicode_ci;"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"CREATE TABLE `alarm_grouping_manager_exclusion` ("},{"line_number":207,"context_line":"  `alarm_grouping_manager_id` varchar(36) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT \u0027\u0027,"},{"line_number":208,"context_line":"  `exclusion_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT \u0027\u0027,"},{"line_number":209,"context_line":"  `value` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,"},{"line_number":210,"context_line":"  CONSTRAINT `fk_exclusion_alarm_grouping_manager_id` FOREIGN KEY (`alarm_grouping_manager_id`) REFERENCES `alarm_grouping_manager` (`id`) ON DELETE CASCADE"}],"source_content_type":"text/x-sql","patch_set":9,"id":"da36d5c6_923067ea","line":207,"range":{"start_line":207,"start_character":78,"end_line":207,"end_character":88},"updated":"2017-02-21 22:12:13.000000000","message":"Remove","commit_id":"71ef0e50396dcc0f6265628659b8ba38edc206dd"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"379f0e98a14f31a03e424f2273323a457ffb2d4b","unresolved":false,"context_lines":[{"line_number":205,"context_line":""},{"line_number":206,"context_line":"CREATE TABLE `alarm_grouping_manager_exclusion` ("},{"line_number":207,"context_line":"  `alarm_grouping_manager_id` varchar(36) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT \u0027\u0027,"},{"line_number":208,"context_line":"  `exclusion_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT \u0027\u0027,"},{"line_number":209,"context_line":"  `value` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,"},{"line_number":210,"context_line":"  CONSTRAINT `fk_exclusion_alarm_grouping_manager_id` FOREIGN KEY (`alarm_grouping_manager_id`) REFERENCES `alarm_grouping_manager` (`id`) ON DELETE CASCADE"},{"line_number":211,"context_line":") ENGINE\u003dInnoDB DEFAULT CHARSET\u003dutf8mb4 COLLATE\u003dutf8mb4_unicode_ci;"}],"source_content_type":"text/x-sql","patch_set":9,"id":"da36d5c6_f257e3ff","line":208,"range":{"start_line":208,"start_character":67,"end_line":208,"end_character":78},"updated":"2017-02-21 22:12:13.000000000","message":"Remove","commit_id":"71ef0e50396dcc0f6265628659b8ba38edc206dd"}],"devstack/files/schema/mon_postgresql.sql":[{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"8a35a858b5b42de52d74976fa89807687b334ee0","unresolved":false,"context_lines":[{"line_number":136,"context_line":"    deleted_at timestamp without time zone,"},{"line_number":137,"context_line":"    name character varying(255) NOT NULL,"},{"line_number":138,"context_line":"    matchers character varying(255) NOT NULL,"},{"line_number":139,"context_line":"    group_wait character varying(5) NOT NULL,"},{"line_number":140,"context_line":"    repeat_interval character varying(5) NOT NULL,"},{"line_number":141,"context_line":"    tenant_id character varying(36) NOT NULL"},{"line_number":142,"context_line":");"}],"source_content_type":"text/x-sql","patch_set":9,"id":"da36d5c6_11f1a795","line":139,"range":{"start_line":139,"start_character":32,"end_line":139,"end_character":35},"updated":"2017-02-23 17:43:08.000000000","message":"change to 10","commit_id":"71ef0e50396dcc0f6265628659b8ba38edc206dd"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"8a35a858b5b42de52d74976fa89807687b334ee0","unresolved":false,"context_lines":[{"line_number":137,"context_line":"    name character varying(255) NOT NULL,"},{"line_number":138,"context_line":"    matchers character varying(255) NOT NULL,"},{"line_number":139,"context_line":"    group_wait character varying(5) NOT NULL,"},{"line_number":140,"context_line":"    repeat_interval character varying(5) NOT NULL,"},{"line_number":141,"context_line":"    tenant_id character varying(36) NOT NULL"},{"line_number":142,"context_line":");"},{"line_number":143,"context_line":""}],"source_content_type":"text/x-sql","patch_set":9,"id":"da36d5c6_240c903a","line":140,"range":{"start_line":140,"start_character":38,"end_line":140,"end_character":39},"updated":"2017-02-23 17:43:08.000000000","message":"10","commit_id":"71ef0e50396dcc0f6265628659b8ba38edc206dd"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"379f0e98a14f31a03e424f2273323a457ffb2d4b","unresolved":false,"context_lines":[{"line_number":215,"context_line":"ALTER TABLE ONLY alarm_grouping_manager_exclusion"},{"line_number":216,"context_line":"    ADD CONSTRAINT fk_exclusion_alarm_grouping_manager_id FOREIGN KEY (alarm_grouping_manager_id)"},{"line_number":217,"context_line":"    REFERENCES alarm_grouping_manager(id);"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"ALTER TABLE ONLY alarm_action"},{"line_number":220,"context_line":"    ADD CONSTRAINT fk_alarm_action_alarm_definition FOREIGN KEY (alarm_definition_id) REFERENCES alarm_definition(id);"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-sql","patch_set":9,"id":"da36d5c6_92b5c732","line":218,"updated":"2017-02-21 22:12:13.000000000","message":"Don\u0027t you need another one for action_id in alarm_grouping_manager_action?","commit_id":"71ef0e50396dcc0f6265628659b8ba38edc206dd"}],"monasca_api/common/repositories/alarm_grouping_managers_repository.py":[{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"2fc61b4aa78d8750cd8bd706bad3ecc4ffb696c9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"fa31d9ce_7c7cbe20","line":34,"updated":"2017-02-17 23:12:23.000000000","message":"add delete_alarm_grouping_managers and update_or_patch_alarm_grouping_managers","commit_id":"4a9ea2736cbc0bcfdd43bc3241866051ffa16711"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"379f0e98a14f31a03e424f2273323a457ffb2d4b","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        pass"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    @abc.abstractmethod"},{"line_number":32,"context_line":"    def get_alarm_grouping_managers(self, tenant_id, name, offset, limit):"},{"line_number":33,"context_line":"        pass"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    @abc.abstractmethod"}],"source_content_type":"text/x-python","patch_set":9,"id":"da36d5c6_b2372baf","line":32,"range":{"start_line":32,"start_character":8,"end_line":32,"end_character":35},"updated":"2017-02-21 22:12:13.000000000","message":"I would think you would want alarm_grouping_manager_id also as an option for: /v2.0/alarm-grouping-managers/{alarm_grouping_manager_id}\n\nor there should be another method declared: get_alarm_grouping_manager","commit_id":"71ef0e50396dcc0f6265628659b8ba38edc206dd"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"8a35a858b5b42de52d74976fa89807687b334ee0","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        pass"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    @abc.abstractmethod"},{"line_number":32,"context_line":"    def get_alarm_grouping_managers(self, tenant_id, name, offset, limit):"},{"line_number":33,"context_line":"        pass"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    @abc.abstractmethod"}],"source_content_type":"text/x-python","patch_set":9,"id":"da36d5c6_97064bcc","line":32,"range":{"start_line":32,"start_character":8,"end_line":32,"end_character":35},"in_reply_to":"da36d5c6_b2372baf","updated":"2017-02-23 17:43:08.000000000","message":"Yes definitely! That will be the get_alarm_grouping_manager with id as parameter. I already implemented that in sqla/alarm_grouping_managers_repository.py but forgot to put an abstract method here. Will add it on next patch set! Thanks!","commit_id":"71ef0e50396dcc0f6265628659b8ba38edc206dd"}],"monasca_api/common/repositories/sqla/alarm_group_definitions_repository.py":[{"author":{"_account_id":22157,"name":"Andrea Adams","email":"aadams@hpe.com","username":"andrea.adams"},"change_message_id":"6e4ac407bf0970e02f2174a0daeeb9cf3b33a705","unresolved":false,"context_lines":[{"line_number":277,"context_line":"                    self._delete_alarm_group_definition_actions("},{"line_number":278,"context_line":"                        conn, alarm_group_definition_id, \u0027UNDETERMINED\u0027)"},{"line_number":279,"context_line":"            else:"},{"line_number":280,"context_line":"                conn.execute("},{"line_number":281,"context_line":"                    self.delete_agd_action_query,"},{"line_number":282,"context_line":"                    b_alarm_group_definition_id\u003dalarm_group_definition_id)"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"            # Insert new actions"},{"line_number":285,"context_line":"            self._insert_into_actions(conn, alarm_group_definition_id, actions)"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a1ff146_29b76287","line":282,"range":{"start_line":280,"start_character":16,"end_line":282,"end_character":74},"updated":"2017-03-15 23:47:38.000000000","message":"When updating a rule with on_put, I get:\n\n    \"title\": \"Service unavailable\",\n    \"description\": \"(sqlalchemy.exc.InvalidRequestError) A value is required for bind parameter \u0027b_alarm_state\u0027 [SQL: u\u0027DELETE FROM alarm_group_definition_action WHERE alarm_group_definition_action.alarm_group_definition_id \u003d %(b_alarm_group_definition_id)s AND alarm_group_definition_action.alarm_state \u003d %(b_alarm_state)s\u0027] [parameters: [{\u0027b_alarm_group_definition_id\u0027: \u002794b9221c-fd6b-4ec0-8c3b-9a5de2f2b084\u0027}]]\"","commit_id":"cb5a723613938c454235452d16709dfe79f9b92e"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"127321b4e632a65c865bb7c38655dae6ff68eb37","unresolved":false,"context_lines":[{"line_number":25,"context_line":"from sqlalchemy import MetaData, insert, update, delete"},{"line_number":26,"context_line":"from sqlalchemy import select, text, bindparam, null"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class AlarmGroupDefinitionsRepository(sql_repository.SQLRepository,"}],"source_content_type":"text/x-python","patch_set":16,"id":"bff0334d_32ab431e","line":28,"range":{"start_line":28,"start_character":0,"end_line":28,"end_character":3},"updated":"2017-04-06 00:45:07.000000000","message":"This is defined but never used. You should have some logging in this file","commit_id":"0095b5ec2c30c0a415621409c4621657eb349cb0"},{"author":{"_account_id":22157,"name":"Andrea Adams","email":"aadams@hpe.com","username":"andrea.adams"},"change_message_id":"bf51053e4cbd4a374203b1fe16be84655e52aec3","unresolved":false,"context_lines":[{"line_number":25,"context_line":"from sqlalchemy import MetaData, insert, update, delete"},{"line_number":26,"context_line":"from sqlalchemy import select, text, bindparam, null"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class AlarmGroupDefinitionsRepository(sql_repository.SQLRepository,"}],"source_content_type":"text/x-python","patch_set":16,"id":"bff0334d_fa34704c","line":28,"range":{"start_line":28,"start_character":0,"end_line":28,"end_character":3},"in_reply_to":"bff0334d_32ab431e","updated":"2017-04-06 17:53:01.000000000","message":"The alarm definition file doesn\u0027t even define a logger. In fact, the only file like this one that does define a logger is catching some generic exception, which this file never does. The alarm definition file just lets the one in v2/reference handle logging. I am removing the logger, but let me know if you still think it is appropriate.","commit_id":"0095b5ec2c30c0a415621409c4621657eb349cb0"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"127321b4e632a65c865bb7c38655dae6ff68eb37","unresolved":false,"context_lines":[{"line_number":273,"context_line":"                b_id\u003dalarm_group_definition_id)"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"            # Delete old actions"},{"line_number":276,"context_line":"            if alarm_actions is not None:"},{"line_number":277,"context_line":"                self._delete_alarm_group_definition_actions("},{"line_number":278,"context_line":"                    conn, alarm_group_definition_id, \u0027ALARM\u0027)"},{"line_number":279,"context_line":"            if ok_actions is not None:"},{"line_number":280,"context_line":"                self._delete_alarm_group_definition_actions("},{"line_number":281,"context_line":"                    conn, alarm_group_definition_id, \u0027OK\u0027)"},{"line_number":282,"context_line":"            if undetermined_actions is not None:"},{"line_number":283,"context_line":"                self._delete_alarm_group_definition_actions("},{"line_number":284,"context_line":"                    conn, alarm_group_definition_id, \u0027UNDETERMINED\u0027)"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"            # Insert new actions"},{"line_number":287,"context_line":"            if alarm_actions is not None:"}],"source_content_type":"text/x-python","patch_set":16,"id":"bff0334d_723e6b2a","line":284,"range":{"start_line":276,"start_character":0,"end_line":284,"end_character":68},"updated":"2017-04-06 00:45:07.000000000","message":"This should only be done on patch. See update_or_patch_alarm_definition in monasca_api/common/repositories/sqla/alarm_group_definitions_repository.py","commit_id":"0095b5ec2c30c0a415621409c4621657eb349cb0"},{"author":{"_account_id":22157,"name":"Andrea Adams","email":"aadams@hpe.com","username":"andrea.adams"},"change_message_id":"bf51053e4cbd4a374203b1fe16be84655e52aec3","unresolved":false,"context_lines":[{"line_number":273,"context_line":"                b_id\u003dalarm_group_definition_id)"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"            # Delete old actions"},{"line_number":276,"context_line":"            if alarm_actions is not None:"},{"line_number":277,"context_line":"                self._delete_alarm_group_definition_actions("},{"line_number":278,"context_line":"                    conn, alarm_group_definition_id, \u0027ALARM\u0027)"},{"line_number":279,"context_line":"            if ok_actions is not None:"},{"line_number":280,"context_line":"                self._delete_alarm_group_definition_actions("},{"line_number":281,"context_line":"                    conn, alarm_group_definition_id, \u0027OK\u0027)"},{"line_number":282,"context_line":"            if undetermined_actions is not None:"},{"line_number":283,"context_line":"                self._delete_alarm_group_definition_actions("},{"line_number":284,"context_line":"                    conn, alarm_group_definition_id, \u0027UNDETERMINED\u0027)"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"            # Insert new actions"},{"line_number":287,"context_line":"            if alarm_actions is not None:"}],"source_content_type":"text/x-python","patch_set":16,"id":"bff0334d_5abc7c04","line":284,"range":{"start_line":276,"start_character":0,"end_line":284,"end_character":68},"in_reply_to":"bff0334d_723e6b2a","updated":"2017-04-06 17:53:01.000000000","message":"Done","commit_id":"0095b5ec2c30c0a415621409c4621657eb349cb0"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"127321b4e632a65c865bb7c38655dae6ff68eb37","unresolved":false,"context_lines":[{"line_number":284,"context_line":"                    conn, alarm_group_definition_id, \u0027UNDETERMINED\u0027)"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"            # Insert new actions"},{"line_number":287,"context_line":"            if alarm_actions is not None:"},{"line_number":288,"context_line":"                self._insert_into_actions(conn,"},{"line_number":289,"context_line":"                                          alarm_group_definition_id,"},{"line_number":290,"context_line":"                                          alarm_actions,"}],"source_content_type":"text/x-python","patch_set":16,"id":"bff0334d_d21897d4","line":287,"range":{"start_line":287,"start_character":28,"end_line":287,"end_character":41},"updated":"2017-04-06 00:45:07.000000000","message":"Remove is not None from these three if statements","commit_id":"0095b5ec2c30c0a415621409c4621657eb349cb0"},{"author":{"_account_id":22157,"name":"Andrea Adams","email":"aadams@hpe.com","username":"andrea.adams"},"change_message_id":"bf51053e4cbd4a374203b1fe16be84655e52aec3","unresolved":false,"context_lines":[{"line_number":284,"context_line":"                    conn, alarm_group_definition_id, \u0027UNDETERMINED\u0027)"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"            # Insert new actions"},{"line_number":287,"context_line":"            if alarm_actions is not None:"},{"line_number":288,"context_line":"                self._insert_into_actions(conn,"},{"line_number":289,"context_line":"                                          alarm_group_definition_id,"},{"line_number":290,"context_line":"                                          alarm_actions,"}],"source_content_type":"text/x-python","patch_set":16,"id":"bff0334d_9f7af621","line":287,"range":{"start_line":287,"start_character":28,"end_line":287,"end_character":41},"in_reply_to":"bff0334d_d21897d4","updated":"2017-04-06 17:53:01.000000000","message":"Done","commit_id":"0095b5ec2c30c0a415621409c4621657eb349cb0"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"127321b4e632a65c865bb7c38655dae6ff68eb37","unresolved":false,"context_lines":[{"line_number":325,"context_line":"                                       b_id\u003dalarm_group_definition_id,"},{"line_number":326,"context_line":"                                       b_tenant_id\u003dtenant_id).fetchone()"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"            if updated_row is None:"},{"line_number":329,"context_line":"                raise Exception(\"Failed to find current alarm \""},{"line_number":330,"context_line":"                                \"group definition\")"},{"line_number":331,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"bff0334d_92eb2faf","line":328,"range":{"start_line":328,"start_character":12,"end_line":328,"end_character":35},"updated":"2017-04-06 00:45:07.000000000","message":"if not updated_row:","commit_id":"0095b5ec2c30c0a415621409c4621657eb349cb0"},{"author":{"_account_id":22157,"name":"Andrea Adams","email":"aadams@hpe.com","username":"andrea.adams"},"change_message_id":"bf51053e4cbd4a374203b1fe16be84655e52aec3","unresolved":false,"context_lines":[{"line_number":325,"context_line":"                                       b_id\u003dalarm_group_definition_id,"},{"line_number":326,"context_line":"                                       b_tenant_id\u003dtenant_id).fetchone()"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"            if updated_row is None:"},{"line_number":329,"context_line":"                raise Exception(\"Failed to find current alarm \""},{"line_number":330,"context_line":"                                \"group definition\")"},{"line_number":331,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"bff0334d_7facd28b","line":328,"range":{"start_line":328,"start_character":12,"end_line":328,"end_character":35},"in_reply_to":"bff0334d_92eb2faf","updated":"2017-04-06 17:53:01.000000000","message":"Done","commit_id":"0095b5ec2c30c0a415621409c4621657eb349cb0"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"127321b4e632a65c865bb7c38655dae6ff68eb37","unresolved":false,"context_lines":[{"line_number":354,"context_line":"            # Delete old alarm id rule id relationships"},{"line_number":355,"context_line":"            conn.execute("},{"line_number":356,"context_line":"                self.delete_ar_query,"},{"line_number":357,"context_line":"                b_alarm_group_definition_id\u003dalarm_group_definition_id)           "},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"            return True"},{"line_number":360,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"bff0334d_b2aab382","line":357,"range":{"start_line":357,"start_character":70,"end_line":357,"end_character":81},"updated":"2017-04-06 00:45:07.000000000","message":"Trailing space","commit_id":"0095b5ec2c30c0a415621409c4621657eb349cb0"},{"author":{"_account_id":22157,"name":"Andrea Adams","email":"aadams@hpe.com","username":"andrea.adams"},"change_message_id":"bf51053e4cbd4a374203b1fe16be84655e52aec3","unresolved":false,"context_lines":[{"line_number":354,"context_line":"            # Delete old alarm id rule id relationships"},{"line_number":355,"context_line":"            conn.execute("},{"line_number":356,"context_line":"                self.delete_ar_query,"},{"line_number":357,"context_line":"                b_alarm_group_definition_id\u003dalarm_group_definition_id)           "},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"            return True"},{"line_number":360,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"bff0334d_9f9f964f","line":357,"range":{"start_line":357,"start_character":70,"end_line":357,"end_character":81},"in_reply_to":"bff0334d_b2aab382","updated":"2017-04-06 17:53:01.000000000","message":"Done","commit_id":"0095b5ec2c30c0a415621409c4621657eb349cb0"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"127321b4e632a65c865bb7c38655dae6ff68eb37","unresolved":false,"context_lines":[{"line_number":370,"context_line":"                           b_tenant_id\u003dtenant_id,"},{"line_number":371,"context_line":"                           b_id\u003d_id).fetchone()"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"        if row is not None:"},{"line_number":374,"context_line":"            return dict(row)"},{"line_number":375,"context_line":"        else:"},{"line_number":376,"context_line":"            raise exceptions.DoesNotExistException"}],"source_content_type":"text/x-python","patch_set":16,"id":"bff0334d_b298736a","line":373,"range":{"start_line":373,"start_character":8,"end_line":373,"end_character":27},"updated":"2017-04-06 00:45:07.000000000","message":"Should this just be:\n\nif row:\n\nThat would handle where row is empty","commit_id":"0095b5ec2c30c0a415621409c4621657eb349cb0"},{"author":{"_account_id":22157,"name":"Andrea Adams","email":"aadams@hpe.com","username":"andrea.adams"},"change_message_id":"bf51053e4cbd4a374203b1fe16be84655e52aec3","unresolved":false,"context_lines":[{"line_number":370,"context_line":"                           b_tenant_id\u003dtenant_id,"},{"line_number":371,"context_line":"                           b_id\u003d_id).fetchone()"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"        if row is not None:"},{"line_number":374,"context_line":"            return dict(row)"},{"line_number":375,"context_line":"        else:"},{"line_number":376,"context_line":"            raise exceptions.DoesNotExistException"}],"source_content_type":"text/x-python","patch_set":16,"id":"bff0334d_bfa25a99","line":373,"range":{"start_line":373,"start_character":8,"end_line":373,"end_character":27},"in_reply_to":"bff0334d_b298736a","updated":"2017-04-06 17:53:01.000000000","message":"Done","commit_id":"0095b5ec2c30c0a415621409c4621657eb349cb0"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"127321b4e632a65c865bb7c38655dae6ff68eb37","unresolved":false,"context_lines":[{"line_number":383,"context_line":"        for action in actions:"},{"line_number":384,"context_line":"            row \u003d conn.execute(self.select_nm_query,"},{"line_number":385,"context_line":"                               b_id\u003daction.encode(\u0027utf8\u0027)).fetchone()"},{"line_number":386,"context_line":"            if row is None:"},{"line_number":387,"context_line":"                raise exceptions.InvalidUpdateException("},{"line_number":388,"context_line":"                    \"Non-existent notification id {} submitted for {} \""},{"line_number":389,"context_line":"                    \"notification action\".format("}],"source_content_type":"text/x-python","patch_set":16,"id":"bff0334d_32ac638b","line":386,"range":{"start_line":386,"start_character":12,"end_line":386,"end_character":26},"updated":"2017-04-06 00:45:07.000000000","message":"if not row: ?","commit_id":"0095b5ec2c30c0a415621409c4621657eb349cb0"},{"author":{"_account_id":22157,"name":"Andrea Adams","email":"aadams@hpe.com","username":"andrea.adams"},"change_message_id":"bf51053e4cbd4a374203b1fe16be84655e52aec3","unresolved":false,"context_lines":[{"line_number":383,"context_line":"        for action in actions:"},{"line_number":384,"context_line":"            row \u003d conn.execute(self.select_nm_query,"},{"line_number":385,"context_line":"                               b_id\u003daction.encode(\u0027utf8\u0027)).fetchone()"},{"line_number":386,"context_line":"            if row is None:"},{"line_number":387,"context_line":"                raise exceptions.InvalidUpdateException("},{"line_number":388,"context_line":"                    \"Non-existent notification id {} submitted for {} \""},{"line_number":389,"context_line":"                    \"notification action\".format("}],"source_content_type":"text/x-python","patch_set":16,"id":"bff0334d_bfcb7a51","line":386,"range":{"start_line":386,"start_character":12,"end_line":386,"end_character":26},"in_reply_to":"bff0334d_32ac638b","updated":"2017-04-06 17:53:01.000000000","message":"Done","commit_id":"0095b5ec2c30c0a415621409c4621657eb349cb0"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"127321b4e632a65c865bb7c38655dae6ff68eb37","unresolved":false,"context_lines":[{"line_number":396,"context_line":""},{"line_number":397,"context_line":"    def _insert_into_exclusions(self, conn, alarm_group_definition_id,"},{"line_number":398,"context_line":"                                exclusions):"},{"line_number":399,"context_line":"        if exclusions is None or len(exclusions) \u003d\u003d 0:"},{"line_number":400,"context_line":"            return"},{"line_number":401,"context_line":""},{"line_number":402,"context_line":"        exclusions_list \u003d [[key, value] for key, value in exclusions.items()]"}],"source_content_type":"text/x-python","patch_set":16,"id":"bff0334d_12c27f34","line":399,"range":{"start_line":399,"start_character":8,"end_line":399,"end_character":53},"updated":"2017-04-06 00:45:07.000000000","message":"This should be:\n\nif not exclusions:","commit_id":"0095b5ec2c30c0a415621409c4621657eb349cb0"},{"author":{"_account_id":22157,"name":"Andrea Adams","email":"aadams@hpe.com","username":"andrea.adams"},"change_message_id":"bf51053e4cbd4a374203b1fe16be84655e52aec3","unresolved":false,"context_lines":[{"line_number":396,"context_line":""},{"line_number":397,"context_line":"    def _insert_into_exclusions(self, conn, alarm_group_definition_id,"},{"line_number":398,"context_line":"                                exclusions):"},{"line_number":399,"context_line":"        if exclusions is None or len(exclusions) \u003d\u003d 0:"},{"line_number":400,"context_line":"            return"},{"line_number":401,"context_line":""},{"line_number":402,"context_line":"        exclusions_list \u003d [[key, value] for key, value in exclusions.items()]"}],"source_content_type":"text/x-python","patch_set":16,"id":"bff0334d_9fcd565f","line":399,"range":{"start_line":399,"start_character":8,"end_line":399,"end_character":53},"in_reply_to":"bff0334d_12c27f34","updated":"2017-04-06 17:53:01.000000000","message":"Done","commit_id":"0095b5ec2c30c0a415621409c4621657eb349cb0"}],"monasca_api/common/repositories/sqla/alarm_grouping_managers_repository.py":[{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"2fc61b4aa78d8750cd8bd706bad3ecc4ffb696c9","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from oslo_utils import uuidutils"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from monasca_api.common.repositories import alarm_grouping_managers_repository\\"},{"line_number":21,"context_line":"    as adr"},{"line_number":22,"context_line":"from monasca_api.common.repositories import exceptions"},{"line_number":23,"context_line":"from monasca_api.common.repositories.sqla import models"},{"line_number":24,"context_line":"from monasca_api.common.repositories.sqla import sql_repository"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa31d9ce_1cb902cc","line":21,"range":{"start_line":21,"start_character":7,"end_line":21,"end_character":10},"updated":"2017-02-17 23:12:23.000000000","message":"agmr","commit_id":"4a9ea2736cbc0bcfdd43bc3241866051ffa16711"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"2fc61b4aa78d8750cd8bd706bad3ecc4ffb696c9","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class AlarmGroupingManagersRepository(sql_repository.SQLRepository,"},{"line_number":32,"context_line":"                                      adr.AlarmGroupingManagersRepository):"},{"line_number":33,"context_line":"    def __init__(self):"},{"line_number":34,"context_line":"        super(AlarmGroupingManagersRepository, self).__init__()"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"fa31d9ce_bcc47640","line":32,"range":{"start_line":32,"start_character":38,"end_line":32,"end_character":41},"updated":"2017-02-17 23:12:23.000000000","message":"agmr","commit_id":"4a9ea2736cbc0bcfdd43bc3241866051ffa16711"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"2fc61b4aa78d8750cd8bd706bad3ecc4ffb696c9","unresolved":false,"context_lines":[{"line_number":84,"context_line":"                                updated_at\u003dbindparam(\u0027b_updated_at\u0027)))"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        b_agm_id \u003d bindparam(\u0027b_alarm_grouping_manager_id\u0027)"},{"line_number":87,"context_line":"        self.create_alarm_grouping_manager_insert_agme_query \u003d \\"},{"line_number":88,"context_line":"            (insert(agm_e).values(alarm_grouping_manager_id\u003db_agm_id,"},{"line_number":89,"context_line":"                                  exclusion_name\u003dbindparam(\u0027b_exclusion_name\u0027),"},{"line_number":90,"context_line":"                                  value\u003dbindparam(\u0027b_value\u0027)))"}],"source_content_type":"text/x-python","patch_set":8,"id":"da36d5c6_6c7e13b0","line":87,"range":{"start_line":87,"start_character":13,"end_line":87,"end_character":42},"updated":"2017-02-17 23:12:23.000000000","message":"delete","commit_id":"4a9ea2736cbc0bcfdd43bc3241866051ffa16711"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"2fc61b4aa78d8750cd8bd706bad3ecc4ffb696c9","unresolved":false,"context_lines":[{"line_number":322,"context_line":""},{"line_number":323,"context_line":"        exclusions_list \u003d [[key, value] for key, value in exclusions.items()]"},{"line_number":324,"context_line":"        for exclusion in exclusions_list:"},{"line_number":325,"context_line":"            query \u003d self.create_alarm_grouping_manager_insert_agme_query"},{"line_number":326,"context_line":"            exclusion_name \u003d exclusion[0].encode(\u0027utf8\u0027)"},{"line_number":327,"context_line":"            exclusion_value \u003d exclusion[1].encode(\u0027utf8\u0027)"},{"line_number":328,"context_line":"            conn.execute(query,"}],"source_content_type":"text/x-python","patch_set":8,"id":"da36d5c6_6f7e05b0","line":325,"range":{"start_line":325,"start_character":25,"end_line":325,"end_character":55},"updated":"2017-02-17 23:12:23.000000000","message":"delete","commit_id":"4a9ea2736cbc0bcfdd43bc3241866051ffa16711"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"379f0e98a14f31a03e424f2273323a457ffb2d4b","unresolved":false,"context_lines":[{"line_number":107,"context_line":"            .where(agm_a.c.alarm_grouping_manager_id \u003d\u003d"},{"line_number":108,"context_line":"                   bindparam(\u0027b_alarm_grouping_manager_id\u0027)))"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        self.delete_agme_query \u003d ("},{"line_number":111,"context_line":"            delete(agm_e)"},{"line_number":112,"context_line":"            .where(agm_e.c.alarm_grouping_manager_id \u003d\u003d"},{"line_number":113,"context_line":"                   bindparam(\u0027b_alarm_grouping_manager_id\u0027)))"}],"source_content_type":"text/x-python","patch_set":9,"id":"da36d5c6_2d3bdad2","line":110,"range":{"start_line":110,"start_character":13,"end_line":110,"end_character":30},"updated":"2017-02-21 22:12:13.000000000","message":"This name is really hard to distiguish from delete_agma_query","commit_id":"71ef0e50396dcc0f6265628659b8ba38edc206dd"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"8a35a858b5b42de52d74976fa89807687b334ee0","unresolved":false,"context_lines":[{"line_number":107,"context_line":"            .where(agm_a.c.alarm_grouping_manager_id \u003d\u003d"},{"line_number":108,"context_line":"                   bindparam(\u0027b_alarm_grouping_manager_id\u0027)))"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        self.delete_agme_query \u003d ("},{"line_number":111,"context_line":"            delete(agm_e)"},{"line_number":112,"context_line":"            .where(agm_e.c.alarm_grouping_manager_id \u003d\u003d"},{"line_number":113,"context_line":"                   bindparam(\u0027b_alarm_grouping_manager_id\u0027)))"}],"source_content_type":"text/x-python","patch_set":9,"id":"da36d5c6_8960f5d0","line":110,"range":{"start_line":110,"start_character":13,"end_line":110,"end_character":30},"in_reply_to":"da36d5c6_2d3bdad2","updated":"2017-02-23 17:43:08.000000000","message":"Yeah I agree. How about self.delete_agm_action_query and self.delete_agm_exclusion_query?","commit_id":"71ef0e50396dcc0f6265628659b8ba38edc206dd"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"16fc87444aab4f8f0d99ef5cfc6ac76e03bc243b","unresolved":false,"context_lines":[{"line_number":107,"context_line":"            .where(agm_a.c.alarm_grouping_manager_id \u003d\u003d"},{"line_number":108,"context_line":"                   bindparam(\u0027b_alarm_grouping_manager_id\u0027)))"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        self.delete_agme_query \u003d ("},{"line_number":111,"context_line":"            delete(agm_e)"},{"line_number":112,"context_line":"            .where(agm_e.c.alarm_grouping_manager_id \u003d\u003d"},{"line_number":113,"context_line":"                   bindparam(\u0027b_alarm_grouping_manager_id\u0027)))"}],"source_content_type":"text/x-python","patch_set":9,"id":"da36d5c6_e1ea4eda","line":110,"range":{"start_line":110,"start_character":13,"end_line":110,"end_character":30},"in_reply_to":"da36d5c6_8960f5d0","updated":"2017-02-24 05:27:12.000000000","message":"That would be easy to tell apart.","commit_id":"71ef0e50396dcc0f6265628659b8ba38edc206dd"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"379f0e98a14f31a03e424f2273323a457ffb2d4b","unresolved":false,"context_lines":[{"line_number":175,"context_line":"            group_wait, repeat_interval, exclusions, actions, patch\u003dFalse):"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        with self._db_engine.begin() as conn:"},{"line_number":178,"context_line":"            original_row \u003d self._get_alarm_grouping_manager("},{"line_number":179,"context_line":"                conn, tenant_id, alarm_grouping_manager_id)"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"            # Get a common update time"}],"source_content_type":"text/x-python","patch_set":9,"id":"da36d5c6_b2180b86","line":178,"range":{"start_line":178,"start_character":12,"end_line":178,"end_character":24},"updated":"2017-02-21 22:12:13.000000000","message":"Is an exception thrown if original_row is empty?","commit_id":"71ef0e50396dcc0f6265628659b8ba38edc206dd"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"0324f9cdda7fb1a32ed0e7792fdff0463b754a00","unresolved":false,"context_lines":[{"line_number":175,"context_line":"            group_wait, repeat_interval, exclusions, actions, patch\u003dFalse):"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        with self._db_engine.begin() as conn:"},{"line_number":178,"context_line":"            original_row \u003d self._get_alarm_grouping_manager("},{"line_number":179,"context_line":"                conn, tenant_id, alarm_grouping_manager_id)"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"            # Get a common update time"}],"source_content_type":"text/x-python","patch_set":9,"id":"da36d5c6_63ae7499","line":178,"range":{"start_line":178,"start_character":12,"end_line":178,"end_character":24},"in_reply_to":"da36d5c6_570133ae","updated":"2017-02-23 19:53:36.000000000","message":"I just realized it did throw an exception but it\u0027s in self._get_alarm_grouping_manager(). If original row is empty, it will throw exceptions.DoesNotExistException.","commit_id":"71ef0e50396dcc0f6265628659b8ba38edc206dd"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"16fc87444aab4f8f0d99ef5cfc6ac76e03bc243b","unresolved":false,"context_lines":[{"line_number":175,"context_line":"            group_wait, repeat_interval, exclusions, actions, patch\u003dFalse):"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        with self._db_engine.begin() as conn:"},{"line_number":178,"context_line":"            original_row \u003d self._get_alarm_grouping_manager("},{"line_number":179,"context_line":"                conn, tenant_id, alarm_grouping_manager_id)"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"            # Get a common update time"}],"source_content_type":"text/x-python","patch_set":9,"id":"da36d5c6_21f1c6cd","line":178,"range":{"start_line":178,"start_character":12,"end_line":178,"end_character":24},"in_reply_to":"da36d5c6_63ae7499","updated":"2017-02-24 05:27:12.000000000","message":"Ok","commit_id":"71ef0e50396dcc0f6265628659b8ba38edc206dd"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"8a35a858b5b42de52d74976fa89807687b334ee0","unresolved":false,"context_lines":[{"line_number":175,"context_line":"            group_wait, repeat_interval, exclusions, actions, patch\u003dFalse):"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        with self._db_engine.begin() as conn:"},{"line_number":178,"context_line":"            original_row \u003d self._get_alarm_grouping_manager("},{"line_number":179,"context_line":"                conn, tenant_id, alarm_grouping_manager_id)"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"            # Get a common update time"}],"source_content_type":"text/x-python","patch_set":9,"id":"da36d5c6_570133ae","line":178,"range":{"start_line":178,"start_character":12,"end_line":178,"end_character":24},"in_reply_to":"da36d5c6_b2180b86","updated":"2017-02-23 17:43:08.000000000","message":"It should throw an exception here! Will add it in next patch set! Thank you!","commit_id":"71ef0e50396dcc0f6265628659b8ba38edc206dd"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"379f0e98a14f31a03e424f2273323a457ffb2d4b","unresolved":false,"context_lines":[{"line_number":182,"context_line":"            now \u003d datetime.datetime.utcnow()"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"            if name is None:"},{"line_number":185,"context_line":"                new_name \u003d original_row[\u0027name\u0027]"},{"line_number":186,"context_line":"            else:"},{"line_number":187,"context_line":"                new_name \u003d name.encode(\u0027utf8\u0027)"},{"line_number":188,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"da36d5c6_b2ee4b89","line":185,"range":{"start_line":185,"start_character":16,"end_line":185,"end_character":47},"updated":"2017-02-21 22:12:13.000000000","message":"The current Monasca API requires all fields on an Update. This code allows not sending the name on an update and it just uses the old name","commit_id":"71ef0e50396dcc0f6265628659b8ba38edc206dd"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"16fc87444aab4f8f0d99ef5cfc6ac76e03bc243b","unresolved":false,"context_lines":[{"line_number":182,"context_line":"            now \u003d datetime.datetime.utcnow()"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"            if name is None:"},{"line_number":185,"context_line":"                new_name \u003d original_row[\u0027name\u0027]"},{"line_number":186,"context_line":"            else:"},{"line_number":187,"context_line":"                new_name \u003d name.encode(\u0027utf8\u0027)"},{"line_number":188,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"da36d5c6_01e68214","line":185,"range":{"start_line":185,"start_character":16,"end_line":185,"end_character":47},"in_reply_to":"da36d5c6_97bbabe4","updated":"2017-02-24 05:27:12.000000000","message":"Ok","commit_id":"71ef0e50396dcc0f6265628659b8ba38edc206dd"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"8a35a858b5b42de52d74976fa89807687b334ee0","unresolved":false,"context_lines":[{"line_number":182,"context_line":"            now \u003d datetime.datetime.utcnow()"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"            if name is None:"},{"line_number":185,"context_line":"                new_name \u003d original_row[\u0027name\u0027]"},{"line_number":186,"context_line":"            else:"},{"line_number":187,"context_line":"                new_name \u003d name.encode(\u0027utf8\u0027)"},{"line_number":188,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"da36d5c6_97bbabe4","line":185,"range":{"start_line":185,"start_character":16,"end_line":185,"end_character":47},"in_reply_to":"da36d5c6_b2ee4b89","updated":"2017-02-23 17:43:08.000000000","message":"This part is for both update and patch. If you want to do an update and did not give all the fields, an exception will be thrown from code reference/alarm_grouping_managers.py. For example, if name is missing, get_query_alarm_grouping_manager_name function will throw \"missing name\".","commit_id":"71ef0e50396dcc0f6265628659b8ba38edc206dd"}],"monasca_api/common/repositories/sqla/models.py":[{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"8a35a858b5b42de52d74976fa89807687b334ee0","unresolved":false,"context_lines":[{"line_number":156,"context_line":"                 Column(\u0027tenant_id\u0027, String(36)),"},{"line_number":157,"context_line":"                 Column(\u0027name\u0027, String(255)),"},{"line_number":158,"context_line":"                 Column(\u0027matchers\u0027, String(255)),"},{"line_number":159,"context_line":"                 Column(\u0027group_wait\u0027, String(5)),"},{"line_number":160,"context_line":"                 Column(\u0027repeat_interval\u0027, String(5)),"},{"line_number":161,"context_line":"                 Column(\u0027exclusions\u0027, String(255)),"},{"line_number":162,"context_line":"                 Column(\u0027actions\u0027, String(255)),"}],"source_content_type":"text/x-python","patch_set":9,"id":"da36d5c6_c983cd54","line":159,"range":{"start_line":159,"start_character":44,"end_line":159,"end_character":47},"updated":"2017-02-23 17:43:08.000000000","message":"change to 10","commit_id":"71ef0e50396dcc0f6265628659b8ba38edc206dd"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"8a35a858b5b42de52d74976fa89807687b334ee0","unresolved":false,"context_lines":[{"line_number":157,"context_line":"                 Column(\u0027name\u0027, String(255)),"},{"line_number":158,"context_line":"                 Column(\u0027matchers\u0027, String(255)),"},{"line_number":159,"context_line":"                 Column(\u0027group_wait\u0027, String(5)),"},{"line_number":160,"context_line":"                 Column(\u0027repeat_interval\u0027, String(5)),"},{"line_number":161,"context_line":"                 Column(\u0027exclusions\u0027, String(255)),"},{"line_number":162,"context_line":"                 Column(\u0027actions\u0027, String(255)),"},{"line_number":163,"context_line":"                 Column(\u0027created_at\u0027, DateTime),"}],"source_content_type":"text/x-python","patch_set":9,"id":"da36d5c6_69958185","line":160,"range":{"start_line":160,"start_character":50,"end_line":160,"end_character":51},"updated":"2017-02-23 17:43:08.000000000","message":"change to 10","commit_id":"71ef0e50396dcc0f6265628659b8ba38edc206dd"}],"monasca_api/v2/common/schemas/alarm_group_definition_request_body_schema.py":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"127321b4e632a65c865bb7c38655dae6ff68eb37","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        if len(notification_id) \u003e MAX_ITEM_LENGTH:"},{"line_number":42,"context_line":"            raise Invalid(\u0027length {} \u003e {}\u0027.format(len(notification_id),"},{"line_number":43,"context_line":"                                                  MAX_ITEM_LENGTH))"},{"line_number":44,"context_line":"        existing.append(notification_id)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"def validate_ok_action_list(v):"}],"source_content_type":"text/x-python","patch_set":16,"id":"bff0334d_12e15f9b","line":44,"range":{"start_line":44,"start_character":8,"end_line":44,"end_character":40},"updated":"2017-04-06 00:45:07.000000000","message":"You should probably check for duplicate notification_id\u0027s. That is what the Alarm Definition code does.","commit_id":"0095b5ec2c30c0a415621409c4621657eb349cb0"},{"author":{"_account_id":22157,"name":"Andrea Adams","email":"aadams@hpe.com","username":"andrea.adams"},"change_message_id":"bf51053e4cbd4a374203b1fe16be84655e52aec3","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        if len(notification_id) \u003e MAX_ITEM_LENGTH:"},{"line_number":42,"context_line":"            raise Invalid(\u0027length {} \u003e {}\u0027.format(len(notification_id),"},{"line_number":43,"context_line":"                                                  MAX_ITEM_LENGTH))"},{"line_number":44,"context_line":"        existing.append(notification_id)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"def validate_ok_action_list(v):"}],"source_content_type":"text/x-python","patch_set":16,"id":"bff0334d_7fe4d2ac","line":44,"range":{"start_line":44,"start_character":8,"end_line":44,"end_character":40},"in_reply_to":"bff0334d_12e15f9b","updated":"2017-04-06 17:53:01.000000000","message":"Done","commit_id":"0095b5ec2c30c0a415621409c4621657eb349cb0"}],"monasca_api/v2/reference/alarm_group_definitions.py":[{"author":{"_account_id":22157,"name":"Andrea Adams","email":"aadams@hpe.com","username":"andrea.adams"},"change_message_id":"6e4ac407bf0970e02f2174a0daeeb9cf3b33a705","unresolved":false,"context_lines":[{"line_number":68,"context_line":"            alarm_group_definition)"},{"line_number":69,"context_line":"        exclusions \u003d get_query_alarm_group_definition_exclusions("},{"line_number":70,"context_line":"            alarm_group_definition)"},{"line_number":71,"context_line":"        alarm_actions \u003d get_query_alarm_group_definition_actions("},{"line_number":72,"context_line":"            alarm_group_definition, \"alarm_actions\")"},{"line_number":73,"context_line":"        ok_actions \u003d get_query_alarm_group_definition_actions("},{"line_number":74,"context_line":"            alarm_group_definition, \"ok_actions\")"},{"line_number":75,"context_line":"        undetermined_actions \u003d get_query_alarm_group_definition_actions("},{"line_number":76,"context_line":"            alarm_group_definition, \"undetermined_actions\")"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        result \u003d self._alarm_group_definition_create(req.project_id,"},{"line_number":79,"context_line":"                                                     name,"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a1ff146_c15148da","line":76,"range":{"start_line":71,"start_character":8,"end_line":76,"end_character":59},"updated":"2017-03-15 23:47:38.000000000","message":"If you try to create a definition where alarm_actions is the same as ok_actions or undetermined_actions, you get:\n\n    \"title\": \"Service unavailable\",\n    \"description\": \"(pymysql.err.IntegrityError) (1062, u\\\"Duplicate entry \u002754799ead-c4df-4c41-b376-f103592929f6-ea24a4ee-5279-48d6-8825-a47\u0027 for key \u0027PRIMARY\u0027\\\") [SQL: u\u0027INSERT INTO alarm_group_definition_action (alarm_group_definition_id, alarm_state, action_id) VALUES (%(b_alarm_group_definition_id)s, %(b_alarm_state)s, %(b_action_id)s)\u0027] [parameters: {\u0027b_alarm_group_definition_id\u0027: \u002754799ead-c4df-4c41-b376-f103592929f6\u0027, \u0027b_action_id\u0027: \u0027ea24a4ee-5279-48d6-8825-a478bad8c398\u0027, \u0027b_alarm_state\u0027: \u0027OK\u0027}]\"","commit_id":"cb5a723613938c454235452d16709dfe79f9b92e"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"127321b4e632a65c865bb7c38655dae6ff68eb37","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            res.status \u003d falcon.HTTP_200"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        else:"},{"line_number":115,"context_line":"            helpers.validate_authorization("},{"line_number":116,"context_line":"                req, self._get_alarm_group_definitions_authorized_roles)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"            result \u003d self._alarm_group_definition_show("},{"line_number":119,"context_line":"                req.project_id, alarm_group_definition_id)"}],"source_content_type":"text/x-python","patch_set":16,"id":"bff0334d_d21e576f","line":116,"range":{"start_line":115,"start_character":0,"end_line":116,"end_character":72},"updated":"2017-04-06 00:45:07.000000000","message":"This has already been done","commit_id":"0095b5ec2c30c0a415621409c4621657eb349cb0"},{"author":{"_account_id":22157,"name":"Andrea Adams","email":"aadams@hpe.com","username":"andrea.adams"},"change_message_id":"bf51053e4cbd4a374203b1fe16be84655e52aec3","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            res.status \u003d falcon.HTTP_200"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        else:"},{"line_number":115,"context_line":"            helpers.validate_authorization("},{"line_number":116,"context_line":"                req, self._get_alarm_group_definitions_authorized_roles)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"            result \u003d self._alarm_group_definition_show("},{"line_number":119,"context_line":"                req.project_id, alarm_group_definition_id)"}],"source_content_type":"text/x-python","patch_set":16,"id":"bff0334d_9f3b1637","line":116,"range":{"start_line":115,"start_character":0,"end_line":116,"end_character":72},"in_reply_to":"bff0334d_d21e576f","updated":"2017-04-06 17:53:01.000000000","message":"Done","commit_id":"0095b5ec2c30c0a415621409c4621657eb349cb0"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"127321b4e632a65c865bb7c38655dae6ff68eb37","unresolved":false,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"            helpers.add_links_to_resource("},{"line_number":122,"context_line":"                result, re.sub(\u0027/\u0027 + alarm_group_definition_id, \u0027\u0027, req.uri))"},{"line_number":123,"context_line":"            res.body \u003d helpers.dumpit_utf8(result)"},{"line_number":124,"context_line":"            res.status \u003d falcon.HTTP_200"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    @resource.resource_try_catch_block"},{"line_number":127,"context_line":"    def on_put(self, req, res, alarm_group_definition_id):"}],"source_content_type":"text/x-python","patch_set":16,"id":"bff0334d_ad081828","line":124,"range":{"start_line":123,"start_character":0,"end_line":124,"end_character":40},"updated":"2017-04-06 00:45:07.000000000","message":"Move these outside of the if/else since they are the same in both cases","commit_id":"0095b5ec2c30c0a415621409c4621657eb349cb0"},{"author":{"_account_id":22157,"name":"Andrea Adams","email":"aadams@hpe.com","username":"andrea.adams"},"change_message_id":"bf51053e4cbd4a374203b1fe16be84655e52aec3","unresolved":false,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"            helpers.add_links_to_resource("},{"line_number":122,"context_line":"                result, re.sub(\u0027/\u0027 + alarm_group_definition_id, \u0027\u0027, req.uri))"},{"line_number":123,"context_line":"            res.body \u003d helpers.dumpit_utf8(result)"},{"line_number":124,"context_line":"            res.status \u003d falcon.HTTP_200"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    @resource.resource_try_catch_block"},{"line_number":127,"context_line":"    def on_put(self, req, res, alarm_group_definition_id):"}],"source_content_type":"text/x-python","patch_set":16,"id":"bff0334d_7f4852cb","line":124,"range":{"start_line":123,"start_character":0,"end_line":124,"end_character":40},"in_reply_to":"bff0334d_ad081828","updated":"2017-04-06 17:53:01.000000000","message":"Done","commit_id":"0095b5ec2c30c0a415621409c4621657eb349cb0"}],"monasca_api/v2/reference/alarm_grouping_managers.py":[{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"7b904e610019ffea19c30147e403caefe741d465","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        if return_none:"},{"line_number":207,"context_line":"            return None"},{"line_number":208,"context_line":"        else:"},{"line_number":209,"context_line":"            return \u00275m\u0027  # default to 5 min"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"def get_query_alarm_grouping_manager_exclusions(alarm_grouping_manager,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa31d9ce_b403bb72","line":209,"range":{"start_line":209,"start_character":20,"end_line":209,"end_character":22},"updated":"2017-02-11 00:18:17.000000000","message":"wrong. should be 2h","commit_id":"3a05d4f3df668242a57fa7fac8d99f739bc36486"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"cc1a9fbb64b617c9f97b3f702272dd4645401f2b","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            LOG.exception(ex)"},{"line_number":51,"context_line":"            raise exceptions.RepositoryException(ex)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def on_post(self, req, res):"},{"line_number":54,"context_line":"        helpers.validate_authorization(req, self._default_authorized_roles)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        alarm_grouping_manager \u003d helpers.read_json_msg_body(req)"}],"source_content_type":"text/x-python","patch_set":8,"id":"da36d5c6_3837f5e4","line":53,"updated":"2017-02-17 22:54:07.000000000","message":"you missed : @resource.resource_try_catch_block","commit_id":"4a9ea2736cbc0bcfdd43bc3241866051ffa16711"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"2fc61b4aa78d8750cd8bd706bad3ecc4ffb696c9","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            LOG.exception(ex)"},{"line_number":51,"context_line":"            raise exceptions.RepositoryException(ex)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def on_post(self, req, res):"},{"line_number":54,"context_line":"        helpers.validate_authorization(req, self._default_authorized_roles)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        alarm_grouping_manager \u003d helpers.read_json_msg_body(req)"}],"source_content_type":"text/x-python","patch_set":8,"id":"da36d5c6_3848d52d","line":53,"in_reply_to":"da36d5c6_3837f5e4","updated":"2017-02-17 23:12:23.000000000","message":"Good catch! Will add it in next patch! Thank you!","commit_id":"4a9ea2736cbc0bcfdd43bc3241866051ffa16711"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"cc1a9fbb64b617c9f97b3f702272dd4645401f2b","unresolved":false,"context_lines":[{"line_number":400,"context_line":"            else:"},{"line_number":401,"context_line":"                raise Exception(\"Missing name\")"},{"line_number":402,"context_line":"    except Exception as ex:"},{"line_number":403,"context_line":"        LOG.debug(ex)"},{"line_number":404,"context_line":"        raise HTTPUnprocessableEntityError(\u0027Unprocessable Entity\u0027, ex.message)"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"da36d5c6_383e15b9","line":403,"updated":"2017-02-17 22:54:07.000000000","message":"LOG.exception","commit_id":"4a9ea2736cbc0bcfdd43bc3241866051ffa16711"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"2fc61b4aa78d8750cd8bd706bad3ecc4ffb696c9","unresolved":false,"context_lines":[{"line_number":400,"context_line":"            else:"},{"line_number":401,"context_line":"                raise Exception(\"Missing name\")"},{"line_number":402,"context_line":"    except Exception as ex:"},{"line_number":403,"context_line":"        LOG.debug(ex)"},{"line_number":404,"context_line":"        raise HTTPUnprocessableEntityError(\u0027Unprocessable Entity\u0027, ex.message)"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"da36d5c6_98d2a133","line":403,"in_reply_to":"da36d5c6_383e15b9","updated":"2017-02-17 23:12:23.000000000","message":"Do we need exception here though? We used log.debug in get_query_alarm_definition_name and get_query_param in helpers.py.","commit_id":"4a9ea2736cbc0bcfdd43bc3241866051ffa16711"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"cc1a9fbb64b617c9f97b3f702272dd4645401f2b","unresolved":false,"context_lines":[{"line_number":417,"context_line":"                raise Exception(\"Missing grouping matchers\")"},{"line_number":418,"context_line":"    except Exception as ex:"},{"line_number":419,"context_line":"        LOG.debug(ex)"},{"line_number":420,"context_line":"        raise HTTPUnprocessableEntityError(\u0027Unprocessable Entity\u0027, ex.message)"},{"line_number":421,"context_line":""},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"def get_query_alarm_grouping_manager_group_wait(alarm_grouping_manager,"}],"source_content_type":"text/x-python","patch_set":8,"id":"da36d5c6_b8784591","line":420,"updated":"2017-02-17 22:54:07.000000000","message":"In Py35 exception has no message attribute, but str(ex) should work just fine.","commit_id":"4a9ea2736cbc0bcfdd43bc3241866051ffa16711"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"2fc61b4aa78d8750cd8bd706bad3ecc4ffb696c9","unresolved":false,"context_lines":[{"line_number":417,"context_line":"                raise Exception(\"Missing grouping matchers\")"},{"line_number":418,"context_line":"    except Exception as ex:"},{"line_number":419,"context_line":"        LOG.debug(ex)"},{"line_number":420,"context_line":"        raise HTTPUnprocessableEntityError(\u0027Unprocessable Entity\u0027, ex.message)"},{"line_number":421,"context_line":""},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"def get_query_alarm_grouping_manager_group_wait(alarm_grouping_manager,"}],"source_content_type":"text/x-python","patch_set":8,"id":"da36d5c6_b8d76522","line":420,"in_reply_to":"da36d5c6_b8784591","updated":"2017-02-17 23:12:23.000000000","message":"Will do!","commit_id":"4a9ea2736cbc0bcfdd43bc3241866051ffa16711"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"379f0e98a14f31a03e424f2273323a457ffb2d4b","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    @resource.resource_try_catch_block"},{"line_number":86,"context_line":"    def on_get(self, req, res, alarm_grouping_manager_id\u003dNone):"},{"line_number":87,"context_line":"        if alarm_grouping_manager_id is None:"},{"line_number":88,"context_line":"            helpers.validate_authorization("},{"line_number":89,"context_line":"                req, self._get_alarm_grouping_managers_authorized_roles)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"            name \u003d helpers.get_query_name(req)"},{"line_number":92,"context_line":"            offset \u003d helpers.get_query_param(req, \u0027offset\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"da36d5c6_cdecfe2b","line":89,"range":{"start_line":88,"start_character":0,"end_line":89,"end_character":72},"updated":"2017-02-21 22:12:13.000000000","message":"Move this above the if. It gets done for both cases","commit_id":"71ef0e50396dcc0f6265628659b8ba38edc206dd"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"8a35a858b5b42de52d74976fa89807687b334ee0","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    @resource.resource_try_catch_block"},{"line_number":86,"context_line":"    def on_get(self, req, res, alarm_grouping_manager_id\u003dNone):"},{"line_number":87,"context_line":"        if alarm_grouping_manager_id is None:"},{"line_number":88,"context_line":"            helpers.validate_authorization("},{"line_number":89,"context_line":"                req, self._get_alarm_grouping_managers_authorized_roles)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"            name \u003d helpers.get_query_name(req)"},{"line_number":92,"context_line":"            offset \u003d helpers.get_query_param(req, \u0027offset\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"da36d5c6_7e67f4b6","line":89,"range":{"start_line":88,"start_character":0,"end_line":89,"end_character":72},"in_reply_to":"da36d5c6_cdecfe2b","updated":"2017-02-23 17:43:08.000000000","message":"Done","commit_id":"71ef0e50396dcc0f6265628659b8ba38edc206dd"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"379f0e98a14f31a03e424f2273323a457ffb2d4b","unresolved":false,"context_lines":[{"line_number":108,"context_line":"            helpers.validate_authorization("},{"line_number":109,"context_line":"                req, self._get_alarm_grouping_managers_authorized_roles)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"            result \u003d self._alarm_grouping_manager_show("},{"line_number":112,"context_line":"                req.project_id, alarm_grouping_manager_id)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"            helpers.add_links_to_resource("}],"source_content_type":"text/x-python","patch_set":9,"id":"da36d5c6_ad2c2a4b","line":111,"range":{"start_line":111,"start_character":12,"end_line":111,"end_character":18},"updated":"2017-02-21 22:12:13.000000000","message":"Which part of the code returns a 404 if this id doesn\u0027t exist? I don\u0027t see 404 handling for delete, update or patch, either","commit_id":"71ef0e50396dcc0f6265628659b8ba38edc206dd"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"8a35a858b5b42de52d74976fa89807687b334ee0","unresolved":false,"context_lines":[{"line_number":108,"context_line":"            helpers.validate_authorization("},{"line_number":109,"context_line":"                req, self._get_alarm_grouping_managers_authorized_roles)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"            result \u003d self._alarm_grouping_manager_show("},{"line_number":112,"context_line":"                req.project_id, alarm_grouping_manager_id)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"            helpers.add_links_to_resource("}],"source_content_type":"text/x-python","patch_set":9,"id":"da36d5c6_3ecd7c85","line":111,"range":{"start_line":111,"start_character":12,"end_line":111,"end_character":18},"in_reply_to":"da36d5c6_ad2c2a4b","updated":"2017-02-23 17:43:08.000000000","message":"It\u0027s in function self._get_alarm_grouping_manager under sqla/alarm_grouping_managers_repository.py. If the id doesnt exist, an exceptions.DoesNotExistException will get raised.","commit_id":"71ef0e50396dcc0f6265628659b8ba38edc206dd"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"379f0e98a14f31a03e424f2273323a457ffb2d4b","unresolved":false,"context_lines":[{"line_number":353,"context_line":"                                        offset\u003dNone, limit\u003d0)"},{"line_number":354,"context_line":"        if alarm_grouping_managers:"},{"line_number":355,"context_line":"            if not expected_id:"},{"line_number":356,"context_line":"                LOG.warning(\"Found existing alarm grouping manager for {} \""},{"line_number":357,"context_line":"                            \"with tenant_id {}\".format(name, tenant_id))"},{"line_number":358,"context_line":"                raise exceptions.AlreadyExistsException("},{"line_number":359,"context_line":"                    \"An alarm grouping manager with the name {} already exists\""},{"line_number":360,"context_line":"                    .format(name))"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"            found_grouping_manager_id \u003d alarm_grouping_managers[0][\u0027id\u0027]"},{"line_number":363,"context_line":"            if found_grouping_manager_id !\u003d expected_id:"},{"line_number":364,"context_line":"                LOG.warning(\"Found existing alarm grouping manager for {} \""},{"line_number":365,"context_line":"                            \"with tenant_id {} with unexpected id {}\"."},{"line_number":366,"context_line":"                            format(name, tenant_id, found_grouping_manager_id))"},{"line_number":367,"context_line":"                raise exceptions.AlreadyExistsException("},{"line_number":368,"context_line":"                    \"An alarm grouping manager with the name {} already \""},{"line_number":369,"context_line":"                    \"exists with id {}\".format(name,"},{"line_number":370,"context_line":"                                               found_grouping_manager_id))"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"    def _send_alarm_grouping_manager_created_event("},{"line_number":373,"context_line":"            self, tenant_id, alarm_grouping_manager_id, name, matchers,"}],"source_content_type":"text/x-python","patch_set":9,"id":"da36d5c6_cd8b1e1d","line":370,"range":{"start_line":356,"start_character":0,"end_line":370,"end_character":74},"updated":"2017-02-21 22:12:13.000000000","message":"You should be able to change the if statements so the LOG.warning and raise aren\u0027t duplicated","commit_id":"71ef0e50396dcc0f6265628659b8ba38edc206dd"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"8a35a858b5b42de52d74976fa89807687b334ee0","unresolved":false,"context_lines":[{"line_number":353,"context_line":"                                        offset\u003dNone, limit\u003d0)"},{"line_number":354,"context_line":"        if alarm_grouping_managers:"},{"line_number":355,"context_line":"            if not expected_id:"},{"line_number":356,"context_line":"                LOG.warning(\"Found existing alarm grouping manager for {} \""},{"line_number":357,"context_line":"                            \"with tenant_id {}\".format(name, tenant_id))"},{"line_number":358,"context_line":"                raise exceptions.AlreadyExistsException("},{"line_number":359,"context_line":"                    \"An alarm grouping manager with the name {} already exists\""},{"line_number":360,"context_line":"                    .format(name))"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"            found_grouping_manager_id \u003d alarm_grouping_managers[0][\u0027id\u0027]"},{"line_number":363,"context_line":"            if found_grouping_manager_id !\u003d expected_id:"},{"line_number":364,"context_line":"                LOG.warning(\"Found existing alarm grouping manager for {} \""},{"line_number":365,"context_line":"                            \"with tenant_id {} with unexpected id {}\"."},{"line_number":366,"context_line":"                            format(name, tenant_id, found_grouping_manager_id))"},{"line_number":367,"context_line":"                raise exceptions.AlreadyExistsException("},{"line_number":368,"context_line":"                    \"An alarm grouping manager with the name {} already \""},{"line_number":369,"context_line":"                    \"exists with id {}\".format(name,"},{"line_number":370,"context_line":"                                               found_grouping_manager_id))"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"    def _send_alarm_grouping_manager_created_event("},{"line_number":373,"context_line":"            self, tenant_id, alarm_grouping_manager_id, name, matchers,"}],"source_content_type":"text/x-python","patch_set":9,"id":"da36d5c6_97a2cbac","line":370,"range":{"start_line":356,"start_character":0,"end_line":370,"end_character":74},"in_reply_to":"da36d5c6_cd8b1e1d","updated":"2017-02-23 17:43:08.000000000","message":"OK! Let me try that! Thanks!","commit_id":"71ef0e50396dcc0f6265628659b8ba38edc206dd"}]}
