)]}'
{"doc/source/cli/nova-manage.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"76bb177f610278e88243b45f1d2051f75c4c3d73","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    that is older than the date provided. Date strings may be fuzzy, such as"},{"line_number":81,"context_line":"    ``Oct 21 2015``. Specifying --verbose will cause information to be printed about"},{"line_number":82,"context_line":"    purged records. Specifying --all-cells will cause the purge to be applied against"},{"line_number":83,"context_line":"    all cell databases. For this to work, the api database connection information"},{"line_number":84,"context_line":"    must be configured. Returns exit code 0 if rows were deleted, 1 if required"},{"line_number":85,"context_line":"    arguments are not provided, 2 if an invalid date is provided, 3 if no data"},{"line_number":86,"context_line":"    was deleted, 4 if the list of cells cannot be obtained."}],"source_content_type":"text/x-rst","patch_set":9,"id":"df7087c5_ac734915","line":83,"range":{"start_line":83,"start_character":28,"end_line":83,"end_character":32},"updated":"2018-03-08 17:25:41.000000000","message":"nit: --all-cells\n\nFor clarity lest someone think that the command in general won\u0027t work without the API database connection information being configured.","commit_id":"b134e5422089d493a52f7b7fc677e3fad3b7b966"}],"nova/cmd/manage.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"34ec662fd717f2ba5e9cf6d8f79522eefd1a23cd","unresolved":false,"context_lines":[{"line_number":583,"context_line":"                print(\u0027%s: %s\u0027 % (identity, msg))"},{"line_number":584,"context_line":""},{"line_number":585,"context_line":"        deleted \u003d 0"},{"line_number":586,"context_line":"        admin_ctxt \u003d context.get_admin_context(read_deleted\u003d\u0027yes\u0027)"},{"line_number":587,"context_line":""},{"line_number":588,"context_line":"        if all_cells:"},{"line_number":589,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"df7087c5_a445b919","line":586,"range":{"start_line":586,"start_character":47,"end_line":586,"end_character":65},"updated":"2018-03-07 21:46:36.000000000","message":"Why do we need this? If you delete a cell mapping record, it\u0027s gone, we don\u0027t have soft delete on those since they are in the API DB.","commit_id":"5ced03e05aa6f1803b2897c294f1e7215fd9ae21"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"34ec662fd717f2ba5e9cf6d8f79522eefd1a23cd","unresolved":false,"context_lines":[{"line_number":562,"context_line":"          help\u003d\u0027Purge all rows in the shadow tables\u0027)"},{"line_number":563,"context_line":"    @args(\u0027--verbose\u0027, dest\u003d\u0027verbose\u0027, action\u003d\u0027store_true\u0027, default\u003dFalse,"},{"line_number":564,"context_line":"          help\u003d\u0027Print information about purged records\u0027)"},{"line_number":565,"context_line":"    @args(\u0027--all-cells\u0027, dest\u003d\u0027all_cells\u0027, action\u003d\u0027store_true\u0027, default\u003dFalse,"},{"line_number":566,"context_line":"          help\u003d\u0027Run against all cell databases\u0027)"},{"line_number":567,"context_line":"    def purge(self, before\u003dNone, purge_all\u003dFalse, verbose\u003dFalse,"},{"line_number":568,"context_line":"              all_cells\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":7,"id":"df7087c5_040265b5","line":565,"updated":"2018-03-07 21:46:36.000000000","message":"This needs to go into the man page along with the new return code.","commit_id":"506a4e51c373f1b66c43a581f364e369787e308a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f8877db92f653c689ffae4ffe46d691a995afc8a","unresolved":false,"context_lines":[{"line_number":562,"context_line":"          help\u003d\u0027Purge all rows in the shadow tables\u0027)"},{"line_number":563,"context_line":"    @args(\u0027--verbose\u0027, dest\u003d\u0027verbose\u0027, action\u003d\u0027store_true\u0027, default\u003dFalse,"},{"line_number":564,"context_line":"          help\u003d\u0027Print information about purged records\u0027)"},{"line_number":565,"context_line":"    @args(\u0027--all-cells\u0027, dest\u003d\u0027all_cells\u0027, action\u003d\u0027store_true\u0027, default\u003dFalse,"},{"line_number":566,"context_line":"          help\u003d\u0027Run against all cell databases\u0027)"},{"line_number":567,"context_line":"    def purge(self, before\u003dNone, purge_all\u003dFalse, verbose\u003dFalse,"},{"line_number":568,"context_line":"              all_cells\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":7,"id":"df7087c5_a44a997d","line":565,"in_reply_to":"df7087c5_040265b5","updated":"2018-03-07 22:16:22.000000000","message":"Ah yep, forgot.","commit_id":"506a4e51c373f1b66c43a581f364e369787e308a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"34ec662fd717f2ba5e9cf6d8f79522eefd1a23cd","unresolved":false,"context_lines":[{"line_number":583,"context_line":"                print(\u0027%s: %s\u0027 % (identity, msg))"},{"line_number":584,"context_line":""},{"line_number":585,"context_line":"        deleted \u003d 0"},{"line_number":586,"context_line":"        admin_ctxt \u003d context.get_admin_context(read_deleted\u003d\u0027yes\u0027)"},{"line_number":587,"context_line":""},{"line_number":588,"context_line":"        if all_cells:"},{"line_number":589,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":7,"id":"df7087c5_24ff69ab","line":586,"range":{"start_line":586,"start_character":47,"end_line":586,"end_character":65},"updated":"2018-03-07 21:46:36.000000000","message":"Why do we need this? If you delete a cell mapping record, it\u0027s gone, we don\u0027t have soft delete on those since they are in the API DB.","commit_id":"506a4e51c373f1b66c43a581f364e369787e308a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f8877db92f653c689ffae4ffe46d691a995afc8a","unresolved":false,"context_lines":[{"line_number":583,"context_line":"                print(\u0027%s: %s\u0027 % (identity, msg))"},{"line_number":584,"context_line":""},{"line_number":585,"context_line":"        deleted \u003d 0"},{"line_number":586,"context_line":"        admin_ctxt \u003d context.get_admin_context(read_deleted\u003d\u0027yes\u0027)"},{"line_number":587,"context_line":""},{"line_number":588,"context_line":"        if all_cells:"},{"line_number":589,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":7,"id":"df7087c5_7f216c9f","line":586,"range":{"start_line":586,"start_character":47,"end_line":586,"end_character":65},"in_reply_to":"df7087c5_24ff69ab","updated":"2018-03-07 22:16:22.000000000","message":"We need it so the child context we yield from target_cell will be read_deleted\u003dyes, otherwise we won\u0027t find the archived records (which all have deleted\u003d1 by definition).","commit_id":"506a4e51c373f1b66c43a581f364e369787e308a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8b50708c8755e2b60be0d73705e2eb5f6a37bd1b","unresolved":false,"context_lines":[{"line_number":583,"context_line":"                print(\u0027%s: %s\u0027 % (identity, msg))"},{"line_number":584,"context_line":""},{"line_number":585,"context_line":"        deleted \u003d 0"},{"line_number":586,"context_line":"        admin_ctxt \u003d context.get_admin_context(read_deleted\u003d\u0027yes\u0027)"},{"line_number":587,"context_line":""},{"line_number":588,"context_line":"        if all_cells:"},{"line_number":589,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":7,"id":"df7087c5_ffc81c75","line":586,"range":{"start_line":586,"start_character":47,"end_line":586,"end_character":65},"in_reply_to":"df7087c5_7f216c9f","updated":"2018-03-07 22:46:37.000000000","message":"But we didn\u0027t need it before this and the purge worked. We\u0027re not going through model_query() anyway so I still don\u0027t see that this is necessary.","commit_id":"506a4e51c373f1b66c43a581f364e369787e308a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"39b3ebc4b0d903f39483e2b5a806e10e22436b90","unresolved":false,"context_lines":[{"line_number":583,"context_line":"                print(\u0027%s: %s\u0027 % (identity, msg))"},{"line_number":584,"context_line":""},{"line_number":585,"context_line":"        deleted \u003d 0"},{"line_number":586,"context_line":"        admin_ctxt \u003d context.get_admin_context(read_deleted\u003d\u0027yes\u0027)"},{"line_number":587,"context_line":""},{"line_number":588,"context_line":"        if all_cells:"},{"line_number":589,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":7,"id":"df7087c5_a8081a28","line":586,"range":{"start_line":586,"start_character":47,"end_line":586,"end_character":65},"in_reply_to":"df7087c5_ffc81c75","updated":"2018-03-08 14:35:05.000000000","message":"Okay, yeah, I think where I got this was reading the archive_deleted_rows patch, intermixed with the archiving functional tests which use a read_deleted\u003dyes context, and then writing my own tests here using such a context. However, those tests are doing so because they\u0027re looking up deleted records post-delete before archiving.","commit_id":"506a4e51c373f1b66c43a581f364e369787e308a"}]}
