You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildstream.apache.org by ro...@apache.org on 2020/12/29 13:29:20 UTC

[buildstream] 04/08: _frontend: Enable logging right away

This is an automated email from the ASF dual-hosted git repository.

root pushed a commit to branch early-logging
in repository https://gitbox.apache.org/repos/asf/buildstream.git

commit 915bd43b415103a8715f804064aa330423aa7428
Author: Tristan Van Berkom <tr...@codethink.co.uk>
AuthorDate: Tue Dec 12 18:53:24 2017 -0500

    _frontend: Enable logging right away
    
    Now we just assume that logging is turned on all the time, any
    messages must now always go through the central context messaging
    APIs.
---
 buildstream/_frontend/main.py   | 93 +----------------------------------------
 buildstream/_frontend/widget.py | 10 ++---
 2 files changed, 4 insertions(+), 99 deletions(-)

diff --git a/buildstream/_frontend/main.py b/buildstream/_frontend/main.py
index faef7e5..47bba1a 100644
--- a/buildstream/_frontend/main.py
+++ b/buildstream/_frontend/main.py
@@ -736,8 +736,6 @@ class App():
 
     def __init__(self, main_options):
         self.main_options = main_options
-        self.messaging_enabled = False
-        self.startup_messages = []
         self.logger = None
         self.status = None
         self.target = None
@@ -748,11 +746,6 @@ class App():
         self.scheduler = None
         self.pipeline = None
 
-        # For the initialization time tickers
-        self.file_count = 0
-        self.resolve_count = 0
-        self.cache_count = 0
-
         # Failure messages, hashed by unique plugin id
         self.fail_messages = {}
 
@@ -776,11 +769,6 @@ class App():
         # defaults to whether we are interactive or not.
         self.interactive_failures = self.interactive
 
-        # Early enable messaging in debug mode
-        if self.main_options['debug']:
-            click.echo("DEBUG: Early enablement of messages")
-            self.messaging_enabled = True
-
         # Resolve whether to use colors in output
         if self.main_options['colors'] is None:
             self.colors = self.is_a_tty
@@ -867,11 +855,7 @@ class App():
 
         try:
             self.pipeline = Pipeline(self.context, self.project, elements, except_,
-                                     rewritable=rewritable,
-                                     load_ticker=self.load_ticker,
-                                     resolve_ticker=self.resolve_ticker,
-                                     remote_ticker=self.remote_ticker,
-                                     cache_ticker=self.cache_ticker)
+                                     rewritable=rewritable)
         except BstError as e:
             click.echo("Error loading pipeline: {}".format(e))
             sys.exit(-1)
@@ -884,7 +868,6 @@ class App():
 
         # Pipeline is loaded, lets start displaying pipeline messages from tasks
         self.logger.size_request(self.pipeline)
-        self.messaging_enabled = True
 
         profile_end(Topics.LOAD_PIPELINE, "_".join(t.replace(os.sep, '-') for t in elements))
 
@@ -1052,11 +1035,6 @@ class App():
                                   styling=self.colors,
                                   deps=deps)
 
-        # Print any held messages from startup after printing the heading
-        for message in self.startup_messages:
-            self.message_handler(message, self.context)
-        self.startup_messages = []
-
     #
     # Print a summary of the queues
     #
@@ -1070,13 +1048,6 @@ class App():
     #
     def message_handler(self, message, context):
 
-        # Drop messages by default in the beginning while
-        # loading the pipeline, unless debug is specified.
-        if not self.messaging_enabled:
-            if message.message_type in unconditional_messages:
-                self.startup_messages.append(message)
-            return
-
         # Drop status messages from the UI if not verbose, we'll still see
         # info messages and status messages will still go to the log files.
         if not context.log_verbose and message.message_type == MessageType.STATUS:
@@ -1104,68 +1075,6 @@ class App():
         if self.main_options['log_file']:
             click.echo(text, file=self.main_options['log_file'], color=False, nl=False)
 
-    #
-    # Tickers at initialization time
-    #
-    def load_ticker(self, name):
-        if not self.context.log_verbose:
-            return
-
-        if name:
-            self.file_count += 1
-
-            if self.is_a_tty:
-                click.echo("Loading:   {:0>3}\r"
-                           .format(self.file_count), nl=False, err=True)
-            elif self.file_count == 1:
-                click.echo("Loading.", nl=False, err=True)
-            else:
-                click.echo(".", nl=False, err=True)
-        else:
-            click.echo('', err=True)
-
-    def resolve_ticker(self, name):
-        if not self.context.log_verbose:
-            return
-
-        if name:
-            self.resolve_count += 1
-
-            if self.is_a_tty:
-                click.echo("Resolving: {:0>3}/{:0>3}\r"
-                           .format(self.file_count, self.resolve_count), nl=False, err=True)
-            elif self.resolve_count == 1:
-                click.echo("Resolving {} elements."
-                           .format(self.file_count), nl=False, err=True)
-            else:
-                click.echo(".", nl=False, err=True)
-        else:
-            click.echo('', err=True)
-
-    def remote_ticker(self, name):
-        if not self.context.log_verbose:
-            return
-
-        click.echo("Fetching artifact list from {}".format(name), err=True)
-
-    def cache_ticker(self, name):
-        if not self.context.log_verbose:
-            return
-
-        if name:
-            self.cache_count += 1
-
-            if self.is_a_tty:
-                click.echo("Checking:  {:0>3}/{:0>3}\r"
-                           .format(self.file_count, self.cache_count), nl=False, err=True)
-            elif self.cache_count == 1:
-                click.echo("Checking {} elements."
-                           .format(self.file_count), nl=False, err=True)
-            else:
-                click.echo(".", nl=False, err=True)
-        else:
-            click.echo('', err=True)
-
     @contextmanager
     def interrupted(self):
         self.scheduler.disconnect_signals()
diff --git a/buildstream/_frontend/widget.py b/buildstream/_frontend/widget.py
index ccda68b..602105c 100644
--- a/buildstream/_frontend/widget.py
+++ b/buildstream/_frontend/widget.py
@@ -219,16 +219,12 @@ class CacheKey(Widget):
 
     def render(self, message):
 
-        # This can only happen when logging before initialization in debug mode
-        if not self.key_length:
-            return self.format_profile.fmt('[') + (' ' * 8) + self.format_profile.fmt(']')
-
-        missing = False
-        key = ' ' * self.key_length
         element_id = message.task_id or message.unique_id
-        if element_id is None:
+        if element_id is None or not self.key_length:
             return ""
 
+        missing = False
+        key = ' ' * self.key_length
         plugin = _plugin_lookup(element_id)
         if isinstance(plugin, Element):
             _, key, missing = plugin._get_full_display_key()