From af1c8b7652a5907a92ef0c170de5d333c0457a0f Mon Sep 17 00:00:00 2001 From: Boris Pavlovic Date: Mon, 25 Sep 2017 14:15:08 -0700 Subject: [PATCH] Improve Rally Logging (part 2) - Remove translations Nobody is using translations for Rally and I don't think that anybody is going to use it. Target auditory for Rally are developers/operators which usually know well english. For me this looks like waste of resources, performance degradation (cause we are calling _()), complexity (+1 thing that you need to know) - Pass to log already formatted strings It's very bad because in case of wrong formatting, it doesn't fail instead just writes errors to the logs, as well information about trace is lost, so it's super hard to fix it Log wrapper doesn't allow to use LOG anymore for formatting strings All places are fixed - Improve logging of exceptions LOG.exception() already logs exception, which means it's bad idea to pass str(e) to it. Instead we should provide clear description of what happend. Improved few places to write warnings or exceptions in case of different level of logs. In few places just use LOG.exception - Part of log messages were improved and simplified Depends-On: If23d874e8b73de12ba2b8c4e028a55543af6381b Change-Id: Ibc1e1f4f554649d14b8fe4801557b83922ecefe3 --- doc/source/plugins/implementation/context_plugin.rst | 4 ++-- doc/source/plugins/implementation/sla_plugin.rst | 5 ++--- tests/ci/sync_requirements.py | 6 +++--- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/doc/source/plugins/implementation/context_plugin.rst b/doc/source/plugins/implementation/context_plugin.rst index 13f8c829..166b0dfa 100644 --- a/doc/source/plugins/implementation/context_plugin.rst +++ b/doc/source/plugins/implementation/context_plugin.rst @@ -84,7 +84,7 @@ implement the Context API: the *setup()* method that creates a flavor and the ram=self.config.get("ram", 1), vcpus=self.config.get("vcpus", 1), disk=self.config.get("disk", 1)).to_dict() - LOG.debug("Flavor with id '%s'", self.context["flavor"]["id"]) + LOG.debug("Flavor with id '%s'" % self.context["flavor"]["id"]) except Exception as e: msg = "Can't create flavor: %s" % e.message if logging.is_debug(): @@ -97,7 +97,7 @@ implement the Context API: the *setup()* method that creates a flavor and the try: nova = osclients.Clients(self.context["admin"]["credential"]).nova() nova.flavors.delete(self.context["flavor"]["id"]) - LOG.debug("Flavor '%s' deleted", self.context["flavor"]["id"]) + LOG.debug("Flavor '%s' deleted" % self.context["flavor"]["id"]) except Exception as e: msg = "Can't delete flavor: %s" % e.message if logging.is_debug(): diff --git a/doc/source/plugins/implementation/sla_plugin.rst b/doc/source/plugins/implementation/sla_plugin.rst index 86c5cba0..5b42994a 100644 --- a/doc/source/plugins/implementation/sla_plugin.rst +++ b/doc/source/plugins/implementation/sla_plugin.rst @@ -32,7 +32,6 @@ Inherit a class for your plugin from the base *SLA* class and implement its API .. code-block:: python from rally.task import sla - from rally.common.i18n import _ @sla.configure(name="max_duration_range") class MaxDurationRange(sla.SLA): @@ -62,8 +61,8 @@ Inherit a class for your plugin from the base *SLA* class and implement its API return self.success def details(self): - return (_("%s - Maximum allowed duration range: %.2f%% <= %.2f%%") % - (self.status(), self._max - self._min, self.criterion_value)) + return ("%s - Maximum allowed duration range: %.2f%% <= %.2f%%" + % (self.status(), self._max - self._min, self.criterion_value)) Usage diff --git a/tests/ci/sync_requirements.py b/tests/ci/sync_requirements.py index ed0fecab..641cebc9 100644 --- a/tests/ci/sync_requirements.py +++ b/tests/ci/sync_requirements.py @@ -243,7 +243,7 @@ def _read_requirements(): """Read all rally requirements.""" LOG.info("Reading rally requirements...") for file_name in RALLY_REQUIREMENTS_FILES: - LOG.debug("Try to read '%s'.", file_name) + LOG.debug("Try to read '%s'." % file_name) with open(file_name) as f: data = f.read() LOG.info("Parsing requirements from %s." % file_name) @@ -263,7 +263,7 @@ def _sync(): LOG.info("Obtaining global-requirements...") for i in range(0, len(GLOBAL_REQUIREMENTS_LOCATIONS)): url = GLOBAL_REQUIREMENTS_LOCATIONS[i] + GLOBAL_REQUIREMENTS_FILENAME - LOG.debug("Try to obtain global-requirements from %s", url) + LOG.debug("Try to obtain global-requirements from %s" % url) try: raw_gr = requests.get(url).text except requests.ConnectionError as e: @@ -309,7 +309,7 @@ def format_requirements(): def add_uppers(): """Obtains latest version of packages and put them to requirements.""" for filename, requirements in _sync(): - LOG.info("Obtaining latest versions of packages for %s.", filename) + LOG.info("Obtaining latest versions of packages for %s." % filename) for req in requirements: if isinstance(req, Requirement): if isinstance(req.version, dict) and not req.version["max"]: