|
1 | | -require "logstash/devutils/rspec/spec_helper" |
| 1 | +require_relative "../../../../spec/spec_helper" |
2 | 2 | require "logstash/outputs/elasticsearch/template_manager" |
3 | 3 |
|
4 | 4 | describe LogStash::Outputs::ElasticSearch::TemplateManager do |
|
33 | 33 | end |
34 | 34 | end |
35 | 35 |
|
36 | | - describe "index template with ilm settings" do |
| 36 | + context "index template with ilm settings" do |
37 | 37 | let(:plugin_settings) { {"manage_template" => true, "template_overwrite" => true} } |
38 | 38 | let(:plugin) { LogStash::Outputs::ElasticSearch.new(plugin_settings) } |
39 | 39 |
|
40 | | - describe "in version 8+" do |
41 | | - let(:file_path) { described_class.default_template_path(8) } |
42 | | - let(:template) { described_class.read_template_file(file_path)} |
| 40 | + describe "with custom template" do |
43 | 41 |
|
44 | | - it "should update settings" do |
45 | | - expect(plugin).to receive(:maximum_seen_major_version).at_least(:once).and_return(8) |
46 | | - described_class.add_ilm_settings_to_template(plugin, template) |
47 | | - expect(template['template']['settings']['index.lifecycle.name']).not_to eq(nil) |
48 | | - expect(template['template']['settings']['index.lifecycle.rollover_alias']).not_to eq(nil) |
49 | | - expect(template.include?('settings')).to be_falsey |
| 42 | + describe "in version 8+" do |
| 43 | + let(:file_path) { described_class.default_template_path(8) } |
| 44 | + let(:template) { described_class.read_template_file(file_path)} |
| 45 | + |
| 46 | + it "should update settings" do |
| 47 | + expect(plugin).to receive(:maximum_seen_major_version).at_least(:once).and_return(8) |
| 48 | + described_class.add_ilm_settings_to_template(plugin, template) |
| 49 | + expect(template['template']['settings']['index.lifecycle.name']).not_to eq(nil) |
| 50 | + expect(template['template']['settings']['index.lifecycle.rollover_alias']).not_to eq(nil) |
| 51 | + expect(template.include?('settings')).to be_falsey |
| 52 | + end |
| 53 | + end |
| 54 | + |
| 55 | + describe "in version < 8" do |
| 56 | + let(:file_path) { described_class.default_template_path(7) } |
| 57 | + let(:template) { described_class.read_template_file(file_path)} |
| 58 | + |
| 59 | + it "should update settings" do |
| 60 | + expect(plugin).to receive(:maximum_seen_major_version).at_least(:once).and_return(7) |
| 61 | + described_class.add_ilm_settings_to_template(plugin, template) |
| 62 | + expect(template['settings']['index.lifecycle.name']).not_to eq(nil) |
| 63 | + expect(template['settings']['index.lifecycle.rollover_alias']).not_to eq(nil) |
| 64 | + expect(template.include?('template')).to be_falsey |
| 65 | + end |
50 | 66 | end |
51 | 67 | end |
52 | 68 |
|
53 | | - describe "in version < 8" do |
54 | | - let(:file_path) { described_class.default_template_path(7) } |
55 | | - let(:template) { described_class.read_template_file(file_path)} |
| 69 | + context "resolve template setting" do |
| 70 | + let(:plugin_settings) { super().merge({"template_api" => template_api}) } |
| 71 | + |
| 72 | + describe "with composable template API" do |
| 73 | + let(:template_api) { "composable" } |
56 | 74 |
|
57 | | - it "should update settings" do |
58 | | - expect(plugin).to receive(:maximum_seen_major_version).at_least(:once).and_return(7) |
59 | | - described_class.add_ilm_settings_to_template(plugin, template) |
60 | | - expect(template['settings']['index.lifecycle.name']).not_to eq(nil) |
61 | | - expect(template['settings']['index.lifecycle.rollover_alias']).not_to eq(nil) |
62 | | - expect(template.include?('template')).to be_falsey |
| 75 | + it 'resolves composable index template API compatible setting' do |
| 76 | + template = {} |
| 77 | + described_class.resolve_template_settings(plugin, template) |
| 78 | + expect(template["template"]["settings"]).not_to eq(nil) |
| 79 | + end |
| 80 | + end |
| 81 | + |
| 82 | + describe "with legacy template API" do |
| 83 | + let(:template_api) { "legacy" } |
| 84 | + |
| 85 | + it 'resolves legacy index template API compatible setting' do |
| 86 | + template = {} |
| 87 | + described_class.resolve_template_settings(plugin, template) |
| 88 | + expect(template["settings"]).not_to eq(nil) |
| 89 | + end |
| 90 | + end |
| 91 | + |
| 92 | + describe "with `template_api => 'auto'`" do |
| 93 | + let(:template_api) { "auto" } |
| 94 | + |
| 95 | + describe "with ES < 8 versions" do |
| 96 | + |
| 97 | + it 'resolves legacy index template API compatible setting' do |
| 98 | + expect(plugin).to receive(:maximum_seen_major_version).at_least(:once).and_return(7) |
| 99 | + template = {} |
| 100 | + described_class.resolve_template_settings(plugin, template) |
| 101 | + expect(template["settings"]).not_to eq(nil) |
| 102 | + end |
| 103 | + end |
| 104 | + |
| 105 | + describe "with ES >= 8 versions" do |
| 106 | + it 'resolves composable index template API compatible setting' do |
| 107 | + expect(plugin).to receive(:maximum_seen_major_version).at_least(:once).and_return(8) |
| 108 | + template = {} |
| 109 | + described_class.resolve_template_settings(plugin, template) |
| 110 | + expect(template["template"]["settings"]).not_to eq(nil) |
| 111 | + end |
| 112 | + end |
63 | 113 | end |
64 | 114 | end |
65 | 115 | end |
|
0 commit comments