)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"db69ab27ecdc3152f1aa5f973f8c8240d98b60a0","unresolved":false,"context_lines":[{"line_number":18,"context_line":"This is a community-wide story for Stein [1]."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Story: 2003657"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"[1] https://governance.openstack.org/tc/goals/stein/upgrade-checkers.html"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Change-Id: I799602caa4029d67f59307bf1ca0d1e8f254d415"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3f79a3b5_7460c8a5","line":21,"updated":"2018-09-21 20:18:06.000000000","message":"Add Task: 26142","commit_id":"622f20415a158b9b9563b7b407ff3120a162874f"}],"doc/source/cli/index.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d08865f8b371626954a6633ecd57c6012a8a6318","unresolved":false,"context_lines":[{"line_number":13,"context_line":"monasca_db"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":"CLI for Monasca database management."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"monasca_status"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3f79a3b5_ebfe4e05","line":16,"updated":"2018-11-26 14:57:22.000000000","message":"nit: could leave a TODO to add more details to the monasca_db command.\n\nAlso, is it \"monasca_db\" with the underscore? Or \"monasca db\"?","commit_id":"296839a0b30101f77ae0f9ae604c8ba6be4da054"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"e7ea474e281f4016c74d0540f3dd259923726df6","unresolved":false,"context_lines":[{"line_number":15,"context_line":"CLI for Monasca database management."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"monasca_status"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":"CLI for checking the status of Monasca."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3f79a3b5_f83610df","line":18,"range":{"start_line":18,"start_character":7,"end_line":18,"end_character":8},"updated":"2018-11-12 16:04:33.000000000","message":"Nit: From the entry point it looks like this should be a hyphen.","commit_id":"296839a0b30101f77ae0f9ae604c8ba6be4da054"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d08865f8b371626954a6633ecd57c6012a8a6318","unresolved":false,"context_lines":[{"line_number":15,"context_line":"CLI for Monasca database management."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"monasca_status"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":"CLI for checking the status of Monasca."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3f79a3b5_a6facb0d","line":18,"range":{"start_line":18,"start_character":0,"end_line":18,"end_character":14},"updated":"2018-11-26 14:57:22.000000000","message":"Should be \"monasca-status\" right?","commit_id":"296839a0b30101f77ae0f9ae604c8ba6be4da054"},{"author":{"_account_id":10311,"name":"Joseph Davis","email":"joseph.davis@suse.com","username":"joadavis"},"change_message_id":"33e4c58d91887868a092d46ba70a65fa4d1e8afa","unresolved":false,"context_lines":[{"line_number":15,"context_line":"CLI for Monasca database management."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"monasca_status"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":"CLI for checking the status of Monasca."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3f79a3b5_3356e95e","line":18,"range":{"start_line":18,"start_character":7,"end_line":18,"end_character":8},"in_reply_to":"3f79a3b5_f83610df","updated":"2018-11-12 19:25:27.000000000","message":"Good catch. The standard is \u003cproject\u003e-status.  The _ must have snuck in from the monasca_db entry.","commit_id":"296839a0b30101f77ae0f9ae604c8ba6be4da054"}],"monasca_api/cmd/status.py":[{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"e7ea474e281f4016c74d0540f3dd259923726df6","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"def main():"},{"line_number":56,"context_line":"    return upgradecheck.main("},{"line_number":57,"context_line":"        cfg.CONF, project\u003d\u0027monasca-api\u0027, upgrade_command\u003dChecks())"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"if __name__ \u003d\u003d \u0027__main__\u0027:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_18674cee","line":57,"range":{"start_line":57,"start_character":27,"end_line":57,"end_character":38},"updated":"2018-11-12 16:04:33.000000000","message":"Should this just be \u0027monasca\u0027 and then we put all the checks for all services in the monasca-api repo?","commit_id":"296839a0b30101f77ae0f9ae604c8ba6be4da054"},{"author":{"_account_id":10311,"name":"Joseph Davis","email":"joseph.davis@suse.com","username":"joadavis"},"change_message_id":"33e4c58d91887868a092d46ba70a65fa4d1e8afa","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"def main():"},{"line_number":56,"context_line":"    return upgradecheck.main("},{"line_number":57,"context_line":"        cfg.CONF, project\u003d\u0027monasca-api\u0027, upgrade_command\u003dChecks())"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"if __name__ \u003d\u003d \u0027__main__\u0027:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_33a589b3","line":57,"range":{"start_line":57,"start_character":27,"end_line":57,"end_character":38},"in_reply_to":"3f79a3b5_18674cee","updated":"2018-11-12 19:25:27.000000000","message":"Good point. I\u0027d like this upgrade check to be for all monasca services (at least the ones configured on the node this status.py runs on).  We can split out separate services if needed in the future.","commit_id":"296839a0b30101f77ae0f9ae604c8ba6be4da054"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5dc2e5d12736631ae23b5e419c3b4d9d24666e53","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from oslo_upgradecheck import upgradecheck"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"def _(message):"},{"line_number":27,"context_line":"    # TODO(joadavis): simplified localization, Monasca not using oslo_i18n"},{"line_number":28,"context_line":"    return message"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class Checks(upgradecheck.UpgradeCommands):"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_cf638917","line":28,"range":{"start_line":26,"start_character":0,"end_line":28,"end_character":18},"updated":"2018-11-26 14:59:03.000000000","message":"Why even do this? If you don\u0027t support localization, just don\u0027t use _().","commit_id":"22be5aa57fae08ca5a43393a5b94af7b2e65ce17"},{"author":{"_account_id":10311,"name":"Joseph Davis","email":"joseph.davis@suse.com","username":"joadavis"},"change_message_id":"d05e67a4750ad1d151b7d3635fb4e716ae05b84d","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from oslo_upgradecheck import upgradecheck"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"def _(message):"},{"line_number":27,"context_line":"    # TODO(joadavis): simplified localization, Monasca not using oslo_i18n"},{"line_number":28,"context_line":"    return message"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class Checks(upgradecheck.UpgradeCommands):"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_66893ac6","line":28,"range":{"start_line":26,"start_character":0,"end_line":28,"end_character":18},"in_reply_to":"3f79a3b5_cf638917","updated":"2018-11-26 18:40:28.000000000","message":"I was trying to stay consistent with the other OpenStack service upgrace check implementations.  Some consistency across OpenStack would be nice. :)","commit_id":"22be5aa57fae08ca5a43393a5b94af7b2e65ce17"}],"releasenotes/notes/add-monasca-status-upgrade-check-c37e6910c2eb0150.yaml":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5dc2e5d12736631ae23b5e419c3b4d9d24666e53","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Added new tool ``monasca-status upgrade check``."},{"line_number":5,"context_line":"    New framework for ``monasca-status upgrade check`` command is added."},{"line_number":6,"context_line":"    This framework allows adding various checks which can be run before a"},{"line_number":7,"context_line":"    Monasca upgrade to ensure if the upgrade can be performed safely."},{"line_number":8,"context_line":"upgrade:"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"3f79a3b5_8f7111e2","line":5,"range":{"start_line":4,"start_character":4,"end_line":5,"end_character":72},"updated":"2018-11-26 14:59:03.000000000","message":"This is a bit redundant.","commit_id":"22be5aa57fae08ca5a43393a5b94af7b2e65ce17"},{"author":{"_account_id":10311,"name":"Joseph Davis","email":"joseph.davis@suse.com","username":"joadavis"},"change_message_id":"d05e67a4750ad1d151b7d3635fb4e716ae05b84d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Added new tool ``monasca-status upgrade check``."},{"line_number":5,"context_line":"    New framework for ``monasca-status upgrade check`` command is added."},{"line_number":6,"context_line":"    This framework allows adding various checks which can be run before a"},{"line_number":7,"context_line":"    Monasca upgrade to ensure if the upgrade can be performed safely."},{"line_number":8,"context_line":"upgrade:"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"3f79a3b5_46619e0f","line":5,"range":{"start_line":4,"start_character":4,"end_line":5,"end_character":72},"in_reply_to":"3f79a3b5_8f7111e2","updated":"2018-11-26 18:40:28.000000000","message":"Fair enough. I think i just copy/replaced this from one of the other upgrade check implementations, so you might pass that comment on.","commit_id":"22be5aa57fae08ca5a43393a5b94af7b2e65ce17"}],"tools/monasca-status.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"db69ab27ecdc3152f1aa5f973f8c8240d98b60a0","unresolved":false,"context_lines":[{"line_number":78,"context_line":"class UpgradeCommands(object):"},{"line_number":79,"context_line":"    \"\"\"Commands related to upgrades."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    Initial set of checks are very simple, but can grow over time"},{"line_number":82,"context_line":"    to check items like database schema and other dependencies."},{"line_number":83,"context_line":"    \"\"\""},{"line_number":84,"context_line":"    def _check_nothing(self):"},{"line_number":85,"context_line":"        # TODO(joadavis): what is a useful check?"},{"line_number":86,"context_line":"        return UpgradeCheckResult(UpgradeCheckCode.SUCCESS)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    # The format of the check functions is to return an UpgradeCheckResult"},{"line_number":90,"context_line":"    # object with the appropriate UpgradeCheckCode and details set. If the"},{"line_number":91,"context_line":"    # check hits warnings or failures then those should be stored in the"},{"line_number":92,"context_line":"    # returned UpgradeCheckResult\u0027s \"details\" attribute. The summary will"},{"line_number":93,"context_line":"    # be rolled up at the end of the check() function."},{"line_number":94,"context_line":"    _upgrade_checks \u003d {"},{"line_number":95,"context_line":"        # Added in Stein, stub for future checks"},{"line_number":96,"context_line":"        _(\u0027Nothing\u0027): _check_nothing,"},{"line_number":97,"context_line":"    }"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def _get_details(self, upgrade_check_result):"},{"line_number":100,"context_line":"        if upgrade_check_result.details is not None:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_34b6d0fb","line":97,"range":{"start_line":81,"start_character":4,"end_line":97,"end_character":5},"updated":"2018-09-21 20:18:06.000000000","message":"Hmm, I\u0027d maybe remove this, or rename it or write a description that indicates to operators it\u0027s really a noop and there is nothing to do.\n\nLike, maybe you\u0027d want something like this?\n\n+----------------------------------------------------+\n| Upgrade Check Results                              |\n+----------------------------------------------------+\n| Check: Initial check                               |\n| Result: Success                                    |\n| Details: This is the initial check for Monasca and |\n| does nothing; subsequent releases may have real    |\n| pre-upgrade checks as needed.                      |\n+----------------------------------------------------+","commit_id":"622f20415a158b9b9563b7b407ff3120a162874f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"db69ab27ecdc3152f1aa5f973f8c8240d98b60a0","unresolved":false,"context_lines":[{"line_number":124,"context_line":"            if result.code \u003e return_code:"},{"line_number":125,"context_line":"                return_code \u003d result.code"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        # We\u0027re going to build a summary table that looks like:"},{"line_number":128,"context_line":"        # +----------------------------------------------------+"},{"line_number":129,"context_line":"        # | Upgrade Check Results                              |"},{"line_number":130,"context_line":"        # +----------------------------------------------------+"},{"line_number":131,"context_line":"        # | Check: Cells v2                                    |"},{"line_number":132,"context_line":"        # | Result: Success                                    |"},{"line_number":133,"context_line":"        # | Details: None                                      |"},{"line_number":134,"context_line":"        # +----------------------------------------------------+"},{"line_number":135,"context_line":"        # | Check: Placement API                               |"},{"line_number":136,"context_line":"        # | Result: Failure                                    |"},{"line_number":137,"context_line":"        # | Details: There is no placement-api endpoint in the |"},{"line_number":138,"context_line":"        # |          service catalog.                          |"},{"line_number":139,"context_line":"        # +----------------------------------------------------+"},{"line_number":140,"context_line":"        t \u003d prettytable.PrettyTable([_(\u0027Upgrade Check Results\u0027)],"},{"line_number":141,"context_line":"                                    hrules\u003dprettytable.ALL)"},{"line_number":142,"context_line":"        t.align \u003d \u0027l\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_34281032","line":139,"range":{"start_line":127,"start_character":8,"end_line":139,"end_character":64},"updated":"2018-09-21 20:18:06.000000000","message":"You might want to add a NOTE that the example here is from nova-status upgrade check, and is just for illustration. If/when you cutover to the oslo upgradecheck library, you wouldn\u0027t need this since it\u0027s part of the library.","commit_id":"622f20415a158b9b9563b7b407ff3120a162874f"}]}
