)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"dd7e46ca7d8e93aab3957d2593841072e9473010","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Paras Babbar \u003cPBabbar@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-11-05 17:55:32 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Live Migration: Config_drive enable block live migration"},{"line_number":8,"context_line":"This feature will boot the nova instance using config_drive."},{"line_number":9,"context_line":"So all the metadata will be stored on config_drive_format"},{"line_number":10,"context_line":"specified in nova.conf like iso9660/vfat and there is"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_9fcf9d8a","line":7,"updated":"2019-11-06 18:04:02.000000000","message":"Insert a newline after this.","commit_id":"d231cb3b4d8d497c80983189c2aafcfff074c593"},{"author":{"_account_id":31239,"name":"Paras Babbar","email":"pbabbar@redhat.com","username":"pbabbar"},"change_message_id":"52b8583658bf562fd65e97813874e6d7e6997d9c","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Paras Babbar \u003cPBabbar@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-11-05 17:55:32 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Live Migration: Config_drive enable block live migration"},{"line_number":8,"context_line":"This feature will boot the nova instance using config_drive."},{"line_number":9,"context_line":"So all the metadata will be stored on config_drive_format"},{"line_number":10,"context_line":"specified in nova.conf like iso9660/vfat and there is"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_0a3b6d39","line":7,"in_reply_to":"3fa7e38b_9fcf9d8a","updated":"2019-11-06 19:29:37.000000000","message":"ok","commit_id":"d231cb3b4d8d497c80983189c2aafcfff074c593"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"dd7e46ca7d8e93aab3957d2593841072e9473010","unresolved":false,"context_lines":[{"line_number":14,"context_line":"Just make sure if we want to use the config_drive testcase then"},{"line_number":15,"context_line":"mention that in tempest.conf with config_drive\u003dtrue"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Upstream related bug: https://bugs.launchpad.net/nova/+bug/1246201"},{"line_number":18,"context_line":"Downstream related bug: https://bugzilla.redhat.com/show_bug.cgi?id\u003d1394964"},{"line_number":19,"context_line":"\t\t\thttps://bugzilla.redhat.com/show_bug.cgi?id\u003d1273226"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_1fe3ad08","line":17,"updated":"2019-11-06 18:04:02.000000000","message":"Just \u0027Related-bug: 1246201\u0027","commit_id":"d231cb3b4d8d497c80983189c2aafcfff074c593"},{"author":{"_account_id":31239,"name":"Paras Babbar","email":"pbabbar@redhat.com","username":"pbabbar"},"change_message_id":"52b8583658bf562fd65e97813874e6d7e6997d9c","unresolved":false,"context_lines":[{"line_number":14,"context_line":"Just make sure if we want to use the config_drive testcase then"},{"line_number":15,"context_line":"mention that in tempest.conf with config_drive\u003dtrue"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Upstream related bug: https://bugs.launchpad.net/nova/+bug/1246201"},{"line_number":18,"context_line":"Downstream related bug: https://bugzilla.redhat.com/show_bug.cgi?id\u003d1394964"},{"line_number":19,"context_line":"\t\t\thttps://bugzilla.redhat.com/show_bug.cgi?id\u003d1273226"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_2a38a939","line":17,"in_reply_to":"3fa7e38b_1fe3ad08","updated":"2019-11-06 19:29:37.000000000","message":"sure","commit_id":"d231cb3b4d8d497c80983189c2aafcfff074c593"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"dd7e46ca7d8e93aab3957d2593841072e9473010","unresolved":false,"context_lines":[{"line_number":15,"context_line":"mention that in tempest.conf with config_drive\u003dtrue"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Upstream related bug: https://bugs.launchpad.net/nova/+bug/1246201"},{"line_number":18,"context_line":"Downstream related bug: https://bugzilla.redhat.com/show_bug.cgi?id\u003d1394964"},{"line_number":19,"context_line":"\t\t\thttps://bugzilla.redhat.com/show_bug.cgi?id\u003d1273226"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: I71f0e60f55c420fe9097bb3d6ab4156c50432264"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_bfd4d920","line":18,"updated":"2019-11-06 18:04:02.000000000","message":"Don\u0027t mention downstream bugs in the commit message.","commit_id":"d231cb3b4d8d497c80983189c2aafcfff074c593"},{"author":{"_account_id":31239,"name":"Paras Babbar","email":"pbabbar@redhat.com","username":"pbabbar"},"change_message_id":"52b8583658bf562fd65e97813874e6d7e6997d9c","unresolved":false,"context_lines":[{"line_number":15,"context_line":"mention that in tempest.conf with config_drive\u003dtrue"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Upstream related bug: https://bugs.launchpad.net/nova/+bug/1246201"},{"line_number":18,"context_line":"Downstream related bug: https://bugzilla.redhat.com/show_bug.cgi?id\u003d1394964"},{"line_number":19,"context_line":"\t\t\thttps://bugzilla.redhat.com/show_bug.cgi?id\u003d1273226"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: I71f0e60f55c420fe9097bb3d6ab4156c50432264"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_ca4475bb","line":18,"in_reply_to":"3fa7e38b_bfd4d920","updated":"2019-11-06 19:29:37.000000000","message":"ok!","commit_id":"d231cb3b4d8d497c80983189c2aafcfff074c593"}],"tempest/api/compute/admin/test_live_migration.py":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"dd7e46ca7d8e93aab3957d2593841072e9473010","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    block_migration \u003d None"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def _test_live_migration("},{"line_number":96,"context_line":"            self, state\u003d\u0027ACTIVE\u0027, volume_backed\u003dFalse, config_drive\u003dFalse):"},{"line_number":97,"context_line":"        \"\"\"Tests live migration between two hosts."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        Requires CONF.compute_feature_enabled.live_migration to be True."}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_5f3da58c","line":96,"updated":"2019-11-06 18:04:02.000000000","message":"Don\u0027t need this extra param.","commit_id":"d231cb3b4d8d497c80983189c2aafcfff074c593"},{"author":{"_account_id":31239,"name":"Paras Babbar","email":"pbabbar@redhat.com","username":"pbabbar"},"change_message_id":"52b8583658bf562fd65e97813874e6d7e6997d9c","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    block_migration \u003d None"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def _test_live_migration("},{"line_number":96,"context_line":"            self, state\u003d\u0027ACTIVE\u0027, volume_backed\u003dFalse, config_drive\u003dFalse):"},{"line_number":97,"context_line":"        \"\"\"Tests live migration between two hosts."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        Requires CONF.compute_feature_enabled.live_migration to be True."}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_aaa259ac","line":96,"in_reply_to":"3fa7e38b_5f3da58c","updated":"2019-11-06 19:29:37.000000000","message":"I think I need this param as I am calling this function with config_Drive param explicitly in L140","commit_id":"d231cb3b4d8d497c80983189c2aafcfff074c593"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"dd7e46ca7d8e93aab3957d2593841072e9473010","unresolved":false,"context_lines":[{"line_number":103,"context_line":"                      and \u0027PAUSED\u0027."},{"line_number":104,"context_line":"        :param volume_backed: If the instance is volume backed or not. If"},{"line_number":105,"context_line":"                              volume_backed, *block* migration is not used."},{"line_number":106,"context_line":"        :param config_drive: If config_drive is enabled,it will store metadata"},{"line_number":107,"context_line":"                             on a configuration drive like iso9660-default,"},{"line_number":108,"context_line":"                             For:vfat as driver_type ,you can explicilty"},{"line_number":109,"context_line":"                             mention that in \u0027/etc/nova.conf\u0027."}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_7f42e111","line":106,"updated":"2019-11-06 18:04:02.000000000","message":"Remove this.","commit_id":"d231cb3b4d8d497c80983189c2aafcfff074c593"},{"author":{"_account_id":31239,"name":"Paras Babbar","email":"pbabbar@redhat.com","username":"pbabbar"},"change_message_id":"52b8583658bf562fd65e97813874e6d7e6997d9c","unresolved":false,"context_lines":[{"line_number":103,"context_line":"                      and \u0027PAUSED\u0027."},{"line_number":104,"context_line":"        :param volume_backed: If the instance is volume backed or not. If"},{"line_number":105,"context_line":"                              volume_backed, *block* migration is not used."},{"line_number":106,"context_line":"        :param config_drive: If config_drive is enabled,it will store metadata"},{"line_number":107,"context_line":"                             on a configuration drive like iso9660-default,"},{"line_number":108,"context_line":"                             For:vfat as driver_type ,you can explicilty"},{"line_number":109,"context_line":"                             mention that in \u0027/etc/nova.conf\u0027."}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_aa8b391c","line":106,"in_reply_to":"3fa7e38b_7f42e111","updated":"2019-11-06 19:29:37.000000000","message":"calling this function in L140","commit_id":"d231cb3b4d8d497c80983189c2aafcfff074c593"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"dd7e46ca7d8e93aab3957d2593841072e9473010","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        # Live migrate an instance to another host"},{"line_number":112,"context_line":"        server_id \u003d self.create_test_server("},{"line_number":113,"context_line":"            wait_until\u003d\"ACTIVE\", volume_backed\u003dvolume_backed,"},{"line_number":114,"context_line":"            config_drive\u003dconfig_drive)[\u0027id\u0027]"},{"line_number":115,"context_line":"        source_host \u003d self.get_host_for_server(server_id)"},{"line_number":116,"context_line":"        destination_host \u003d self.get_host_other_than(server_id)"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_3f446919","line":114,"updated":"2019-11-06 18:04:02.000000000","message":"And this.","commit_id":"d231cb3b4d8d497c80983189c2aafcfff074c593"},{"author":{"_account_id":31239,"name":"Paras Babbar","email":"pbabbar@redhat.com","username":"pbabbar"},"change_message_id":"52b8583658bf562fd65e97813874e6d7e6997d9c","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        # Live migrate an instance to another host"},{"line_number":112,"context_line":"        server_id \u003d self.create_test_server("},{"line_number":113,"context_line":"            wait_until\u003d\"ACTIVE\", volume_backed\u003dvolume_backed,"},{"line_number":114,"context_line":"            config_drive\u003dconfig_drive)[\u0027id\u0027]"},{"line_number":115,"context_line":"        source_host \u003d self.get_host_for_server(server_id)"},{"line_number":116,"context_line":"        destination_host \u003d self.get_host_other_than(server_id)"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_ca73154e","line":114,"in_reply_to":"3fa7e38b_3f446919","updated":"2019-11-06 19:29:37.000000000","message":"need it to boot the instance with config_drive true through rest api call","commit_id":"d231cb3b4d8d497c80983189c2aafcfff074c593"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"b4510dc4ebfc619510d6211b28a55cb4506b8b3d","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        self._test_live_migration()"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    @decorators.idempotent_id(\u0027f11bf4cb-494b-4f7e-98dd-ff5800adb0e7\u0027)"},{"line_number":138,"context_line":"    @testtools.skipUnless(CONF.compute_feature_enabled.config_drive,"},{"line_number":139,"context_line":"                          \u0027config_drive is not enabled.\u0027)"},{"line_number":140,"context_line":"    def test_live_block_migration_with_config_drive(self):"},{"line_number":141,"context_line":"        self._test_live_migration(config_drive\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_7fa66112","line":138,"range":{"start_line":138,"start_character":15,"end_line":138,"end_character":25},"updated":"2019-11-06 17:51:58.000000000","message":"I\u0027m thinking this should be the opposite, skipIf config drive is enabled.\n\nTempest seems to be using the option to mean whether config drive is being forced (nova force_config_drive\u003dTrue) in the deployment or not. If config drive is being forced, then we don\u0027t need this test. If config drive is not being forced, we could use this test.","commit_id":"d231cb3b4d8d497c80983189c2aafcfff074c593"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"0050fbcb648a8313aaca3a126a5b9bebb2951908","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        self._test_live_migration()"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    @decorators.idempotent_id(\u0027f11bf4cb-494b-4f7e-98dd-ff5800adb0e7\u0027)"},{"line_number":138,"context_line":"    @testtools.skipUnless(CONF.compute_feature_enabled.config_drive,"},{"line_number":139,"context_line":"                          \u0027config_drive is not enabled.\u0027)"},{"line_number":140,"context_line":"    def test_live_block_migration_with_config_drive(self):"},{"line_number":141,"context_line":"        self._test_live_migration(config_drive\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_4a588589","line":138,"range":{"start_line":138,"start_character":15,"end_line":138,"end_character":25},"in_reply_to":"3fa7e38b_1f1e4d0d","updated":"2019-11-06 19:36:24.000000000","message":"\u003e Yeah, it\u0027s a weird one. I\u0027d even argue the necessity of this new\n \u003e test - if an operator wants to test live migration with config\n \u003e drive, they just deploy with force_config_drive\u003dTrue in nova.conf\n \u003e and run the existing live migration test.\n\nThat\u0027s true but I do think think verifying whether LM with config drive works properly when specified via the REST API when force_config_drive\u003dFalse is a different path that is not yet covered by integration tests. So, I could see the usefulness here.","commit_id":"d231cb3b4d8d497c80983189c2aafcfff074c593"},{"author":{"_account_id":31239,"name":"Paras Babbar","email":"pbabbar@redhat.com","username":"pbabbar"},"change_message_id":"52b8583658bf562fd65e97813874e6d7e6997d9c","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        self._test_live_migration()"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    @decorators.idempotent_id(\u0027f11bf4cb-494b-4f7e-98dd-ff5800adb0e7\u0027)"},{"line_number":138,"context_line":"    @testtools.skipUnless(CONF.compute_feature_enabled.config_drive,"},{"line_number":139,"context_line":"                          \u0027config_drive is not enabled.\u0027)"},{"line_number":140,"context_line":"    def test_live_block_migration_with_config_drive(self):"},{"line_number":141,"context_line":"        self._test_live_migration(config_drive\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_0aab6dd7","line":138,"range":{"start_line":138,"start_character":15,"end_line":138,"end_character":25},"in_reply_to":"3fa7e38b_1f1e4d0d","updated":"2019-11-06 19:29:37.000000000","message":"This test is included  for the deployment which has #force_config_drive\u003dfalse ; so to test the config_drive with or without config_Drive on same tempest suite/deployment we need some test case like this ; but yes if the force_config_drive\u003dtrue then all of the live migration will be using it irrespective of rest api calls but then how the user will validate live_migration without config_drive on same deployment? may be what we can do as melanie suggested skip this test if force_Config_drive\u003dtrue as that can solve both the purpose?","commit_id":"d231cb3b4d8d497c80983189c2aafcfff074c593"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"dd7e46ca7d8e93aab3957d2593841072e9473010","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        self._test_live_migration()"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    @decorators.idempotent_id(\u0027f11bf4cb-494b-4f7e-98dd-ff5800adb0e7\u0027)"},{"line_number":138,"context_line":"    @testtools.skipUnless(CONF.compute_feature_enabled.config_drive,"},{"line_number":139,"context_line":"                          \u0027config_drive is not enabled.\u0027)"},{"line_number":140,"context_line":"    def test_live_block_migration_with_config_drive(self):"},{"line_number":141,"context_line":"        self._test_live_migration(config_drive\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_1f1e4d0d","line":138,"range":{"start_line":138,"start_character":15,"end_line":138,"end_character":25},"in_reply_to":"3fa7e38b_7fa66112","updated":"2019-11-06 18:04:02.000000000","message":"Yeah, it\u0027s a weird one. I\u0027d even argue the necessity of this new test - if an operator wants to test live migration with config drive, they just deploy with force_config_drive\u003dTrue in nova.conf and run the existing live migration test.","commit_id":"d231cb3b4d8d497c80983189c2aafcfff074c593"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"adfeae1afda421027bd124a409d487d375db9456","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        # Live migrate an instance to another host"},{"line_number":112,"context_line":"        server_id \u003d self.create_test_server("},{"line_number":113,"context_line":"            wait_until\u003d\"ACTIVE\", volume_backed\u003dvolume_backed,"},{"line_number":114,"context_line":"            config_drive\u003dconfig_drive)[\u0027id\u0027]"},{"line_number":115,"context_line":"        source_host \u003d self.get_host_for_server(server_id)"},{"line_number":116,"context_line":"        destination_host \u003d self.get_host_other_than(server_id)"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_b58a8a17","line":114,"range":{"start_line":114,"start_character":12,"end_line":114,"end_character":37},"updated":"2019-11-12 07:42:46.000000000","message":"I\u0027m not very clear with the bug, so I\u0027d like someone from Nova side to give some comments.\nAnd, I\u0027m wondering whether we can use \nconfig_drive\u003dnot CONF.compute_feature_enabled.config_drive?","commit_id":"deb039047a7e687e73aeb9d80f86f2b675337027"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"b231d0efd07a13d3b123dc6e19fc72cd431f842e","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        # Live migrate an instance to another host"},{"line_number":112,"context_line":"        server_id \u003d self.create_test_server("},{"line_number":113,"context_line":"            wait_until\u003d\"ACTIVE\", volume_backed\u003dvolume_backed,"},{"line_number":114,"context_line":"            config_drive\u003dconfig_drive)[\u0027id\u0027]"},{"line_number":115,"context_line":"        source_host \u003d self.get_host_for_server(server_id)"},{"line_number":116,"context_line":"        destination_host \u003d self.get_host_other_than(server_id)"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_4023dd05","line":114,"in_reply_to":"3fa7e38b_206821b8","updated":"2019-11-20 22:56:13.000000000","message":"\u003e whitebox tempest plugin cannot be used to restart and edit any conf files, its suppose to check instance xml info\n\nIt absolutely can.","commit_id":"deb039047a7e687e73aeb9d80f86f2b675337027"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"e2a85a64f0c1ce00248c7fcc815b006c77c59593","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        # Live migrate an instance to another host"},{"line_number":112,"context_line":"        server_id \u003d self.create_test_server("},{"line_number":113,"context_line":"            wait_until\u003d\"ACTIVE\", volume_backed\u003dvolume_backed,"},{"line_number":114,"context_line":"            config_drive\u003dconfig_drive)[\u0027id\u0027]"},{"line_number":115,"context_line":"        source_host \u003d self.get_host_for_server(server_id)"},{"line_number":116,"context_line":"        destination_host \u003d self.get_host_other_than(server_id)"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_c750470d","line":114,"range":{"start_line":114,"start_character":12,"end_line":114,"end_character":37},"in_reply_to":"3fa7e38b_94b7db85","updated":"2019-11-20 18:43:56.000000000","message":"My point was that we have no tempest suite upstream for live migration with FORCE_CONFIG_DRIVE\u003dFalse. So adding this to tempest will not result in covering it.","commit_id":"deb039047a7e687e73aeb9d80f86f2b675337027"},{"author":{"_account_id":31239,"name":"Paras Babbar","email":"pbabbar@redhat.com","username":"pbabbar"},"change_message_id":"0548882faf42abf2ffafe7e85870a5d20de5c16c","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        # Live migrate an instance to another host"},{"line_number":112,"context_line":"        server_id \u003d self.create_test_server("},{"line_number":113,"context_line":"            wait_until\u003d\"ACTIVE\", volume_backed\u003dvolume_backed,"},{"line_number":114,"context_line":"            config_drive\u003dconfig_drive)[\u0027id\u0027]"},{"line_number":115,"context_line":"        source_host \u003d self.get_host_for_server(server_id)"},{"line_number":116,"context_line":"        destination_host \u003d self.get_host_other_than(server_id)"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_d9d6f127","line":114,"range":{"start_line":114,"start_character":12,"end_line":114,"end_character":37},"in_reply_to":"3fa7e38b_ae165449","updated":"2019-11-20 14:19:32.000000000","message":"Yes everything is correct whatever you said Melanie, We have jobs in downstream CI which will be merging soon that deploy with force_config_drive\u003d true and vfat/iso9660 driver type. This one  we want to have it upstream so that we can cover the testcase as melanie mention using explicit restapi call with config_drive\u003dtrue for force_config_drive\u003dfalse env. \n\nI am not completely sure about this point that if nova.conf.force_config_Drive\u003dfalse then tempest.conf.compute_feature_enabled.config_drive\u003dfalse will have false value . I know that user can mention it at the time of deployment by setting these param:\n\nir_tripleo_overcloud_deploy_override_options: |-\n                      --config-heat ComputeExtraConfig.nova::compute::force_config_drive\u003d\u0027false\u0027 \nand\nir_tempest_run_override_options: \"--config-options compute-feature-enabled.config_drive\u003d\u0027false\u0027 \\\n \n(Note: By default the openstack deployment is done with force_config_drive\u003dfalse)","commit_id":"deb039047a7e687e73aeb9d80f86f2b675337027"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"aabfe801c1f918dbe2e31699c1b0dfdd475e9933","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        # Live migrate an instance to another host"},{"line_number":112,"context_line":"        server_id \u003d self.create_test_server("},{"line_number":113,"context_line":"            wait_until\u003d\"ACTIVE\", volume_backed\u003dvolume_backed,"},{"line_number":114,"context_line":"            config_drive\u003dconfig_drive)[\u0027id\u0027]"},{"line_number":115,"context_line":"        source_host \u003d self.get_host_for_server(server_id)"},{"line_number":116,"context_line":"        destination_host \u003d self.get_host_other_than(server_id)"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_ae165449","line":114,"range":{"start_line":114,"start_character":12,"end_line":114,"end_character":37},"in_reply_to":"3fa7e38b_b58a8a17","updated":"2019-11-19 23:01:07.000000000","message":"Not many people know this (including me, at first!) but as a user you can actually request config drive from the nova REST API:\n\nhttps://docs.openstack.org/api-ref/compute/?expanded\u003dcreate-server-detail#id12\n\nNow, in an environment where the nova.conf has [DEFAULT]/force_config_drive \u003d True, this would be a no-op. BUT, in an environment with [DEFAULT]/force_config_drive \u003d False, the user can get a config drive by calling POST /servers with config_drive: True.\n\nThe confusing bit is that tempest seems to use CONF.compute_feature_enabled.config_drive \u003d\u003d NOVA_CONF.force_config_drive. This means that tempest sets CONF.compute_feature_enabled.config_drive \u003d True when nova.conf force_config_drive \u003d True. This is the no-op situation for the config_drive REST API parameter. In this configuration, test_live_block_migration_with_config_drive would be 100% duplicated with test_live_block_migration, which would take additional gate testing time and resources for no gain.\n\nWhat we want in this patch is to be able to get a config drive when nova.conf force_config_drive \u003d False. My thinking is that when force_config_drive \u003d False, then tempest compute_feature_enabled.config_drive \u003d False, most likely.\n\nDownstream, we have deployments where nova.conf force_config_drive \u003d False and we want to be able to test when the user passes config_drive: True to the nova REST API in our tempest.\n\nWhat do you think? Do you think this patch makes sense as-is? Or do you think it would be better to just have the duplicated test coverage in the gate by doing skipUnless(CONF.compute_feature_enabled.config_drive) on test_live_block_migration_with_config_drive? Or is there another option I\u0027m not thinking of?","commit_id":"deb039047a7e687e73aeb9d80f86f2b675337027"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"ef5058880a0f5de6c25271b6afaa81daba62dcc9","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        # Live migrate an instance to another host"},{"line_number":112,"context_line":"        server_id \u003d self.create_test_server("},{"line_number":113,"context_line":"            wait_until\u003d\"ACTIVE\", volume_backed\u003dvolume_backed,"},{"line_number":114,"context_line":"            config_drive\u003dconfig_drive)[\u0027id\u0027]"},{"line_number":115,"context_line":"        source_host \u003d self.get_host_for_server(server_id)"},{"line_number":116,"context_line":"        destination_host \u003d self.get_host_other_than(server_id)"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_c7792793","line":114,"range":{"start_line":114,"start_character":12,"end_line":114,"end_character":37},"in_reply_to":"3fa7e38b_c750470d","updated":"2019-11-20 18:45:30.000000000","message":"\u003e My point was that we have no tempest suite upstream for live\n \u003e migration with FORCE_CONFIG_DRIVE\u003dFalse. So adding this to tempest\n \u003e will not result in covering it.\n\n*we have no live migration deployment with FORCE_CONFIG_DRIVE\u003dFalse","commit_id":"deb039047a7e687e73aeb9d80f86f2b675337027"},{"author":{"_account_id":31239,"name":"Paras Babbar","email":"pbabbar@redhat.com","username":"pbabbar"},"change_message_id":"f5b3dd757e4f58c91135c829cb44af18d154ae90","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        # Live migrate an instance to another host"},{"line_number":112,"context_line":"        server_id \u003d self.create_test_server("},{"line_number":113,"context_line":"            wait_until\u003d\"ACTIVE\", volume_backed\u003dvolume_backed,"},{"line_number":114,"context_line":"            config_drive\u003dconfig_drive)[\u0027id\u0027]"},{"line_number":115,"context_line":"        source_host \u003d self.get_host_for_server(server_id)"},{"line_number":116,"context_line":"        destination_host \u003d self.get_host_other_than(server_id)"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_c7ecc72a","line":114,"range":{"start_line":114,"start_character":12,"end_line":114,"end_character":37},"in_reply_to":"3fa7e38b_c750470d","updated":"2019-11-20 18:51:29.000000000","message":"Yeah other thing which I am thinking is  may be we can use white box tempest as it has ssh client for compute nodes , so something like below:\n1. go to nova.conf on the compute nodes add/modify FORCE_CONFIG_DRIVE param like false in this case\n2. restart the nova_compute container\n3. boot instance with config drive(rest api) and start the live migration\n4. revert it back","commit_id":"deb039047a7e687e73aeb9d80f86f2b675337027"},{"author":{"_account_id":27478,"name":"Archit Modi","email":"amodi@redhat.com","username":"amodi"},"change_message_id":"b241e0789befdfa7382bc5afda932fc70869398b","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        # Live migrate an instance to another host"},{"line_number":112,"context_line":"        server_id \u003d self.create_test_server("},{"line_number":113,"context_line":"            wait_until\u003d\"ACTIVE\", volume_backed\u003dvolume_backed,"},{"line_number":114,"context_line":"            config_drive\u003dconfig_drive)[\u0027id\u0027]"},{"line_number":115,"context_line":"        source_host \u003d self.get_host_for_server(server_id)"},{"line_number":116,"context_line":"        destination_host \u003d self.get_host_other_than(server_id)"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_206821b8","line":114,"range":{"start_line":114,"start_character":12,"end_line":114,"end_character":37},"in_reply_to":"3fa7e38b_c7ecc72a","updated":"2019-11-20 22:22:24.000000000","message":"whitebox tempest plugin cannot be used to restart and edit any conf files, its suppose to check instance xml info","commit_id":"deb039047a7e687e73aeb9d80f86f2b675337027"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"94a5b59a47debe3f1bd80f822afba742299bd3ce","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        # Live migrate an instance to another host"},{"line_number":112,"context_line":"        server_id \u003d self.create_test_server("},{"line_number":113,"context_line":"            wait_until\u003d\"ACTIVE\", volume_backed\u003dvolume_backed,"},{"line_number":114,"context_line":"            config_drive\u003dconfig_drive)[\u0027id\u0027]"},{"line_number":115,"context_line":"        source_host \u003d self.get_host_for_server(server_id)"},{"line_number":116,"context_line":"        destination_host \u003d self.get_host_other_than(server_id)"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_f14e6137","line":114,"range":{"start_line":114,"start_character":12,"end_line":114,"end_character":37},"in_reply_to":"3fa7e38b_d9d6f127","updated":"2019-11-20 18:01:21.000000000","message":"OK sorry, I didn\u0027t realize the goal here was to cover the config_drive REST API parameter upstream. So my idea of using skipIf(...enabled) doesn\u0027t so anything useful to cover the scenario in the gate.\n\nThe config_drive REST API parameter doesn\u0027t do anything when force_config_drive \u003d True. Here\u0027s the code that decides whether to use a config drive [1]:\n\n    return (instance.config_drive or\n            (CONF.force_config_drive and not instance.launched_at) or\n            image_prop \u003d\u003d fields.ConfigDrivePolicy.MANDATORY\n            )\n\nFor the nova-live-migration job, we set force_config_drive \u003d True [2]:\n\n        # Force config drive.\n        cmd: |\n          set -e\n          set -x\n          cat \u003c\u003c \u0027EOF\u0027 \u003e\u003e\"/tmp/dg-local.conf\"\n          [[local|localrc]]\n          FORCE_CONFIG_DRIVE\u003dTrue\n\nSo a test to use the REST API parameter is not going to do anything in this case.\n\nWe could try removing the config drive forcing and use the REST API parameter instead for the live block migration cases. But then we lose coverage of the force_config_drive \u003d True live block migration cases.\n\nIt seems like we are stuck not being able to cover both scenarios because we can\u0027t represent two different configurations in a single job (nova-live-migration).\n\n[1] https://github.com/openstack/nova/blob/1cd5563f2dd2b218db2422397c8aab394d484626/nova/virt/configdrive.py#L157-L169\n[2] https://github.com/openstack/nova/blob/1cd5563f2dd2b218db2422397c8aab394d484626/playbooks/legacy/nova-live-migration/run.yaml#L34","commit_id":"deb039047a7e687e73aeb9d80f86f2b675337027"},{"author":{"_account_id":31239,"name":"Paras Babbar","email":"pbabbar@redhat.com","username":"pbabbar"},"change_message_id":"d1ca3be124e1d33d3094d8c630e6c009429ecc0e","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        # Live migrate an instance to another host"},{"line_number":112,"context_line":"        server_id \u003d self.create_test_server("},{"line_number":113,"context_line":"            wait_until\u003d\"ACTIVE\", volume_backed\u003dvolume_backed,"},{"line_number":114,"context_line":"            config_drive\u003dconfig_drive)[\u0027id\u0027]"},{"line_number":115,"context_line":"        source_host \u003d self.get_host_for_server(server_id)"},{"line_number":116,"context_line":"        destination_host \u003d self.get_host_other_than(server_id)"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_94b7db85","line":114,"range":{"start_line":114,"start_character":12,"end_line":114,"end_character":37},"in_reply_to":"3fa7e38b_f14e6137","updated":"2019-11-20 18:37:06.000000000","message":"Yes in either case we need two deployment to cover both scenario \n1. Use rest api to cover config drive migration(FORCE_CONFIG_DRIVE\u003dfalse)\n2. use FORCE_CONFIG_DRIVE\u003dtrue to cover all the migration with config drive\n\nBut with current tempest suite with FORCE_CONFIG_DRIVE\u003dfalse deployment we are not even touching config drive enabled live migration which is the reason we suggested this case to at-least someway we can fill the gap.","commit_id":"deb039047a7e687e73aeb9d80f86f2b675337027"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"adfeae1afda421027bd124a409d487d375db9456","unresolved":false,"context_lines":[{"line_number":130,"context_line":"            LOG.info(\"Live migrate back to source %s\", source_host)"},{"line_number":131,"context_line":"            self._live_migrate(server_id, source_host, state, volume_backed)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    @decorators.idempotent_id(\u00271dce86b8-eb04-4c03-a9d8-9c1dc3ee0c7b\u0027)"},{"line_number":134,"context_line":"    def test_live_block_migration(self):"},{"line_number":135,"context_line":"        self._test_live_migration()"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    @decorators.idempotent_id(\u0027f11bf4cb-494b-4f7e-98dd-ff5800adb0e7\u0027)"},{"line_number":138,"context_line":"    @testtools.skipIf(CONF.compute_feature_enabled.config_drive,"},{"line_number":139,"context_line":"                      \u0027config_drive is already enabled.\u0027)"},{"line_number":140,"context_line":"    def test_live_block_migration_with_config_drive(self):"},{"line_number":141,"context_line":"        self._test_live_migration(config_drive\u003dTrue)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    @decorators.idempotent_id(\u00271e107f21-61b2-4988-8f22-b196e938ab88\u0027)"},{"line_number":144,"context_line":"    @testtools.skipUnless(CONF.compute_feature_enabled.pause,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_95874e13","line":141,"range":{"start_line":133,"start_character":0,"end_line":141,"end_character":52},"updated":"2019-11-12 07:42:46.000000000","message":"I\u0027m a little confused.\n1) CONF.compute_feature_enabled.config_drive\u003dTrue:\n   _test_live_migration(config_drive\u003dFalse) will be executed\n2) CONF.compute_feature_enabled.config_drive\u003dFalse:\n   both test_live_block_migration(config_drive\u003dFalse) and\n   test_live_block_migration(config_drive\u003dTrue) will be executed\n\nIs that you wanted?","commit_id":"deb039047a7e687e73aeb9d80f86f2b675337027"},{"author":{"_account_id":31239,"name":"Paras Babbar","email":"pbabbar@redhat.com","username":"pbabbar"},"change_message_id":"c442434e4f344a59fdbf2e132c35a327de5c7378","unresolved":false,"context_lines":[{"line_number":130,"context_line":"            LOG.info(\"Live migrate back to source %s\", source_host)"},{"line_number":131,"context_line":"            self._live_migrate(server_id, source_host, state, volume_backed)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    @decorators.idempotent_id(\u00271dce86b8-eb04-4c03-a9d8-9c1dc3ee0c7b\u0027)"},{"line_number":134,"context_line":"    def test_live_block_migration(self):"},{"line_number":135,"context_line":"        self._test_live_migration()"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    @decorators.idempotent_id(\u0027f11bf4cb-494b-4f7e-98dd-ff5800adb0e7\u0027)"},{"line_number":138,"context_line":"    @testtools.skipIf(CONF.compute_feature_enabled.config_drive,"},{"line_number":139,"context_line":"                      \u0027config_drive is already enabled.\u0027)"},{"line_number":140,"context_line":"    def test_live_block_migration_with_config_drive(self):"},{"line_number":141,"context_line":"        self._test_live_migration(config_drive\u003dTrue)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    @decorators.idempotent_id(\u00271e107f21-61b2-4988-8f22-b196e938ab88\u0027)"},{"line_number":144,"context_line":"    @testtools.skipUnless(CONF.compute_feature_enabled.pause,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_73b603df","line":141,"range":{"start_line":133,"start_character":0,"end_line":141,"end_character":52},"in_reply_to":"3fa7e38b_95874e13","updated":"2019-11-19 22:05:45.000000000","message":"So what I wanted is to cover the test case in the deployment which has #force_config_Drive\u003dfalse, hence all the live migration test cases are migrating without config drive except the one test case I mentioned . So on one env. we can test both test case with or without config drive (2) you mentioned.","commit_id":"deb039047a7e687e73aeb9d80f86f2b675337027"}],"tempest/api/compute/base.py":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"dd7e46ca7d8e93aab3957d2593841072e9473010","unresolved":false,"context_lines":[{"line_number":209,"context_line":""},{"line_number":210,"context_line":"    @classmethod"},{"line_number":211,"context_line":"    def create_test_server("},{"line_number":212,"context_line":"            cls, validatable\u003dFalse, volume_backed\u003dFalse, config_drive\u003dFalse,"},{"line_number":213,"context_line":"            validation_resources\u003dNone, **kwargs):"},{"line_number":214,"context_line":"        \"\"\"Wrapper utility that returns a test server."},{"line_number":215,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_7ff421f2","line":212,"updated":"2019-11-06 18:04:02.000000000","message":"You don\u0027t need this, as any extra kwargs are passed down to compute.create_test_server.","commit_id":"d231cb3b4d8d497c80983189c2aafcfff074c593"},{"author":{"_account_id":31239,"name":"Paras Babbar","email":"pbabbar@redhat.com","username":"pbabbar"},"change_message_id":"52b8583658bf562fd65e97813874e6d7e6997d9c","unresolved":false,"context_lines":[{"line_number":209,"context_line":""},{"line_number":210,"context_line":"    @classmethod"},{"line_number":211,"context_line":"    def create_test_server("},{"line_number":212,"context_line":"            cls, validatable\u003dFalse, volume_backed\u003dFalse, config_drive\u003dFalse,"},{"line_number":213,"context_line":"            validation_resources\u003dNone, **kwargs):"},{"line_number":214,"context_line":"        \"\"\"Wrapper utility that returns a test server."},{"line_number":215,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_eaecd1bc","line":212,"in_reply_to":"3fa7e38b_7ff421f2","updated":"2019-11-06 19:29:37.000000000","message":"done","commit_id":"d231cb3b4d8d497c80983189c2aafcfff074c593"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"dd7e46ca7d8e93aab3957d2593841072e9473010","unresolved":false,"context_lines":[{"line_number":245,"context_line":"            tenant_network\u003dtenant_network,"},{"line_number":246,"context_line":"            volume_backed\u003dvolume_backed,"},{"line_number":247,"context_line":"            config_drive\u003dconfig_drive,"},{"line_number":248,"context_line":"            **kwargs)"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        # For each server schedule wait and delete, so we first delete all"},{"line_number":251,"context_line":"        # and then wait for all"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_3fd6a955","line":248,"updated":"2019-11-06 18:04:02.000000000","message":"You can remove the previous line, because of the **kwargs here.","commit_id":"d231cb3b4d8d497c80983189c2aafcfff074c593"},{"author":{"_account_id":31239,"name":"Paras Babbar","email":"pbabbar@redhat.com","username":"pbabbar"},"change_message_id":"52b8583658bf562fd65e97813874e6d7e6997d9c","unresolved":false,"context_lines":[{"line_number":245,"context_line":"            tenant_network\u003dtenant_network,"},{"line_number":246,"context_line":"            volume_backed\u003dvolume_backed,"},{"line_number":247,"context_line":"            config_drive\u003dconfig_drive,"},{"line_number":248,"context_line":"            **kwargs)"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        # For each server schedule wait and delete, so we first delete all"},{"line_number":251,"context_line":"        # and then wait for all"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_8a275d1f","line":248,"in_reply_to":"3fa7e38b_3fd6a955","updated":"2019-11-06 19:29:37.000000000","message":"Done","commit_id":"d231cb3b4d8d497c80983189c2aafcfff074c593"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"adfeae1afda421027bd124a409d487d375db9456","unresolved":false,"context_lines":[{"line_number":216,"context_line":"        returns a test server. The purpose of this wrapper is to minimize"},{"line_number":217,"context_line":"        the impact on the code of the tests already using this"},{"line_number":218,"context_line":"        function."},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"        :param validatable: Whether the server will be pingable or sshable."},{"line_number":221,"context_line":"        :param volume_backed: Whether the instance is volume backed or not."},{"line_number":222,"context_line":"        :param validation_resources: Dictionary of validation resources as"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_d5edc6f0","side":"PARENT","line":219,"updated":"2019-11-12 07:42:46.000000000","message":"no need this change","commit_id":"9cdd5250615bb6ab26a1a9a80743a03cc81b3b4a"},{"author":{"_account_id":27478,"name":"Archit Modi","email":"amodi@redhat.com","username":"amodi"},"change_message_id":"b241e0789befdfa7382bc5afda932fc70869398b","unresolved":false,"context_lines":[{"line_number":216,"context_line":"        returns a test server. The purpose of this wrapper is to minimize"},{"line_number":217,"context_line":"        the impact on the code of the tests already using this"},{"line_number":218,"context_line":"        function."},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"        :param validatable: Whether the server will be pingable or sshable."},{"line_number":221,"context_line":"        :param volume_backed: Whether the instance is volume backed or not."},{"line_number":222,"context_line":"        :param validation_resources: Dictionary of validation resources as"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_e05d2916","side":"PARENT","line":219,"in_reply_to":"3fa7e38b_d5edc6f0","updated":"2019-11-20 22:22:24.000000000","message":"agree, @Paras can u remove this change?","commit_id":"9cdd5250615bb6ab26a1a9a80743a03cc81b3b4a"}],"tempest/common/compute.py":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"dd7e46ca7d8e93aab3957d2593841072e9473010","unresolved":false,"context_lines":[{"line_number":64,"context_line":"def create_test_server(clients, validatable\u003dFalse, validation_resources\u003dNone,"},{"line_number":65,"context_line":"                       tenant_network\u003dNone, wait_until\u003dNone,"},{"line_number":66,"context_line":"                       volume_backed\u003dFalse, name\u003dNone, flavor\u003dNone,"},{"line_number":67,"context_line":"                       image_id\u003dNone, config_drive\u003dFalse, **kwargs):"},{"line_number":68,"context_line":"    \"\"\"Common wrapper utility returning a test server."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    This method is a common wrapper returning a test server that can be"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_ffb81112","line":67,"updated":"2019-11-06 18:04:02.000000000","message":"No need for this, kwargs takes care of this.","commit_id":"d231cb3b4d8d497c80983189c2aafcfff074c593"},{"author":{"_account_id":31239,"name":"Paras Babbar","email":"pbabbar@redhat.com","username":"pbabbar"},"change_message_id":"52b8583658bf562fd65e97813874e6d7e6997d9c","unresolved":false,"context_lines":[{"line_number":64,"context_line":"def create_test_server(clients, validatable\u003dFalse, validation_resources\u003dNone,"},{"line_number":65,"context_line":"                       tenant_network\u003dNone, wait_until\u003dNone,"},{"line_number":66,"context_line":"                       volume_backed\u003dFalse, name\u003dNone, flavor\u003dNone,"},{"line_number":67,"context_line":"                       image_id\u003dNone, config_drive\u003dFalse, **kwargs):"},{"line_number":68,"context_line":"    \"\"\"Common wrapper utility returning a test server."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    This method is a common wrapper returning a test server that can be"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_2af3c9a1","line":67,"in_reply_to":"3fa7e38b_ffb81112","updated":"2019-11-06 19:29:37.000000000","message":"yup , removing it","commit_id":"d231cb3b4d8d497c80983189c2aafcfff074c593"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"dd7e46ca7d8e93aab3957d2593841072e9473010","unresolved":false,"context_lines":[{"line_number":201,"context_line":"                          CONF.compute.compute_volume_common_az)"},{"line_number":202,"context_line":"    body \u003d clients.servers_client.create_server("},{"line_number":203,"context_line":"        name\u003dname, imageRef\u003dimage_id, flavorRef\u003dflavor,"},{"line_number":204,"context_line":"        config_drive\u003dconfig_drive, **kwargs)"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"    # handle the case of multiple servers"},{"line_number":207,"context_line":"    if multiple_create_request:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_1fc2cd87","line":204,"updated":"2019-11-06 18:04:02.000000000","message":"If you have config_drive in your kwargs, you don\u0027t need to explicitly add it here (see tempest/lib/services/compute/servers_client.py).","commit_id":"d231cb3b4d8d497c80983189c2aafcfff074c593"},{"author":{"_account_id":31239,"name":"Paras Babbar","email":"pbabbar@redhat.com","username":"pbabbar"},"change_message_id":"52b8583658bf562fd65e97813874e6d7e6997d9c","unresolved":false,"context_lines":[{"line_number":201,"context_line":"                          CONF.compute.compute_volume_common_az)"},{"line_number":202,"context_line":"    body \u003d clients.servers_client.create_server("},{"line_number":203,"context_line":"        name\u003dname, imageRef\u003dimage_id, flavorRef\u003dflavor,"},{"line_number":204,"context_line":"        config_drive\u003dconfig_drive, **kwargs)"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"    # handle the case of multiple servers"},{"line_number":207,"context_line":"    if multiple_create_request:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_caef95af","line":204,"in_reply_to":"3fa7e38b_1fc2cd87","updated":"2019-11-06 19:29:37.000000000","message":"make sense! removing it","commit_id":"d231cb3b4d8d497c80983189c2aafcfff074c593"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"adfeae1afda421027bd124a409d487d375db9456","unresolved":false,"context_lines":[{"line_number":199,"context_line":"    if CONF.compute.compute_volume_common_az:"},{"line_number":200,"context_line":"        kwargs.setdefault(\u0027availability_zone\u0027,"},{"line_number":201,"context_line":"                          CONF.compute.compute_volume_common_az)"},{"line_number":202,"context_line":"    body \u003d clients.servers_client.create_server(name\u003dname, imageRef\u003dimage_id,"},{"line_number":203,"context_line":"                                                flavorRef\u003dflavor,"},{"line_number":204,"context_line":"                                                **kwargs)"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"    # handle the case of multiple servers"},{"line_number":207,"context_line":"    if multiple_create_request:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_75b652fc","side":"PARENT","line":204,"range":{"start_line":202,"start_character":0,"end_line":204,"end_character":57},"updated":"2019-11-12 07:42:46.000000000","message":"not relevant to this patch","commit_id":"9cdd5250615bb6ab26a1a9a80743a03cc81b3b4a"},{"author":{"_account_id":27478,"name":"Archit Modi","email":"amodi@redhat.com","username":"amodi"},"change_message_id":"b241e0789befdfa7382bc5afda932fc70869398b","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        kwargs.setdefault(\u0027availability_zone\u0027,"},{"line_number":201,"context_line":"                          CONF.compute.compute_volume_common_az)"},{"line_number":202,"context_line":"    body \u003d clients.servers_client.create_server("},{"line_number":203,"context_line":"        name\u003dname, imageRef\u003dimage_id, flavorRef\u003dflavor,"},{"line_number":204,"context_line":"        **kwargs)"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"    # handle the case of multiple servers"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_005ba521","line":203,"updated":"2019-11-20 22:22:24.000000000","message":"same, remove this change","commit_id":"deb039047a7e687e73aeb9d80f86f2b675337027"}],"tempest/lib/services/compute/servers_client.py":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"dd7e46ca7d8e93aab3957d2593841072e9473010","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        :param scheduler_hints: The name is changed to os:scheduler_hints and"},{"line_number":85,"context_line":"        the parameter is set in the same level as the parameter \u0027server\u0027."},{"line_number":86,"context_line":"        \"\"\""},{"line_number":87,"context_line":"        body \u003d copy.deepcopy(kwargs)"},{"line_number":88,"context_line":"        if body.get(\u0027disk_config\u0027):"},{"line_number":89,"context_line":"            body[\u0027OS-DCF:diskConfig\u0027] \u003d body.pop(\u0027disk_config\u0027)"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_5fc845a7","line":87,"updated":"2019-11-06 18:04:02.000000000","message":"Any kwargs you pass will end up in the body.","commit_id":"d231cb3b4d8d497c80983189c2aafcfff074c593"}]}
