)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":30852,"name":"Dan Voiculeasa","email":"Dan.Voiculeasa@windriver.com","username":"dvoicule"},"change_message_id":"e95c7fa5d0bca40f6ced7abb35da1b1e82654c8b","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Prevents critical apps from being removed"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If an app has a metadata stating remove is prevented/forbidden then system"},{"line_number":10,"context_line":"application-remove will be rejected"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Story: 2007960"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"46c8f2ca_9af77935","line":9,"range":{"start_line":9,"start_character":68,"end_line":9,"end_character":74},"updated":"2021-03-11 12:11:39.000000000","message":"Commit line length too long.","commit_id":"3e93a1cc533f3090220ad18eced6242e1f9ca827"},{"author":{"_account_id":32016,"name":"Suvro Ghosh","display_name":"Suvro","email":"ghosh.suvrojeet@gmail.com","username":"sghosh"},"change_message_id":"5c52bfa4658c45bcc76240e15fb317706f343363","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Prevents critical apps from being removed"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If an app has a metadata stating remove is prevented/forbidden then system"},{"line_number":10,"context_line":"application-remove will be rejected"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Story: 2007960"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"016ff8f2_1d08c0e9","line":9,"range":{"start_line":9,"start_character":68,"end_line":9,"end_character":74},"in_reply_to":"46c8f2ca_9af77935","updated":"2021-03-11 16:00:51.000000000","message":"Ack","commit_id":"3e93a1cc533f3090220ad18eced6242e1f9ca827"}],"sysinv/sysinv/sysinv/sysinv/helm/lifecycle_base.py":[{"author":{"_account_id":28459,"name":"Bob Church","email":"robert.church@windriver.com","username":"rchurch"},"change_message_id":"52f5748962ba936963d9ecc67f2a1566a5a1def9","unresolved":true,"context_lines":[{"line_number":45,"context_line":"                # hook and raise exception.LifecycleSemanticCheckException"},{"line_number":46,"context_line":"                pass"},{"line_number":47,"context_line":"            # Check if operation is a delete or remove operation"},{"line_number":48,"context_line":"            elif hook_info.operation \u003d\u003d constants.APP_DELETE_OP or \\"},{"line_number":49,"context_line":"                    hook_info.operation \u003d\u003d constants.APP_REMOVE_OP:"},{"line_number":50,"context_line":"                try:"},{"line_number":51,"context_line":"                    # Store the forbidden operations in a list"},{"line_number":52,"context_line":"                    forbidden \u003d conductor_obj.apps_metadata["}],"source_content_type":"text/x-python","patch_set":3,"id":"2cfbd46c_78680927","line":49,"range":{"start_line":48,"start_character":17,"end_line":49,"end_character":66},"updated":"2021-03-09 02:31:44.000000000","message":"Consider simplifying with:\n\n    hook_info.operation in [constants.APP_DELETE_OP. constants.APP_REMOVE_OP]","commit_id":"7876067a17fc2a55786d033b47796fb2cba006bb"},{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"7c84c60868e1310b4d84b324587b815379cf7a6a","unresolved":true,"context_lines":[{"line_number":45,"context_line":"                # hook and raise exception.LifecycleSemanticCheckException"},{"line_number":46,"context_line":"                pass"},{"line_number":47,"context_line":"            # Check if operation is a delete or remove operation"},{"line_number":48,"context_line":"            elif hook_info.operation \u003d\u003d constants.APP_DELETE_OP or \\"},{"line_number":49,"context_line":"                    hook_info.operation \u003d\u003d constants.APP_REMOVE_OP:"},{"line_number":50,"context_line":"                try:"},{"line_number":51,"context_line":"                    # Store the forbidden operations in a list"},{"line_number":52,"context_line":"                    forbidden \u003d conductor_obj.apps_metadata["}],"source_content_type":"text/x-python","patch_set":6,"id":"8e5ed13b_79dcee8b","line":49,"range":{"start_line":48,"start_character":1,"end_line":49,"end_character":67},"updated":"2021-03-16 12:52:32.000000000","message":"it looks like this will need to be rebased with https://review.opendev.org/c/starlingx/config/+/778976","commit_id":"fa1622ef5f80950928f8f2447f9c0e178e797704"},{"author":{"_account_id":32016,"name":"Suvro Ghosh","display_name":"Suvro","email":"ghosh.suvrojeet@gmail.com","username":"sghosh"},"change_message_id":"c000017be9a4278a3bfac945b838370e1806505a","unresolved":true,"context_lines":[{"line_number":45,"context_line":"                # hook and raise exception.LifecycleSemanticCheckException"},{"line_number":46,"context_line":"                pass"},{"line_number":47,"context_line":"            # Check if operation is a delete or remove operation"},{"line_number":48,"context_line":"            elif hook_info.operation \u003d\u003d constants.APP_DELETE_OP or \\"},{"line_number":49,"context_line":"                    hook_info.operation \u003d\u003d constants.APP_REMOVE_OP:"},{"line_number":50,"context_line":"                try:"},{"line_number":51,"context_line":"                    # Store the forbidden operations in a list"},{"line_number":52,"context_line":"                    forbidden \u003d conductor_obj.apps_metadata["}],"source_content_type":"text/x-python","patch_set":6,"id":"a67223da_b9e3aa58","line":49,"range":{"start_line":48,"start_character":1,"end_line":49,"end_character":67},"in_reply_to":"8e5ed13b_79dcee8b","updated":"2021-03-16 13:40:15.000000000","message":"779023 (this review) is the parent of 778976. Therefore, 779023 simply delivers what was asked with it which is preventing critical apps from being removed based on metadata. The elif condition over here does that. Once this review is merged then 778976 updates this elif to add the force functionality.","commit_id":"fa1622ef5f80950928f8f2447f9c0e178e797704"},{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"d0dcf6c695a240a5bdffd2c2ceaaed2f2bedb667","unresolved":true,"context_lines":[{"line_number":45,"context_line":"                # hook and raise exception.LifecycleSemanticCheckException"},{"line_number":46,"context_line":"                pass"},{"line_number":47,"context_line":"            # Check if operation is a delete or remove operation"},{"line_number":48,"context_line":"            elif hook_info.operation \u003d\u003d constants.APP_DELETE_OP or \\"},{"line_number":49,"context_line":"                    hook_info.operation \u003d\u003d constants.APP_REMOVE_OP:"},{"line_number":50,"context_line":"                try:"},{"line_number":51,"context_line":"                    # Store the forbidden operations in a list"},{"line_number":52,"context_line":"                    forbidden \u003d conductor_obj.apps_metadata["}],"source_content_type":"text/x-python","patch_set":6,"id":"fa475e40_1ce6487c","line":49,"range":{"start_line":48,"start_character":1,"end_line":49,"end_character":67},"in_reply_to":"a67223da_b9e3aa58","updated":"2021-03-16 13:47:57.000000000","message":"ok, I was wondering about the resultant merge whether it would incorprrate the updated:  elif (hook_info.operation in [constants.APP_DELETE_OP,\n                    constants.APP_REMOVE_OP]) and \\\n                        not hook_info.extra[\u0027force\u0027]:","commit_id":"fa1622ef5f80950928f8f2447f9c0e178e797704"},{"author":{"_account_id":32016,"name":"Suvro Ghosh","display_name":"Suvro","email":"ghosh.suvrojeet@gmail.com","username":"sghosh"},"change_message_id":"d409caac2e81476e9575a419ddc769ab03615ebc","unresolved":true,"context_lines":[{"line_number":45,"context_line":"                # hook and raise exception.LifecycleSemanticCheckException"},{"line_number":46,"context_line":"                pass"},{"line_number":47,"context_line":"            # Check if operation is a delete or remove operation"},{"line_number":48,"context_line":"            elif hook_info.operation \u003d\u003d constants.APP_DELETE_OP or \\"},{"line_number":49,"context_line":"                    hook_info.operation \u003d\u003d constants.APP_REMOVE_OP:"},{"line_number":50,"context_line":"                try:"},{"line_number":51,"context_line":"                    # Store the forbidden operations in a list"},{"line_number":52,"context_line":"                    forbidden \u003d conductor_obj.apps_metadata["}],"source_content_type":"text/x-python","patch_set":6,"id":"ce3bf0aa_a2d34281","line":49,"range":{"start_line":48,"start_character":1,"end_line":49,"end_character":67},"in_reply_to":"fa475e40_1ce6487c","updated":"2021-03-16 13:55:08.000000000","message":"the resultant merge (after both 779023 and 778976) would be or should be this https://review.opendev.org/c/starlingx/config/+/778976/9/sysinv/sysinv/sysinv/sysinv/helm/lifecycle_base.py#48","commit_id":"fa1622ef5f80950928f8f2447f9c0e178e797704"}]}
