only get specific docs when checking the existed ones in elasticsearch 71/22471/3
authorSerenaFeng <feng.xiaowei@zte.com.cn>
Tue, 27 Sep 2016 01:51:51 +0000 (09:51 +0800)
committerSerenaFeng <feng.xiaowei@zte.com.cn>
Tue, 27 Sep 2016 10:05:37 +0000 (18:05 +0800)
JIRA: FUNCTEST-494

Change-Id: Ife9e37a181f13a49265a225bab72355190663f2a
Signed-off-by: SerenaFeng <feng.xiaowei@zte.com.cn>
utils/test/dashboard/dashboard/common/elastic_access.py
utils/test/dashboard/dashboard/mongo2elastic/main.py

index b454e9a..6d82e8e 100644 (file)
@@ -48,25 +48,3 @@ def get_docs(url, creds=None, body=None, field='_source'):
     for hit in res_data['hits']['hits']:
         docs.append(hit[field])
     return docs
-
-
-def get_elastic_docs_by_days(elastic_url, creds, days):
-    if days == 0:
-        body = '''{
-            "query": {
-                "match_all": {}
-            }
-        }'''
-    elif days > 0:
-        body = '''{{
-            "query" : {{
-                "range" : {{
-                    "start_date" : {{
-                        "gte" : "now-{}d"
-                    }}
-                }}
-            }}
-        }}'''.format(days)
-    else:
-        raise Exception('Update days must be non-negative')
-    return get_docs(elastic_url, creds, body)
index 82b01e4..ad04372 100644 (file)
@@ -200,7 +200,36 @@ class DocumentsPublisher:
             exit(-1)
 
     def get_existed_docs(self):
-        self.existed_docs = elastic_access.get_elastic_docs_by_days(self.elastic_url, self.creds, self.days)
+        if self.days == 0:
+            body = '''{{
+                        "query": {{
+                            "bool": {{
+                                "must": [
+                                    {{ "match": {{ "project_name": "{}" }} }},
+                                    {{ "match": {{ "case_name": "{}" }} }}
+                                ]
+                            }}
+                        }}
+                    }}'''.format(self.project, self.case)
+        elif self.days > 0:
+            body = '''{{
+                       "query": {{
+                           "bool": {{
+                               "must": [
+                                   {{ "match": {{ "project_name": "{}" }} }},
+                                   {{ "match": {{ "case_name": "{}" }} }}
+                               ],
+                               "filter": {{
+                                   "range": {{
+                                       "start_date": {{ "gte": "now-{}d" }}
+                                   }}
+                               }}
+                           }}
+                       }}
+                   }}'''.format(self.project, self.case, self.days)
+        else:
+            raise Exception('Update days must be non-negative')
+        self.existed_docs = elastic_access.get_docs(self.elastic_url, self.creds, body)
         return self
 
     def publish(self):