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