From: Naoki Kambe Date: Wed, 19 Sep 2012 08:51:23 +0000 (+0900) Subject: [2274] updated the XfrinCounter class for adding new statistics items X-Git-Tag: bind10-1.1.0beta1-release~72^2~40^2~85 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e5e001e23347199841f14f2c0880e2f5f304bd0f;p=thirdparty%2Fkea.git [2274] updated the XfrinCounter class for adding new statistics items - moved up _create_xfrrunning_functors() to the Counter class for sharing - added a name list for new statistics items --- diff --git a/src/lib/python/isc/statistics/counter.py b/src/lib/python/isc/statistics/counter.py index 46fd492a7b..30d0f66a10 100644 --- a/src/lib/python/isc/statistics/counter.py +++ b/src/lib/python/isc/statistics/counter.py @@ -273,6 +273,26 @@ class Counter(): self._to_global['inc_%s' % item] = __incrementer self._to_global['get_%s' % item] = __getter + def _create_xfrrunning_functors(self): + """Creates increment/decrement method of (a|i)xfr_running + based on the spec file. Incrementer can be accessed by name + "inc_${item_name}". Decrementer can be accessed by name + "dec_${item_name}". Both of them are passed to the + XfroutSession as counter handlers.""" + for item in self._xfrrunning_names: + def __incrementer(counter_name=item, step=1): + """A incrementer for axfr or ixfr running.""" + self._incrementer(counter_name, step) + def __decrementer(counter_name=item, step=-1): + """A decrementer for axfr or ixfr running.""" + self._decrementer(counter_name, step) + def __getter(counter_name=item): + """A getter method for xfr_running counters""" + return self._getter(counter_name) + self._to_global['inc_%s' % item] = __incrementer + self._to_global['dec_%s' % item] = __decrementer + self._to_global['get_%s' % item] = __getter + def dump_statistics(self): """Calculates an entire server counts, and returns statistics data format to send out the stats module including each @@ -350,26 +370,6 @@ class XfroutCounter(Counter): self._create_unixsocket_functors() self._to_global['dump_statistics'] = self.dump_statistics - def _create_xfrrunning_functors(self): - """Creates increment/decrement method of (a|i)xfr_running - based on the spec file. Incrementer can be accessed by name - "inc_${item_name}". Decrementer can be accessed by name - "dec_${item_name}". Both of them are passed to the - XfroutSession as counter handlers.""" - for item in self._xfrrunning_names: - def __incrementer(counter_name=item, step=1): - """A incrementer for axfr or ixfr running.""" - self._incrementer(counter_name, step) - def __decrementer(counter_name=item, step=-1): - """A decrementer for axfr or ixfr running.""" - self._decrementer(counter_name, step) - def __getter(counter_name=item): - """A getter method for xfr_running counters""" - return self._getter(counter_name) - self._to_global['inc_%s' % item] = __incrementer - self._to_global['dec_%s' % item] = __decrementer - self._to_global['get_%s' % item] = __getter - def _create_unixsocket_functors(self): """Creates increment method of unixsocket socket. Incrementer can be accessed by name "inc_unixsocket_${item_name}".""" @@ -413,8 +413,15 @@ class XfrinCounter(Counter): isc.config.find_spec_part( self._statistics_spec, self._perzone_prefix)\ ['named_set_item_spec']['map_item_spec']) + self._xfrrunning_names = [ + n for n in isc.config.spec_name_list\ + (self._statistics_spec) \ + if n.find('xfr_running') == 1 \ + or n.find('xfr_deferred') == 1 \ + or n.find('soa_in_progress') == 0 ] self._create_perzone_functors() self._create_perzone_timer_functors() + self._create_xfrrunning_functors() self._to_global['dump_statistics'] = self.dump_statistics def _create_perzone_timer_functors(self):