def add_node_info(self, cluster, node_info): node_name = node_info["name"] cluster_node = cluster.node(node_name) if cluster_node: cluster_node.ip = extract_value(node_info, ["ip"]) cluster_node.os = { "name": extract_value(node_info, ["os", "name"]), "version": extract_value(node_info, ["os", "version"]) } cluster_node.jvm = { "vendor": extract_value(node_info, ["jvm", "vm_vendor"]), "version": extract_value(node_info, ["jvm", "version"]) } cluster_node.cpu = { "available_processors": extract_value(node_info, ["os", "available_processors"]), "allocated_processors": extract_value(node_info, ["os", "allocated_processors"], fallback=None), } if versions.major_version(cluster.distribution_version) == 1: cluster_node.memory = { "total_bytes": extract_value(node_info, ["os", "mem", "total_in_bytes"], fallback=None) }
def number_of_nodes(self): distribution_version = self._config.opts("mechanic", "distribution.version", mandatory=False) configure = False if versions.is_version_identifier(distribution_version): major = versions.major_version(distribution_version) if major >= 2: configure = True else: # we're very likely benchmarking from sources which is ES 5+ configure = True return "\nnode.max_local_storage_nodes: %d" % self.car.nodes if configure else ""
def add_node_stats(self, cluster, cluster_node, stats): if cluster_node: data_dirs = extract_value(stats, ["fs", "data"], fallback=[]) for data_dir in data_dirs: fs_meta_data = { "mount": data_dir.get("mount", "unknown"), "type": data_dir.get("type", "unknown"), "spins": data_dir.get("spins", "unknown") } cluster_node.fs.append(fs_meta_data) if versions.major_version(cluster.distribution_version) > 1: cluster_node.memory = { "total_bytes": extract_value(stats, ["os", "mem", "total_in_bytes"], fallback=None) }
def _es_log_config(self): logging_yml_path = "%s/config/logging.yml" % self.binary_path log4j2_properties_path = "%s/config/log4j2.properties" % self.binary_path if os.path.isfile(logging_yml_path): return "logging.yml", logging_yml_path elif os.path.isfile(log4j2_properties_path): distribution_version = self._config.opts("mechanic", "distribution.version", mandatory=False) if versions.is_version_identifier(distribution_version): if versions.major_version(distribution_version) == 5: return "log4j2.properties.5", log4j2_properties_path else: return "log4j2.properties", log4j2_properties_path else: raise exceptions.SystemSetupError( "Unrecognized Elasticsearch log config file format")
def test_major_version(self): self.assertEqual(5, versions.major_version("5.0.3")) self.assertEqual(5, versions.major_version("5.0.3-SNAPSHOT")) self.assertEqual(25, versions.major_version("25.0.3"))
def test_major_version(self): assert versions.major_version("7.10.2") == 7 assert versions.major_version("7.12.1-SNAPSHOT") == 7 assert versions.major_version("25.0.3") == 25
def plugin_download_url(self, plugin_name): major_version = versions.major_version(self.version) version_url_key = "plugin.%s.%s.%s.url" % (plugin_name, self.name, str(major_version)) default_url_key = "plugin.%s.%s.url" % (plugin_name, self.name) return self._url_for(version_url_key, default_url_key, mandatory=False)
def download_url(self): major_version = versions.major_version(self.version) version_url_key = "%s.%s.url" % (self.name, str(major_version)) default_url_key = "%s.url" % self.name return self._url_for(version_url_key, default_url_key)
def plugin_download_url(self, plugin_name): major_version = versions.major_version(self.version) version_url_key = "plugin.%s.%s.%s.url" % (plugin_name, self.name, str(major_version)) default_url_key = "plugin.%s.%s.url" % (plugin_name, self.name) return self._url_for(version_url_key, default_url_key, mandatory=False)
def download_url(self): major_version = versions.major_version(self.version) version_url_key = "%s.%s.url" % (self.name, str(major_version)) default_url_key = "%s.url" % self.name return self._url_for(version_url_key, default_url_key)
def test_major_version(self): self.assertEqual(5, versions.major_version("5.0.3")) self.assertEqual(5, versions.major_version("5.0.3-SNAPSHOT")) self.assertEqual(25, versions.major_version("25.0.3"))