Switch queries file to YAML
It is easier for a human to read, and by virtue of not requiring escaped quotes, easier to copy/paste into a logstash field. When copy/pasting, the newlines won't show up in the input field. The '>' syntax in YAML indicates folding, which causes the newline and indentation to be turned into a single space. Change-Id: Ibd172fd4859c055096609f31ef09222147c34cf3
This commit is contained in:
parent
932b42877d
commit
f173f8b8b3
@ -9,5 +9,5 @@ channel_config=/home/mtreinish/elasticRecheck/recheckwatchbot.yaml
|
||||
[gerrit]
|
||||
user=treinish
|
||||
host=review.openstack.org
|
||||
query_file=/home/mtreinish/elasticRecheck/queries.json
|
||||
query_file=/home/mtreinish/elasticRecheck/queries.yaml
|
||||
key=/home/mtreinish/.ssh/id_rsa.pub
|
||||
|
@ -21,10 +21,10 @@ import urllib2
|
||||
|
||||
import ConfigParser
|
||||
import copy
|
||||
import json
|
||||
import logging
|
||||
import sys
|
||||
import time
|
||||
import yaml
|
||||
|
||||
logging.basicConfig()
|
||||
|
||||
@ -145,8 +145,8 @@ class Classifier():
|
||||
|
||||
def __init__(self, queries):
|
||||
self.es = pyelasticsearch.ElasticSearch(self.ES_URL)
|
||||
self.queries = json.loads(open(queries).read())
|
||||
self.queries_json = queries
|
||||
self.queries = yaml.load(open(queries).read())
|
||||
self.queries_filename = queries
|
||||
self.log = logging.getLogger("recheckwatchbot")
|
||||
|
||||
def _apply_template(self, template, values):
|
||||
@ -180,7 +180,7 @@ class Classifier():
|
||||
def classify(self, change_number, patch_number, comment):
|
||||
"""Returns either None or a bug number"""
|
||||
#Reload each time
|
||||
self.queries = json.loads(open(self.queries_json).read())
|
||||
self.queries = yaml.load(open(self.queries_filename).read())
|
||||
#Wait till Elastic search is ready
|
||||
self._wait_till_ready(change_number, patch_number, comment)
|
||||
for x in self.queries:
|
||||
@ -267,7 +267,7 @@ def main():
|
||||
config.read(config_path)
|
||||
user = config.get('gerrit', 'user', 'jogo')
|
||||
host = config.get('gerrit', 'host', 'review.openstack.org')
|
||||
queries = config.get('gerrit', 'query_file', 'queries.json')
|
||||
queries = config.get('gerrit', 'query_file', 'queries.yaml')
|
||||
key = config.get('gerrit', 'key')
|
||||
classifier = Classifier(queries)
|
||||
stream = Stream(user, host, key)
|
||||
|
@ -21,7 +21,7 @@ class TestClassifier(testtools.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(TestClassifier, self).setUp()
|
||||
self.classifier = elasticRecheck.Classifier('queries.json')
|
||||
self.classifier = elasticRecheck.Classifier('queries.yaml')
|
||||
|
||||
def test_read_qeuries_file(self):
|
||||
self.assertNotEqual(self.classifier.queries, None)
|
||||
|
@ -15,9 +15,9 @@
|
||||
import os
|
||||
|
||||
import ConfigParser
|
||||
import json
|
||||
from launchpadlib import launchpad
|
||||
import testtools
|
||||
import yaml
|
||||
|
||||
from elastic_recheck import elasticRecheck
|
||||
|
||||
@ -43,7 +43,7 @@ class TestQueries(testtools.TestCase):
|
||||
lp = launchpad.Launchpad.login_anonymously('grabbing bugs',
|
||||
'production',
|
||||
LPCACHEDIR)
|
||||
query_dict = json.loads(open(self.queries).read())
|
||||
query_dict = yaml.load(open(self.queries).read())
|
||||
bugs = map(lambda x: x['bug'], query_dict)
|
||||
openstack_group = lp.project_groups['openstack']
|
||||
openstack_projects = map(lambda project: project.name,
|
||||
|
50
queries.json
50
queries.json
@ -1,50 +0,0 @@
|
||||
[
|
||||
{
|
||||
"bug": "1226337",
|
||||
"query": "@message:\"NovaException: iSCSI device not found at\" AND @fields.build_status:\"FAILURE\" AND @fields.filename:\"logs/screen-n-cpu.txt\""
|
||||
},
|
||||
{
|
||||
"bug": "1211915",
|
||||
"query": "@message:\"ConnectionFailed: Connection to neutron failed: Maximum attempts reached\" AND @fields.filename:\"console.html\""
|
||||
},
|
||||
{
|
||||
"bug": "1227915",
|
||||
"query": "@message:\"already exists in volume group\" AND @fields.build_status:\"FAILURE\" AND @fields.loglevel:\"ERROR\" AND @fields.filename:\"logs/screen-c-vol.txt\""
|
||||
},
|
||||
{
|
||||
"bug": "1217734",
|
||||
"query": "@message:\"CalledProcessError: Command 'openssl' returned non-zero exit status\" AND @fields.build_status:\"FAILURE\""
|
||||
},
|
||||
{
|
||||
"bug": "1191960",
|
||||
"query": "@message:\"Exit code: 5\" AND @message:\" sudo cinder-rootwrap /etc/cinder/rootwrap.conf lvremove -f\" AND @fields.filename:\"logs/screen-c-vol.txt\" AND @fields.build_status:\"FAILURE\""
|
||||
},
|
||||
{
|
||||
"bug": "1226791",
|
||||
"query": "@message:\"KeyError: 'nova'\" AND @fields.filename:\"logs/screen-n-api.txt\" AND @fields.build_status:\"FAILURE\" AND @message:\"_describe_availability_zones_verbose\""
|
||||
},
|
||||
{
|
||||
"bug": "1225664",
|
||||
"query": "@message:\"Details: Time Limit Exceeded! (400s)while waiting for active, but we got killed.\" AND @fields.filename:\"console.html\" AND @fields.build_status:\"FAILURE\""
|
||||
},
|
||||
{
|
||||
"bug": "1218391",
|
||||
"query": "@message:\"Cannot 'createImage'\" AND @fields.filename:\"console.html\" AND @fields.build_status:\"FAILURE\""
|
||||
},
|
||||
{
|
||||
"bug": "1223161",
|
||||
"query": "@message:\"Cannot understand JSON*\" AND @fields.build_name:\"gate-tempest-devstack-vm-neutron\" AND @fields.build_status:\"FAILURE\" AND @fields.filename:\"logs/screen-n-sch.txt\""
|
||||
},
|
||||
{
|
||||
"bug": "1229475",
|
||||
"query": "@message:\"Second simultaneous read on fileno\" AND @fields.build_status:\"FAILURE\""
|
||||
},
|
||||
{
|
||||
"bug": "1230407",
|
||||
"query": "@message:\"AssertionError: State change timeout exceeded!\" AND @fields.build_status:\"FAILURE\" AND @fields.filename:\"console.html\""
|
||||
},
|
||||
{
|
||||
"bug": "1223469",
|
||||
"query": "@message:\"with code 22\" AND @fields.filename:\"logs/screen-c-vol.txt\" AND @fields.build_status:\"FAILURE\""
|
||||
}
|
||||
]
|
60
queries.yaml
Normal file
60
queries.yaml
Normal file
@ -0,0 +1,60 @@
|
||||
- bug: 1226337
|
||||
query: >
|
||||
@message:"NovaException: iSCSI device not found at"
|
||||
AND @fields.build_status:"FAILURE"
|
||||
AND @fields.filename:"logs/screen-n-cpu.txt"
|
||||
- bug: 1211915
|
||||
query: >
|
||||
@message:"ConnectionFailed: Connection to neutron failed: Maximum attempts reached"
|
||||
AND @fields.filename:"console.html"
|
||||
- bug: 1227915
|
||||
query: >
|
||||
@message:"already exists in volume group" AND @fields.build_status:"FAILURE"
|
||||
AND @fields.loglevel:"ERROR"
|
||||
AND @fields.filename:"logs/screen-c-vol.txt"
|
||||
- bug: 1217734
|
||||
query: >
|
||||
@message:"CalledProcessError: Command 'openssl' returned non-zero exit status"
|
||||
AND @fields.build_status:"FAILURE"
|
||||
- bug: 1191960
|
||||
query: >
|
||||
@message:"Exit code: 5"
|
||||
AND @message:" sudo cinder-rootwrap /etc/cinder/rootwrap.conf lvremove -f"
|
||||
AND @fields.filename:"logs/screen-c-vol.txt"
|
||||
AND @fields.build_status:"FAILURE"
|
||||
- bug: 1226791
|
||||
query: >
|
||||
@message:"KeyError: 'nova'"
|
||||
AND @fields.filename:"logs/screen-n-api.txt"
|
||||
AND @fields.build_status:"FAILURE"
|
||||
AND @message:"_describe_availability_zones_verbose"
|
||||
- bug: 1225664
|
||||
query: >
|
||||
@message:"Details: Time Limit Exceeded! (400s)while waiting for active, but we got killed."
|
||||
AND @fields.filename:"console.html"
|
||||
AND @fields.build_status:"FAILURE"
|
||||
- bug: 1218391
|
||||
query: >
|
||||
@message:"Cannot 'createImage'"
|
||||
AND @fields.filename:"console.html"
|
||||
AND @fields.build_status:"FAILURE"
|
||||
- bug: 1223161
|
||||
query: >
|
||||
@message:"Cannot understand JSON*"
|
||||
AND @fields.build_name:"gate-tempest-devstack-vm-neutron"
|
||||
AND @fields.build_status:"FAILURE"
|
||||
AND @fields.filename:"logs/screen-n-sch.txt"
|
||||
- bug: 1229475
|
||||
query: >
|
||||
@message:"Second simultaneous read on fileno"
|
||||
AND @fields.build_status:"FAILURE"
|
||||
- bug: 1230407
|
||||
query: >
|
||||
@message:"AssertionError: State change timeout exceeded!"
|
||||
AND @fields.build_status:"FAILURE"
|
||||
AND @fields.filename:"console.html"
|
||||
- bug: 1223469
|
||||
query: >
|
||||
@message:"with code 22"
|
||||
AND @fields.filename:"logs/screen-c-vol.txt"
|
||||
AND @fields.build_status:"FAILURE"
|
Loading…
Reference in New Issue
Block a user