Skip to content

[Backport 7.x] Integration test: Fix yaml parser and crash on failure #1424

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 24, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions test/integration/helper.js
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,8 @@ function isXPackTemplate (name) {
case 'synthetics-mappings':
case '.snapshot-blob-cache':
case '.deprecation-indexing-template':
case '.deprecation-indexing-mappings':
case '.deprecation-indexing-settings':
return true
}
return false
Expand Down
16 changes: 13 additions & 3 deletions test/integration/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,8 @@ const platinumBlackList = {
],
// The cleanup fails with a index not found when retrieving the jobs
'ml/get_datafeed_stats.yml': ['Test get datafeed stats when total_search_time_ms mapping is missing'],
// Investigate why is failing
'ml/inference_crud.yml': ['*'],
// investigate why this is failing
'monitoring/bulk/10_basic.yml': ['*'],
'monitoring/bulk/20_privileges.yml': ['*'],
Expand All @@ -91,6 +93,7 @@ const platinumBlackList = {
'snapshot/20_operator_privileges_disabled.yml': ['*'],
// the body is correct, but the regex is failing
'sql/sql.yml': ['Getting textual representation'],
'searchable_snapshots/10_usage.yml': ['*'],
// we are setting two certificates in the docker config
'ssl/10_basic.yml': ['*'],
// very likely, the index template has not been loaded yet.
Expand Down Expand Up @@ -136,7 +139,15 @@ function runner (opts = {}) {
const client = new Client(options)
log('Loading yaml suite')
start({ client, isXPack: opts.isXPack })
.catch(console.log)
.catch(err => {
if (err.name === 'ResponseError') {
console.error(err)
console.log(JSON.stringify(err.meta, null, 2))
} else {
console.error(err)
}
process.exit(1)
})
}

async function waitCluster (client, times = 0) {
Expand Down Expand Up @@ -303,10 +314,9 @@ function now () {
}

function parse (data) {
const schema = yaml.Schema.create(yaml.CORE_SCHEMA, [])
let doc
try {
doc = yaml.safeLoad(data, { schema })
doc = yaml.load(data, { schema: yaml.CORE_SCHEMA })
} catch (err) {
console.error(err)
return
Expand Down
37 changes: 13 additions & 24 deletions test/integration/test-runner.js
Original file line number Diff line number Diff line change
Expand Up @@ -95,32 +95,21 @@ function build (opts = {}) {
// clean all indices
await client.indices.delete({ index: '*,-.ds-ilm-history-*', expand_wildcards: 'open,closed,hidden' }, { ignore: [404] })

if (isXPack) {
// delete templates
const { body: templates } = await client.cat.templates({ h: 'name' })
for (const template of templates.split('\n').filter(Boolean)) {
if (isXPackTemplate(template)) continue
const { body } = await client.indices.deleteTemplate({ name: template }, { ignore: [404] })
if (JSON.stringify(body).includes(`index_template [${template}] missing`)) {
await client.indices.deleteIndexTemplate({ name: template }, { ignore: [404] })
}
}

// delete component template
const { body } = await client.cluster.getComponentTemplate()
const components = body.component_templates.filter(c => !isXPackTemplate(c.name)).map(c => c.name)
if (components.length > 0) {
await client.cluster.deleteComponentTemplate({ name: components.join(',') }, { ignore: [404] })
// delete templates
const { body: templates } = await client.cat.templates({ h: 'name' })
for (const template of templates.split('\n').filter(Boolean)) {
if (isXPackTemplate(template)) continue
const { body } = await client.indices.deleteTemplate({ name: template }, { ignore: [404] })
if (JSON.stringify(body).includes(`index_template [${template}] missing`)) {
await client.indices.deleteIndexTemplate({ name: template }, { ignore: [404] })
}
} else {
// clean all templates
await client.indices.deleteTemplate({ name: '*' })

// clean all templates
await client.indices.deleteIndexTemplate({ name: '*' })
}

// clean all templates
await client.cluster.deleteComponentTemplate({ name: '*' })
// delete component template
const { body } = await client.cluster.getComponentTemplate()
const components = body.component_templates.filter(c => !isXPackTemplate(c.name)).map(c => c.name)
if (components.length > 0) {
await client.cluster.deleteComponentTemplate({ name: components.join(',') }, { ignore: [404] })
}

// Remove any cluster setting
Expand Down