def test_migrate_from_3_to_4(self, sleep, get_size): get_size.return_value = 0 config_file = InMemoryConfigStore("test") sample_config = { "meta": { "config.version": 3 }, "system": { "root.dir": "in-memory" }, "reporting": { "datastore.host": "" }, "build": { "maven.bin": "/usr/local/mvn" }, "benchmarks": { "metrics.stats.disk.device": "/dev/hdd1" } } config_file.store(sample_config) config.migrate(config_file, 3, 4, out=null_output) self.assertTrue(config_file.backup_created) self.assertEqual("4", config_file.config["meta"]["config.version"]) # Did not delete the section... self.assertTrue("build" in config_file.config) # ... but the key self.assertFalse("maven.bin" in config_file.config["build"]) self.assertTrue("benchmarks" in config_file.config) self.assertFalse("metrics.stats.disk.device" in config_file.config["benchmarks"]) self.assertEqual("in-memory", config_file.config["reporting"]["datastore.type"])
def test_migrate_from_11_to_12_with_custom_src_config( self, path_rename, path_exists): path_exists.return_value = False config_file = InMemoryConfigStore("test") sample_config = { "meta": { "config.version": 11 }, "node": { "root.dir": io.normalize_path("~/.rally/benchmarks") }, "source": { "local.src.dir": io.normalize_path("~/Projects/elasticsearch/master/es") } } config_file.store(sample_config) config.migrate(config_file, 11, 12, out=null_output) self.assertTrue(config_file.backup_created) self.assertEqual("12", config_file.config["meta"]["config.version"]) self.assertEqual(io.normalize_path("~/Projects/elasticsearch/master"), config_file.config["node"]["src.root.dir"]) self.assertEqual( "es", config_file.config["source"]["elasticsearch.src.subdir"]) # did all the migrations but nothing moved path_rename.assert_not_called()
def test_migrate_from_0_to_latest(self, sleep, get_size): get_size.return_value = 0 config_file = InMemoryConfigStore("test") sample_config = { "system": { "root.dir": "in-memory" }, "provisioning": { }, "build": { "maven.bin": "/usr/local/mvn" }, "benchmarks": { "metrics.stats.disk.device": "/dev/hdd1" }, "reporting": { "report.base.dir": "/tests/rally/reporting", "output.html.report.filename": "index.html" }, "runtime": { "java8.home": "/opt/jdk/8", } } config_file.store(sample_config) config.migrate(config_file, 0, config.Config.CURRENT_CONFIG_VERSION, out=null_output) self.assertTrue(config_file.backup_created) self.assertEqual(str(config.Config.CURRENT_CONFIG_VERSION), config_file.config["meta"]["config.version"])
def test_migrate_from_9_to_10(self): config_file = InMemoryConfigStore("test") sample_config = { "meta": { "config.version": 9 }, "system": { "root.dir": "~/.rally/benchmarks", "environment.name": "local" }, "benchmarks": { "local.dataset.cache": "${system:root.dir}/data", "some.other.cache": "/data" } } config_file.store(sample_config) config.migrate(config_file, 9, 10, out=null_output) self.assertTrue(config_file.backup_created) self.assertEqual("10", config_file.config["meta"]["config.version"]) self.assertTrue("distributions" in config_file.config) self.assertEqual("https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-{{VERSION}}.tar.gz", config_file.config["distributions"]["release.1.url"]) self.assertEqual("https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/" "{{VERSION}}/elasticsearch-{{VERSION}}.tar.gz", config_file.config["distributions"]["release.2.url"]) self.assertEqual("https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-{{VERSION}}.tar.gz", config_file.config["distributions"]["release.url"]) self.assertEqual("true", config_file.config["distributions"]["release.cache"])
def test_does_not_migrate_outdated_config(self): config_file = InMemoryConfigStore("test") sample_config = { "system": { "root.dir": "in-memory" }, "provisioning": { }, "build": { "maven.bin": "/usr/local/mvn" }, "benchmarks": { "metrics.stats.disk.device": "/dev/hdd1" }, "reporting": { "report.base.dir": "/tests/rally/reporting", "output.html.report.filename": "index.html" }, "runtime": { "java8.home": "/opt/jdk/8", } } config_file.store(sample_config) with self.assertRaisesRegex(config.ConfigError, "The config file.*is too old. Please delete it and reconfigure Rally from scratch"): config.migrate(config_file, config.Config.EARLIEST_SUPPORTED_VERSION - 1, config.Config.CURRENT_CONFIG_VERSION, out=null_output)
def test_migrate_from_earliest_supported_to_latest(self): config_file = InMemoryConfigStore("test") sample_config = { "meta": { "config.version": config.Config.EARLIEST_SUPPORTED_VERSION }, "system": { "root.dir": "in-memory" }, "provisioning": { }, "build": { "maven.bin": "/usr/local/mvn" }, "benchmarks": { "metrics.stats.disk.device": "/dev/hdd1" }, "reporting": { "report.base.dir": "/tests/rally/reporting", "output.html.report.filename": "index.html" }, "runtime": { "java8.home": "/opt/jdk/8", }, "distributions": { "release.url": "https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-{{VERSION}}.tar.gz" } } config_file.store(sample_config) config.migrate(config_file, config.Config.EARLIEST_SUPPORTED_VERSION, config.Config.CURRENT_CONFIG_VERSION, out=null_output) self.assertTrue(config_file.backup_created) self.assertEqual(str(config.Config.CURRENT_CONFIG_VERSION), config_file.config["meta"]["config.version"])
def test_migrate_from_7_to_8(self): config_file = InMemoryConfigStore("test") sample_config = { "meta": { "config.version": 7 }, "system": { "root.dir": "~/.rally/benchmarks", "environment.name": "local" }, "benchmarks": { "local.dataset.cache": "${system:root.dir}/data", "some.other.cache": "/data" } } config_file.store(sample_config) config.migrate(config_file, 7, 8, out=null_output) self.assertTrue(config_file.backup_created) self.assertEqual("8", config_file.config["meta"]["config.version"]) self.assertTrue("root.dir" not in config_file.config["system"]) self.assertEqual("~/.rally/benchmarks", config_file.config["node"]["root.dir"]) self.assertEqual("local", config_file.config["system"]["environment.name"]) self.assertEqual("${node:root.dir}/data", config_file.config["benchmarks"]["local.dataset.cache"]) self.assertEqual("/data", config_file.config["benchmarks"]["some.other.cache"])
def test_migrate_from_13_to_14_with_gradle_and_jdk8_ask_user_enter_valid(self, major_version, is_early_access_release, guess_java_home, path_exists): guess_java_home.return_value = None is_early_access_release.return_value = False major_version.side_effect = [8, 10] path_exists.return_value = True config_file = InMemoryConfigStore("test") sample_config = { "meta": { "config.version": 13 }, "build": { "gradle.bin": "/usr/local/bin/gradle" }, "runtime": { "java.home": "/usr/lib/java8" } } config_file.store(sample_config) config.migrate(config_file, 13, 14, out=null_output, i=MockInput(inputs=["/usr/lib/java10"])) self.assertTrue(config_file.backup_created) self.assertEqual("14", config_file.config["meta"]["config.version"]) self.assertEqual("/usr/lib/java8", config_file.config["runtime"]["java.home"]) self.assertEqual("/usr/lib/java10", config_file.config["runtime"]["java10.home"])
def test_migrate_from_11_to_12_with_default_src_config_repo_checked_out(self, path_rename, path_exists): path_exists.return_value = True config_file = InMemoryConfigStore("test") sample_config = { "meta": { "config.version": 11 }, "node": { "root.dir": io.normalize_path("~/.rally/benchmarks") }, "source": { "local.src.dir": io.normalize_path("~/.rally/benchmarks/src") } } config_file.store(sample_config) config.migrate(config_file, 11, 12, out=null_output) self.assertTrue(config_file.backup_created) self.assertEqual("12", config_file.config["meta"]["config.version"]) self.assertEqual(io.normalize_path("~/.rally/benchmarks/src"), config_file.config["node"]["src.root.dir"]) self.assertEqual("elasticsearch", config_file.config["source"]["elasticsearch.src.subdir"]) path_rename.assert_has_calls( [ mock.call(io.normalize_path("~/.rally/benchmarks/src"), io.normalize_path("~/.rally/benchmarks/tmp_src_mig")), mock.call(io.normalize_path("~/.rally/benchmarks/tmp_src_mig"), io.normalize_path("~/.rally/benchmarks/src/elasticsearch")), ] )
def test_migrate_from_12_to_13_with_gradle_and_jdk8_ask_user_and_skip( self, major_version, is_early_access_release, guess_java_home): guess_java_home.return_value = None is_early_access_release.return_value = False major_version.return_value = 8 config_file = InMemoryConfigStore("test") sample_config = { "meta": { "config.version": 12 }, "build": { "gradle.bin": "/usr/local/bin/gradle" }, "runtime": { "java.home": "/usr/lib/java8" } } config_file.store(sample_config) config.migrate(config_file, 12, 13, out=null_output, i=MockInput(inputs=[""])) self.assertTrue(config_file.backup_created) self.assertEqual("13", config_file.config["meta"]["config.version"]) self.assertEqual("/usr/lib/java8", config_file.config["runtime"]["java.home"]) self.assertTrue("java9.home" not in config_file.config["runtime"])
def test_migrate_from_2_to_3(self): config_file = InMemoryConfigStore("test") sample_config = { "meta": { "config.version": 2 }, "system": { "root.dir": "in-memory" }, "reporting": { "report.base.dir": "/tests/rally/reporting", "output.html.report.filename": "index.html" }, } config_file.store(sample_config) config.migrate(config_file, 2, 3, out=null_output) self.assertTrue(config_file.backup_created) self.assertEqual("3", config_file.config["meta"]["config.version"]) # Did not delete the section... self.assertTrue("reporting" in config_file.config) # ... but the key self.assertFalse("report.base.dir" in config_file.config["reporting"]) self.assertFalse( "output.html.report.filename" in config_file.config["reporting"])
def test_migrate_from_3_to_4(self, sleep, get_size): get_size.return_value = 0 config_file = InMemoryConfigStore("test") sample_config = { "meta": { "config.version": 3 }, "system": { "root.dir": "in-memory" }, "reporting": { "datastore.host": "" }, "build": { "maven.bin": "/usr/local/mvn" }, "benchmarks": { "metrics.stats.disk.device": "/dev/hdd1" } } config_file.store(sample_config) config.migrate(config_file, 3, 4, out=null_output) self.assertTrue(config_file.backup_created) self.assertEqual("4", config_file.config["meta"]["config.version"]) # Did not delete the section... self.assertTrue("build" in config_file.config) # ... but the key self.assertFalse("maven.bin" in config_file.config["build"]) self.assertTrue("benchmarks" in config_file.config) self.assertFalse( "metrics.stats.disk.device" in config_file.config["benchmarks"]) self.assertEqual("in-memory", config_file.config["reporting"]["datastore.type"])
def test_migrate_from_0_to_latest(self, sleep, get_size): get_size.return_value = 0 config_file = InMemoryConfigStore("test") sample_config = { "system": { "root.dir": "in-memory" }, "provisioning": {}, "build": { "maven.bin": "/usr/local/mvn" }, "benchmarks": { "metrics.stats.disk.device": "/dev/hdd1" }, "reporting": { "report.base.dir": "/tests/rally/reporting", "output.html.report.filename": "index.html" }, "runtime": { "java8.home": "/opt/jdk/8", } } config_file.store(sample_config) config.migrate(config_file, 0, config.Config.CURRENT_CONFIG_VERSION, out=null_output) self.assertTrue(config_file.backup_created) self.assertEqual(str(config.Config.CURRENT_CONFIG_VERSION), config_file.config["meta"]["config.version"])
def test_migrate_from_7_to_8(self): config_file = InMemoryConfigStore("test") sample_config = { "meta": { "config.version": 7 }, "system": { "root.dir": "~/.rally/benchmarks", "environment.name": "local" }, "benchmarks": { "local.dataset.cache": "${system:root.dir}/data", "some.other.cache": "/data" } } config_file.store(sample_config) config.migrate(config_file, 7, 8, out=null_output) self.assertTrue(config_file.backup_created) self.assertEqual("8", config_file.config["meta"]["config.version"]) self.assertTrue("root.dir" not in config_file.config["system"]) self.assertEqual("~/.rally/benchmarks", config_file.config["node"]["root.dir"]) self.assertEqual("local", config_file.config["system"]["environment.name"]) self.assertEqual( "${node:root.dir}/data", config_file.config["benchmarks"]["local.dataset.cache"]) self.assertEqual("/data", config_file.config["benchmarks"]["some.other.cache"])
def test_migrate_from_2_to_3(self): config_file = InMemoryConfigStore("test") sample_config = { "meta": { "config.version": 2 }, "system": { "root.dir": "in-memory" }, "reporting": { "report.base.dir": "/tests/rally/reporting", "output.html.report.filename": "index.html" }, } config_file.store(sample_config) config.migrate(config_file, 2, 3, out=null_output) self.assertTrue(config_file.backup_created) self.assertEqual("3", config_file.config["meta"]["config.version"]) # Did not delete the section... self.assertTrue("reporting" in config_file.config) # ... but the key self.assertFalse("report.base.dir" in config_file.config["reporting"]) self.assertFalse("output.html.report.filename" in config_file.config["reporting"])
def test_migrate_from_11_to_12_with_default_src_config_repo_checked_out( self, path_rename, path_exists): path_exists.return_value = True config_file = InMemoryConfigStore("test") sample_config = { "meta": { "config.version": 11 }, "node": { "root.dir": io.normalize_path("~/.rally/benchmarks") }, "source": { "local.src.dir": io.normalize_path("~/.rally/benchmarks/src") } } config_file.store(sample_config) config.migrate(config_file, 11, 12, out=null_output) self.assertTrue(config_file.backup_created) self.assertEqual("12", config_file.config["meta"]["config.version"]) self.assertEqual(io.normalize_path("~/.rally/benchmarks/src"), config_file.config["node"]["src.root.dir"]) self.assertEqual( "elasticsearch", config_file.config["source"]["elasticsearch.src.subdir"]) path_rename.assert_has_calls([ mock.call(io.normalize_path("~/.rally/benchmarks/src"), io.normalize_path("~/.rally/benchmarks/tmp_src_mig")), mock.call( io.normalize_path("~/.rally/benchmarks/tmp_src_mig"), io.normalize_path("~/.rally/benchmarks/src/elasticsearch")), ])
def test_migrate_from_9_to_10(self): config_file = InMemoryConfigStore("test") sample_config = { "meta": { "config.version": 9 }, "system": { "root.dir": "~/.rally/benchmarks", "environment.name": "local" }, "benchmarks": { "local.dataset.cache": "${system:root.dir}/data", "some.other.cache": "/data" } } config_file.store(sample_config) config.migrate(config_file, 9, 10, out=null_output) self.assertTrue(config_file.backup_created) self.assertEqual("10", config_file.config["meta"]["config.version"]) self.assertTrue("distributions" in config_file.config) self.assertEqual( "https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-{{VERSION}}.tar.gz", config_file.config["distributions"]["release.1.url"]) self.assertEqual( "https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/" "{{VERSION}}/elasticsearch-{{VERSION}}.tar.gz", config_file.config["distributions"]["release.2.url"]) self.assertEqual( "https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-{{VERSION}}.tar.gz", config_file.config["distributions"]["release.url"]) self.assertEqual("true", config_file.config["distributions"]["release.cache"])
def test_migrate_from_12_to_13_with_gradle_and_jdk8_autodetect_jdk9( self, is_early_access_release, guess_java_home): guess_java_home.return_value = "/usr/lib/java9" is_early_access_release.return_value = False config_file = InMemoryConfigStore("test") sample_config = { "meta": { "config.version": 12 }, "build": { "gradle.bin": "/usr/local/bin/gradle" }, "runtime": { "java.home": "/usr/lib/java8" } } config_file.store(sample_config) config.migrate(config_file, 12, 13, out=null_output) self.assertTrue(config_file.backup_created) self.assertEqual("13", config_file.config["meta"]["config.version"]) self.assertEqual("/usr/lib/java8", config_file.config["runtime"]["java.home"]) self.assertEqual("/usr/lib/java9", config_file.config["runtime"]["java9.home"])
def test_migrate_from_16_to_17(self): config_file = InMemoryConfigStore("test") sample_config = { "meta": { "config.version": 16 }, "node": { "root.dir": "/home/user/.rally/benchmarks" }, "runtime": { "java.home": "/usr/local/javas/10" }, "benchmarks": { "local.dataset.cache": "${node:root.dir}/data" } } config_file.store(sample_config) config.migrate(config_file, 16, 17, out=null_output) self.assertTrue(config_file.backup_created) self.assertEqual("17", config_file.config["meta"]["config.version"]) self.assertNotIn("runtime", config_file.config) self.assertEqual( "/home/user/.rally/benchmarks/data", config_file.config["benchmarks"]["local.dataset.cache"])
def test_migrate_from_13_to_14_with_gradle_and_jdk10( self, major_version, is_early_access_release, guess_java_home): guess_java_home.return_value = None is_early_access_release.return_value = False major_version.return_value = 10 config_file = InMemoryConfigStore("test") sample_config = { "meta": { "config.version": 13 }, "build": { "gradle.bin": "/usr/local/bin/gradle" }, "runtime": { "java.home": "/usr/lib/java10" } } config_file.store(sample_config) config.migrate(config_file, 13, 14, out=null_output) self.assertTrue(config_file.backup_created) self.assertEqual("14", config_file.config["meta"]["config.version"]) self.assertEqual("/usr/lib/java10", config_file.config["runtime"]["java.home"]) self.assertEqual("/usr/lib/java10", config_file.config["runtime"]["java10.home"])
def test_migrate_from_14_to_15_without_gradle(self): config_file = InMemoryConfigStore("test") sample_config = {"meta": {"config.version": 14}} config_file.store(sample_config) config.migrate(config_file, 14, 15, out=null_output) self.assertTrue(config_file.backup_created) self.assertEqual("15", config_file.config["meta"]["config.version"])
def test_migrate_from_4_to_5(self): config_file = InMemoryConfigStore("test") sample_config = {"meta": {"config.version": 4}} config_file.store(sample_config) config.migrate(config_file, 4, 5, out=null_output) self.assertTrue(config_file.backup_created) self.assertEqual("5", config_file.config["meta"]["config.version"]) self.assertTrue("tracks" in config_file.config) self.assertEqual("https://github.com/elastic/rally-tracks", config_file.config["tracks"]["default.url"])
def test_migrate_from_5_to_6(self): config_file = InMemoryConfigStore("test") sample_config = {"meta": {"config.version": 5}} config_file.store(sample_config) config.migrate(config_file, 5, 6, out=null_output) self.assertTrue(config_file.backup_created) self.assertEqual("6", config_file.config["meta"]["config.version"]) self.assertTrue("defaults" in config_file.config) self.assertEqual( "False", config_file.config["defaults"]["preserve_benchmark_candidate"])
def test_migrate_from_5_to_6(self): config_file = InMemoryConfigStore("test") sample_config = { "meta": { "config.version": 5 } } config_file.store(sample_config) config.migrate(config_file, 5, 6, out=null_output) self.assertTrue(config_file.backup_created) self.assertEqual("6", config_file.config["meta"]["config.version"]) self.assertTrue("defaults" in config_file.config) self.assertEqual("False", config_file.config["defaults"]["preserve_benchmark_candidate"])
def test_migrate_from_4_to_5(self): config_file = InMemoryConfigStore("test") sample_config = { "meta": { "config.version": 4 } } config_file.store(sample_config) config.migrate(config_file, 4, 5, out=null_output) self.assertTrue(config_file.backup_created) self.assertEqual("5", config_file.config["meta"]["config.version"]) self.assertTrue("tracks" in config_file.config) self.assertEqual("https://github.com/elastic/rally-tracks", config_file.config["tracks"]["default.url"])
def test_migrate_from_14_to_15_with_source_plugin_definition( self, major_version, is_early_access_release, guess_java_home): guess_java_home.return_value = None is_early_access_release.return_value = False major_version.return_value = 10 config_file = InMemoryConfigStore("test") sample_config = { "meta": { "config.version": 14 }, "build": { "gradle.bin": "/usr/local/bin/gradle" }, "runtime": { "java.home": "/usr/lib/java10", "java10.home": "/usr/lib/java10" }, "source": { "plugin.x-pack.remote.repo.url": "[email protected]:elastic/x-pack-elasticsearch.git", "plugin.x-pack.src.subdir": "elasticsearch-extra/x-pack-elasticsearch", "plugin.x-pack.build.task": ":x-pack-elasticsearch:plugin:assemble", "plugin.x-pack.build.artifact.subdir": "plugin/build/distributions" } } config_file.store(sample_config) string_buffer = StringIO() config.migrate(config_file, 14, 15, out=string_buffer.write) string_buffer.seek(0) self.assertTrue(config_file.backup_created) self.assertEqual("15", config_file.config["meta"]["config.version"]) self.assertNotIn("build", config_file.config) self.assertEqual( "\n" "WARNING:" " The build.task property for plugins has been obsoleted in favor of the full build.command." " You will need to edit the plugin [{}] section in {} and change from:" " [{} = {}] to [{} = <the full command>]." " Please refer to the documentation for more details:" " {}.\n".format( "x-pack", "in-memory", "plugin.x-pack.build.task", ":x-pack-elasticsearch:plugin:assemble", "plugin.x-pack.build.command", "https://esrally.readthedocs.io/en/latest/elasticsearch_plugins.html#running-a-benchmark-with-plugins" ""), string_buffer.read())
def test_migrate_from_11_to_12_without_src_config(self): config_file = InMemoryConfigStore("test") sample_config = { "meta": { "config.version": 11 }, "node": { "root.dir": "~/.rally/benchmarks" } } config_file.store(sample_config) config.migrate(config_file, 11, 12, out=null_output) self.assertTrue(config_file.backup_created) self.assertEqual("12", config_file.config["meta"]["config.version"]) self.assertFalse("src.root.dir" in config_file.config["node"])
def test_migrate_from_15_to_16(self): config_file = InMemoryConfigStore("test") sample_config = { "meta": { "config.version": 15 }, "distributions": { "release.url": "https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-{{VERSION}}.tar.gz" } } config_file.store(sample_config) config.migrate(config_file, 15, 16, out=null_output) self.assertTrue(config_file.backup_created) self.assertEqual("16", config_file.config["meta"]["config.version"]) # does not remove section self.assertIn("distributions", config_file.config) self.assertNotIn("release.url", config_file.config["distributions"])
def test_migrate_from_10_to_11(self): config_file = InMemoryConfigStore("test") sample_config = { "meta": { "config.version": 10 }, "runtime": { "java8.home": "/opt/jdk/8", } } config_file.store(sample_config) config.migrate(config_file, 10, 11, out=null_output) self.assertTrue(config_file.backup_created) self.assertEqual("11", config_file.config["meta"]["config.version"]) self.assertTrue("runtime" in config_file.config) self.assertFalse("java8.home" in config_file.config["runtime"]) self.assertEqual("/opt/jdk/8", config_file.config["runtime"]["java.home"])
def test_migrate_from_14_to_15_with_gradle(self): config_file = InMemoryConfigStore("test") sample_config = { "meta": { "config.version": 14 }, "build": { "gradle.bin": "/usr/local/bin/gradle" }, "runtime": { "java.home": "/usr/lib/java8", "java10.home": "/usr/lib/java10" } } config_file.store(sample_config) config.migrate(config_file, 14, 15, out=null_output) self.assertTrue(config_file.backup_created) self.assertEqual("15", config_file.config["meta"]["config.version"]) self.assertNotIn("build", config_file.config)
def test_migrate_from_6_to_7(self): config_file = InMemoryConfigStore("test") sample_config = { "meta": { "config.version": 6 }, "system": { "log.root.dir": "logs" }, "provisioning": { "local.install.dir": "install" }, } config_file.store(sample_config) config.migrate(config_file, 6, 7, out=null_output) self.assertTrue(config_file.backup_created) self.assertEqual("7", config_file.config["meta"]["config.version"]) self.assertTrue("provisioning" not in config_file.config) self.assertTrue("log.root.dir" not in config_file.config["system"])
def test_migrate_from_11_to_12_with_partial_src_config(self): config_file = InMemoryConfigStore("test") sample_config = { "meta": { "config.version": 11 }, "node": { "root.dir": "~/.rally/benchmarks" }, "source": { # a source config section without any keys should be treated like a missing source config section } } config_file.store(sample_config) config.migrate(config_file, 11, 12, out=null_output) self.assertTrue(config_file.backup_created) self.assertEqual("12", config_file.config["meta"]["config.version"]) self.assertFalse("src.root.dir" in config_file.config["node"]) self.assertFalse("elasticsearch.src.subdir" in config_file.config["source"])
def test_migrate_from_11_to_12_with_partial_src_config(self): config_file = InMemoryConfigStore("test") sample_config = { "meta": { "config.version": 11 }, "node": { "root.dir": "~/.rally/benchmarks" }, "source": { # a source config section without any keys should be treated like a missing source config section } } config_file.store(sample_config) config.migrate(config_file, 11, 12, out=null_output) self.assertTrue(config_file.backup_created) self.assertEqual("12", config_file.config["meta"]["config.version"]) self.assertFalse("src.root.dir" in config_file.config["node"]) self.assertFalse( "elasticsearch.src.subdir" in config_file.config["source"])
def test_migrate_from_8_to_9(self): config_file = InMemoryConfigStore("test") sample_config = { "meta": { "config.version": 8 }, "system": { "root.dir": "~/.rally/benchmarks", "environment.name": "local" }, "benchmarks": { "local.dataset.cache": "${system:root.dir}/data", "some.other.cache": "/data" } } config_file.store(sample_config) config.migrate(config_file, 8, 9, out=null_output) self.assertTrue(config_file.backup_created) self.assertEqual("9", config_file.config["meta"]["config.version"]) self.assertTrue("teams" in config_file.config) self.assertEqual("https://github.com/elastic/rally-teams", config_file.config["teams"]["default.url"])
def test_migrate_from_11_to_12_with_custom_src_config(self, path_rename, path_exists): path_exists.return_value = False config_file = InMemoryConfigStore("test") sample_config = { "meta": { "config.version": 11 }, "node": { "root.dir": io.normalize_path("~/.rally/benchmarks") }, "source": { "local.src.dir": io.normalize_path("~/Projects/elasticsearch/master/es") } } config_file.store(sample_config) config.migrate(config_file, 11, 12, out=null_output) self.assertTrue(config_file.backup_created) self.assertEqual("12", config_file.config["meta"]["config.version"]) self.assertEqual(io.normalize_path("~/Projects/elasticsearch/master"), config_file.config["node"]["src.root.dir"]) self.assertEqual("es", config_file.config["source"]["elasticsearch.src.subdir"]) # did all the migrations but nothing moved path_rename.assert_not_called()