)]}'
{"goals/stein/upgrade-checkers.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c771754df77b9301c3fc0f418676f5b008819c19","unresolved":false,"context_lines":[{"line_number":8,"context_line":"can be run prior to upgrade that will help identify any known issues that would"},{"line_number":9,"context_line":"result in that upgrade failing."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Each project would provide their specific checks for things like missing or"},{"line_number":12,"context_line":"changed configuration options, incompatible object states, or other conditions"},{"line_number":13,"context_line":"that could lead to failures upgrading that project."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":".. The following needs to be updated with actual links once we decide we are"},{"line_number":16,"context_line":"   going to go ahead with this."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f7c97a3_352a11e6","line":13,"range":{"start_line":11,"start_character":0,"end_line":13,"end_character":51},"updated":"2018-07-24 21:19:39.000000000","message":"I would add something to generalize this (which is how I try to describe what makes a good check to add), which is basically - can you automate something from the upgrade release notes and if so, that\u0027s a good candidate for a check.\n\nHere is an example I have open right now:\n\nhttps://review.openstack.org/#/c/581813/\n\nNova already has an online data migration (nova-manage db online_data_migrations) for creating the missing request specs records for existing instances, but we also have a lot of old compat code in the api and conductor services from newton and I want to drop that code in Stein, so I added a nova-status upgrade check to essentially check if operators have done their homework *before* getting to stein where we\u0027ll drop the online data migration and that compat code. We have done this type of upgrade \"blocker\" in the past in the actual db sync data migrations, like:\n\nhttps://github.com/openstack/nova/blob/master/nova/db/sqlalchemy/migrate_repo/versions/330_enforce_mitaka_online_migrations.py\n\nBut the request specs check doesn\u0027t fit well there because we need to iterate multiple cell databases to find the instances and the request specs are  stored in the API DB, and \u0027nova-manage db sync\u0027 is per-cell db, so it just didn\u0027t fit for this type of blocker check.\n\nAnyway, it probably goes without saying that I\u0027d need to write up some kind of developer documentation on what makes a good candidate for these types of checks considering the various ways nova tries to handle (and enforce) upgrades.","commit_id":"666630577a5083e07b8234ebf2f2f1bce2758544"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c771754df77b9301c3fc0f418676f5b008819c19","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    |          service catalog.                          |"},{"line_number":81,"context_line":"    +----------------------------------------------------+"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"References"},{"line_number":84,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"The Nova project has already implemented a ``nova-status upgrade check``"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f7c97a3_959c455d","line":83,"updated":"2018-07-24 21:19:39.000000000","message":"Probably want to also refer to the man page docs on the command and how we document the per-release checks:\n\nhttps://docs.openstack.org/nova/latest/cli/nova-status.html\n\nAnd this is how it\u0027s used in grenade:\n\nhttps://github.com/openstack-dev/grenade/blob/dc7f4a4ba5697d5a73a1e656d4a1717964324eab/projects/60_nova/upgrade.sh#L96","commit_id":"666630577a5083e07b8234ebf2f2f1bce2758544"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"52f86395d11197c1728acdcfa0f2841b15bee174","unresolved":false,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Providing assurances and useful feedback to deployers preparing to upgrade"},{"line_number":6,"context_line":"services vastly improves the upgrade experience. One basic step that we can"},{"line_number":7,"context_line":"make consistent across OpenStack projects is to provide \"upgrade checks\" that"},{"line_number":8,"context_line":"can be run prior to upgrade that will help identify any known issues that would"},{"line_number":9,"context_line":"result in that upgrade failing."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f7c97a3_20bbd1be","line":7,"range":{"start_line":7,"start_character":48,"end_line":7,"end_character":72},"updated":"2018-08-03 13:31:19.000000000","message":"Key to this goal is that the checks should be automated, so I think we should say that explicitly here.","commit_id":"e3c551eace8eed17312cdae37006a327a4de7f21"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"52f86395d11197c1728acdcfa0f2841b15bee174","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Goals need a main driver to project-manage them to completion. Project teams"},{"line_number":27,"context_line":"need assistance, reminders and sometimes direct help in order for them to"},{"line_number":28,"context_line":"complete the goals."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Matt Riedemann \u003cmriedemos@gmail.com\u003e has volunteered to drive this goal."},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f7c97a3_40c92d50","line":28,"updated":"2018-08-03 13:31:19.000000000","message":"These lines are boilerplate and can be removed.","commit_id":"e3c551eace8eed17312cdae37006a327a4de7f21"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f6823fc577296528cbcbdb178594e9912fc70869","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Goals need a main driver to project-manage them to completion. Project teams"},{"line_number":27,"context_line":"need assistance, reminders and sometimes direct help in order for them to"},{"line_number":28,"context_line":"complete the goals."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Matt Riedemann \u003cmriedemos@gmail.com\u003e has volunteered to drive this goal."},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f7c97a3_a0ce012a","line":28,"in_reply_to":"5f7c97a3_40c92d50","updated":"2018-08-03 13:36:38.000000000","message":"I kind of like having the description of what the champion role expectations are in here, but I suppose as we do more of these it will be well known enough.","commit_id":"e3c551eace8eed17312cdae37006a327a4de7f21"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"52f86395d11197c1728acdcfa0f2841b15bee174","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    | Result: Failure                                    |"},{"line_number":81,"context_line":"    | Details: There is no placement-api endpoint in the |"},{"line_number":82,"context_line":"    |          service catalog.                          |"},{"line_number":83,"context_line":"    +----------------------------------------------------+"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"References"},{"line_number":86,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f7c97a3_40f28d9e","line":83,"updated":"2018-08-03 13:31:19.000000000","message":"I don\u0027t want to quibble about the format here, but it seems odd to have what is clearly 3 separate fields in 1 column of the output.","commit_id":"e3c551eace8eed17312cdae37006a327a4de7f21"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"15c4a7fe945a010b5aed41628ab5ff2e4441bb3d","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    | Result: Failure                                    |"},{"line_number":81,"context_line":"    | Details: There is no placement-api endpoint in the |"},{"line_number":82,"context_line":"    |          service catalog.                          |"},{"line_number":83,"context_line":"    +----------------------------------------------------+"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"References"},{"line_number":86,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f7c97a3_00f6d55f","line":83,"in_reply_to":"5f7c97a3_40f28d9e","updated":"2018-08-03 13:39:00.000000000","message":"This is the current output format of the nova checks. Maybe Matt can provide some input on that. I do think a more traditional table output would be easier to parse.","commit_id":"e3c551eace8eed17312cdae37006a327a4de7f21"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"52f86395d11197c1728acdcfa0f2841b15bee174","unresolved":false,"context_lines":[{"line_number":88,"context_line":"The Nova project has already implemented a ``nova-status upgrade check``"},{"line_number":89,"context_line":"command along with several checkers. The `command source"},{"line_number":90,"context_line":"\u003chttp://git.openstack.org/cgit/openstack/nova/tree/nova/cmd/status.py?id\u003da1f3a5946ab703225a74f8e85a068cb4fb20e2ff\u003e`__"},{"line_number":91,"context_line":"may be useful as a reference."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"The `original commit"},{"line_number":94,"context_line":"\u003chttp://git.openstack.org/cgit/openstack/nova/commit/?id\u003da1f3a5946ab703225a74f8e85a068cb4fb20e2ff\u003e`__"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f7c97a3_e02879ee","line":91,"updated":"2018-08-03 13:31:19.000000000","message":"Is any of that useful as a framework? Should we create an Oslo library for that, before or as part of this goal?","commit_id":"e3c551eace8eed17312cdae37006a327a4de7f21"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"15c4a7fe945a010b5aed41628ab5ff2e4441bb3d","unresolved":false,"context_lines":[{"line_number":88,"context_line":"The Nova project has already implemented a ``nova-status upgrade check``"},{"line_number":89,"context_line":"command along with several checkers. The `command source"},{"line_number":90,"context_line":"\u003chttp://git.openstack.org/cgit/openstack/nova/tree/nova/cmd/status.py?id\u003da1f3a5946ab703225a74f8e85a068cb4fb20e2ff\u003e`__"},{"line_number":91,"context_line":"may be useful as a reference."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"The `original commit"},{"line_number":94,"context_line":"\u003chttp://git.openstack.org/cgit/openstack/nova/commit/?id\u003da1f3a5946ab703225a74f8e85a068cb4fb20e2ff\u003e`__"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f7c97a3_e092b9fb","line":91,"in_reply_to":"5f7c97a3_e02879ee","updated":"2018-08-03 13:39:00.000000000","message":"Another one I will let Matt comment on.","commit_id":"e3c551eace8eed17312cdae37006a327a4de7f21"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"43813ae68a43458c2c0782557007ed66917d3c80","unresolved":false,"context_lines":[{"line_number":15,"context_line":"candidate for an upgrade checker to validate."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"These checks should perform any upgrade validation that can be automated. There"},{"line_number":18,"context_line":"may always be some things that need some subjective evalation, but for those"},{"line_number":19,"context_line":"things that can be automated to determine if there is an issue that could"},{"line_number":20,"context_line":"impact upgrade success, a validation check should be created to automate it."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_72c2f435","line":18,"range":{"start_line":18,"start_character":52,"end_line":18,"end_character":61},"updated":"2018-08-06 22:45:28.000000000","message":"evaluation","commit_id":"1a64d61008c346b874b218477fa0e1875fbadbfe"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"43813ae68a43458c2c0782557007ed66917d3c80","unresolved":false,"context_lines":[{"line_number":28,"context_line":"Champion"},{"line_number":29,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Matt Riedemann \u003cmriedemos@gmail.com\u003e has volunteered to drive this goal."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Gerrit Topic"},{"line_number":34,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_12ddc013","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":72},"updated":"2018-08-06 22:45:28.000000000","message":"Heh, clearly I\u0027m not doing a great job with this. Sorry, and thanks for updating since PS1.","commit_id":"1a64d61008c346b874b218477fa0e1875fbadbfe"}]}
