Reporting regression: reports always retrying regardless of outcome (#26995) (#27082)

* This fixes an issue where reports are always retried regardless of status
This commit is contained in:
Joel Griffith 2018-12-12 14:39:26 -08:00 committed by GitHub
parent bef0e827a2
commit 417bd9b3e3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 10 deletions

View file

@ -354,7 +354,7 @@ describe('Worker class', function () {
});
describe('query body', function () {
const conditionPath = 'query.constant_score.filter.bool';
const conditionPath = 'query.bool.filter.bool';
const jobtype = 'test_jobtype';
beforeEach(() => {
@ -377,7 +377,7 @@ describe('Worker class', function () {
it('should search by job type', function () {
const { body } = getSearchParams(jobtype);
const conditions = get(body, conditionPath);
expect(conditions.filter).to.eql({ term: { jobtype: jobtype } });
expect(conditions.must).to.eql({ term: { jobtype: jobtype } });
});
it('should search for pending or expired jobs', function () {
@ -388,7 +388,7 @@ describe('Worker class', function () {
// this works because we are stopping the clock, so all times match
const nowTime = moment().toISOString();
const pending = { term: { status: 'pending' } };
const expired = { bool: { filter: [
const expired = { bool: { must: [
{ term: { status: 'processing' } },
{ range: { process_expiration: { lte: nowTime } } }
] } };
@ -400,6 +400,12 @@ describe('Worker class', function () {
expect(expiredMatch).to.not.be(undefined);
});
it('specify that there should be at least one match', function () {
const { body } = getSearchParams(jobtype);
const conditions = get(body, conditionPath);
expect(conditions).to.have.property('minimum_should_match', 1);
});
it('should use default size', function () {
const { body } = getSearchParams(jobtype);
expect(body).to.have.property('size', defaults.size);

View file

@ -350,17 +350,20 @@ export class Worker extends events.EventEmitter {
excludes: [ 'output.content' ]
},
query: {
constant_score: {
bool: {
filter: {
bool: {
filter: { term: { jobtype: this.jobtype } },
minimum_should_match: 1,
must: { term: { jobtype: this.jobtype } },
should: [
{ term: { status: 'pending' } },
{ bool: {
filter: [
{ term: { status: 'processing' } },
{ range: { process_expiration: { lte: nowTime } } }
] }
{
bool: {
must: [
{ term: { status: 'processing' } },
{ range: { process_expiration: { lte: nowTime } } }
]
}
}
]
}