summaryrefslogtreecommitdiffstats
path: root/utils/test/scripts/mongo_to_elasticsearch.py
diff options
context:
space:
mode:
authorSerenaFeng <feng.xiaowei@zte.com.cn>2016-09-21 14:56:08 +0800
committerSerenaFeng <feng.xiaowei@zte.com.cn>2016-09-21 14:56:08 +0800
commit9873984d340289ab3adcd3a7abf26ea93fc87ac1 (patch)
tree63e8c20c5535fea5c40e4e86cc2fcd90b026a2e5 /utils/test/scripts/mongo_to_elasticsearch.py
parent6230297636c44a4a8b67d65c7222098f77228713 (diff)
use configure file rather than arguments to organize the configuration
JIRA: FUNCTEST-480 Change-Id: Id5706de5f05d6841a1e9d8bafae7df0255c22a26 Signed-off-by: SerenaFeng <feng.xiaowei@zte.com.cn>
Diffstat (limited to 'utils/test/scripts/mongo_to_elasticsearch.py')
-rw-r--r--utils/test/scripts/mongo_to_elasticsearch.py50
1 files changed, 26 insertions, 24 deletions
diff --git a/utils/test/scripts/mongo_to_elasticsearch.py b/utils/test/scripts/mongo_to_elasticsearch.py
index 3af7c0fa8..777eda6ad 100644
--- a/utils/test/scripts/mongo_to_elasticsearch.py
+++ b/utils/test/scripts/mongo_to_elasticsearch.py
@@ -10,31 +10,29 @@ import uuid
import argparse
-import conf_utils
import logger_utils
import mongo2elastic_format
import shared_utils
+import testcases_parser
+from config import APIConfig
logger = logger_utils.KibanaDashboardLogger('mongo2elastic').get
-parser = argparse.ArgumentParser(description='Modify and filter mongo json data for elasticsearch')
-parser.add_argument('-od', '--output-destination',
- default='elasticsearch',
- choices=('elasticsearch', 'stdout'),
- help='defaults to elasticsearch')
-
-parser.add_argument('-ml', '--merge-latest', default=0, type=int, metavar='N',
+parser = argparse.ArgumentParser()
+parser.add_argument("-c", "--config-file",
+ dest='config_file',
+ help="Config file location")
+parser.add_argument('-ld', '--latest-days',
+ default=0,
+ type=int,
+ metavar='N',
help='get entries old at most N days from mongodb and'
' parse those that are not already in elasticsearch.'
' If not present, will get everything from mongodb, which is the default')
-parser.add_argument('-e', '--elasticsearch-url', default='http://localhost:9200',
- help='the url of elasticsearch, defaults to http://localhost:9200')
-
-parser.add_argument('-u', '--elasticsearch-username', default=None,
- help='The username with password for elasticsearch in format username:password')
-
args = parser.parse_args()
+CONF = APIConfig().parse(args.config_file)
+
tmp_docs_file = './mongo-{}.json'.format(uuid.uuid4())
@@ -177,8 +175,8 @@ class DocumentsPublisher:
self.existed_docs = []
def export(self):
- if days > 0:
- past_time = datetime.datetime.today() - datetime.timedelta(days=days)
+ if self.days > 0:
+ past_time = datetime.datetime.today() - datetime.timedelta(days=self.days)
query = '''{{
"project_name": "{}",
"case_name": "{}",
@@ -203,7 +201,7 @@ class DocumentsPublisher:
exit(-1)
def get_existed_docs(self):
- self.existed_docs = shared_utils.get_elastic_docs_by_days(self.elastic_url, self.creds, days)
+ self.existed_docs = shared_utils.get_elastic_docs_by_days(self.elastic_url, self.creds, self.days)
return self
def publish(self):
@@ -224,19 +222,19 @@ class DocumentsPublisher:
os.remove(tmp_docs_file)
-if __name__ == '__main__':
- base_elastic_url = urlparse.urljoin(args.elasticsearch_url, '/test_results/mongo2elastic')
- to = args.output_destination
- days = args.merge_latest
- es_creds = args.elasticsearch_username
+def main():
+ base_elastic_url = urlparse.urljoin(CONF.elastic_url, '/test_results/mongo2elastic')
+ to = CONF.destination
+ days = args.latest_days
+ es_creds = CONF.elastic_creds
if to == 'elasticsearch':
to = base_elastic_url
- for project, case_dicts in conf_utils.testcases_yaml.items():
+ for project, case_dicts in testcases_parser.testcases_yaml.items():
for case_dict in case_dicts:
case = case_dict.get('name')
- fmt = conf_utils.compose_format(case_dict.get('format'))
+ fmt = testcases_parser.compose_format(case_dict.get('format'))
DocumentsPublisher(project,
case,
fmt,
@@ -244,3 +242,7 @@ if __name__ == '__main__':
base_elastic_url,
es_creds,
to).export().get_existed_docs().publish()
+
+
+if __name__ == '__main__':
+ main() \ No newline at end of file