From d3fd4e2415871ee0e695424a8c20e393eeedf04d Mon Sep 17 00:00:00 2001 From: Markus Scheidgen <markus.scheidgen@gmail.com> Date: Tue, 18 Feb 2020 14:42:35 +0100 Subject: [PATCH] Added es query to uploads cli commands. --- nomad/cli/admin/uploads.py | 11 +++++++++++ tests/test_cli.py | 9 +++++++++ 2 files changed, 20 insertions(+) diff --git a/nomad/cli/admin/uploads.py b/nomad/cli/admin/uploads.py index 5747bf1194..4c03dbcdbc 100644 --- a/nomad/cli/admin/uploads.py +++ b/nomad/cli/admin/uploads.py @@ -16,8 +16,10 @@ from typing import List import click from tabulate import tabulate from mongoengine import Q +from elasticsearch_dsl import Q as ESQ from pymongo import UpdateOne import elasticsearch_dsl as es +import json from nomad import processing as proc, config, infrastructure, utils, search, files, datamodel from .admin import admin, __run_processing @@ -67,6 +69,15 @@ def uploads(ctx, user: str, staging: bool, processing: bool, outdated: bool, cod def query_uploads(ctx, uploads): + try: + json_query = json.loads(' '.join(uploads)) + request = search.SearchRequest() + request.q = ESQ(json_query) + request.quantity('upload_id', size=10000) + uploads = list(request.execute()['quantities']['upload_id']['values']) + except Exception: + pass + query = ctx.obj.query if len(uploads) > 0: query &= Q(upload_id__in=uploads) diff --git a/tests/test_cli.py b/tests/test_cli.py index cd700350a7..dc67809b85 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -149,6 +149,15 @@ class TestAdminUploads: assert result.exit_code == 0 assert '1 uploads selected' in result.stdout + def test_ls_query(self, published): + upload_id = published.upload_id + + result = click.testing.CliRunner().invoke( + cli, ['admin', 'uploads', 'ls', '{"match":{"upload_id":"%s"}}' % upload_id], catch_exceptions=False, obj=utils.POPO()) + + assert result.exit_code == 0 + assert '1 uploads selected' in result.stdout + def test_rm(self, published): upload_id = published.upload_id -- GitLab