)]}'
{"heat/cmd/manage.py":[{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"a2a3a6dbf594aaab9d6d59dc87092d2d6fb06704","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        raise Exception(_(\"Stack with id %s can not be found.\")"},{"line_number":124,"context_line":"                        % CONF.command.stack_id)"},{"line_number":125,"context_line":"    except exception.NotSupported:"},{"line_number":126,"context_line":"        raise Exception(_(\"Migration of no-root stack with id %s \""},{"line_number":127,"context_line":"                          \"is not supported.\") % CONF.command.stack_id)"},{"line_number":128,"context_line":"    except exception.ActionNotComplete:"},{"line_number":129,"context_line":"        raise Exception(_(\"The stack or some of its nested stacks are \""}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_f3646324","line":126,"range":{"start_line":126,"start_character":40,"end_line":126,"end_character":42},"updated":"2018-05-10 17:48:51.000000000","message":"typo: non\n\n(or just \u0027nested\u0027 instead of \u0027non-root\u0027?)","commit_id":"a24fccd8c4fdefb20472ac6274c40a8d8910c102"},{"author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"change_message_id":"7a2f751e9948122a78dd852e0aec81dc0644d595","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        raise Exception(_(\"Stack with id %s can not be found.\")"},{"line_number":124,"context_line":"                        % CONF.command.stack_id)"},{"line_number":125,"context_line":"    except exception.NotSupported:"},{"line_number":126,"context_line":"        raise Exception(_(\"Migration of no-root stack with id %s \""},{"line_number":127,"context_line":"                          \"is not supported.\") % CONF.command.stack_id)"},{"line_number":128,"context_line":"    except exception.ActionNotComplete:"},{"line_number":129,"context_line":"        raise Exception(_(\"The stack or some of its nested stacks are \""}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_bfc78496","line":126,"range":{"start_line":126,"start_character":40,"end_line":126,"end_character":42},"in_reply_to":"5f7c97a3_f3646324","updated":"2018-05-11 05:37:35.000000000","message":"In my mind \u0027nested\u0027 is used in the context of a parent stack, though I can change it.","commit_id":"a24fccd8c4fdefb20472ac6274c40a8d8910c102"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"a2a3a6dbf594aaab9d6d59dc87092d2d6fb06704","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                        % CONF.command.stack_id)"},{"line_number":125,"context_line":"    except exception.NotSupported:"},{"line_number":126,"context_line":"        raise Exception(_(\"Migration of no-root stack with id %s \""},{"line_number":127,"context_line":"                          \"is not supported.\") % CONF.command.stack_id)"},{"line_number":128,"context_line":"    except exception.ActionNotComplete:"},{"line_number":129,"context_line":"        raise Exception(_(\"The stack or some of its nested stacks are \""},{"line_number":130,"context_line":"                          \"in progress or failed state. Note, that all the \""}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_f3322310","line":127,"updated":"2018-05-10 17:48:51.000000000","message":"Actually, what is the reason we have to translate this to a generic Exception? And why would we write a new message instead of using the one in the exception?","commit_id":"a24fccd8c4fdefb20472ac6274c40a8d8910c102"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"f2ec1f5ef90563cee0add775c172c48bda029ec5","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                        % CONF.command.stack_id)"},{"line_number":125,"context_line":"    except exception.NotSupported:"},{"line_number":126,"context_line":"        raise Exception(_(\"Migration of no-root stack with id %s \""},{"line_number":127,"context_line":"                          \"is not supported.\") % CONF.command.stack_id)"},{"line_number":128,"context_line":"    except exception.ActionNotComplete:"},{"line_number":129,"context_line":"        raise Exception(_(\"The stack or some of its nested stacks are \""},{"line_number":130,"context_line":"                          \"in progress or failed state. Note, that all the \""}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_662f133f","line":127,"in_reply_to":"5f7c97a3_5c0d1e9f","updated":"2018-05-12 00:30:45.000000000","message":"\"except Exception\" will catch any type of exception though","commit_id":"a24fccd8c4fdefb20472ac6274c40a8d8910c102"},{"author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"change_message_id":"7a2f751e9948122a78dd852e0aec81dc0644d595","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                        % CONF.command.stack_id)"},{"line_number":125,"context_line":"    except exception.NotSupported:"},{"line_number":126,"context_line":"        raise Exception(_(\"Migration of no-root stack with id %s \""},{"line_number":127,"context_line":"                          \"is not supported.\") % CONF.command.stack_id)"},{"line_number":128,"context_line":"    except exception.ActionNotComplete:"},{"line_number":129,"context_line":"        raise Exception(_(\"The stack or some of its nested stacks are \""},{"line_number":130,"context_line":"                          \"in progress or failed state. Note, that all the \""}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_5c0d1e9f","line":127,"in_reply_to":"5f7c97a3_f3322310","updated":"2018-05-11 05:37:35.000000000","message":"I wondered that too. It seems to be done in a roundabout way to supress the traceback[1] for these specific exceptions and also NotFound does not have a proper message.\n\n[1] https://github.com/openstack/heat/blob/master/heat/cmd/manage.py#L250","commit_id":"a24fccd8c4fdefb20472ac6274c40a8d8910c102"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"f2ec1f5ef90563cee0add775c172c48bda029ec5","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        raise Exception(_(\"Stack with id %s can not be found.\")"},{"line_number":124,"context_line":"                        % CONF.command.stack_id)"},{"line_number":125,"context_line":"    except (exception.NotSupported, exception.ActionNotComplete) as ex:"},{"line_number":126,"context_line":"        raise Exception(ex.message)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"def purge_deleted():"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_06209f47","line":126,"updated":"2018-05-12 00:30:45.000000000","message":"I don\u0027t think this is necessary, but I guess it doesn\u0027t hurt.","commit_id":"abfec544d7938ad8b576e1d0fa78f8a5dca1df00"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"5921e91ed760e1d406ee28cfd238e2aceefaabc3","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        raise Exception(_(\"Stack with id %s can not be found.\")"},{"line_number":124,"context_line":"                        % CONF.command.stack_id)"},{"line_number":125,"context_line":"    except (exception.NotSupported, exception.ActionNotComplete) as ex:"},{"line_number":126,"context_line":"        raise Exception(ex.message)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"def purge_deleted():"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_4a92fa4d","line":126,"in_reply_to":"5f7c97a3_001639f2","updated":"2018-05-14 19:55:37.000000000","message":"I guess you tested this to get that output, but I don\u0027t see what the mechanism is, given that we do the same thing for all 3 types of exception:\n\nhttps://github.com/openstack/heat/blob/master/heat/cmd/manage.py#L249-L250\n\ni.e. catch it and call sys.exit passing the error message. We never let the exception bubble up to the top level (which would cause a traceback to be printed). It\u0027s not like HeatException includes a traceback when you convert it to a string. Weird.","commit_id":"abfec544d7938ad8b576e1d0fa78f8a5dca1df00"},{"author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"change_message_id":"ffed175ae58a1bb2498d99fe05c4741f55285648","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        raise Exception(_(\"Stack with id %s can not be found.\")"},{"line_number":124,"context_line":"                        % CONF.command.stack_id)"},{"line_number":125,"context_line":"    except (exception.NotSupported, exception.ActionNotComplete) as ex:"},{"line_number":126,"context_line":"        raise Exception(ex.message)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"def purge_deleted():"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_001639f2","line":126,"in_reply_to":"5f7c97a3_06209f47","updated":"2018-05-14 04:20:02.000000000","message":"It probably makes a difference in what the user gets to see (no traceback) for these two exceptions:\n\nERROR: Migration of non root stack aec462f1-f238-4d12-b97c-6d05ca96ec90 is not supported.\n\nvs\n\nERROR: Migration of non root stack aec462f1-f238-4d12-b97c-6d05ca96ec90 is not supported.\nTraceback (most recent call last):\n\n  File \"/opt/stack/heat/heat/common/context.py\", line 409, in wrapped\n    return func(self, ctx, *args, **kwargs)\n\n  File \"/opt/stack/heat/heat/engine/service.py\", line 2213, in migrate_convergence_1\n    raise exception.NotSupported(feature\u003dmsg)\n\nNotSupported: Migration of non root stack aec462f1-f238-4d12-b97c-6d05ca96ec90 is not supported.","commit_id":"abfec544d7938ad8b576e1d0fa78f8a5dca1df00"},{"author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"change_message_id":"5bc40001393850558a975eff8f6762534ebfd735","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        raise Exception(_(\"Stack with id %s can not be found.\")"},{"line_number":124,"context_line":"                        % CONF.command.stack_id)"},{"line_number":125,"context_line":"    except (exception.NotSupported, exception.ActionNotComplete) as ex:"},{"line_number":126,"context_line":"        raise Exception(ex.message)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"def purge_deleted():"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_010ce4a2","line":126,"in_reply_to":"5f7c97a3_4a92fa4d","updated":"2018-05-15 02:12:33.000000000","message":"Yes, it seems traceback[1] is added when doing __str__() for remote exception by messaging middleware.\n\n[1] https://github.com/openstack/oslo.messaging/blob/master/oslo_messaging/_drivers/common.py#L208","commit_id":"abfec544d7938ad8b576e1d0fa78f8a5dca1df00"}],"heat/db/sqlalchemy/api.py":[{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"d6822b097652ddd92400b483cdca9559338f846a","unresolved":false,"context_lines":[{"line_number":606,"context_line":"def stack_get_all_by_owner_id(context, owner_id):"},{"line_number":607,"context_line":"    results \u003d soft_delete_aware_query("},{"line_number":608,"context_line":"        context, models.Stack).filter_by(owner_id\u003downer_id,"},{"line_number":609,"context_line":"                                         backup\u003dFalse).all()"},{"line_number":610,"context_line":"    return results"},{"line_number":611,"context_line":""},{"line_number":612,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_38788e28","line":609,"updated":"2018-05-09 20:27:18.000000000","message":"In theory, stacks that are in a COMPLETE state shouldn\u0027t have any backup stacks. So this is probably unnecessary but harmless.","commit_id":"13065b80061ccc9cd041f6b441d31be9bb21df3f"}],"heat/engine/service.py":[{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"d6822b097652ddd92400b483cdca9559338f846a","unresolved":false,"context_lines":[{"line_number":2213,"context_line":"        if parent_stack.convergence:"},{"line_number":2214,"context_line":"            LOG.info(\"Convergence was already enabled for stack %s\","},{"line_number":2215,"context_line":"                     stack_id)"},{"line_number":2216,"context_line":"            return"},{"line_number":2217,"context_line":"        db_stacks \u003d stack_object.Stack.get_all_by_root_owner_id("},{"line_number":2218,"context_line":"            ctxt, parent_stack.id)"},{"line_number":2219,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_b8001e69","line":2216,"updated":"2018-05-09 20:27:18.000000000","message":"Should we also check that parent_stack.owner_id is None? Otherwise somebody can convert just one stack in the middle of a tree (leaving legacy stacks above and below)... which is something I\u0027m pretty sure we assume can\u0027t happen.","commit_id":"13065b80061ccc9cd041f6b441d31be9bb21df3f"},{"author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"change_message_id":"5125190e252bea31f3a13e6a31ab16b6126b3981","unresolved":false,"context_lines":[{"line_number":2213,"context_line":"        if parent_stack.convergence:"},{"line_number":2214,"context_line":"            LOG.info(\"Convergence was already enabled for stack %s\","},{"line_number":2215,"context_line":"                     stack_id)"},{"line_number":2216,"context_line":"            return"},{"line_number":2217,"context_line":"        db_stacks \u003d stack_object.Stack.get_all_by_root_owner_id("},{"line_number":2218,"context_line":"            ctxt, parent_stack.id)"},{"line_number":2219,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_65adf6e7","line":2216,"in_reply_to":"5f7c97a3_b8001e69","updated":"2018-05-10 03:53:34.000000000","message":"sure","commit_id":"13065b80061ccc9cd041f6b441d31be9bb21df3f"}]}
