self.ClientClass = client_class # parameterize this for testing
self._soa = None # will be set in _xfrout_setup or in tests
self._jnl_reader = None # will be set to a reader for IXFR
+ # Creation of self.counter should be done before of
+ # invoking self._handle()
+ self._counter = Counter(SPECFILE_LOCATION)
self._handle()
def create_tsig_ctx(self, tsig_record, tsig_key_ring):
return None, None
elif acl_result == REJECT:
# count rejected Xfr request by each zone name
- Counter.inc_xfrrej(zone_name.to_text())
+ self._counter.inc('zones', zone_name.to_text(), 'xfrrej')
logger.debug(DBG_XFROUT_TRACE, XFROUT_QUERY_REJECTED,
self._request_type, format_addrinfo(self._remote),
format_zone_str(zone_name, zone_class))
try:
# increment Xfr starts by RRType
if self._request_type == RRType.AXFR():
- Counter.inc_axfr_running()
+ self._counter.inc('axfr_running')
else:
- Counter.inc_ixfr_running()
+ self._counter.inc('ixfr_running')
logger.info(XFROUT_XFR_TRANSFER_STARTED, self._request_typestr,
format_addrinfo(self._remote), zone_str)
self._reply_xfrout_query(msg, sock_fd)
except Exception as err:
# count unixsockets send errors
- Counter.inc_unixsocket_senderr()
+ self._counter.inc('socket', 'unixdomain', 'senderr')
logger.error(XFROUT_XFR_TRANSFER_ERROR, self._request_typestr,
format_addrinfo(self._remote), zone_str, err)
finally:
# decrement Xfr starts by RRType
if self._request_type == RRType.AXFR():
- Counter.dec_axfr_running()
+ self._counter.dec('axfr_running')
else:
- Counter.dec_ixfr_running()
+ self._counter.dec('ixfr_running')
# count done Xfr requests by each zone name
- Counter.inc_xfrreqdone(zone_name.to_text())
+ self._counter.inc('zones', zone_name.to_text(), 'xfrreqdone')
logger.info(XFROUT_XFR_TRANSFER_DONE, self._request_typestr,
format_addrinfo(self._remote), zone_str)
self._remove_unused_sock_file(sock_file)
self._sock_file = sock_file
socketserver_mixin.NoPollMixIn.__init__(self)
+ self._counter = Counter(SPECFILE_LOCATION)
try:
ThreadingUnixStreamServer.__init__(self, sock_file, \
handle_class)
except:
- Counter.inc_unixsocket_openfail()
+ self._counter.inc('socket', 'unixdomain', 'openfail')
else:
- Counter.inc_unixsocket_open()
+ self._counter.inc('socket', 'unixdomain', 'open')
self._shutdown_event = shutdown_event
self._write_sock, self._read_sock = socket.socketpair()
self._common_init()
return super().server_bind()
except:
# count bind failed unixsockets
- Counter.inc_unixsocket_bindfail()
+ self._counter.inc('socket', 'unixdomain', 'bindfail')
raise
def get_request(self):
# ThreadingUnixStreamServer
ret = super().get_request()
# count successfully accepted unixsockets
- Counter.inc_unixsocket_accept()
+ self._counter.inc('socket', 'unixdomain', 'accept')
return ret
except:
# count failed accepted unixsockets
- Counter.inc_unixsocket_acceptfail()
+ self._counter.inc('socket', 'unixdomain', 'acceptfail')
raise
def _common_init(self):
break
except Exception as pre:
# count unixsockets receive errors
- Counter.inc_unixsocket_recverr()
+ self._counter.inc('socket', 'unixdomain', 'recverr')
logger.error(XFROUT_PROCESS_REQUEST_ERROR, pre)
break
super().shutdown() # call the shutdown() of class socketserver_mixin.NoPollMixIn
try:
# count closed unixsockets
- Counter.inc_unixsocket_close()
+ self._counter.inc('socket', 'unixdomain', 'close')
os.unlink(self._sock_file)
except Exception as e:
logger.error(XFROUT_REMOVE_UNIX_SOCKET_FILE_ERROR, self._sock_file, str(e))
isc.server_common.tsig_keyring.init_keyring(self._cc)
self._start_xfr_query_listener()
self._start_notifier()
+ self._counter = Counter(SPECFILE_LOCATION)
def _start_xfr_query_listener(self):
'''Start a new thread to accept xfr query. '''
# The log level is here set to debug in order to avoid
# that a log becomes too verbose. Because the b10-stats
# daemon is periodically asking to the b10-xfrout daemon.
- answer = create_answer(0, Counter.dump_statistics())
+ answer = create_answer(0, self._counter.dump_statistics())
logger.debug(DBG_XFROUT_TRACE, \
XFROUT_RECEIVED_GETSTATS_COMMAND, \
str(answer))