BBlack has submitted this change and it was merged.

Change subject: naggen2: only pick up resources older than 1 hour by default
......................................................................


naggen2: only pick up resources older than 1 hour by default

This is another possible/partial solution to the "we get spammed
by icinga when a host is first being brought up", the other
being https://gerrit.wikimedia.org/r/#/c/144839 (which is better
in that it uses downtime instead of preventing adding to icinga
at all, but haven't found a good way to trigger it for the right
hosts at the right time).

Change-Id: Ied778ec8f73b06da0a62fa6dd0fca123e250fe87
---
M modules/puppetmaster/files/naggen2
1 file changed, 10 insertions(+), 5 deletions(-)

Approvals:
  Giuseppe Lavagetto: Looks good to me, but someone else must approve
  BBlack: Looks good to me, approved
  jenkins-bot: Verified
  Dzahn: Looks good to me, but someone else must approve



diff --git a/modules/puppetmaster/files/naggen2 
b/modules/puppetmaster/files/naggen2
index 493abc9..eccf006 100755
--- a/modules/puppetmaster/files/naggen2
+++ b/modules/puppetmaster/files/naggen2
@@ -28,6 +28,7 @@
     JOIN resources ON resource_id = resources.id
     JOIN param_names ON param_names.id = param_name_id
     WHERE restype = '%s' AND param_names.name = 'ensure' AND value = 'present')
+    AND resources.created_at < (NOW() - INTERVAL %s)
 GROUP BY resources.id ORDER BY resources.title ASC"""
 
     restype = {
@@ -80,19 +81,19 @@
             loader=jinja2.DictLoader(self.restpl)
         )
 
-    def _query(self, what):
+    def _query(self, what, age):
         connection = self.db_engine.connect()
         connection.execute('set group_concat_max_len = @@max_allowed_packet')
-        res = connection.execute(self.base_query % self.restype[what])
+        res = connection.execute(self.base_query % (self.restype[what], age))
         connection.close()
         return res
 
-    def render(self, what):
+    def render(self, what, age):
         if what not in self.restype:
             self.log.error('Exiting  - unsupported resource type %s', what)
             sys.exit(1)
         try:
-            for entity in self._query(what):
+            for entity in self._query(what, age):
                 self.log.debug('Working on resource %s', entity['title'])
                 content = [
                     tuple(i.split("\t"))
@@ -112,6 +113,10 @@
                         dest='type',
                         help="type of file to generate",
                         choices=['services', 'hosts', 'hostextinfo'])
+    parser.add_argument('--age',
+                        dest='age',
+                        help='minimum age as mysql interval (def: 1 HOUR)'
+                        default='1 HOUR')
     parser.add_argument(
         '--configfile', '-c', dest='configfile', 
default='/etc/puppet/puppet.conf')
     parser.add_argument('--debug', action='store_true', default=False)
@@ -136,7 +141,7 @@
 
     log.info('Generating output for resource %s', args.type)
     n = NagiosGenerator(args.configfile, args.debug)
-    for entity in n.render(args.type):
+    for entity in n.render(args.type, args.age):
         print(entity)
     log.info('Run completed')
 

-- 
To view, visit https://gerrit.wikimedia.org/r/145315
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ied778ec8f73b06da0a62fa6dd0fca123e250fe87
Gerrit-PatchSet: 4
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: BBlack <bbl...@wikimedia.org>
Gerrit-Reviewer: BBlack <bbl...@wikimedia.org>
Gerrit-Reviewer: Dzahn <dz...@wikimedia.org>
Gerrit-Reviewer: Giuseppe Lavagetto <glavage...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to