)]}'
{"nova/cmd/manage.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"56b0967b09bb62fae8e6b861c4b278c0d51d7e57","unresolved":false,"context_lines":[{"line_number":934,"context_line":"            if not unlimited:"},{"line_number":935,"context_line":"                break"},{"line_number":936,"context_line":""},{"line_number":937,"context_line":"        t \u003d prettytable.PrettyTable([\u0027Migration\u0027, \u0027Total Needed\u0027, \u0027Completed\u0027])"},{"line_number":938,"context_line":"        for name, info in migration_info.items():"},{"line_number":939,"context_line":"            t.add_row([name, info[0], info[1]])"},{"line_number":940,"context_line":"        print(t)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a8ec9b2_64b6b7dd","line":937,"range":{"start_line":937,"start_character":37,"end_line":937,"end_character":77},"updated":"2016-09-21 02:05:55.000000000","message":"We may want to mark these for translation...","commit_id":"6d400fb53345eb5c3ab16e59cae1c068b310bfbf"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"23858655babfd64bb3d3db1bbc326c9293dfbb1e","unresolved":false,"context_lines":[{"line_number":934,"context_line":"            if not unlimited:"},{"line_number":935,"context_line":"                break"},{"line_number":936,"context_line":""},{"line_number":937,"context_line":"        t \u003d prettytable.PrettyTable([\u0027Migration\u0027, \u0027Total Needed\u0027, \u0027Completed\u0027])"},{"line_number":938,"context_line":"        for name, info in migration_info.items():"},{"line_number":939,"context_line":"            t.add_row([name, info[0], info[1]])"},{"line_number":940,"context_line":"        print(t)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a8bc5a2_8e233905","line":937,"range":{"start_line":937,"start_character":37,"end_line":937,"end_character":77},"in_reply_to":"7a8ec9b2_64b6b7dd","updated":"2016-09-22 12:57:56.000000000","message":"+1 on the translation of those headings.","commit_id":"6d400fb53345eb5c3ab16e59cae1c068b310bfbf"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"1f39d21ad406d6fc3314b2b7c48ef1ed95ed2dda","unresolved":false,"context_lines":[{"line_number":936,"context_line":""},{"line_number":937,"context_line":"        t \u003d prettytable.PrettyTable([\u0027Migration\u0027, \u0027Total Needed\u0027, \u0027Completed\u0027])"},{"line_number":938,"context_line":"        for name, info in migration_info.items():"},{"line_number":939,"context_line":"            t.add_row([name, info[0], info[1]])"},{"line_number":940,"context_line":"        print(t)"},{"line_number":941,"context_line":""},{"line_number":942,"context_line":"        return ran and 1 or 0"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a8ec9b2_9a6ebec7","line":939,"range":{"start_line":939,"start_character":11,"end_line":939,"end_character":47},"updated":"2016-09-21 03:00:08.000000000","message":"After checking the migration method \nhttps://github.com/openstack/nova/blob/master/nova/db/sqlalchemy/api.py#L6442\n\nThe \u0027Total Needed\u0027 basically is equal with the max_count. And the Completed is basically same value.\n\n\nThe reason is the db filter is limited by the max_count https://github.com/openstack/nova/blob/master/nova/db/sqlalchemy/api.py#L6449\n\nAnd the completed count in the loop https://github.com/openstack/nova/blob/master/nova/db/sqlalchemy/api.py#L6456\n\nSo not sure those info is useful for user. They may want to know the total needed out of the limit max_count. \n\nAnother idea is maybe we should add parameter \u0027--dry-run\u0027, then user can just check the \u0027total\u0027 number. But yes, user can just specific the max_count\u003d1, then get similar thing.","commit_id":"6d400fb53345eb5c3ab16e59cae1c068b310bfbf"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"cbb0f999af564b4e9596b3818ae217507e427ba8","unresolved":false,"context_lines":[{"line_number":936,"context_line":""},{"line_number":937,"context_line":"        t \u003d prettytable.PrettyTable([\u0027Migration\u0027, \u0027Total Needed\u0027, \u0027Completed\u0027])"},{"line_number":938,"context_line":"        for name, info in migration_info.items():"},{"line_number":939,"context_line":"            t.add_row([name, info[0], info[1]])"},{"line_number":940,"context_line":"        print(t)"},{"line_number":941,"context_line":""},{"line_number":942,"context_line":"        return ran and 1 or 0"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a8ec9b2_63e03f97","line":939,"range":{"start_line":939,"start_character":11,"end_line":939,"end_character":47},"in_reply_to":"7a8ec9b2_1a01aa06","updated":"2016-09-21 15:16:18.000000000","message":"Maybe add --dry-run can help user more. User can add execute with --dry-run --max-count\u003d10000, to see how much records need to migrate.","commit_id":"6d400fb53345eb5c3ab16e59cae1c068b310bfbf"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ee352c33a558df9634b7ed55d6554821ec00f5ef","unresolved":false,"context_lines":[{"line_number":936,"context_line":""},{"line_number":937,"context_line":"        t \u003d prettytable.PrettyTable([\u0027Migration\u0027, \u0027Total Needed\u0027, \u0027Completed\u0027])"},{"line_number":938,"context_line":"        for name, info in migration_info.items():"},{"line_number":939,"context_line":"            t.add_row([name, info[0], info[1]])"},{"line_number":940,"context_line":"        print(t)"},{"line_number":941,"context_line":""},{"line_number":942,"context_line":"        return ran and 1 or 0"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a8ec9b2_1a01aa06","line":939,"range":{"start_line":939,"start_character":11,"end_line":939,"end_character":47},"in_reply_to":"7a8ec9b2_9a6ebec7","updated":"2016-09-21 13:34:47.000000000","message":"Yeah, total is capped by max_count, but unless we specifically query for the actual max_count, we can\u0027t really know that.\n\nThis is really just intended to provide the user some visibility that there are things to be migrated, some progress along the way, and be able to visually see when it\u0027s done.","commit_id":"6d400fb53345eb5c3ab16e59cae1c068b310bfbf"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"56b0967b09bb62fae8e6b861c4b278c0d51d7e57","unresolved":false,"context_lines":[{"line_number":937,"context_line":"        t \u003d prettytable.PrettyTable([\u0027Migration\u0027, \u0027Total Needed\u0027, \u0027Completed\u0027])"},{"line_number":938,"context_line":"        for name, info in migration_info.items():"},{"line_number":939,"context_line":"            t.add_row([name, info[0], info[1]])"},{"line_number":940,"context_line":"        print(t)"},{"line_number":941,"context_line":""},{"line_number":942,"context_line":"        return ran and 1 or 0"},{"line_number":943,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7a8ec9b2_c4386b40","line":940,"updated":"2016-09-21 02:05:55.000000000","message":"How hard would it be to test this with some fake values to make sure the table shows up how we expect, say with like 2 migration methods where one is complete and one isn\u0027t.","commit_id":"6d400fb53345eb5c3ab16e59cae1c068b310bfbf"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ee352c33a558df9634b7ed55d6554821ec00f5ef","unresolved":false,"context_lines":[{"line_number":937,"context_line":"        t \u003d prettytable.PrettyTable([\u0027Migration\u0027, \u0027Total Needed\u0027, \u0027Completed\u0027])"},{"line_number":938,"context_line":"        for name, info in migration_info.items():"},{"line_number":939,"context_line":"            t.add_row([name, info[0], info[1]])"},{"line_number":940,"context_line":"        print(t)"},{"line_number":941,"context_line":""},{"line_number":942,"context_line":"        return ran and 1 or 0"},{"line_number":943,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7a8ec9b2_faa79e4d","line":940,"in_reply_to":"7a8ec9b2_c4386b40","updated":"2016-09-21 13:34:47.000000000","message":"If you look at the unit test output you\u0027ll see what it looks like.","commit_id":"6d400fb53345eb5c3ab16e59cae1c068b310bfbf"}],"nova/tests/unit/test_nova_manage.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1965791eaa102bac7346b71b4dc27c84f507492e","unresolved":false,"context_lines":[{"line_number":483,"context_line":"        mock_db_archive.assert_called_once_with(20)"},{"line_number":484,"context_line":"        output \u003d sys.stdout.getvalue()"},{"line_number":485,"context_line":"        if verbose:"},{"line_number":486,"context_line":"            expected \u003d \u0027\u0027\u0027\\"},{"line_number":487,"context_line":"+-----------+-------------------------+"},{"line_number":488,"context_line":"| Table     | Number of Rows Archived |"},{"line_number":489,"context_line":"+-----------+-------------------------+"},{"line_number":490,"context_line":"| consoles  | 5                       |"},{"line_number":491,"context_line":"| instances | 10                      |"},{"line_number":492,"context_line":"+-----------+-------------------------+"},{"line_number":493,"context_line":"\u0027\u0027\u0027"},{"line_number":494,"context_line":"            self.assertEqual(expected, output)"},{"line_number":495,"context_line":"        else:"},{"line_number":496,"context_line":"            self.assertEqual(0, len(output))"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a8bc5a2_4d0cce94","line":493,"range":{"start_line":486,"start_character":12,"end_line":493,"end_character":3},"updated":"2016-09-22 13:50:54.000000000","message":"To be clear about my comment about the test for the table output, I was expecting something more like this, that actually tested the table output is what we expect.","commit_id":"6d400fb53345eb5c3ab16e59cae1c068b310bfbf"}]}
