From aef5792772d267d243ba17f7451735fb4dc1f291 Mon Sep 17 00:00:00 2001
From: Todd Zullinger <tmz@pobox.com>
Date: Wed, 18 Mar 2015 15:07:56 -0400
Subject: [PATCH] monitoring/nagios: Allow comment to be specified

The default remains 'Scheduling downtime' but can be overridden.
---
 monitoring/nagios.py | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/monitoring/nagios.py b/monitoring/nagios.py
index c564e712b04..497d0bc19f7 100644
--- a/monitoring/nagios.py
+++ b/monitoring/nagios.py
@@ -51,6 +51,11 @@ options:
        Only usable with the C(downtime) action.
     required: false
     default: Ansible
+  comment:
+    description:
+     - Comment for C(downtime) action.
+    required: false
+    default: Scheduling downtime
   minutes:
     description:
       - Minutes to schedule downtime for.
@@ -84,6 +89,10 @@ EXAMPLES = '''
 # schedule an hour of HOST downtime
 - nagios: action=downtime minutes=60 service=host host={{ inventory_hostname }}
 
+# schedule an hour of HOST downtime, with a comment describing the reason
+- nagios: action=downtime minutes=60 service=host host={{ inventory_hostname }}
+          comment='This host needs disciplined'
+
 # schedule downtime for ALL services on HOST
 - nagios: action=downtime minutes=45 service=all host={{ inventory_hostname }}
 
@@ -175,6 +184,7 @@ def main():
         argument_spec=dict(
             action=dict(required=True, default=None, choices=ACTION_CHOICES),
             author=dict(default='Ansible'),
+            comment=dict(default='Scheduling downtime'),
             host=dict(required=False, default=None),
             minutes=dict(default=30),
             cmdfile=dict(default=which_cmdfile()),
@@ -258,6 +268,7 @@ class Nagios(object):
         self.module = module
         self.action = kwargs['action']
         self.author = kwargs['author']
+        self.comment = kwargs['comment']
         self.host = kwargs['host']
         self.minutes = int(kwargs['minutes'])
         self.cmdfile = kwargs['cmdfile']
@@ -293,7 +304,7 @@ class Nagios(object):
                                   cmdfile=self.cmdfile)
 
     def _fmt_dt_str(self, cmd, host, duration, author=None,
-                    comment="Scheduling downtime", start=None,
+                    comment=None, start=None,
                     svc=None, fixed=1, trigger=0):
         """
         Format an external-command downtime string.
@@ -326,6 +337,9 @@ class Nagios(object):
         if not author:
             author = self.author
 
+        if not comment:
+            comment = self.comment
+
         if svc is not None:
             dt_args = [svc, str(start), str(end), str(fixed), str(trigger),
                        str(duration_s), author, comment]