)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3d1aff04aec8ef3fbf436a71b836aafc9d8a4797","unresolved":false,"context_lines":[{"line_number":11,"context_line":"this out to perform cells v2 and placement API related"},{"line_number":12,"context_line":"upgrade status checks."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Part of blueprint nova-status-ready-for-upgrade"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I687dd7317703a1bb76c197ebba849ca368c0872e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1a6eadb0_a56dcacd","line":14,"updated":"2016-12-16 01:33:01.000000000","message":"I should probably just change this to blueprint cells-scheduling-interaction and blueprint resource-providers-scheduler-db-filters since it\u0027s really a thing we want for those efforts in Ocata, it doesn\u0027t need it\u0027s own blueprint.","commit_id":"dff14ae49c5121617feee54b6e15d71e2d12f8d9"}],"doc/source/man/index.rst":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"2c3783874f6713c771fb11d1f409e4b5ca95c4c1","unresolved":false,"context_lines":[{"line_number":44,"context_line":"   nova-serialproxy"},{"line_number":45,"context_line":"   nova-spicehtml5proxy"},{"line_number":46,"context_line":"   nova-status"},{"line_number":47,"context_line":"   nova-xvpvncproxy"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a6eadb0_5149b88d","line":47,"updated":"2016-12-19 13:53:03.000000000","message":"UNRELATED!","commit_id":"80163f9492149d2fc7abd65e35967c4e89ed9c38"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"38b1b3349bacca73ab70435da7b4ff9b0b979036","unresolved":false,"context_lines":[{"line_number":44,"context_line":"   nova-serialproxy"},{"line_number":45,"context_line":"   nova-spicehtml5proxy"},{"line_number":46,"context_line":"   nova-status"},{"line_number":47,"context_line":"   nova-xvpvncproxy"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a6eadb0_79805647","line":47,"in_reply_to":"1a6eadb0_5149b88d","updated":"2016-12-19 15:05:46.000000000","message":"I pointed it out in the commit message that I sorted this list. :)","commit_id":"80163f9492149d2fc7abd65e35967c4e89ed9c38"}],"doc/source/man/nova-status.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b89b4f011701c4a7dc05f4de8d30baa97f22def0","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"  **15.0.0 (Ocata)**"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"  * Checks are added for cells v2 so ``nova-status upgrade check`` should be"},{"line_number":78,"context_line":"    run *after* running the ``nova-manage cell_v2 simple_cell_setup``"},{"line_number":79,"context_line":"    command."},{"line_number":80,"context_line":"  * Checks are added for the Placement API such that there is an endpoint in"},{"line_number":81,"context_line":"    the Keystone service catalog, the service is running and the check can"},{"line_number":82,"context_line":"    make a successful request to the endpoint. The command also checks to"},{"line_number":83,"context_line":"    see that there are compute node resource providers checking in with the"},{"line_number":84,"context_line":"    Placement service. More information on the Placement service can be found"},{"line_number":85,"context_line":"    at: `\u003chttp://docs.openstack.org/developer/nova/placement.html\u003e`_"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"SEE ALSO"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a6eadb0_14de77dc","line":85,"range":{"start_line":77,"start_character":2,"end_line":85,"end_character":68},"updated":"2016-12-17 17:39:36.000000000","message":"Maybe we should add these in the later patches that actually add those checks.","commit_id":"80163f9492149d2fc7abd65e35967c4e89ed9c38"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4c69669ff779c653deb0a04d29ec5da259504bcf","unresolved":false,"context_lines":[{"line_number":69,"context_line":"  2) There was an upgrade status check failure that needs to be"},{"line_number":70,"context_line":"     investigated. This should be considered something that stops an"},{"line_number":71,"context_line":"     upgrade."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"  **History of Checks**"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"  **15.0.0 (Ocata)**"}],"source_content_type":"text/x-rst","patch_set":6,"id":"da4df55a_369a7d15","line":72,"updated":"2016-12-22 14:53:25.000000000","message":"You can have a return code of 10) if there was an unpredictable error when executing the command.","commit_id":"a1f3a5946ab703225a74f8e85a068cb4fb20e2ff"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dfc76715f5c40565a3a5a8f938213c4568d95f6c","unresolved":false,"context_lines":[{"line_number":69,"context_line":"  2) There was an upgrade status check failure that needs to be"},{"line_number":70,"context_line":"     investigated. This should be considered something that stops an"},{"line_number":71,"context_line":"     upgrade."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"  **History of Checks**"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"  **15.0.0 (Ocata)**"}],"source_content_type":"text/x-rst","patch_set":6,"id":"da4df55a_ac10da4f","line":72,"in_reply_to":"da4df55a_369a7d15","updated":"2016-12-22 14:59:17.000000000","message":"Ah good point, I can note that.","commit_id":"a1f3a5946ab703225a74f8e85a068cb4fb20e2ff"}],"nova/cmd/status.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"357b6b513dd21b7471bd0e1c7b6cb330f3f86669","unresolved":false,"context_lines":[{"line_number":106,"context_line":"            if result \u003e return_code:"},{"line_number":107,"context_line":"                return_code \u003d result"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        t \u003d prettytable.PrettyTable([_(\u0027Check\u0027), _(\u0027Result\u0027)])"},{"line_number":110,"context_line":"        t.align \u003d \u0027l\u0027"},{"line_number":111,"context_line":"        for name in sorted(check_results.keys()):"},{"line_number":112,"context_line":"            result \u003d check_results[name]"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6eadb0_44af787c","line":109,"updated":"2016-12-16 16:21:29.000000000","message":"Dan would prefer to see something like this:\n\nhttp://paste.openstack.org/show/592658/\n\nWhere the check/result/details are in the summary table at the end.","commit_id":"083e5baf1d1daf19a87519722e028f00f6e995e0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6303d1648e974ab73e2ba4c504059da53a0ab8f5","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        # compute nodes in the database."},{"line_number":98,"context_line":"        return UpgradeCheckResult(UpgradeCheckCode.SUCCESS)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    # The format of the check functions is to return one of the UPGRADE_CHECK_*"},{"line_number":101,"context_line":"    # enum codes defined in this module. If the check hits warnings or failures"},{"line_number":102,"context_line":"    # then those should be printed out in the check itself. The summary will"},{"line_number":103,"context_line":"    # be rolled up at the end of the check() function."}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6eadb0_e2c94f27","line":100,"range":{"start_line":100,"start_character":64,"end_line":100,"end_character":79},"updated":"2016-12-16 19:18:03.000000000","message":"This is out of date.","commit_id":"196a2dadc279494144e49784e6c7345d45700406"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6303d1648e974ab73e2ba4c504059da53a0ab8f5","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        return UpgradeCheckResult(UpgradeCheckCode.SUCCESS)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    # The format of the check functions is to return one of the UPGRADE_CHECK_*"},{"line_number":101,"context_line":"    # enum codes defined in this module. If the check hits warnings or failures"},{"line_number":102,"context_line":"    # then those should be printed out in the check itself. The summary will"},{"line_number":103,"context_line":"    # be rolled up at the end of the check() function."},{"line_number":104,"context_line":"    _upgrade_checks \u003d {"},{"line_number":105,"context_line":"        # Added in Ocata"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6eadb0_62de1fde","line":102,"range":{"start_line":101,"start_character":41,"end_line":102,"end_character":60},"updated":"2016-12-16 19:18:03.000000000","message":"This is also out of date.","commit_id":"196a2dadc279494144e49784e6c7345d45700406"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ac0e5fcd1c7b0b2b23af4f29ac5258365dddf4b8","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        # | Details: There is no placement-api endpoint in the |"},{"line_number":152,"context_line":"        # |          service catalog.                          |"},{"line_number":153,"context_line":"        # +----------------------------------------------------+"},{"line_number":154,"context_line":"        t \u003d prettytable.PrettyTable([_(\u0027Uprade Check Results\u0027)],"},{"line_number":155,"context_line":"                                    hrules\u003dprettytable.ALL)"},{"line_number":156,"context_line":"        t.align \u003d \u0027l\u0027"},{"line_number":157,"context_line":"        for name, result in check_results:"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a6eadb0_a745a443","line":154,"range":{"start_line":154,"start_character":40,"end_line":154,"end_character":46},"updated":"2016-12-16 21:10:14.000000000","message":"Double points!","commit_id":"b2fd5b29d7fadd0a814e8341db3533fec151a7bd"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"835067ab14173986d50dc8e11c2bdb6088b49bd4","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        # | Details: There is no placement-api endpoint in the |"},{"line_number":152,"context_line":"        # |          service catalog.                          |"},{"line_number":153,"context_line":"        # +----------------------------------------------------+"},{"line_number":154,"context_line":"        t \u003d prettytable.PrettyTable([_(\u0027Uprade Check Results\u0027)],"},{"line_number":155,"context_line":"                                    hrules\u003dprettytable.ALL)"},{"line_number":156,"context_line":"        t.align \u003d \u0027l\u0027"},{"line_number":157,"context_line":"        for name, result in check_results:"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a6eadb0_27ad149b","line":154,"range":{"start_line":154,"start_character":40,"end_line":154,"end_character":46},"in_reply_to":"1a6eadb0_a745a443","updated":"2016-12-16 21:19:09.000000000","message":"I was going for pig latin...","commit_id":"b2fd5b29d7fadd0a814e8341db3533fec151a7bd"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b89b4f011701c4a7dc05f4de8d30baa97f22def0","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    schema migrations."},{"line_number":86,"context_line":"    \"\"\""},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def _check_cellsv2(self):"},{"line_number":89,"context_line":"        # TODO(mriedem): perform the same checks as the 030_require_cell_setup"},{"line_number":90,"context_line":"        # API DB migration."},{"line_number":91,"context_line":"        return UpgradeCheckResult(UpgradeCheckCode.SUCCESS)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def _check_placement(self):"},{"line_number":94,"context_line":"        # TODO(mriedem): check to see that the placement API service is running"},{"line_number":95,"context_line":"        # and we can connect to it, and that the number of resource providers"},{"line_number":96,"context_line":"        # in the placement service is greater than or equal to the number of"},{"line_number":97,"context_line":"        # compute nodes in the database."},{"line_number":98,"context_line":"        return UpgradeCheckResult(UpgradeCheckCode.SUCCESS)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    # The format of the check functions is to return an UpgradeCheckResult"},{"line_number":101,"context_line":"    # object with the appropriate UpgradeCheckCode and details set. If the"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a6eadb0_f4d2dbcf","line":98,"range":{"start_line":88,"start_character":4,"end_line":98,"end_character":59},"updated":"2016-12-17 17:39:36.000000000","message":"I wonder if I should pull these out of this patch and then we can add them in as needed in the series. They were initially just stubs but this would be kind of weird to merge it this way if someone tried to use this before the other things were in.","commit_id":"80163f9492149d2fc7abd65e35967c4e89ed9c38"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"2c3783874f6713c771fb11d1f409e4b5ca95c4c1","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    schema migrations."},{"line_number":86,"context_line":"    \"\"\""},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def _check_cellsv2(self):"},{"line_number":89,"context_line":"        # TODO(mriedem): perform the same checks as the 030_require_cell_setup"},{"line_number":90,"context_line":"        # API DB migration."},{"line_number":91,"context_line":"        return UpgradeCheckResult(UpgradeCheckCode.SUCCESS)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def _check_placement(self):"},{"line_number":94,"context_line":"        # TODO(mriedem): check to see that the placement API service is running"},{"line_number":95,"context_line":"        # and we can connect to it, and that the number of resource providers"},{"line_number":96,"context_line":"        # in the placement service is greater than or equal to the number of"},{"line_number":97,"context_line":"        # compute nodes in the database."},{"line_number":98,"context_line":"        return UpgradeCheckResult(UpgradeCheckCode.SUCCESS)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    # The format of the check functions is to return an UpgradeCheckResult"},{"line_number":101,"context_line":"    # object with the appropriate UpgradeCheckCode and details set. If the"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a6eadb0_711cf477","line":98,"range":{"start_line":88,"start_character":4,"end_line":98,"end_character":59},"in_reply_to":"1a6eadb0_f4d2dbcf","updated":"2016-12-19 13:53:03.000000000","message":"meh, it\u0027s fine, we\u0027re going to merge the rest of it pretty quick I think.","commit_id":"80163f9492149d2fc7abd65e35967c4e89ed9c38"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4c69669ff779c653deb0a04d29ec5da259504bcf","unresolved":false,"context_lines":[{"line_number":36,"context_line":"CONF \u003d nova.conf.CONF"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"class UpgradeCheckCode(enum.IntEnum):"},{"line_number":40,"context_line":"    \"\"\"These are the status codes for the nova-status upgrade check command"},{"line_number":41,"context_line":"    and internal check commands."},{"line_number":42,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"da4df55a_793a3638","line":39,"range":{"start_line":39,"start_character":23,"end_line":39,"end_character":35},"updated":"2016-12-22 14:53:25.000000000","message":"do we really need to use the enum package for that ?\n\nWe could maybe just use a NamedTuple for that, no ?","commit_id":"a1f3a5946ab703225a74f8e85a068cb4fb20e2ff"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dfc76715f5c40565a3a5a8f938213c4568d95f6c","unresolved":false,"context_lines":[{"line_number":36,"context_line":"CONF \u003d nova.conf.CONF"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"class UpgradeCheckCode(enum.IntEnum):"},{"line_number":40,"context_line":"    \"\"\"These are the status codes for the nova-status upgrade check command"},{"line_number":41,"context_line":"    and internal check commands."},{"line_number":42,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"da4df55a_4c7cce72","line":39,"range":{"start_line":39,"start_character":23,"end_line":39,"end_character":35},"in_reply_to":"da4df55a_793a3638","updated":"2016-12-22 14:59:17.000000000","message":"Maybe, but this really is an enum, and we can treat it as such, so I\u0027d really rather just do that. Originally I was doing some int constants but that wasn\u0027t very clean when I started adding validation in for those constants and mapping them. Using enums just feels right for this.\n\nLike CSC 101 right.","commit_id":"a1f3a5946ab703225a74f8e85a068cb4fb20e2ff"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4c69669ff779c653deb0a04d29ec5da259504bcf","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        # Added in Ocata"},{"line_number":107,"context_line":"        _(\u0027Cells v2\u0027): _check_cellsv2,"},{"line_number":108,"context_line":"        # Added in Ocata"},{"line_number":109,"context_line":"        _(\u0027Placement API\u0027): _check_placement,"},{"line_number":110,"context_line":"    }"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def _get_details(self, upgrade_check_result):"}],"source_content_type":"text/x-python","patch_set":6,"id":"da4df55a_3617dda4","line":109,"updated":"2016-12-22 14:53:25.000000000","message":"In theory, we could start this framework without those 2 calls since we update them later in the series, but that\u0027s a nit.","commit_id":"a1f3a5946ab703225a74f8e85a068cb4fb20e2ff"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dfc76715f5c40565a3a5a8f938213c4568d95f6c","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        # Added in Ocata"},{"line_number":107,"context_line":"        _(\u0027Cells v2\u0027): _check_cellsv2,"},{"line_number":108,"context_line":"        # Added in Ocata"},{"line_number":109,"context_line":"        _(\u0027Placement API\u0027): _check_placement,"},{"line_number":110,"context_line":"    }"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def _get_details(self, upgrade_check_result):"}],"source_content_type":"text/x-python","patch_set":6,"id":"da4df55a_2c794a94","line":109,"in_reply_to":"da4df55a_3617dda4","updated":"2016-12-22 14:59:17.000000000","message":"Yeah I noted that myself in an earlier patch set review on this, but no one seemed to mind either way as it\u0027s all going to roll out together probably.","commit_id":"a1f3a5946ab703225a74f8e85a068cb4fb20e2ff"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4c69669ff779c653deb0a04d29ec5da259504bcf","unresolved":false,"context_lines":[{"line_number":206,"context_line":"    except Exception:"},{"line_number":207,"context_line":"        print(_(\u0027Error:\\n%s\u0027) % traceback.format_exc())"},{"line_number":208,"context_line":"        # This is 10 so it\u0027s not confused with the upgrade check exit codes."},{"line_number":209,"context_line":"        return 10"}],"source_content_type":"text/x-python","patch_set":6,"id":"da4df55a_36f35d75","line":209,"range":{"start_line":209,"start_character":15,"end_line":209,"end_character":17},"updated":"2016-12-22 14:53:25.000000000","message":"nit: I tend to prefer 255 as a return code like this but meh.","commit_id":"a1f3a5946ab703225a74f8e85a068cb4fb20e2ff"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4a82571e7492ee214d893d614309363faf42d12e","unresolved":false,"context_lines":[{"line_number":206,"context_line":"    except Exception:"},{"line_number":207,"context_line":"        print(_(\u0027Error:\\n%s\u0027) % traceback.format_exc())"},{"line_number":208,"context_line":"        # This is 10 so it\u0027s not confused with the upgrade check exit codes."},{"line_number":209,"context_line":"        return 10"}],"source_content_type":"text/x-python","patch_set":6,"id":"da4df55a_78305e57","line":209,"range":{"start_line":209,"start_character":15,"end_line":209,"end_character":17},"in_reply_to":"da4df55a_2ca06af4","updated":"2016-12-22 23:05:29.000000000","message":"https://review.openstack.org/#/c/414329/","commit_id":"a1f3a5946ab703225a74f8e85a068cb4fb20e2ff"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dfc76715f5c40565a3a5a8f938213c4568d95f6c","unresolved":false,"context_lines":[{"line_number":206,"context_line":"    except Exception:"},{"line_number":207,"context_line":"        print(_(\u0027Error:\\n%s\u0027) % traceback.format_exc())"},{"line_number":208,"context_line":"        # This is 10 so it\u0027s not confused with the upgrade check exit codes."},{"line_number":209,"context_line":"        return 10"}],"source_content_type":"text/x-python","patch_set":6,"id":"da4df55a_2ca06af4","line":209,"range":{"start_line":209,"start_character":15,"end_line":209,"end_character":17},"in_reply_to":"da4df55a_36f35d75","updated":"2016-12-22 14:59:17.000000000","message":"I could change to that, that\u0027s a good point and something which jogs my memory from some return codes from a CLI I worked on in a different project in a different life.","commit_id":"a1f3a5946ab703225a74f8e85a068cb4fb20e2ff"}],"nova/cmd/status_check.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"bfb3889c4c5ac050b0f2c433b12852a697e03835","unresolved":false,"context_lines":[{"line_number":83,"context_line":"                # This means there was a problem with the check and the"},{"line_number":84,"context_line":"                # function returned a message that needs investigation."},{"line_number":85,"context_line":"                return_code \u003d 1"},{"line_number":86,"context_line":"                check_results[name] \u003d result"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        t \u003d prettytable.PrettyTable([_(\u0027Check\u0027), _(\u0027Result\u0027)])"},{"line_number":89,"context_line":"        t.align \u003d \u0027l\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6eadb0_0b585555","line":86,"updated":"2016-12-15 22:23:03.000000000","message":"I guess we\u0027re okay with the result being potentially a paragraph of text?\n\nI was kinda thinking about returning more than just text and boolean, but something like \"green\", \"yellow\", \"red\". Yellow meaning a thing we have identified that may be a problem because we don\u0027t have enough information or can\u0027t guess (i.e. 50 resource provider records, 100 compute node records). Red would mean \"we checked and something is definitely wrong (i.e. can\u0027t hit placement).\n\nMaybe that\u0027s overthinking it a little, but that\u0027s what was in my head.","commit_id":"dff14ae49c5121617feee54b6e15d71e2d12f8d9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b5180ec216e100d10ee2dbea41a3c4131a8ba6c9","unresolved":false,"context_lines":[{"line_number":83,"context_line":"                # This means there was a problem with the check and the"},{"line_number":84,"context_line":"                # function returned a message that needs investigation."},{"line_number":85,"context_line":"                return_code \u003d 1"},{"line_number":86,"context_line":"                check_results[name] \u003d result"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        t \u003d prettytable.PrettyTable([_(\u0027Check\u0027), _(\u0027Result\u0027)])"},{"line_number":89,"context_line":"        t.align \u003d \u0027l\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6eadb0_0e778302","line":86,"in_reply_to":"1a6eadb0_0b585555","updated":"2016-12-15 22:50:42.000000000","message":"It will need some thought, as I\u0027m seeing with the cells v2 check added on top of this patch. I had to cut down the message that was in the 030 API DB migration because it would have blown up the results.\n\nWe could do something where we just print \u0027pass\u0027 or \u0027fail\u0027 and if it\u0027s \u0027fail\u0027 you need to be looking for messages dumped out from the actual check that runs before the summary table. Maybe instead of pass/fail it\u0027s \"SUCCESS\", \"WARNING\", \"ERROR\"?","commit_id":"dff14ae49c5121617feee54b6e15d71e2d12f8d9"}],"nova/tests/unit/cmd/test_status.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4c69669ff779c653deb0a04d29ec5da259504bcf","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        self.assertEqual(expected, self.output.getvalue())"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    def test_check_failure(self):"},{"line_number":146,"context_line":"        # make the error details over 60 characters so we test the wrapping"},{"line_number":147,"context_line":"        error_details \u003d \u0027go back to bed\u0027 + \u0027!\u0027 * 60"},{"line_number":148,"context_line":"        fake_checks \u003d {"},{"line_number":149,"context_line":"            \u0027good\u0027: mock.Mock(return_value\u003dstatus.UpgradeCheckResult("}],"source_content_type":"text/x-python","patch_set":6,"id":"da4df55a_3636fd03","line":146,"range":{"start_line":146,"start_character":55,"end_line":146,"end_character":75},"updated":"2016-12-22 14:53:25.000000000","message":"\\o/","commit_id":"a1f3a5946ab703225a74f8e85a068cb4fb20e2ff"}],"setup.cfg":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"bfb3889c4c5ac050b0f2c433b12852a697e03835","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    nova-scheduler \u003d nova.cmd.scheduler:main"},{"line_number":68,"context_line":"    nova-serialproxy \u003d nova.cmd.serialproxy:main"},{"line_number":69,"context_line":"    nova-spicehtml5proxy \u003d nova.cmd.spicehtml5proxy:main"},{"line_number":70,"context_line":"    nova-status \u003d nova.cmd.status_check:main"},{"line_number":71,"context_line":"    nova-xvpvncproxy \u003d nova.cmd.xvpvncproxy:main"},{"line_number":72,"context_line":"wsgi_scripts \u003d"},{"line_number":73,"context_line":"    nova-placement-api \u003d nova.api.openstack.placement.wsgi:init_application"}],"source_content_type":"text/x-ttcn-cfg","patch_set":1,"id":"1a6eadb0_6b1e2971","line":70,"updated":"2016-12-15 22:23:03.000000000","message":"I think I would prefer to change \"status_check\" to \"status\" to match everything else. I came here expecting to -1 for the name becoming \"nova-status_check\" and complaining about the mixed use of dash and underscore. nova-status is good, but I think the filename should match.","commit_id":"dff14ae49c5121617feee54b6e15d71e2d12f8d9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b5180ec216e100d10ee2dbea41a3c4131a8ba6c9","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    nova-scheduler \u003d nova.cmd.scheduler:main"},{"line_number":68,"context_line":"    nova-serialproxy \u003d nova.cmd.serialproxy:main"},{"line_number":69,"context_line":"    nova-spicehtml5proxy \u003d nova.cmd.spicehtml5proxy:main"},{"line_number":70,"context_line":"    nova-status \u003d nova.cmd.status_check:main"},{"line_number":71,"context_line":"    nova-xvpvncproxy \u003d nova.cmd.xvpvncproxy:main"},{"line_number":72,"context_line":"wsgi_scripts \u003d"},{"line_number":73,"context_line":"    nova-placement-api \u003d nova.api.openstack.placement.wsgi:init_application"}],"source_content_type":"text/x-ttcn-cfg","patch_set":1,"id":"1a6eadb0_8e59d390","line":70,"in_reply_to":"1a6eadb0_6b1e2971","updated":"2016-12-15 22:50:42.000000000","message":"This was just copying the policy_check module, which I lifted a lot of the basic infra from, but I can change the module name to \u0027status\u0027 instead.","commit_id":"dff14ae49c5121617feee54b6e15d71e2d12f8d9"}]}
