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