)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":12404,"name":"Rico Lin","email":"ricolin@ricolky.com","username":"rico.lin"},"change_message_id":"1aa96f07df57aa16266f7b06ea2c2f039b66f045","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"[1]: https://docs.openstack.org/aodh/latest/contributor/architecture.html#id5"},{"line_number":16,"context_line":"[2]: https://review.opendev.org/#/c/654221/"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I26582fbd0b980d848f7e4cdb8bb2c8833385fe9b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"7faddb67_9b5dbc16","line":17,"updated":"2019-07-17 13:37:09.000000000","message":"missing `Task: 34767`","commit_id":"79e5ced8ca48584d427193dcec9a03ab958123e8"},{"author":{"_account_id":30447,"name":"Simon Merrick","email":"simonmerrick@catalyst.net.nz","username":"iokiwi"},"change_message_id":"0a1ea7f433f4f5c7799b889e8701b54d350c976a","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"[1]: https://docs.openstack.org/aodh/latest/contributor/architecture.html#id5"},{"line_number":16,"context_line":"[2]: https://review.opendev.org/#/c/654221/"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I26582fbd0b980d848f7e4cdb8bb2c8833385fe9b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"7faddb67_5295f785","line":17,"in_reply_to":"7faddb67_9b5dbc16","updated":"2019-08-02 00:40:40.000000000","message":"Done","commit_id":"79e5ced8ca48584d427193dcec9a03ab958123e8"}],"heat/engine/resources/openstack/aodh/alarm.py":[{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"a77208414f4b8cf25d9e4b7c9c795f6a4ac9a00f","unresolved":false,"context_lines":[{"line_number":354,"context_line":"    )"},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"    properties_schema \u003d {"},{"line_number":357,"context_line":"        LOADBALANCER_MEMBER_HEALTH_RULE: properties.Schema("},{"line_number":358,"context_line":"            properties.Schema.MAP,"},{"line_number":359,"context_line":"            _(\u0027Define the ID of the stack, loadbalancer pool and \u0027"},{"line_number":360,"context_line":"              \u0027autoscaling group that the loadbalancer pool members evaluated \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fb8cfa7_825d5416","line":357,"updated":"2019-06-12 14:34:03.000000000","message":"What is the benefit of burying all of the properties one level deeper?","commit_id":"485797e5841dfebe48d3202d5aba3b5c7dc2fcf9"},{"author":{"_account_id":30447,"name":"Simon Merrick","email":"simonmerrick@catalyst.net.nz","username":"iokiwi"},"change_message_id":"65612acb8ca3daf1aa0ce9148e9900da8a32e8a6","unresolved":false,"context_lines":[{"line_number":354,"context_line":"    )"},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"    properties_schema \u003d {"},{"line_number":357,"context_line":"        LOADBALANCER_MEMBER_HEALTH_RULE: properties.Schema("},{"line_number":358,"context_line":"            properties.Schema.MAP,"},{"line_number":359,"context_line":"            _(\u0027Define the ID of the stack, loadbalancer pool and \u0027"},{"line_number":360,"context_line":"              \u0027autoscaling group that the loadbalancer pool members evaluated \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fb8cfa7_397e2919","line":357,"in_reply_to":"9fb8cfa7_825d5416","updated":"2019-06-27 04:33:16.000000000","message":"Done","commit_id":"485797e5841dfebe48d3202d5aba3b5c7dc2fcf9"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"a77208414f4b8cf25d9e4b7c9c795f6a4ac9a00f","unresolved":false,"context_lines":[{"line_number":392,"context_line":"        for prop in (self.POOL_ID, self.STACK_ID, self.AUTOSCALING_GROUP_ID):"},{"line_number":393,"context_line":"            if prop in kwargs:"},{"line_number":394,"context_line":"                del kwargs[prop]"},{"line_number":395,"context_line":"        loadbalancer_member_health_rule \u003d props.get("},{"line_number":396,"context_line":"            self.LOADBALANCER_MEMBER_HEALTH_RULE)"},{"line_number":397,"context_line":""},{"line_number":398,"context_line":"        if loadbalancer_member_health_rule:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fb8cfa7_62e5c037","line":395,"range":{"start_line":395,"start_character":48,"end_line":395,"end_character":51},"updated":"2019-06-12 14:34:03.000000000","message":"Don\u0027t use .get() on Properties objects. props[self.LOAD_BALANCER_MEMBER_HEALTH_RULE] is fine.","commit_id":"485797e5841dfebe48d3202d5aba3b5c7dc2fcf9"},{"author":{"_account_id":30447,"name":"Simon Merrick","email":"simonmerrick@catalyst.net.nz","username":"iokiwi"},"change_message_id":"65612acb8ca3daf1aa0ce9148e9900da8a32e8a6","unresolved":false,"context_lines":[{"line_number":392,"context_line":"        for prop in (self.POOL_ID, self.STACK_ID, self.AUTOSCALING_GROUP_ID):"},{"line_number":393,"context_line":"            if prop in kwargs:"},{"line_number":394,"context_line":"                del kwargs[prop]"},{"line_number":395,"context_line":"        loadbalancer_member_health_rule \u003d props.get("},{"line_number":396,"context_line":"            self.LOADBALANCER_MEMBER_HEALTH_RULE)"},{"line_number":397,"context_line":""},{"line_number":398,"context_line":"        if loadbalancer_member_health_rule:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fb8cfa7_597bdd26","line":395,"range":{"start_line":395,"start_character":48,"end_line":395,"end_character":51},"in_reply_to":"9fb8cfa7_62e5c037","updated":"2019-06-27 04:33:16.000000000","message":"Done","commit_id":"485797e5841dfebe48d3202d5aba3b5c7dc2fcf9"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"a77208414f4b8cf25d9e4b7c9c795f6a4ac9a00f","unresolved":false,"context_lines":[{"line_number":395,"context_line":"        loadbalancer_member_health_rule \u003d props.get("},{"line_number":396,"context_line":"            self.LOADBALANCER_MEMBER_HEALTH_RULE)"},{"line_number":397,"context_line":""},{"line_number":398,"context_line":"        if loadbalancer_member_health_rule:"},{"line_number":399,"context_line":"            kwargs[self.LOADBALANCER_MEMBER_HEALTH_RULE] \u003d \\"},{"line_number":400,"context_line":"                loadbalancer_member_health_rule"},{"line_number":401,"context_line":"        return kwargs"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fb8cfa7_22d58844","line":398,"updated":"2019-06-12 14:34:03.000000000","message":"This check is unnecessary - all of the subproperties are required.","commit_id":"485797e5841dfebe48d3202d5aba3b5c7dc2fcf9"},{"author":{"_account_id":30447,"name":"Simon Merrick","email":"simonmerrick@catalyst.net.nz","username":"iokiwi"},"change_message_id":"65612acb8ca3daf1aa0ce9148e9900da8a32e8a6","unresolved":false,"context_lines":[{"line_number":395,"context_line":"        loadbalancer_member_health_rule \u003d props.get("},{"line_number":396,"context_line":"            self.LOADBALANCER_MEMBER_HEALTH_RULE)"},{"line_number":397,"context_line":""},{"line_number":398,"context_line":"        if loadbalancer_member_health_rule:"},{"line_number":399,"context_line":"            kwargs[self.LOADBALANCER_MEMBER_HEALTH_RULE] \u003d \\"},{"line_number":400,"context_line":"                loadbalancer_member_health_rule"},{"line_number":401,"context_line":"        return kwargs"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fb8cfa7_f973b14c","line":398,"in_reply_to":"9fb8cfa7_22d58844","updated":"2019-06-27 04:33:16.000000000","message":"Done","commit_id":"485797e5841dfebe48d3202d5aba3b5c7dc2fcf9"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"a77208414f4b8cf25d9e4b7c9c795f6a4ac9a00f","unresolved":false,"context_lines":[{"line_number":405,"context_line":"        props[\u0027name\u0027] \u003d self.physical_resource_name()"},{"line_number":406,"context_line":"        alarm \u003d self.client().alarm.create(props)"},{"line_number":407,"context_line":"        self.resource_id_set(alarm[\u0027alarm_id\u0027])"},{"line_number":408,"context_line":""},{"line_number":409,"context_line":""},{"line_number":410,"context_line":"def resource_mapping():"},{"line_number":411,"context_line":"    return {"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fb8cfa7_42a19cf7","line":408,"updated":"2019-06-12 14:34:03.000000000","message":"The common_properties_scheme contributes properties that have update_allowed\u003dTrue, so I think this resource also needs a handle_update method.","commit_id":"485797e5841dfebe48d3202d5aba3b5c7dc2fcf9"},{"author":{"_account_id":30447,"name":"Simon Merrick","email":"simonmerrick@catalyst.net.nz","username":"iokiwi"},"change_message_id":"65612acb8ca3daf1aa0ce9148e9900da8a32e8a6","unresolved":false,"context_lines":[{"line_number":405,"context_line":"        props[\u0027name\u0027] \u003d self.physical_resource_name()"},{"line_number":406,"context_line":"        alarm \u003d self.client().alarm.create(props)"},{"line_number":407,"context_line":"        self.resource_id_set(alarm[\u0027alarm_id\u0027])"},{"line_number":408,"context_line":""},{"line_number":409,"context_line":""},{"line_number":410,"context_line":"def resource_mapping():"},{"line_number":411,"context_line":"    return {"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fb8cfa7_1971e544","line":408,"in_reply_to":"9fb8cfa7_42a19cf7","updated":"2019-06-27 04:33:16.000000000","message":"Done","commit_id":"485797e5841dfebe48d3202d5aba3b5c7dc2fcf9"},{"author":{"_account_id":12404,"name":"Rico Lin","email":"ricolin@ricolky.com","username":"rico.lin"},"change_message_id":"a8aa1e52f9c8eda9868175b0f82a6ba27f69f4db","unresolved":false,"context_lines":[{"line_number":348,"context_line":"    )"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"    properties_schema \u003d {"},{"line_number":351,"context_line":"        POOL_ID: properties.Schema("},{"line_number":352,"context_line":"            properties.Schema.STRING,"},{"line_number":353,"context_line":"            _(\"ID of a loadbalancer pool the members belongs to.\"),"},{"line_number":354,"context_line":"            update_allowed\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_eff7bad3","line":351,"range":{"start_line":351,"start_character":8,"end_line":351,"end_character":27},"updated":"2019-06-21 08:57:01.000000000","message":"Please use POOL instead of POOL_ID, you can accept name or id in heat and translate it to ID automatically.\nsee: https://github.com/openstack/heat/blob/master/heat/engine/resources/openstack/octavia/pool_member.py#L124-L130","commit_id":"6f07914d4199c074200003500ef554e3cd3f417a"},{"author":{"_account_id":30447,"name":"Simon Merrick","email":"simonmerrick@catalyst.net.nz","username":"iokiwi"},"change_message_id":"65612acb8ca3daf1aa0ce9148e9900da8a32e8a6","unresolved":false,"context_lines":[{"line_number":348,"context_line":"    )"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"    properties_schema \u003d {"},{"line_number":351,"context_line":"        POOL_ID: properties.Schema("},{"line_number":352,"context_line":"            properties.Schema.STRING,"},{"line_number":353,"context_line":"            _(\"ID of a loadbalancer pool the members belongs to.\"),"},{"line_number":354,"context_line":"            update_allowed\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_b98f7921","line":351,"range":{"start_line":351,"start_character":8,"end_line":351,"end_character":27},"in_reply_to":"9fb8cfa7_eff7bad3","updated":"2019-06-27 04:33:16.000000000","message":"Done","commit_id":"6f07914d4199c074200003500ef554e3cd3f417a"},{"author":{"_account_id":12404,"name":"Rico Lin","email":"ricolin@ricolky.com","username":"rico.lin"},"change_message_id":"a8aa1e52f9c8eda9868175b0f82a6ba27f69f4db","unresolved":false,"context_lines":[{"line_number":354,"context_line":"            update_allowed\u003dTrue,"},{"line_number":355,"context_line":"            required\u003dTrue,"},{"line_number":356,"context_line":"        ),"},{"line_number":357,"context_line":"        STACK_ID: properties.Schema("},{"line_number":358,"context_line":"            properties.Schema.STRING,"},{"line_number":359,"context_line":"            _(\"ID of a Heat stack which contains the loadbalancer \""},{"line_number":360,"context_line":"                \"member.\"),"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_cffc36b7","line":357,"range":{"start_line":357,"start_character":8,"end_line":357,"end_character":16},"updated":"2019-06-21 08:57:01.000000000","message":"same as above comment","commit_id":"6f07914d4199c074200003500ef554e3cd3f417a"},{"author":{"_account_id":30447,"name":"Simon Merrick","email":"simonmerrick@catalyst.net.nz","username":"iokiwi"},"change_message_id":"65612acb8ca3daf1aa0ce9148e9900da8a32e8a6","unresolved":false,"context_lines":[{"line_number":354,"context_line":"            update_allowed\u003dTrue,"},{"line_number":355,"context_line":"            required\u003dTrue,"},{"line_number":356,"context_line":"        ),"},{"line_number":357,"context_line":"        STACK_ID: properties.Schema("},{"line_number":358,"context_line":"            properties.Schema.STRING,"},{"line_number":359,"context_line":"            _(\"ID of a Heat stack which contains the loadbalancer \""},{"line_number":360,"context_line":"                \"member.\"),"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_d994ad39","line":357,"range":{"start_line":357,"start_character":8,"end_line":357,"end_character":16},"in_reply_to":"9fb8cfa7_4c435db0","updated":"2019-06-27 04:33:16.000000000","message":"Done","commit_id":"6f07914d4199c074200003500ef554e3cd3f417a"},{"author":{"_account_id":30447,"name":"Simon Merrick","email":"simonmerrick@catalyst.net.nz","username":"iokiwi"},"change_message_id":"cd61612bdbf70789a97962ea5f9d2d7983e8d5fc","unresolved":false,"context_lines":[{"line_number":354,"context_line":"            update_allowed\u003dTrue,"},{"line_number":355,"context_line":"            required\u003dTrue,"},{"line_number":356,"context_line":"        ),"},{"line_number":357,"context_line":"        STACK_ID: properties.Schema("},{"line_number":358,"context_line":"            properties.Schema.STRING,"},{"line_number":359,"context_line":"            _(\"ID of a Heat stack which contains the loadbalancer \""},{"line_number":360,"context_line":"                \"member.\"),"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_4c435db0","line":357,"range":{"start_line":357,"start_character":8,"end_line":357,"end_character":16},"in_reply_to":"9fb8cfa7_cffc36b7","updated":"2019-06-24 05:43:15.000000000","message":"I will change the naming of this property from stack_id to stack, however can you please clarify whether it is necessary y to add a translation rule for this property?\n\nWithout translation it already exhibits desired behavior whether I provide a stack ID or stack name.\n\nLooking implementation of examples in the heatclient, the heatclient itself does not appear to draw a meaningful distinction between ID or Name and will use them interchangeably - https://opendev.org/openstack/python-heatclient/src/branch/master/heatclient/v1/shell.py#L345-L356\n\nSo in this regard, is it necessary to translate the stack property?","commit_id":"6f07914d4199c074200003500ef554e3cd3f417a"},{"author":{"_account_id":12404,"name":"Rico Lin","email":"ricolin@ricolky.com","username":"rico.lin"},"change_message_id":"a8aa1e52f9c8eda9868175b0f82a6ba27f69f4db","unresolved":false,"context_lines":[{"line_number":382,"context_line":"                del kwargs[prop]"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"        rule \u003d {"},{"line_number":385,"context_line":"            self.POOL_ID: props[self.POOL_ID],"},{"line_number":386,"context_line":"            self.STACK_ID: props[self.STACK_ID],"},{"line_number":387,"context_line":"            self.AUTOSCALING_GROUP_ID: props[self.AUTOSCALING_GROUP_ID]"},{"line_number":388,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_6fef4a87","line":385,"range":{"start_line":385,"start_character":17,"end_line":385,"end_character":24},"updated":"2019-06-21 08:57:01.000000000","message":"remember to change back to pool_id and stack_id","commit_id":"6f07914d4199c074200003500ef554e3cd3f417a"},{"author":{"_account_id":30447,"name":"Simon Merrick","email":"simonmerrick@catalyst.net.nz","username":"iokiwi"},"change_message_id":"65612acb8ca3daf1aa0ce9148e9900da8a32e8a6","unresolved":false,"context_lines":[{"line_number":382,"context_line":"                del kwargs[prop]"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"        rule \u003d {"},{"line_number":385,"context_line":"            self.POOL_ID: props[self.POOL_ID],"},{"line_number":386,"context_line":"            self.STACK_ID: props[self.STACK_ID],"},{"line_number":387,"context_line":"            self.AUTOSCALING_GROUP_ID: props[self.AUTOSCALING_GROUP_ID]"},{"line_number":388,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_79958131","line":385,"range":{"start_line":385,"start_character":17,"end_line":385,"end_character":24},"in_reply_to":"9fb8cfa7_6fef4a87","updated":"2019-06-27 04:33:16.000000000","message":"Done","commit_id":"6f07914d4199c074200003500ef554e3cd3f417a"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"19d17c1129f376c97fc50d8caef3f16d5ad5d7b7","unresolved":false,"context_lines":[{"line_number":357,"context_line":"    properties_schema \u003d {"},{"line_number":358,"context_line":"        POOL: properties.Schema("},{"line_number":359,"context_line":"            properties.Schema.STRING,"},{"line_number":360,"context_line":"            _(\"Name or ID of a loadbalancer pool the members belongs to.\"),"},{"line_number":361,"context_line":"            update_allowed\u003dTrue,"},{"line_number":362,"context_line":"            required\u003dTrue,"},{"line_number":363,"context_line":"        ),"}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_a31f866e","line":360,"range":{"start_line":360,"start_character":61,"end_line":360,"end_character":68},"updated":"2019-07-29 14:35:16.000000000","message":"typo: belong","commit_id":"79e5ced8ca48584d427193dcec9a03ab958123e8"},{"author":{"_account_id":30447,"name":"Simon Merrick","email":"simonmerrick@catalyst.net.nz","username":"iokiwi"},"change_message_id":"0a1ea7f433f4f5c7799b889e8701b54d350c976a","unresolved":false,"context_lines":[{"line_number":357,"context_line":"    properties_schema \u003d {"},{"line_number":358,"context_line":"        POOL: properties.Schema("},{"line_number":359,"context_line":"            properties.Schema.STRING,"},{"line_number":360,"context_line":"            _(\"Name or ID of a loadbalancer pool the members belongs to.\"),"},{"line_number":361,"context_line":"            update_allowed\u003dTrue,"},{"line_number":362,"context_line":"            required\u003dTrue,"},{"line_number":363,"context_line":"        ),"}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_8fdee83b","line":360,"range":{"start_line":360,"start_character":61,"end_line":360,"end_character":68},"in_reply_to":"7faddb67_a31f866e","updated":"2019-08-02 00:40:40.000000000","message":"Fixed","commit_id":"79e5ced8ca48584d427193dcec9a03ab958123e8"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"19d17c1129f376c97fc50d8caef3f16d5ad5d7b7","unresolved":false,"context_lines":[{"line_number":364,"context_line":"        STACK: properties.Schema("},{"line_number":365,"context_line":"            properties.Schema.STRING,"},{"line_number":366,"context_line":"            _(\"Name or ID of a Heat stack which contains the loadbalancer \""},{"line_number":367,"context_line":"                \"member.\"),"},{"line_number":368,"context_line":"            update_allowed\u003dTrue,"},{"line_number":369,"context_line":"            required\u003dTrue,"},{"line_number":370,"context_line":"        ),"}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_06d2285d","line":367,"updated":"2019-07-29 14:35:16.000000000","message":"This is confusing, and needs a better explanation. Watching your demo video, the stack which contains the loadbalancer member (both the OS::Octavia::PoolMember resource and the OS::Nova::Server that it references) is the scaled unit defined by webserver.yaml. But in your previous comment you said there\u0027s only one of these alarms for the whole scaling group, so that can\u0027t be the case.\n\nIn the demo it appears that this stack ID is in fact the ID of the top-level stack. Presumably it\u0027s the one that gets triggered to update when a failed member is detected. The description of the property should say that.","commit_id":"79e5ced8ca48584d427193dcec9a03ab958123e8"},{"author":{"_account_id":30447,"name":"Simon Merrick","email":"simonmerrick@catalyst.net.nz","username":"iokiwi"},"change_message_id":"0a1ea7f433f4f5c7799b889e8701b54d350c976a","unresolved":false,"context_lines":[{"line_number":364,"context_line":"        STACK: properties.Schema("},{"line_number":365,"context_line":"            properties.Schema.STRING,"},{"line_number":366,"context_line":"            _(\"Name or ID of a Heat stack which contains the loadbalancer \""},{"line_number":367,"context_line":"                \"member.\"),"},{"line_number":368,"context_line":"            update_allowed\u003dTrue,"},{"line_number":369,"context_line":"            required\u003dTrue,"},{"line_number":370,"context_line":"        ),"}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_8f9a685f","line":367,"in_reply_to":"7faddb67_06d2285d","updated":"2019-08-02 00:40:40.000000000","message":"Property descriptions have been updated in the properties Schema\n\nThe previous descriptions were admittedly copied verbatim from the LoadBalancerMemberHealthRule in Aodh itself, so once we can settle on a meaningful description I might look at patching that with the descriptions as well.\n\nhttps://review.opendev.org/#/c/654221/2/aodh/api/controllers/v2/alarm_rules/loadbalancer.py","commit_id":"79e5ced8ca48584d427193dcec9a03ab958123e8"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"c9983d46bb156e6cc8864411f5d7337e9fa8a123","unresolved":false,"context_lines":[{"line_number":364,"context_line":"        STACK: properties.Schema("},{"line_number":365,"context_line":"            properties.Schema.STRING,"},{"line_number":366,"context_line":"            _(\"Name or ID of a Heat stack which contains the loadbalancer \""},{"line_number":367,"context_line":"                \"member.\"),"},{"line_number":368,"context_line":"            update_allowed\u003dTrue,"},{"line_number":369,"context_line":"            required\u003dTrue,"},{"line_number":370,"context_line":"        ),"}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_c766fced","line":367,"in_reply_to":"7faddb67_8f9a685f","updated":"2019-08-02 13:46:25.000000000","message":"+1","commit_id":"79e5ced8ca48584d427193dcec9a03ab958123e8"},{"author":{"_account_id":12404,"name":"Rico Lin","email":"ricolin@ricolky.com","username":"rico.lin"},"change_message_id":"1aa96f07df57aa16266f7b06ea2c2f039b66f045","unresolved":false,"context_lines":[{"line_number":365,"context_line":"            properties.Schema.STRING,"},{"line_number":366,"context_line":"            _(\"Name or ID of a Heat stack which contains the loadbalancer \""},{"line_number":367,"context_line":"                \"member.\"),"},{"line_number":368,"context_line":"            update_allowed\u003dTrue,"},{"line_number":369,"context_line":"            required\u003dTrue,"},{"line_number":370,"context_line":"        ),"},{"line_number":371,"context_line":"        AUTOSCALING_GROUP_ID: properties.Schema("}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_fb82b0ff","line":368,"range":{"start_line":368,"start_character":12,"end_line":368,"end_character":32},"updated":"2019-07-17 13:37:09.000000000","message":"This property point to the stack which contains the loadbalancer member and the autoscaling group. If we allow update stack and autoscaling group id separately that might cause issues. we should also check if that autoscaling resource also belongs to the stack every time those two property provided","commit_id":"79e5ced8ca48584d427193dcec9a03ab958123e8"},{"author":{"_account_id":30447,"name":"Simon Merrick","email":"simonmerrick@catalyst.net.nz","username":"iokiwi"},"change_message_id":"0a1ea7f433f4f5c7799b889e8701b54d350c976a","unresolved":false,"context_lines":[{"line_number":365,"context_line":"            properties.Schema.STRING,"},{"line_number":366,"context_line":"            _(\"Name or ID of a Heat stack which contains the loadbalancer \""},{"line_number":367,"context_line":"                \"member.\"),"},{"line_number":368,"context_line":"            update_allowed\u003dTrue,"},{"line_number":369,"context_line":"            required\u003dTrue,"},{"line_number":370,"context_line":"        ),"},{"line_number":371,"context_line":"        AUTOSCALING_GROUP_ID: properties.Schema("}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_6f0b6cd4","line":368,"range":{"start_line":368,"start_character":12,"end_line":368,"end_character":32},"in_reply_to":"7faddb67_b953e038","updated":"2019-08-02 00:40:40.000000000","message":"Based on Zane\u0027s recommendation - that checking if the autoscaling resource also belongs to the stack would not really help - I will leave as is.","commit_id":"79e5ced8ca48584d427193dcec9a03ab958123e8"},{"author":{"_account_id":30447,"name":"Simon Merrick","email":"simonmerrick@catalyst.net.nz","username":"iokiwi"},"change_message_id":"0a1ea7f433f4f5c7799b889e8701b54d350c976a","unresolved":false,"context_lines":[{"line_number":365,"context_line":"            properties.Schema.STRING,"},{"line_number":366,"context_line":"            _(\"Name or ID of a Heat stack which contains the loadbalancer \""},{"line_number":367,"context_line":"                \"member.\"),"},{"line_number":368,"context_line":"            update_allowed\u003dTrue,"},{"line_number":369,"context_line":"            required\u003dTrue,"},{"line_number":370,"context_line":"        ),"},{"line_number":371,"context_line":"        AUTOSCALING_GROUP_ID: properties.Schema("}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_4fa0f090","line":368,"range":{"start_line":368,"start_character":12,"end_line":368,"end_character":32},"in_reply_to":"7faddb67_fb82b0ff","updated":"2019-08-02 00:40:40.000000000","message":"Done","commit_id":"79e5ced8ca48584d427193dcec9a03ab958123e8"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"d66f72fcedb1472fc1f32f8603902d25dbd8c9cf","unresolved":false,"context_lines":[{"line_number":365,"context_line":"            properties.Schema.STRING,"},{"line_number":366,"context_line":"            _(\"Name or ID of a Heat stack which contains the loadbalancer \""},{"line_number":367,"context_line":"                \"member.\"),"},{"line_number":368,"context_line":"            update_allowed\u003dTrue,"},{"line_number":369,"context_line":"            required\u003dTrue,"},{"line_number":370,"context_line":"        ),"},{"line_number":371,"context_line":"        AUTOSCALING_GROUP_ID: properties.Schema("}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_b953e038","line":368,"range":{"start_line":368,"start_character":12,"end_line":368,"end_character":32},"in_reply_to":"7faddb67_fb82b0ff","updated":"2019-07-17 15:07:49.000000000","message":"The issue would be that the autohealing would fail. I\u0027m not sure that checking that they match really helps, since they could be updated separately (without changing this resource) anyway.","commit_id":"79e5ced8ca48584d427193dcec9a03ab958123e8"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"d66f72fcedb1472fc1f32f8603902d25dbd8c9cf","unresolved":false,"context_lines":[{"line_number":390,"context_line":""},{"line_number":391,"context_line":"        rule \u003d {"},{"line_number":392,"context_line":"            self.POOL_ID: props[self.POOL],"},{"line_number":393,"context_line":"            self.STACK_ID: props[self.STACK],"},{"line_number":394,"context_line":"            self.AUTOSCALING_GROUP_ID: props[self.AUTOSCALING_GROUP_ID]"},{"line_number":395,"context_line":"        }"},{"line_number":396,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_99fce43e","line":393,"updated":"2019-07-17 15:07:49.000000000","message":"It seems very wrong that the alarm should depend on the loadbalancer member having been defined in a Heat stack, but since y\u0027all have manged to get that one past the Aodh maintainers I guess it makes sense to expose it as a Heat resource.","commit_id":"79e5ced8ca48584d427193dcec9a03ab958123e8"},{"author":{"_account_id":30447,"name":"Simon Merrick","email":"simonmerrick@catalyst.net.nz","username":"iokiwi"},"change_message_id":"0a1ea7f433f4f5c7799b889e8701b54d350c976a","unresolved":false,"context_lines":[{"line_number":390,"context_line":""},{"line_number":391,"context_line":"        rule \u003d {"},{"line_number":392,"context_line":"            self.POOL_ID: props[self.POOL],"},{"line_number":393,"context_line":"            self.STACK_ID: props[self.STACK],"},{"line_number":394,"context_line":"            self.AUTOSCALING_GROUP_ID: props[self.AUTOSCALING_GROUP_ID]"},{"line_number":395,"context_line":"        }"},{"line_number":396,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_ef50bcd7","line":393,"in_reply_to":"7faddb67_99fce43e","updated":"2019-08-02 00:40:40.000000000","message":"Acknowledged","commit_id":"79e5ced8ca48584d427193dcec9a03ab958123e8"}]}
