)]}'
{"nova/cmd/status.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"1a3c0a02ae6937a53bc8c74146c422bde88e640a","unresolved":false,"context_lines":[{"line_number":587,"context_line":"        \"\"\""},{"line_number":588,"context_line":"        # We don\u0027t need to check cell0 for nova-consoleauth service records or"},{"line_number":589,"context_line":"        # console token auth records."},{"line_number":590,"context_line":"        mappings \u003d self._get_non_cell0_mappings()"},{"line_number":591,"context_line":""},{"line_number":592,"context_line":"        if not mappings:"},{"line_number":593,"context_line":"            # There are no cell mappings so we can\u0027t determine this, just"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_00afbce0","line":590,"updated":"2018-10-17 21:02:39.000000000","message":"Based on a devstack install and the behavior of Service.get_minimum_version_all_cells, it looks like it\u0027s possible an operator may have services stored in cell0, so we shouldn\u0027t exclude cell0 from the using_consoles check.\n\nI think we do however need to exclude cell0 from the console_auth_tokens check, though.","commit_id":"070486811485b1f4ac823a300b55cabd2dbe747a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d6f6bcaf623a17f8afde2c183e832c6e5e6888c2","unresolved":false,"context_lines":[{"line_number":575,"context_line":"            return UpgradeCheckResult(UpgradeCheckCode.FAILURE, msg)"},{"line_number":576,"context_line":"        return UpgradeCheckResult(UpgradeCheckCode.SUCCESS)"},{"line_number":577,"context_line":""},{"line_number":578,"context_line":"    def _check_consoles(self):"},{"line_number":579,"context_line":"        \"\"\"Checks for console usage and warns with info for rolling upgrade."},{"line_number":580,"context_line":""},{"line_number":581,"context_line":"        Iterates all cells checking to see if the nova-consoleauth service is"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_60b1d091","line":578,"range":{"start_line":578,"start_character":15,"end_line":578,"end_character":23},"updated":"2018-10-17 21:38:32.000000000","message":"console_auths","commit_id":"33185f0e49b66da49ceea86ee70f9c625f31cbb9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d6f6bcaf623a17f8afde2c183e832c6e5e6888c2","unresolved":false,"context_lines":[{"line_number":602,"context_line":""},{"line_number":603,"context_line":"        ctxt \u003d nova_context.get_admin_context()"},{"line_number":604,"context_line":"        # If we find a non-deleted, non-disabled nova-consoleauth service in"},{"line_number":605,"context_line":"        # any cell, we will assume the deployment is using consoles."},{"line_number":606,"context_line":"        using_consoles \u003d False"},{"line_number":607,"context_line":"        for mapping in mappings:"},{"line_number":608,"context_line":"            with nova_context.target_cell(ctxt, mapping) as cctxt:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_0046dca8","line":605,"range":{"start_line":605,"start_character":10,"end_line":605,"end_character":18},"updated":"2018-10-17 21:38:32.000000000","message":"Does it matter if one cell has token auths but another doesn\u0027t? The workaround and nova-consoleauth service has to be enabled/deployed globally until all remaining cells have drained their tokens or what?","commit_id":"33185f0e49b66da49ceea86ee70f9c625f31cbb9"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"a09f703c6614663fa79a6de5d344c2797524bb66","unresolved":false,"context_lines":[{"line_number":602,"context_line":""},{"line_number":603,"context_line":"        ctxt \u003d nova_context.get_admin_context()"},{"line_number":604,"context_line":"        # If we find a non-deleted, non-disabled nova-consoleauth service in"},{"line_number":605,"context_line":"        # any cell, we will assume the deployment is using consoles."},{"line_number":606,"context_line":"        using_consoles \u003d False"},{"line_number":607,"context_line":"        for mapping in mappings:"},{"line_number":608,"context_line":"            with nova_context.target_cell(ctxt, mapping) as cctxt:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_5b3a8597","line":605,"range":{"start_line":605,"start_character":10,"end_line":605,"end_character":18},"in_reply_to":"3f79a3b5_0046dca8","updated":"2018-10-17 22:05:57.000000000","message":"The workaround and nova-consoleauth _have_ to be enabled/deployed globally until all compute hosts have been upgraded to Rocky. It is nova-compute that stores token auths to the cell databases -- so if any nova-compute is not yet capable of storing a token auth in the cell database (not yet Rocky), the instances on that compute host will need nova-consoleauth to make their consoles work.\n\nOnce you\u0027ve rolled everything to Rocky, if you have \"alive\" consoles and you disable nova-consoleauth, those consoles will be reset and the user will have to e.g. get_vnc_console to get a fresh console supported by the database backend, and that console will work.\n\nSo, really I think all of this checking for token auths isn\u0027t too helpful. I had been thinking, if all cell databases contain at least one token auth, we can know the upgrade is complete and that all compute hosts are Rocky. But that\u0027s not actually true because a cell database hosts multiple compute hosts, so just because a token auth is in the database, doesn\u0027t mean all of the computes in that cell are on Rocky yet.\n\nIt seems like what we need to do here is check the compute host service versions and return SUCCESS only if all are Rocky.","commit_id":"33185f0e49b66da49ceea86ee70f9c625f31cbb9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d6f6bcaf623a17f8afde2c183e832c6e5e6888c2","unresolved":false,"context_lines":[{"line_number":631,"context_line":"                    continue"},{"line_number":632,"context_line":"                with nova_context.target_cell(ctxt, mapping) as cctxt:"},{"line_number":633,"context_line":"                    meta \u003d MetaData(bind\u003ddb_session.get_engine(context\u003dcctxt))"},{"line_number":634,"context_line":"                    console_auth_tokens \u003d Table(\u0027console_auth_tokens\u0027, meta,"},{"line_number":635,"context_line":"                                                autoload\u003dTrue)"},{"line_number":636,"context_line":"                    token_auth_record \u003d ("},{"line_number":637,"context_line":"                        select([console_auth_tokens.c.id]).select_from("}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_e0dde0de","line":634,"range":{"start_line":634,"start_character":49,"end_line":634,"end_character":68},"updated":"2018-10-17 21:38:32.000000000","message":"OK I guess this table doesn\u0027t use the SoftDeleteMixin so we don\u0027t need to worry about filtering on deleted.","commit_id":"33185f0e49b66da49ceea86ee70f9c625f31cbb9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d6f6bcaf623a17f8afde2c183e832c6e5e6888c2","unresolved":false,"context_lines":[{"line_number":640,"context_line":"                        msg \u003d _(\"One or more cells were found which do not \""},{"line_number":641,"context_line":"                                \"yet have any console token auth records \""},{"line_number":642,"context_line":"                                \"created in the database. Please set the \""},{"line_number":643,"context_line":"                                \"\u0027[workarounds]enable_consoleauth\u0027 \""},{"line_number":644,"context_line":"                                \"configuration option to \u0027True\u0027 on your \""},{"line_number":645,"context_line":"                                \"console proxy host if you are performing a \""},{"line_number":646,"context_line":"                                \"rolling upgrade to enable consoles to \""}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_80b66c89","line":643,"range":{"start_line":643,"start_character":47,"end_line":643,"end_character":65},"updated":"2018-10-17 21:38:32.000000000","message":"If this is already True, then can\u0027t we just skip this check?","commit_id":"33185f0e49b66da49ceea86ee70f9c625f31cbb9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7831c1ab44c70ef45222f32c7a1e3c99ddc8149c","unresolved":false,"context_lines":[{"line_number":640,"context_line":"                        msg \u003d _(\"One or more cells were found which do not \""},{"line_number":641,"context_line":"                                \"yet have any console token auth records \""},{"line_number":642,"context_line":"                                \"created in the database. Please set the \""},{"line_number":643,"context_line":"                                \"\u0027[workarounds]enable_consoleauth\u0027 \""},{"line_number":644,"context_line":"                                \"configuration option to \u0027True\u0027 on your \""},{"line_number":645,"context_line":"                                \"console proxy host if you are performing a \""},{"line_number":646,"context_line":"                                \"rolling upgrade to enable consoles to \""}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_516181a7","line":643,"range":{"start_line":643,"start_character":47,"end_line":643,"end_character":65},"in_reply_to":"3f79a3b5_7b58a1f8","updated":"2018-10-24 15:33:37.000000000","message":"nova-status upgrade check assumes full configuration, controller or compute, but mostly controller because of how it\u0027s run like nova-manage commands.","commit_id":"33185f0e49b66da49ceea86ee70f9c625f31cbb9"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"a09f703c6614663fa79a6de5d344c2797524bb66","unresolved":false,"context_lines":[{"line_number":640,"context_line":"                        msg \u003d _(\"One or more cells were found which do not \""},{"line_number":641,"context_line":"                                \"yet have any console token auth records \""},{"line_number":642,"context_line":"                                \"created in the database. Please set the \""},{"line_number":643,"context_line":"                                \"\u0027[workarounds]enable_consoleauth\u0027 \""},{"line_number":644,"context_line":"                                \"configuration option to \u0027True\u0027 on your \""},{"line_number":645,"context_line":"                                \"console proxy host if you are performing a \""},{"line_number":646,"context_line":"                                \"rolling upgrade to enable consoles to \""}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_7b58a1f8","line":643,"range":{"start_line":643,"start_character":47,"end_line":643,"end_character":65},"in_reply_to":"3f79a3b5_80b66c89","updated":"2018-10-17 22:05:57.000000000","message":"Derp, in my haste, I completely forgot to check the config option. Obviously for that to work, \u0027nova-status upgrade check\u0027 would have to run on the controller host or some host we could use as a predictor of their console proxy host nova.conf.","commit_id":"33185f0e49b66da49ceea86ee70f9c625f31cbb9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d6f6bcaf623a17f8afde2c183e832c6e5e6888c2","unresolved":false,"context_lines":[{"line_number":670,"context_line":"        (_(\u0027API Service Version\u0027), _check_api_service_version),"},{"line_number":671,"context_line":"        # Added in Rocky"},{"line_number":672,"context_line":"        (_(\u0027Request Spec Migration\u0027), _check_request_spec_migration),"},{"line_number":673,"context_line":"        # Added in Rocky"},{"line_number":674,"context_line":"        (_(\u0027Consoles\u0027), _check_consoles),"},{"line_number":675,"context_line":"    )"},{"line_number":676,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_80e8ac7b","line":673,"range":{"start_line":673,"start_character":19,"end_line":673,"end_character":24},"updated":"2018-10-17 21:38:32.000000000","message":"Stein? Or you intend on backporting this. If so, add something like above:\n\n# Added in Stein (but also useful going back to Rocky)","commit_id":"33185f0e49b66da49ceea86ee70f9c625f31cbb9"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"a09f703c6614663fa79a6de5d344c2797524bb66","unresolved":false,"context_lines":[{"line_number":670,"context_line":"        (_(\u0027API Service Version\u0027), _check_api_service_version),"},{"line_number":671,"context_line":"        # Added in Rocky"},{"line_number":672,"context_line":"        (_(\u0027Request Spec Migration\u0027), _check_request_spec_migration),"},{"line_number":673,"context_line":"        # Added in Rocky"},{"line_number":674,"context_line":"        (_(\u0027Consoles\u0027), _check_consoles),"},{"line_number":675,"context_line":"    )"},{"line_number":676,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_3b6a2982","line":673,"range":{"start_line":673,"start_character":19,"end_line":673,"end_character":24},"in_reply_to":"3f79a3b5_80e8ac7b","updated":"2018-10-17 22:05:57.000000000","message":"Yes, intended to backport. People need this for going Queens \u003d\u003e Rocky. Will change.","commit_id":"33185f0e49b66da49ceea86ee70f9c625f31cbb9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d6f6bcaf623a17f8afde2c183e832c6e5e6888c2","unresolved":false,"context_lines":[{"line_number":671,"context_line":"        # Added in Rocky"},{"line_number":672,"context_line":"        (_(\u0027Request Spec Migration\u0027), _check_request_spec_migration),"},{"line_number":673,"context_line":"        # Added in Rocky"},{"line_number":674,"context_line":"        (_(\u0027Consoles\u0027), _check_consoles),"},{"line_number":675,"context_line":"    )"},{"line_number":676,"context_line":""},{"line_number":677,"context_line":"    def _get_details(self, upgrade_check_result):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_40fa9444","line":674,"range":{"start_line":674,"start_character":12,"end_line":674,"end_character":20},"updated":"2018-10-17 21:38:32.000000000","message":"Console Auth?","commit_id":"33185f0e49b66da49ceea86ee70f9c625f31cbb9"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"a09f703c6614663fa79a6de5d344c2797524bb66","unresolved":false,"context_lines":[{"line_number":671,"context_line":"        # Added in Rocky"},{"line_number":672,"context_line":"        (_(\u0027Request Spec Migration\u0027), _check_request_spec_migration),"},{"line_number":673,"context_line":"        # Added in Rocky"},{"line_number":674,"context_line":"        (_(\u0027Consoles\u0027), _check_consoles),"},{"line_number":675,"context_line":"    )"},{"line_number":676,"context_line":""},{"line_number":677,"context_line":"    def _get_details(self, upgrade_check_result):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_db6695bd","line":674,"range":{"start_line":674,"start_character":12,"end_line":674,"end_character":20},"in_reply_to":"3f79a3b5_40fa9444","updated":"2018-10-17 22:05:57.000000000","message":"I wasn\u0027t sure how to name this thing, tbh. I started with \"Console Migration\" because it\u0027s about console auth going from nova-consoleauth \u003d\u003e cell databases, but thought use of the word \"migration\" might confuse people into thinking a data migration is involved. \"Console Auth\" makes sense, so I can change to that.","commit_id":"33185f0e49b66da49ceea86ee70f9c625f31cbb9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7080e160f67d09a7de3ab873b30c500467b253ae","unresolved":false,"context_lines":[{"line_number":628,"context_line":""},{"line_number":629,"context_line":"        if using_consoles:"},{"line_number":630,"context_line":"            # If the deployment is using consoles, we can only be certain the"},{"line_number":631,"context_line":"            # upgrade is complete if each compute host is \u003e\u003d Rocky and supports"},{"line_number":632,"context_line":"            # storing console token auths in the database backend."},{"line_number":633,"context_line":"            for mapping in mappings:"},{"line_number":634,"context_line":"                # Get the minimum nova-compute service version in this"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_9162b9a6","line":631,"range":{"start_line":631,"start_character":50,"end_line":631,"end_character":54},"updated":"2018-10-24 15:42:25.000000000","message":"nit: service","commit_id":"25dcf31f3a32e7f1e181b1a8f03f23363dc16efd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"6a740092345b89f6ef73538666c769e625ed2b3a","unresolved":false,"context_lines":[{"line_number":628,"context_line":""},{"line_number":629,"context_line":"        if using_consoles:"},{"line_number":630,"context_line":"            # If the deployment is using consoles, we can only be certain the"},{"line_number":631,"context_line":"            # upgrade is complete if each compute host is \u003e\u003d Rocky and supports"},{"line_number":632,"context_line":"            # storing console token auths in the database backend."},{"line_number":633,"context_line":"            for mapping in mappings:"},{"line_number":634,"context_line":"                # Get the minimum nova-compute service version in this"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_ce9f2bf4","line":631,"range":{"start_line":631,"start_character":50,"end_line":631,"end_character":54},"in_reply_to":"3f79a3b5_9162b9a6","updated":"2018-10-24 20:09:03.000000000","message":"Will update.","commit_id":"25dcf31f3a32e7f1e181b1a8f03f23363dc16efd"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7080e160f67d09a7de3ab873b30c500467b253ae","unresolved":false,"context_lines":[{"line_number":630,"context_line":"            # If the deployment is using consoles, we can only be certain the"},{"line_number":631,"context_line":"            # upgrade is complete if each compute host is \u003e\u003d Rocky and supports"},{"line_number":632,"context_line":"            # storing console token auths in the database backend."},{"line_number":633,"context_line":"            for mapping in mappings:"},{"line_number":634,"context_line":"                # Get the minimum nova-compute service version in this"},{"line_number":635,"context_line":"                # cell."},{"line_number":636,"context_line":"                with nova_context.target_cell(ctxt, mapping) as cctxt:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_51bd01d5","line":633,"updated":"2018-10-24 15:42:25.000000000","message":"Couldn\u0027t you still skip cell0 here?","commit_id":"25dcf31f3a32e7f1e181b1a8f03f23363dc16efd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"6a740092345b89f6ef73538666c769e625ed2b3a","unresolved":false,"context_lines":[{"line_number":630,"context_line":"            # If the deployment is using consoles, we can only be certain the"},{"line_number":631,"context_line":"            # upgrade is complete if each compute host is \u003e\u003d Rocky and supports"},{"line_number":632,"context_line":"            # storing console token auths in the database backend."},{"line_number":633,"context_line":"            for mapping in mappings:"},{"line_number":634,"context_line":"                # Get the minimum nova-compute service version in this"},{"line_number":635,"context_line":"                # cell."},{"line_number":636,"context_line":"                with nova_context.target_cell(ctxt, mapping) as cctxt:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_ae898fc8","line":633,"in_reply_to":"3f79a3b5_51bd01d5","updated":"2018-10-24 20:09:03.000000000","message":"Ah, yep, I should. Will update.","commit_id":"25dcf31f3a32e7f1e181b1a8f03f23363dc16efd"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7080e160f67d09a7de3ab873b30c500467b253ae","unresolved":false,"context_lines":[{"line_number":636,"context_line":"                with nova_context.target_cell(ctxt, mapping) as cctxt:"},{"line_number":637,"context_line":"                    min_version \u003d self._get_min_service_version("},{"line_number":638,"context_line":"                        cctxt, \u0027nova-compute\u0027)"},{"line_number":639,"context_line":"                    if min_version is not None and min_version \u003c 35:"},{"line_number":640,"context_line":"                        msg \u003d _(\"One or more cells were found which have \""},{"line_number":641,"context_line":"                                \"nova-compute services older than Rocky. \""},{"line_number":642,"context_line":"                                \"Please set the \""}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_d1c4b143","line":639,"range":{"start_line":639,"start_character":35,"end_line":639,"end_character":46},"updated":"2018-10-24 15:42:25.000000000","message":"OK checking for None is good for a new install where there are no computes, but if there are compute services, they should all have versions. We probably don\u0027t need to distinguish that here, but it could be worth a comment.","commit_id":"25dcf31f3a32e7f1e181b1a8f03f23363dc16efd"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7080e160f67d09a7de3ab873b30c500467b253ae","unresolved":false,"context_lines":[{"line_number":636,"context_line":"                with nova_context.target_cell(ctxt, mapping) as cctxt:"},{"line_number":637,"context_line":"                    min_version \u003d self._get_min_service_version("},{"line_number":638,"context_line":"                        cctxt, \u0027nova-compute\u0027)"},{"line_number":639,"context_line":"                    if min_version is not None and min_version \u003c 35:"},{"line_number":640,"context_line":"                        msg \u003d _(\"One or more cells were found which have \""},{"line_number":641,"context_line":"                                \"nova-compute services older than Rocky. \""},{"line_number":642,"context_line":"                                \"Please set the \""}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_91f719d2","line":639,"range":{"start_line":639,"start_character":65,"end_line":639,"end_character":67},"updated":"2018-10-24 15:42:25.000000000","message":"ack https://github.com/openstack/nova/blob/stable/rocky/nova/objects/service.py#L34","commit_id":"25dcf31f3a32e7f1e181b1a8f03f23363dc16efd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"6a740092345b89f6ef73538666c769e625ed2b3a","unresolved":false,"context_lines":[{"line_number":636,"context_line":"                with nova_context.target_cell(ctxt, mapping) as cctxt:"},{"line_number":637,"context_line":"                    min_version \u003d self._get_min_service_version("},{"line_number":638,"context_line":"                        cctxt, \u0027nova-compute\u0027)"},{"line_number":639,"context_line":"                    if min_version is not None and min_version \u003c 35:"},{"line_number":640,"context_line":"                        msg \u003d _(\"One or more cells were found which have \""},{"line_number":641,"context_line":"                                \"nova-compute services older than Rocky. \""},{"line_number":642,"context_line":"                                \"Please set the \""}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_0eaa0319","line":639,"range":{"start_line":639,"start_character":35,"end_line":639,"end_character":46},"in_reply_to":"3f79a3b5_d1c4b143","updated":"2018-10-24 20:09:03.000000000","message":"Will add a comment.","commit_id":"25dcf31f3a32e7f1e181b1a8f03f23363dc16efd"}],"nova/tests/unit/cmd/test_status.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d6f6bcaf623a17f8afde2c183e832c6e5e6888c2","unresolved":false,"context_lines":[{"line_number":1146,"context_line":"        self.assertEqual(status.UpgradeCheckCode.SUCCESS, result.code)"},{"line_number":1147,"context_line":""},{"line_number":1148,"context_line":"    def test_consoleauth_with_partial_token_auth_in_database(self):"},{"line_number":1149,"context_line":"        \"\"\"Tests the scenario where there the deployment is using consoles"},{"line_number":1150,"context_line":"        and has console token auths in at least one, but not all, cell"},{"line_number":1151,"context_line":"        databases, i.e. a partial upgrade."},{"line_number":1152,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_0089fcc5","line":1149,"range":{"start_line":1149,"start_character":36,"end_line":1149,"end_character":41},"updated":"2018-10-17 21:38:32.000000000","message":"nix","commit_id":"33185f0e49b66da49ceea86ee70f9c625f31cbb9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7080e160f67d09a7de3ab873b30c500467b253ae","unresolved":false,"context_lines":[{"line_number":1129,"context_line":""},{"line_number":1130,"context_line":"    def test_consoleauth_with_upgrade_not_started(self):"},{"line_number":1131,"context_line":"        \"\"\"Tests the scenario where the deployment is using consoles but has no"},{"line_number":1132,"context_line":"        compute hosts \u003e\u003d Rocky, i.e. a not started upgrade."},{"line_number":1133,"context_line":"        \"\"\""},{"line_number":1134,"context_line":"        self._setup_cells()"},{"line_number":1135,"context_line":"        ctxt \u003d context.get_admin_context()"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_71e83ddf","line":1132,"range":{"start_line":1132,"start_character":16,"end_line":1132,"end_character":21},"updated":"2018-10-24 15:42:25.000000000","message":"nit: services","commit_id":"25dcf31f3a32e7f1e181b1a8f03f23363dc16efd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"6a740092345b89f6ef73538666c769e625ed2b3a","unresolved":false,"context_lines":[{"line_number":1129,"context_line":""},{"line_number":1130,"context_line":"    def test_consoleauth_with_upgrade_not_started(self):"},{"line_number":1131,"context_line":"        \"\"\"Tests the scenario where the deployment is using consoles but has no"},{"line_number":1132,"context_line":"        compute hosts \u003e\u003d Rocky, i.e. a not started upgrade."},{"line_number":1133,"context_line":"        \"\"\""},{"line_number":1134,"context_line":"        self._setup_cells()"},{"line_number":1135,"context_line":"        ctxt \u003d context.get_admin_context()"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_ee71c7e0","line":1132,"range":{"start_line":1132,"start_character":16,"end_line":1132,"end_character":21},"in_reply_to":"3f79a3b5_71e83ddf","updated":"2018-10-24 20:09:03.000000000","message":"Will update.","commit_id":"25dcf31f3a32e7f1e181b1a8f03f23363dc16efd"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7080e160f67d09a7de3ab873b30c500467b253ae","unresolved":false,"context_lines":[{"line_number":1139,"context_line":"                                     \u0027nova-consoleauth\u0027, is_deleted\u003dTrue)"},{"line_number":1140,"context_line":"        # Create a live consoleauth service in cell2."},{"line_number":1141,"context_line":"        self._create_service_in_cell(ctxt, self.cell_mappings[\u0027cell2\u0027],"},{"line_number":1142,"context_line":"                                     \u0027nova-consoleauth\u0027, version\u003d30)"},{"line_number":1143,"context_line":"        # Create Queens compute services in the cells."},{"line_number":1144,"context_line":"        for cell in [\u0027cell1\u0027, \u0027cell2\u0027]:"},{"line_number":1145,"context_line":"            self._create_service_in_cell(ctxt, self.cell_mappings[cell],"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_91e5d909","line":1142,"range":{"start_line":1142,"start_character":57,"end_line":1142,"end_character":67},"updated":"2018-10-24 15:42:25.000000000","message":"This doesn\u0027t really matter right?","commit_id":"25dcf31f3a32e7f1e181b1a8f03f23363dc16efd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"20ee7f71cfbe1572e3e787525f2449b6172a1375","unresolved":false,"context_lines":[{"line_number":1139,"context_line":"                                     \u0027nova-consoleauth\u0027, is_deleted\u003dTrue)"},{"line_number":1140,"context_line":"        # Create a live consoleauth service in cell2."},{"line_number":1141,"context_line":"        self._create_service_in_cell(ctxt, self.cell_mappings[\u0027cell2\u0027],"},{"line_number":1142,"context_line":"                                     \u0027nova-consoleauth\u0027, version\u003d30)"},{"line_number":1143,"context_line":"        # Create Queens compute services in the cells."},{"line_number":1144,"context_line":"        for cell in [\u0027cell1\u0027, \u0027cell2\u0027]:"},{"line_number":1145,"context_line":"            self._create_service_in_cell(ctxt, self.cell_mappings[cell],"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_e2fb1613","line":1142,"range":{"start_line":1142,"start_character":57,"end_line":1142,"end_character":67},"in_reply_to":"3f79a3b5_6e2cd7b1","updated":"2018-10-25 00:38:17.000000000","message":"Sigh, this is a nova-consoleauth service so correct, version doesn\u0027t matter here. I accidentally added version to this one after I added it to nova-compute.","commit_id":"25dcf31f3a32e7f1e181b1a8f03f23363dc16efd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"6a740092345b89f6ef73538666c769e625ed2b3a","unresolved":false,"context_lines":[{"line_number":1139,"context_line":"                                     \u0027nova-consoleauth\u0027, is_deleted\u003dTrue)"},{"line_number":1140,"context_line":"        # Create a live consoleauth service in cell2."},{"line_number":1141,"context_line":"        self._create_service_in_cell(ctxt, self.cell_mappings[\u0027cell2\u0027],"},{"line_number":1142,"context_line":"                                     \u0027nova-consoleauth\u0027, version\u003d30)"},{"line_number":1143,"context_line":"        # Create Queens compute services in the cells."},{"line_number":1144,"context_line":"        for cell in [\u0027cell1\u0027, \u0027cell2\u0027]:"},{"line_number":1145,"context_line":"            self._create_service_in_cell(ctxt, self.cell_mappings[cell],"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_6e2cd7b1","line":1142,"range":{"start_line":1142,"start_character":57,"end_line":1142,"end_character":67},"in_reply_to":"3f79a3b5_91e5d909","updated":"2018-10-24 20:09:03.000000000","message":"It does matter because by default, services are created with current/latest version:\n\nhttps://github.com/openstack/nova/blob/835faf3f40af6b0e07c585690982a997d6a2ac47/nova/objects/service.py#L219\n\nAnd I want this to represent old compute services before the upgrade starts rolling.","commit_id":"25dcf31f3a32e7f1e181b1a8f03f23363dc16efd"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7080e160f67d09a7de3ab873b30c500467b253ae","unresolved":false,"context_lines":[{"line_number":1150,"context_line":""},{"line_number":1151,"context_line":"    def test_consoleauth_with_upgrade_complete(self):"},{"line_number":1152,"context_line":"        \"\"\"Tests the scenario where the deployment is using consoles and has"},{"line_number":1153,"context_line":"        all compute hosts \u003e\u003d Rocky in every cell database, i.e. a completed"},{"line_number":1154,"context_line":"        upgrade."},{"line_number":1155,"context_line":"        \"\"\""},{"line_number":1156,"context_line":"        self._setup_cells()"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_91939959","line":1153,"range":{"start_line":1153,"start_character":20,"end_line":1153,"end_character":25},"updated":"2018-10-24 15:42:25.000000000","message":"services","commit_id":"25dcf31f3a32e7f1e181b1a8f03f23363dc16efd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"6a740092345b89f6ef73538666c769e625ed2b3a","unresolved":false,"context_lines":[{"line_number":1150,"context_line":""},{"line_number":1151,"context_line":"    def test_consoleauth_with_upgrade_complete(self):"},{"line_number":1152,"context_line":"        \"\"\"Tests the scenario where the deployment is using consoles and has"},{"line_number":1153,"context_line":"        all compute hosts \u003e\u003d Rocky in every cell database, i.e. a completed"},{"line_number":1154,"context_line":"        upgrade."},{"line_number":1155,"context_line":"        \"\"\""},{"line_number":1156,"context_line":"        self._setup_cells()"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_8e31330d","line":1153,"range":{"start_line":1153,"start_character":20,"end_line":1153,"end_character":25},"in_reply_to":"3f79a3b5_91939959","updated":"2018-10-24 20:09:03.000000000","message":"Will update.","commit_id":"25dcf31f3a32e7f1e181b1a8f03f23363dc16efd"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7080e160f67d09a7de3ab873b30c500467b253ae","unresolved":false,"context_lines":[{"line_number":1168,"context_line":""},{"line_number":1169,"context_line":"        # Create \u003e\u003d Rocky compute services in the cells."},{"line_number":1170,"context_line":"        for cell in [\u0027cell1\u0027, \u0027cell2\u0027]:"},{"line_number":1171,"context_line":"            self._create_service_in_cell(ctxt, self.cell_mappings[cell],"},{"line_number":1172,"context_line":"                                         \u0027nova-compute\u0027)"},{"line_number":1173,"context_line":""},{"line_number":1174,"context_line":"        result \u003d self.cmd._check_console_auths()"},{"line_number":1175,"context_line":"        self.assertEqual(status.UpgradeCheckCode.SUCCESS, result.code)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_1196a93e","line":1172,"range":{"start_line":1171,"start_character":12,"end_line":1172,"end_character":56},"updated":"2018-10-24 15:42:25.000000000","message":"Why not create these with version 35? A nova-compute service should always have a version. I think the null check in the code is really only there in a previous check for the API service, because at one point (or maybe how it\u0027s started - uwsgi?) the API service in the DB won\u0027t have a version. But I don\u0027t think that\u0027s true for the nova-compute service.","commit_id":"25dcf31f3a32e7f1e181b1a8f03f23363dc16efd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"6a740092345b89f6ef73538666c769e625ed2b3a","unresolved":false,"context_lines":[{"line_number":1168,"context_line":""},{"line_number":1169,"context_line":"        # Create \u003e\u003d Rocky compute services in the cells."},{"line_number":1170,"context_line":"        for cell in [\u0027cell1\u0027, \u0027cell2\u0027]:"},{"line_number":1171,"context_line":"            self._create_service_in_cell(ctxt, self.cell_mappings[cell],"},{"line_number":1172,"context_line":"                                         \u0027nova-compute\u0027)"},{"line_number":1173,"context_line":""},{"line_number":1174,"context_line":"        result \u003d self.cmd._check_console_auths()"},{"line_number":1175,"context_line":"        self.assertEqual(status.UpgradeCheckCode.SUCCESS, result.code)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_0e1d2376","line":1172,"range":{"start_line":1171,"start_character":12,"end_line":1172,"end_character":56},"in_reply_to":"3f79a3b5_1196a93e","updated":"2018-10-24 20:09:03.000000000","message":"I can if you think it would be helpful. I left it out because service version defaults to SERVICE_VERSION.","commit_id":"25dcf31f3a32e7f1e181b1a8f03f23363dc16efd"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7080e160f67d09a7de3ab873b30c500467b253ae","unresolved":false,"context_lines":[{"line_number":1176,"context_line":""},{"line_number":1177,"context_line":"    def test_consoleauth_with_upgrade_partial(self):"},{"line_number":1178,"context_line":"        \"\"\"Tests the scenario where the deployment is using consoles and has"},{"line_number":1179,"context_line":"        compute hosts \u003e\u003d Rocky in at least one, but not all, cell databases,"},{"line_number":1180,"context_line":"        i.e. a partial upgrade."},{"line_number":1181,"context_line":"        \"\"\""},{"line_number":1182,"context_line":"        self._setup_cells()"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_91bab9b7","line":1179,"range":{"start_line":1179,"start_character":16,"end_line":1179,"end_character":21},"updated":"2018-10-24 15:42:25.000000000","message":"services","commit_id":"25dcf31f3a32e7f1e181b1a8f03f23363dc16efd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"6a740092345b89f6ef73538666c769e625ed2b3a","unresolved":false,"context_lines":[{"line_number":1176,"context_line":""},{"line_number":1177,"context_line":"    def test_consoleauth_with_upgrade_partial(self):"},{"line_number":1178,"context_line":"        \"\"\"Tests the scenario where the deployment is using consoles and has"},{"line_number":1179,"context_line":"        compute hosts \u003e\u003d Rocky in at least one, but not all, cell databases,"},{"line_number":1180,"context_line":"        i.e. a partial upgrade."},{"line_number":1181,"context_line":"        \"\"\""},{"line_number":1182,"context_line":"        self._setup_cells()"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_6e15b74b","line":1179,"range":{"start_line":1179,"start_character":16,"end_line":1179,"end_character":21},"in_reply_to":"3f79a3b5_91bab9b7","updated":"2018-10-24 20:09:03.000000000","message":"Will update.","commit_id":"25dcf31f3a32e7f1e181b1a8f03f23363dc16efd"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7080e160f67d09a7de3ab873b30c500467b253ae","unresolved":false,"context_lines":[{"line_number":1196,"context_line":"                                     \u0027nova-compute\u0027, version\u003d30)"},{"line_number":1197,"context_line":""},{"line_number":1198,"context_line":"        # Create a \u003e\u003d Rocky compute service in cell2."},{"line_number":1199,"context_line":"        self._create_service_in_cell(ctxt, self.cell_mappings[\u0027cell2\u0027],"},{"line_number":1200,"context_line":"                                     \u0027nova-compute\u0027)"},{"line_number":1201,"context_line":""},{"line_number":1202,"context_line":"        result \u003d self.cmd._check_console_auths()"},{"line_number":1203,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_31d96527","line":1200,"range":{"start_line":1199,"start_character":13,"end_line":1200,"end_character":52},"updated":"2018-10-24 15:42:25.000000000","message":"Should have version\u003d35.","commit_id":"25dcf31f3a32e7f1e181b1a8f03f23363dc16efd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"6a740092345b89f6ef73538666c769e625ed2b3a","unresolved":false,"context_lines":[{"line_number":1196,"context_line":"                                     \u0027nova-compute\u0027, version\u003d30)"},{"line_number":1197,"context_line":""},{"line_number":1198,"context_line":"        # Create a \u003e\u003d Rocky compute service in cell2."},{"line_number":1199,"context_line":"        self._create_service_in_cell(ctxt, self.cell_mappings[\u0027cell2\u0027],"},{"line_number":1200,"context_line":"                                     \u0027nova-compute\u0027)"},{"line_number":1201,"context_line":""},{"line_number":1202,"context_line":"        result \u003d self.cmd._check_console_auths()"},{"line_number":1203,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_2e0b3f2d","line":1200,"range":{"start_line":1199,"start_character":13,"end_line":1200,"end_character":52},"in_reply_to":"3f79a3b5_31d96527","updated":"2018-10-24 20:09:03.000000000","message":"Will update.","commit_id":"25dcf31f3a32e7f1e181b1a8f03f23363dc16efd"}]}
