Skip to content

Commit 44aacd0

Browse files
authored
Fix missing newlines between fields in snmp (#622)
Fixes the template, since the compact format used in combination with the - terminations resulted in a file rendered with newlines missing.
1 parent 37d6611 commit 44aacd0

3 files changed

Lines changed: 93 additions & 18 deletions

File tree

spec/classes/datadog_agent_integrations_snmp_spec.rb

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,48 @@
3030
let(:params) do
3131
{
3232
ignore_nonincreasing_oid: true,
33+
instances: {
34+
ip_address: 'localhost',
35+
port: 161,
36+
community_string: 'public',
37+
tags: [
38+
'optional_tag_1',
39+
],
40+
metrics: [
41+
{
42+
MIB: 'IF-MIB',
43+
table: 'ifTable',
44+
symbols: [
45+
'ifInOctets',
46+
'ifOutOctets',
47+
],
48+
metric_tags: [
49+
{
50+
tag: 'interface',
51+
column: 'ifDescr',
52+
},
53+
{
54+
tag: 'interface_index',
55+
column: 'ifIndex',
56+
},
57+
],
58+
},
59+
],
60+
},
3361
}
3462
end
3563

3664
it { is_expected.to contain_file(conf_file).with_content(%r{ignore_nonincreasing_oid: true}) }
65+
66+
it do
67+
content = get_from_catalogue('file', conf_file, 'content')
68+
yaml = YAML.safe_load(content)
69+
expect(yaml).to include('init_config')
70+
expect(yaml['init_config']).to include('ignore_nonincreasing_oid')
71+
expect(yaml).to include('instances')
72+
expect(yaml['instances']).to include('tags')
73+
expect(yaml['instances']['tags']).to include('optional_tag_1')
74+
end
3775
end
3876
end
3977
end

spec/spec_helper.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,3 +67,8 @@ def getosrelease(operatingsystem)
6767
},
6868
}
6969
end
70+
71+
# Get parameters from catalogue.
72+
def get_from_catalogue(type, name, parameter)
73+
catalogue.resource(type, name).send(:parameters)[parameter.to_sym]
74+
end

templates/agent-conf.d/snmp.yaml.erb

Lines changed: 50 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,15 @@
77
<%= (Array({'init_config' => @init_config}.to_yaml.lines))[1..-1].join %>
88
<% else -%>
99
init_config:
10-
<% if @mibs_folder -%> mibs_folder: <%= @mibs_folder %><% end -%>
11-
<% if @ignore_nonincreasing_oid -%> ignore_nonincreasing_oid: <%= @ignore_nonincreasing_oid %><% end -%>
12-
<% if @oid_batch_size -%> oid_batch_size: <%= @oid_batch_size %><% end -%>
10+
<% if @mibs_folder -%>
11+
mibs_folder: <%= @mibs_folder %>
12+
<% end -%>
13+
<% if @ignore_nonincreasing_oid -%>
14+
ignore_nonincreasing_oid: <%= @ignore_nonincreasing_oid %>
15+
<% end -%>
16+
<% if @oid_batch_size -%>
17+
oid_batch_size: <%= @oid_batch_size %>
18+
<% end -%>
1319
<% end -%>
1420

1521
<% if @instances && !@instances.empty? -%>
@@ -27,25 +33,45 @@ instances:
2733
community_string: <%= instance['community_string'] %>
2834
<% when 3-%>
2935
user: <%= instance['user'] %>
30-
<% if instance['authKey'] -%> authKey: <%= instance['authKey'] %><% end -%>
31-
<% if instance['privKey'] -%> privKey: <%= instance['privKey'] %><% end -%>
32-
<% if instance['authProtocol'] -%> authProtocol: <%= instance['authProtocol'] %><% end -%>
36+
<% if instance['authKey'] -%>
37+
authKey: <%= instance['authKey'] %>
38+
<% end -%>
39+
<% if instance['privKey'] -%>
40+
privKey: <%= instance['privKey'] %>
41+
<% end -%>
42+
<% if instance['authProtocol'] -%>
43+
authProtocol: <%= instance['authProtocol'] %>
44+
<% end -%>
3345
<% if instance['privProtocol'] -%>
3446
privProtocol: <%= instance['privProtocol'] %>
3547
<% end -%>
3648
<% end -%>
37-
<% if instance['host'] -%> host: <%= instance['host'] %><% end -%>
38-
<% if instance['port'] -%> port: <%= instance['port'] %><% end -%>
39-
<% if instance['timeout'] -%> timeout: <%= instance['timeout'] %><% end -%>
40-
<% if instance['retries'] -%> retries: <%= instance['retries'] %><% end -%>
41-
<% if instance['enforce_mib_constraints'] -%> enforce_mib_constraints: <%= instance['retries'] %><% end -%>
42-
<% if instance['name'] -%> name: <%= instance['name'] %><% end -%>
43-
<% if instance['tags'] -%> tags:
49+
<% if instance['host'] -%>
50+
host: <%= instance['host'] %>
51+
<% end -%>
52+
<% if instance['port'] -%>
53+
port: <%= instance['port'] %>
54+
<% end -%>
55+
<% if instance['timeout'] -%>
56+
timeout: <%= instance['timeout'] %>
57+
<% end -%>
58+
<% if instance['retries'] -%>
59+
retries: <%= instance['retries'] %>
60+
<% end -%>
61+
<% if instance['enforce_mib_constraints'] -%>
62+
enforce_mib_constraints: <%= instance['retries'] %>
63+
<% end -%>
64+
<% if instance['name'] -%>
65+
name: <%= instance['name'] %>
66+
<% end -%>
67+
<% if instance['tags'] -%>
68+
tags:
4469
<% (Array(instance['tags'])).each do |tag| -%>
4570
- <%= tag %>
4671
<% end -%>
4772
<% end -%>
48-
<% if instance['metrics'] -%> metrics:
73+
<% if instance['metrics'] -%>
74+
metrics:
4975
<% (Array(instance['metrics'])).each do |metric| -%>
5076
<% if metric['MIB'] -%>
5177
- MIB: <%= metric['MIB'] %>
@@ -61,19 +87,25 @@ instances:
6187
<% else -%>
6288
- OID: <%= metric['OID'] -%>
6389
<% end -%>
64-
<% if metric['name'] -%> name: <%= metric['name'] %><% end -%>
90+
<% if metric['name'] -%>
91+
name: <%= metric['name'] %>
92+
<% end -%>
6593
<% if metric['metric_tags'] -%>
6694
metric_tags:
6795
<% (Array(metric['metric_tags'])).each do |metric_tag| -%>
6896
<% if metric['table'] -%>
6997
- tag: <%= metric_tag['tag'] %>
70-
<% if metric_tag['index'] -%> index: <%= metric_tag['index'] %>
71-
<% else if metric_tag['column'] -%> column: <%= metric_tag['column'] %>
98+
<% if metric_tag['index'] -%>
99+
index: <%= metric_tag['index'] %>
100+
<% else if metric_tag['column'] -%>
101+
column: <%= metric_tag['column'] %>
72102
<% end end -%>
73103
<% else if metric['symbol'] -%>
74104
- <%= metric_tag %>
75105
<% end end end end -%>
76-
<% if metric['force_type'] -%> forced_type: <%= metric['forced_type']%><% end -%>
106+
<% if metric['force_type'] -%>
107+
forced_type: <%= metric['forced_type']%>
108+
<% end -%>
77109
<% end end end end -%>
78110
<% end -%>
79111
<% end -%>

0 commit comments

Comments
 (0)