)]}'
{"tempest/api/compute/base.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"cf4cf51269501f7ac9bd154da972cbc86d1bbf0e","unresolved":false,"context_lines":[{"line_number":108,"context_line":"                raise lib_exc.InvalidConfiguration("},{"line_number":109,"context_line":"                    \u0027Either api_v1 or api_v2 must be True in \u0027"},{"line_number":110,"context_line":"                    \u0027[image-feature-enabled].\u0027)"},{"line_number":111,"context_line":"        cls._check_nova_network()"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    @classmethod"},{"line_number":114,"context_line":"    def _check_nova_network(cls):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_e5ce105a","line":111,"range":{"start_line":111,"start_character":0,"end_line":111,"end_character":33},"updated":"2018-06-07 01:59:04.000000000","message":"instead of calling here, let\u0027s add this call to skip_checks of nova-network only tests.","commit_id":"b4de19192e60416da4e540f230f7ae9d83ab4195"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"69eb8d7c3282990c10a67a74c5c63d74538d7725","unresolved":false,"context_lines":[{"line_number":108,"context_line":"                raise lib_exc.InvalidConfiguration("},{"line_number":109,"context_line":"                    \u0027Either api_v1 or api_v2 must be True in \u0027"},{"line_number":110,"context_line":"                    \u0027[image-feature-enabled].\u0027)"},{"line_number":111,"context_line":"        cls._check_nova_network()"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    @classmethod"},{"line_number":114,"context_line":"    def _check_nova_network(cls):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_f2b31ce8","line":111,"range":{"start_line":111,"start_character":0,"end_line":111,"end_character":33},"in_reply_to":"5f7c97a3_d9f2cae3","updated":"2018-06-07 22:04:20.000000000","message":"ah right it need API call. I would add that in specific class setup_client then to avoid to have it dependent on cls.check_nova_network in case we encounter some test class has mix call to nova-network only and other. But we can do that later whenever actually needed.","commit_id":"b4de19192e60416da4e540f230f7ae9d83ab4195"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1bff95f6f749ab0bf3f29897bceff9c427dd922b","unresolved":false,"context_lines":[{"line_number":108,"context_line":"                raise lib_exc.InvalidConfiguration("},{"line_number":109,"context_line":"                    \u0027Either api_v1 or api_v2 must be True in \u0027"},{"line_number":110,"context_line":"                    \u0027[image-feature-enabled].\u0027)"},{"line_number":111,"context_line":"        cls._check_nova_network()"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    @classmethod"},{"line_number":114,"context_line":"    def _check_nova_network(cls):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_d9f2cae3","line":111,"range":{"start_line":111,"start_character":0,"end_line":111,"end_character":33},"in_reply_to":"5f7c97a3_e5ce105a","updated":"2018-06-07 18:55:50.000000000","message":"You can\u0027t, because when skip_checks runs the client credentials aren\u0027t setup. skip_checks is just for config-driven skips.","commit_id":"b4de19192e60416da4e540f230f7ae9d83ab4195"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"2c9da4b0c5c0c9b926e16ae92e18eaa59a5e736f","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        cls._check_nova_network()"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    @classmethod"},{"line_number":114,"context_line":"    def _check_nova_network(cls):"},{"line_number":115,"context_line":"        # Since nova-network APIs were removed from Nova in the Rocky release,"},{"line_number":116,"context_line":"        # determine, based on the max version from the version document, if"},{"line_number":117,"context_line":"        # the compute API is \u003eQueens and if so, skip tests that rely on"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_3648b285","line":114,"range":{"start_line":114,"start_character":8,"end_line":114,"end_character":27},"updated":"2018-06-07 14:56:40.000000000","message":"If this sort of behavior can be extended to future Nova APIs, should we rename this to something more generic and put in compute base test class?","commit_id":"b4de19192e60416da4e540f230f7ae9d83ab4195"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1bff95f6f749ab0bf3f29897bceff9c427dd922b","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        cls._check_nova_network()"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    @classmethod"},{"line_number":114,"context_line":"    def _check_nova_network(cls):"},{"line_number":115,"context_line":"        # Since nova-network APIs were removed from Nova in the Rocky release,"},{"line_number":116,"context_line":"        # determine, based on the max version from the version document, if"},{"line_number":117,"context_line":"        # the compute API is \u003eQueens and if so, skip tests that rely on"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_392dfe45","line":114,"range":{"start_line":114,"start_character":8,"end_line":114,"end_character":27},"in_reply_to":"5f7c97a3_3648b285","updated":"2018-06-07 18:55:50.000000000","message":"If that happens, how about making it more generic then? Nova doesn\u0027t drop old APIs willy nilly, this nova-network removal is pretty exceptional.","commit_id":"b4de19192e60416da4e540f230f7ae9d83ab4195"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"45bbb66f2e07ca5e0dc508885187bbbbfd2caebe","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        # determine, based on the max version from the version document, if"},{"line_number":117,"context_line":"        # the compute API is \u003eQueens and if so, skip tests that rely on"},{"line_number":118,"context_line":"        # nova-network."},{"line_number":119,"context_line":"        check_nova_network \u003d getattr(cls, \u0027check_nova_network\u0027, False)"},{"line_number":120,"context_line":"        if check_nova_network:"},{"line_number":121,"context_line":"            versions \u003d cls.versions_client.list_versions()[\u0027versions\u0027]"},{"line_number":122,"context_line":"            # Find the v2.1 version which will tell us our max version for the"},{"line_number":123,"context_line":"            # compute API we\u0027re testing against."}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_19f5a2ed","line":120,"range":{"start_line":119,"start_character":0,"end_line":120,"end_character":30},"updated":"2018-06-07 19:05:50.000000000","message":"here can be just\n\n if not getattr(cls, \u0027check_nova_network\u0027, False):\n     return\n version \u003d ...\n\nwithout unnecessary nest.","commit_id":"b4de19192e60416da4e540f230f7ae9d83ab4195"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"69eb8d7c3282990c10a67a74c5c63d74538d7725","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        # Since nova-network APIs were removed from Nova in the Rocky release,"},{"line_number":116,"context_line":"        # determine, based on the max version from the version document, if"},{"line_number":117,"context_line":"        # the compute API is \u003eQueens and if so, skip tests that rely on"},{"line_number":118,"context_line":"        # nova-network."},{"line_number":119,"context_line":"        check_nova_network \u003d getattr(cls, \u0027check_nova_network\u0027, False)"},{"line_number":120,"context_line":"        if check_nova_network:"},{"line_number":121,"context_line":"            versions \u003d cls.versions_client.list_versions()[\u0027versions\u0027]"},{"line_number":122,"context_line":"            # Find the v2.1 version which will tell us our max version for the"},{"line_number":123,"context_line":"            # compute API we\u0027re testing against."}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_f201dc6b","line":120,"range":{"start_line":118,"start_character":0,"end_line":120,"end_character":30},"updated":"2018-06-07 22:04:20.000000000","message":"there might be mixed test level call for nova-network API with other APIs. That time we need this method as instance method or not depend on cls.check_nova_network.\n\nBut we will see when such case occur. lgtm as of now","commit_id":"b4de19192e60416da4e540f230f7ae9d83ab4195"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"03aad658db935632f0a9b042dd926400a38e1d78","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        # determine, based on the max version from the version document, if"},{"line_number":117,"context_line":"        # the compute API is \u003eQueens and if so, skip tests that rely on"},{"line_number":118,"context_line":"        # nova-network."},{"line_number":119,"context_line":"        check_nova_network \u003d getattr(cls, \u0027check_nova_network\u0027, False)"},{"line_number":120,"context_line":"        if check_nova_network:"},{"line_number":121,"context_line":"            versions \u003d cls.versions_client.list_versions()[\u0027versions\u0027]"},{"line_number":122,"context_line":"            # Find the v2.1 version which will tell us our max version for the"},{"line_number":123,"context_line":"            # compute API we\u0027re testing against."}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_ef3fb484","line":120,"range":{"start_line":119,"start_character":0,"end_line":120,"end_character":30},"in_reply_to":"5f7c97a3_14a1e946","updated":"2018-06-07 20:10:02.000000000","message":"You mean Garbutt? I agree, he was a monster. :)","commit_id":"b4de19192e60416da4e540f230f7ae9d83ab4195"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0bcbbb4f0626ecdf86238096480c508d62cb17b8","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        # determine, based on the max version from the version document, if"},{"line_number":117,"context_line":"        # the compute API is \u003eQueens and if so, skip tests that rely on"},{"line_number":118,"context_line":"        # nova-network."},{"line_number":119,"context_line":"        check_nova_network \u003d getattr(cls, \u0027check_nova_network\u0027, False)"},{"line_number":120,"context_line":"        if check_nova_network:"},{"line_number":121,"context_line":"            versions \u003d cls.versions_client.list_versions()[\u0027versions\u0027]"},{"line_number":122,"context_line":"            # Find the v2.1 version which will tell us our max version for the"},{"line_number":123,"context_line":"            # compute API we\u0027re testing against."}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_79585655","line":120,"range":{"start_line":119,"start_character":0,"end_line":120,"end_character":30},"in_reply_to":"5f7c97a3_19f5a2ed","updated":"2018-06-07 19:17:30.000000000","message":"OK, some would argue against exiting mid method (some static analysis tools complain about stuff like that), I\u0027m not really sure it\u0027s worth a -1.\n\n/me finds that ML thread about nit-picking :)","commit_id":"b4de19192e60416da4e540f230f7ae9d83ab4195"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"0c6f3bc35100cf14495fda16ecd95de6e154c26b","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        # determine, based on the max version from the version document, if"},{"line_number":117,"context_line":"        # the compute API is \u003eQueens and if so, skip tests that rely on"},{"line_number":118,"context_line":"        # nova-network."},{"line_number":119,"context_line":"        check_nova_network \u003d getattr(cls, \u0027check_nova_network\u0027, False)"},{"line_number":120,"context_line":"        if check_nova_network:"},{"line_number":121,"context_line":"            versions \u003d cls.versions_client.list_versions()[\u0027versions\u0027]"},{"line_number":122,"context_line":"            # Find the v2.1 version which will tell us our max version for the"},{"line_number":123,"context_line":"            # compute API we\u0027re testing against."}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_14a1e946","line":120,"range":{"start_line":119,"start_character":0,"end_line":120,"end_character":30},"in_reply_to":"5f7c97a3_79585655","updated":"2018-06-07 19:46:50.000000000","message":"Matt\n\n \u003e /me finds that ML thread about nit-picking :)\n\nLOL, I am sure previous Nova PTL was a strict reviewer and my disagreement ratio was so high due to his reviewers by pointing this kind of thing :)\n\n(Viewpoints are always different, and maybe the recognitions of this kind of thing also are different by people and time)","commit_id":"b4de19192e60416da4e540f230f7ae9d83ab4195"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"eb38539bf25eaafede8875f99b4439a8d5214fb3","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        # determine, based on the max version from the version document, if"},{"line_number":117,"context_line":"        # the compute API is \u003eQueens and if so, skip tests that rely on"},{"line_number":118,"context_line":"        # nova-network."},{"line_number":119,"context_line":"        check_nova_network \u003d getattr(cls, \u0027check_nova_network\u0027, False)"},{"line_number":120,"context_line":"        if check_nova_network:"},{"line_number":121,"context_line":"            versions \u003d cls.versions_client.list_versions()[\u0027versions\u0027]"},{"line_number":122,"context_line":"            # Find the v2.1 version which will tell us our max version for the"},{"line_number":123,"context_line":"            # compute API we\u0027re testing against."}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_548c4134","line":120,"range":{"start_line":119,"start_character":0,"end_line":120,"end_character":30},"in_reply_to":"5f7c97a3_79585655","updated":"2018-06-07 19:32:46.000000000","message":"https://pmd.github.io/pmd-6.3.0/pmd_rules_java_codestyle.html#onlyonereturn\n\n^ is what I\u0027m used to from working on a project for about 6 years that enforced this.","commit_id":"b4de19192e60416da4e540f230f7ae9d83ab4195"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"540e507f42f38c1238bb712ac67ef1a074f9ac46","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        # determine, based on the max version from the version document, if"},{"line_number":117,"context_line":"        # the compute API is \u003eQueens and if so, skip tests that rely on"},{"line_number":118,"context_line":"        # nova-network."},{"line_number":119,"context_line":"        check_nova_network \u003d getattr(cls, \u0027check_nova_network\u0027, False)"},{"line_number":120,"context_line":"        if check_nova_network:"},{"line_number":121,"context_line":"            versions \u003d cls.versions_client.list_versions()[\u0027versions\u0027]"},{"line_number":122,"context_line":"            # Find the v2.1 version which will tell us our max version for the"},{"line_number":123,"context_line":"            # compute API we\u0027re testing against."}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_cfb0b7e0","line":120,"range":{"start_line":119,"start_character":0,"end_line":120,"end_character":30},"in_reply_to":"5f7c97a3_ef3fb484","updated":"2018-06-07 21:15:27.000000000","message":"Can I say no? :-)","commit_id":"b4de19192e60416da4e540f230f7ae9d83ab4195"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"45bbb66f2e07ca5e0dc508885187bbbbfd2caebe","unresolved":false,"context_lines":[{"line_number":130,"context_line":"            else:"},{"line_number":131,"context_line":"                LOG.warning("},{"line_number":132,"context_line":"                    \u0027Unable to determine max v2.1 compute API version: %s\u0027,"},{"line_number":133,"context_line":"                    versions)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"            if max_version:"},{"line_number":136,"context_line":"                # The max compute API version in Queens is 2.60 so we cap"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_99fc52b6","line":133,"updated":"2018-06-07 19:05:50.000000000","message":"Better to add\n\n     LOG.warning(\n        \u0027Unable to determine max v2.1 compute API version: %s\u0027,\n        versions)\n +   return\n\nhere","commit_id":"b4de19192e60416da4e540f230f7ae9d83ab4195"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0bcbbb4f0626ecdf86238096480c508d62cb17b8","unresolved":false,"context_lines":[{"line_number":130,"context_line":"            else:"},{"line_number":131,"context_line":"                LOG.warning("},{"line_number":132,"context_line":"                    \u0027Unable to determine max v2.1 compute API version: %s\u0027,"},{"line_number":133,"context_line":"                    versions)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"            if max_version:"},{"line_number":136,"context_line":"                # The max compute API version in Queens is 2.60 so we cap"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_39197e87","line":133,"in_reply_to":"5f7c97a3_99fc52b6","updated":"2018-06-07 19:17:30.000000000","message":"Again, exit mid method is something I generally don\u0027t do if I can help it because the code below will handle it since max_version will be None and just exit.","commit_id":"b4de19192e60416da4e540f230f7ae9d83ab4195"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"45bbb66f2e07ca5e0dc508885187bbbbfd2caebe","unresolved":false,"context_lines":[{"line_number":132,"context_line":"                    \u0027Unable to determine max v2.1 compute API version: %s\u0027,"},{"line_number":133,"context_line":"                    versions)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"            if max_version:"},{"line_number":136,"context_line":"                # The max compute API version in Queens is 2.60 so we cap"},{"line_number":137,"context_line":"                # at that version."},{"line_number":138,"context_line":"                queens \u003d api_version_request.APIVersionRequest(\u00272.60\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_d9f3aa9e","line":135,"range":{"start_line":135,"start_character":0,"end_line":135,"end_character":27},"updated":"2018-06-07 19:05:50.000000000","message":"I guess we can remove this condition because max_version is already set if we don\u0027t see the above LOG.warning.","commit_id":"b4de19192e60416da4e540f230f7ae9d83ab4195"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0bcbbb4f0626ecdf86238096480c508d62cb17b8","unresolved":false,"context_lines":[{"line_number":132,"context_line":"                    \u0027Unable to determine max v2.1 compute API version: %s\u0027,"},{"line_number":133,"context_line":"                    versions)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"            if max_version:"},{"line_number":136,"context_line":"                # The max compute API version in Queens is 2.60 so we cap"},{"line_number":137,"context_line":"                # at that version."},{"line_number":138,"context_line":"                queens \u003d api_version_request.APIVersionRequest(\u00272.60\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_b90cae42","line":135,"range":{"start_line":135,"start_character":0,"end_line":135,"end_character":27},"in_reply_to":"5f7c97a3_d9f3aa9e","updated":"2018-06-07 19:17:30.000000000","message":"If you exit mid method, yeah, but I\u0027m not crazy about that.","commit_id":"b4de19192e60416da4e540f230f7ae9d83ab4195"}],"tempest/api/compute/servers/test_virtual_interfaces.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4d2e972e4803b6c7ec87e2f38f625c841625ff17","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    # testing against a cloud that\u0027s older than Rocky, we can check the"},{"line_number":36,"context_line":"    # neutron vs nova-network behavior, otherwise we skip since the 410"},{"line_number":37,"context_line":"    # behavior is tested with in-tree nova functional tests."},{"line_number":38,"context_line":"    max_microversion \u003d \u00272.60\u0027"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @classmethod"},{"line_number":41,"context_line":"    def setup_credentials(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_175c1817","line":38,"range":{"start_line":38,"start_character":0,"end_line":38,"end_character":29},"updated":"2018-06-01 00:09:20.000000000","message":"oh, this would not work as this test is/will keep testing the Rocky or greater with lower microversion. Because we select the request microversion based on max(test\u0027s min_microversion, config\u0027s min_microversion).\n\nBy default(on gate), min_microversion of both test and config is going to be default which is None(means microversion Tempest will request will be 2.1) [1] . In that case it end up with 410 from nova on \u003eRocky.\n\nEasy way is to introduce a feature flag (something nova_network) and make it False by default and set True on \u003cRocky. Then we skip running this tests based on that.\n\n[1] http://logs.openstack.org/23/569923/4/check/tempest-full/6c0df2f/testr_results.html.gz\n\nalso we can see request with 2.1version in http://logs.openstack.org/56/571556/1/check/tempest-full/fa63984/controller/logs/tempest_log.txt","commit_id":"c758c0ce61465aab5393ca9da7477391dcc37e05"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c6a09a34616a5dae0a49422dd537e49ee9d9e6d8","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    # testing against a cloud that\u0027s older than Rocky, we can check the"},{"line_number":36,"context_line":"    # neutron vs nova-network behavior, otherwise we skip since the 410"},{"line_number":37,"context_line":"    # behavior is tested with in-tree nova functional tests."},{"line_number":38,"context_line":"    max_microversion \u003d \u00272.60\u0027"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @classmethod"},{"line_number":41,"context_line":"    def setup_credentials(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_ae9ce2bf","line":38,"range":{"start_line":38,"start_character":0,"end_line":38,"end_character":29},"in_reply_to":"5f7c97a3_05fb7e46","updated":"2018-06-01 12:38:51.000000000","message":"Yeah good point, though as gmann noted, we\u0027re just running this against 2.1 right now it looks like anyway.","commit_id":"c758c0ce61465aab5393ca9da7477391dcc37e05"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c6a09a34616a5dae0a49422dd537e49ee9d9e6d8","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    # testing against a cloud that\u0027s older than Rocky, we can check the"},{"line_number":36,"context_line":"    # neutron vs nova-network behavior, otherwise we skip since the 410"},{"line_number":37,"context_line":"    # behavior is tested with in-tree nova functional tests."},{"line_number":38,"context_line":"    max_microversion \u003d \u00272.60\u0027"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @classmethod"},{"line_number":41,"context_line":"    def setup_credentials(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_2ede926c","line":38,"range":{"start_line":38,"start_character":0,"end_line":38,"end_character":29},"in_reply_to":"5f7c97a3_175c1817","updated":"2018-06-01 12:38:51.000000000","message":"\u003e Easy way is to introduce a feature flag (something nova_network) and make it False by default and set True on \u003cRocky. Then we skip running this tests based on that.\n\nWouldn\u0027t we want to default to the existing behavior which is that nova-network is assumed to be implemented in the APIs, and then we\u0027d change that to False in devstack on master? Then we could eventually drop the config option once queens goes into extended maintenance mode.\n\nThe feature flag would work, but it seems weird, especially if you\u0027re not running nova-network.\n\nWouldn\u0027t it be simpler to just not run nova-network specific API tests if you\u0027re using neutron? That would fix this issue for us in the gate.\n\nI guess the problem might be anyone in the wild running nova-network in rocky would then hit failures in these tests because of the 410.\n\nAnother idea I had was do some version discovery in the base compute test class and determine if we\u0027re running against a Rocky+ cloud and if so, set a flag which we can check in tests like this to add conditional logic to allow a 410 response if Rocky+.","commit_id":"c758c0ce61465aab5393ca9da7477391dcc37e05"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"73cf5a396ed8a5aea67f5f1136a51d0c1932e003","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    # testing against a cloud that\u0027s older than Rocky, we can check the"},{"line_number":36,"context_line":"    # neutron vs nova-network behavior, otherwise we skip since the 410"},{"line_number":37,"context_line":"    # behavior is tested with in-tree nova functional tests."},{"line_number":38,"context_line":"    max_microversion \u003d \u00272.60\u0027"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @classmethod"},{"line_number":41,"context_line":"    def setup_credentials(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_d718e0d3","line":38,"range":{"start_line":38,"start_character":0,"end_line":38,"end_character":29},"in_reply_to":"5f7c97a3_175c1817","updated":"2018-06-01 00:36:49.000000000","message":"further we can use same flag for all nova-network API tests if we encounter during nova API removal.","commit_id":"c758c0ce61465aab5393ca9da7477391dcc37e05"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"a5ff1a38a5d8b6ed5743662a1ab30c71dc159c04","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    # testing against a cloud that\u0027s older than Rocky, we can check the"},{"line_number":36,"context_line":"    # neutron vs nova-network behavior, otherwise we skip since the 410"},{"line_number":37,"context_line":"    # behavior is tested with in-tree nova functional tests."},{"line_number":38,"context_line":"    max_microversion \u003d \u00272.60\u0027"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @classmethod"},{"line_number":41,"context_line":"    def setup_credentials(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_1f986f19","line":38,"range":{"start_line":38,"start_character":0,"end_line":38,"end_character":29},"in_reply_to":"5f7c97a3_2ede926c","updated":"2018-06-05 09:16:26.000000000","message":"Good point on keeping default behavior. default to True works fine. I think it is ok to ask people to mark nova-network as false in master (till Q EM) as everyone knows there was nova network things till Rocky. \n\nSkip tests using \"neutron is available\" will skip the tests for \u003c Rocky also. here again we need some flag or version discovery to detect if test running against \u003c Rocky. \n\nI am ok with version discovery also but i feel feature flag is easier much here.","commit_id":"c758c0ce61465aab5393ca9da7477391dcc37e05"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"895240e9f0abbdd24382f0ed65f61974d17eeee4","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    # testing against a cloud that\u0027s older than Rocky, we can check the"},{"line_number":36,"context_line":"    # neutron vs nova-network behavior, otherwise we skip since the 410"},{"line_number":37,"context_line":"    # behavior is tested with in-tree nova functional tests."},{"line_number":38,"context_line":"    max_microversion \u003d \u00272.60\u0027"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @classmethod"},{"line_number":41,"context_line":"    def setup_credentials(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_05fb7e46","line":38,"range":{"start_line":38,"start_character":0,"end_line":38,"end_character":29},"in_reply_to":"5f7c97a3_d718e0d3","updated":"2018-06-01 03:34:30.000000000","message":"Isn\u0027t this actually 2.43 microversion as it\u0027s deprecated from 2.44 onward: https://developer.openstack.org/api-ref/compute/#servers-virtual-interfaces-servers-os-virtual-interfaces-deprecated","commit_id":"c758c0ce61465aab5393ca9da7477391dcc37e05"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"cf4cf51269501f7ac9bd154da972cbc86d1bbf0e","unresolved":false,"context_lines":[{"line_number":28,"context_line":"# TODO(mriedem): Remove this test class once the nova queens branch goes into"},{"line_number":29,"context_line":"# extended maintenance mode."},{"line_number":30,"context_line":"class VirtualInterfacesTestJSON(base.BaseV2ComputeTest):"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    check_nova_network \u003d True"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    @classmethod"},{"line_number":35,"context_line":"    def setup_credentials(cls):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_4501046a","line":32,"range":{"start_line":31,"start_character":0,"end_line":32,"end_character":29},"updated":"2018-06-07 01:59:04.000000000","message":"here let\u0027s call _check_nova_network() in skip_checks() here which will take decision to skip or run the tests.","commit_id":"b4de19192e60416da4e540f230f7ae9d83ab4195"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1bff95f6f749ab0bf3f29897bceff9c427dd922b","unresolved":false,"context_lines":[{"line_number":28,"context_line":"# TODO(mriedem): Remove this test class once the nova queens branch goes into"},{"line_number":29,"context_line":"# extended maintenance mode."},{"line_number":30,"context_line":"class VirtualInterfacesTestJSON(base.BaseV2ComputeTest):"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    check_nova_network \u003d True"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    @classmethod"},{"line_number":35,"context_line":"    def setup_credentials(cls):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_f926a668","line":32,"range":{"start_line":31,"start_character":0,"end_line":32,"end_character":29},"in_reply_to":"5f7c97a3_4501046a","updated":"2018-06-07 18:55:50.000000000","message":"See my other reply, skip_checks() is too early in the setup.","commit_id":"b4de19192e60416da4e540f230f7ae9d83ab4195"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0bcbbb4f0626ecdf86238096480c508d62cb17b8","unresolved":false,"context_lines":[{"line_number":28,"context_line":"# TODO(mriedem): Remove this test class once the nova queens branch goes into"},{"line_number":29,"context_line":"# extended maintenance mode."},{"line_number":30,"context_line":"class VirtualInterfacesTestJSON(base.BaseV2ComputeTest):"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    check_nova_network \u003d True"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    @classmethod"},{"line_number":35,"context_line":"    def setup_credentials(cls):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_342745b9","line":32,"range":{"start_line":31,"start_character":0,"end_line":32,"end_character":29},"in_reply_to":"5f7c97a3_d9388a3c","updated":"2018-06-07 19:17:30.000000000","message":"Works for me, I can change to that.","commit_id":"b4de19192e60416da4e540f230f7ae9d83ab4195"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"45bbb66f2e07ca5e0dc508885187bbbbfd2caebe","unresolved":false,"context_lines":[{"line_number":28,"context_line":"# TODO(mriedem): Remove this test class once the nova queens branch goes into"},{"line_number":29,"context_line":"# extended maintenance mode."},{"line_number":30,"context_line":"class VirtualInterfacesTestJSON(base.BaseV2ComputeTest):"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    check_nova_network \u003d True"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    @classmethod"},{"line_number":35,"context_line":"    def setup_credentials(cls):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_d9388a3c","line":32,"range":{"start_line":31,"start_character":0,"end_line":32,"end_character":29},"in_reply_to":"5f7c97a3_f926a668","updated":"2018-06-07 19:05:50.000000000","message":"How about depends_on_nova_network instead of check_nova_network?\nJust an idea for clarifying these test classes depends on that as metadata.","commit_id":"b4de19192e60416da4e540f230f7ae9d83ab4195"}],"tempest/api/compute/servers/test_virtual_interfaces_negative.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"45bbb66f2e07ca5e0dc508885187bbbbfd2caebe","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from tempest.lib import exceptions as lib_exc"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"# TODO(mriedem): Remove this test class once the nova queens branch goes into"},{"line_number":24,"context_line":"# extended maintenance mode."},{"line_number":25,"context_line":"class VirtualInterfacesNegativeTestJSON(base.BaseV2ComputeTest):"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    check_nova_network \u003d True"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_592d5afb","line":24,"range":{"start_line":23,"start_character":0,"end_line":24,"end_character":28},"updated":"2018-06-07 19:05:50.000000000","message":"++","commit_id":"b4de19192e60416da4e540f230f7ae9d83ab4195"}]}
