Skip to content

Commit ccc513c

Browse files
authored
[mysql] fix broken parameters (DataDog#411)
1 parent b2f3c2e commit ccc513c

3 files changed

Lines changed: 25 additions & 16 deletions

File tree

manifests/integrations/mysql.pp

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -54,26 +54,31 @@
5454
#
5555
#
5656
class datadog_agent::integrations::mysql(
57-
String $password,
58-
String $host = 'localhost',
59-
String $user = 'datadog',
60-
Variant[String, Integer] $port = 3306,
61-
Optional[String] $sock = undef,
62-
Array $tags = [],
63-
$replication = '0',
64-
$galera_cluster = '0',
65-
Boolean $extra_status_metrics = false,
66-
Boolean $extra_innodb_metrics = false,
67-
Boolean $extra_performance_metrics = false,
68-
Boolean $schema_size_metrics = false,
69-
Boolean $disable_innodb_metrics = false,
70-
Optional[Array] $instances = undef,
57+
String $host = 'localhost',
58+
Optional[String] $user = 'datadog',
59+
Optional[Variant[String, Integer]] $port = 3306,
60+
Optional[String] $password = undef,
61+
Optional[String] $sock = undef,
62+
Array $tags = [],
63+
$replication = '0',
64+
$galera_cluster = '0',
65+
Boolean $extra_status_metrics = false,
66+
Boolean $extra_innodb_metrics = false,
67+
Boolean $extra_performance_metrics = false,
68+
Boolean $schema_size_metrics = false,
69+
Boolean $disable_innodb_metrics = false,
70+
Optional[Array] $instances = undef,
7171
) inherits datadog_agent::params {
7272
include datadog_agent
7373

7474
validate_legacy('Optional[String]', 'validate_string', $sock)
7575
validate_legacy('Array', 'validate_array', $tags)
7676

77+
if ($host == undef and $sock == undef) or
78+
($host != undef and $port == undef and $sock == undef) {
79+
fail('invalid MySQL configuration')
80+
}
81+
7782
if !$instances and $host {
7883
$_instances = [{
7984
'host' => $host,

spec/classes/datadog_agent_integrations_mysql_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
let(:conf_file) { "#{conf_dir}/mysql.yaml" }
2121

2222
context 'with default parameters' do
23-
it { should_not compile }
23+
it { should compile }
2424
end
2525

2626
context 'with password set' do

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,14 @@ init_config:
77
instances:
88
<%- (Array(@_instances)).each do |instance| -%>
99
- server: <%= instance['host'] %>
10+
<% if instance['user'] and instance['user'] != :undef -%>
1011
user: <%= instance['user'] %>
12+
<% end -%>
13+
<% if instance['password'] and instance['password'] != :undef -%>
1114
pass: <%= instance['password'] %>
15+
<% end -%>
1216
<% if instance['port'] -%>
13-
port: <%= instance['port'] %>
17+
port: <%= instance['port'] and instance['port'] != :undef %>
1418
<% end -%>
1519
<% if instance['sock'] and instance['sock'] != :undef -%>
1620
sock: <%= instance['sock'] %>

0 commit comments

Comments
 (0)