-
-
Notifications
You must be signed in to change notification settings - Fork 269
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
Make port and host optional for mysql plugin #988
Conversation
da564b0
to
590d2be
Compare
This is not a backward-compatible change: empty host/port resolved to the default value (localhost/3306) before, while now they are discarded. The alternative, is to allow the empty string as host. That is how I used to fix this issue in my setup, before upgrading to this version of the module... (However, now the type is too strict, and complains about empty string as host) |
I would not classify this as backwards-incompatible because the type change still honors the old value and just extends it to allow |
When we use a socket, the host and port should be empty (or omitted). Signed-off-by: Jo Vandeginste <[email protected]>
590d2be
to
5813b65
Compare
Thanks for spotting this, @ghoneycutt; I was too hasty with the tests 😄 |
@ghoneycutt why do you think it's not backwards-incompatible? The defaults localhost/3306 got removed. Or does the collectd use that by default because it's compiled into the plugin? |
I only checked now, but it seems it will: the manpage
(and for further reference)
|
Though I'm not sure about the port part, @bastelfreak |
@@ -2,8 +2,8 @@ | |||
define collectd::plugin::mysql::database ( | |||
Enum['present', 'absent'] $ensure = 'present', | |||
String $database = $name, | |||
Stdlib::Host $host = 'localhost', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The change in the data type is OK though the default value should not change. This ensures it is backwards compatible while still allowing you to specify things differently for your use case.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think I understand; how can you allow undef and have a default value?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A value with a default cannot be set to undef.
The underlaying question is: If I do not set a port, and if I set port to 3306, is the result the same? For what I understand, the default Port 3306
is now removed from the configuration, but if no port is the same as port 3306, it is not a breaking change because the bahaviour is the same.
If the behavior change (e.g. metrics are not collected, the name of the metric change, etc), then this is backward incompatible.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For the port, you are correct; we could add back the default value there. For the host, however, the behavior is different...
@ghoneycutt since this PR has been merged, what exactly would you like me to do now? |
Well, I would recommend to do nothing: the issue is marked as backward incompatible so the next version will be a major one which is appropriate 😃. |
Pull Request (PR) description
When we use a socket, the host and port should be empty (or omitted).
This Pull Request (PR) fixes the following issues
n/a
Signed-off-by: Jo Vandeginste [email protected]