You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ariatosca.apache.org by mx...@apache.org on 2017/04/12 14:19:53 UTC

[2/3] incubator-ariatosca git commit: added some sort/filters support to logs consumer

added some sort/filters support to logs consumer


Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/8e7b12c8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/8e7b12c8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/8e7b12c8

Branch: refs/heads/ARIA-138-Make-logging-more-informative
Commit: 8e7b12c8f1a7272530afe9caf21214edc324776a
Parents: 4bd098e
Author: max-orlov <ma...@gigaspaces.com>
Authored: Wed Apr 12 16:06:51 2017 +0300
Committer: max-orlov <ma...@gigaspaces.com>
Committed: Wed Apr 12 16:06:51 2017 +0300

----------------------------------------------------------------------
 aria/cli/commands/logs.py | 18 +++++++++---------
 aria/cli/logger.py        |  9 ++++++---
 2 files changed, 15 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/8e7b12c8/aria/cli/commands/logs.py
----------------------------------------------------------------------
diff --git a/aria/cli/commands/logs.py b/aria/cli/commands/logs.py
index 7e20fce..92439ca 100644
--- a/aria/cli/commands/logs.py
+++ b/aria/cli/commands/logs.py
@@ -12,13 +12,12 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-
+from aria.cli.logger import LogConsumer
 from .. import utils
 from ..cli import aria
 
 
 @aria.group(name='logs')
-@aria.options.verbose()
 def logs():
     """Show logs from workflow executions
     """
@@ -37,13 +36,14 @@ def list(execution_id,
     """Display logs for an execution
     """
     logger.info('Listing logs for execution id {0}'.format(execution_id))
-    logs_list = model_storage.log.list(filters=dict(execution_fk=execution_id),
-                                       sort=utils.storage_sort_param('created_at', False))
-    # TODO: print logs nicely
-    if logs_list:
-        for log in logs_list:
-            logger.log(log)
-    else:
+    log_consumer = LogConsumer(model_storage, execution_id)
+    any_logs = False
+
+    for log in log_consumer:
+        logger.log(log)
+        any_logs = True
+
+    if not any_logs:
         logger.info('\tNo logs')
 
 

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/8e7b12c8/aria/cli/logger.py
----------------------------------------------------------------------
diff --git a/aria/cli/logger.py b/aria/cli/logger.py
index b3d02c8..24c3374 100644
--- a/aria/cli/logger.py
+++ b/aria/cli/logger.py
@@ -173,14 +173,17 @@ class Logging(object):
 
 class LogConsumer(object):
 
-    def __init__(self, model_storage, execution_id):
+    def __init__(self, model_storage, execution_id, filters=None, sort=None):
         self._last_visited_id = 0
         self._model_storage = model_storage
         self._execution_id = execution_id
+        self._additional_filters = filters or {}
+        self._sort = sort or {}
 
     def __iter__(self):
+        filters = dict(execution_fk=self._execution_id, id=dict(gt=self._last_visited_id))
+        filters.update(self._additional_filters)
 
-        for log in self._model_storage.log.iter(filters=dict(
-                execution_fk=self._execution_id, id=dict(gt=self._last_visited_id))):
+        for log in self._model_storage.log.iter(filters=filters, sort=self._sort):
             self._last_visited_id = log.id
             yield log