verbose switch

This commit is contained in:
Wolfgang Hottgenroth 2025-03-02 22:19:15 +01:00
parent b5e8a63013
commit 30da4ed974

View File

@ -12,8 +12,6 @@ import logging.handlers
import pyagentx import pyagentx
LOGGING_LEVEL=logging.DEBUG
BASE_OID_ENTERPRISE = '1.3.6.1.4.1' BASE_OID_ENTERPRISE = '1.3.6.1.4.1'
BASE_OID_HOTTIS = BASE_OID_ENTERPRISE + '.9676' BASE_OID_HOTTIS = BASE_OID_ENTERPRISE + '.9676'
BASE_OID_HOTTIS_NTPSEC = BASE_OID_HOTTIS + '.123' BASE_OID_HOTTIS_NTPSEC = BASE_OID_HOTTIS + '.123'
@ -165,7 +163,7 @@ class NtpsecDataUpdater(pyagentx.Updater):
try: try:
for index, data_spec in enumerate(LOCAL_SERVER_KEYS, start=1): for index, data_spec in enumerate(LOCAL_SERVER_KEYS, start=1):
# logger.debug(f"local: {index=} {data_spec=}") logger.debug(f"local: {index=} {data_spec=}")
oid_prefix = f"{LOCAL_PREFIX}.{index}" oid_prefix = f"{LOCAL_PREFIX}.{index}"
self._data[oid_prefix] = { self._data[oid_prefix] = {
'name': oid_prefix, 'name': oid_prefix,
@ -173,7 +171,7 @@ class NtpsecDataUpdater(pyagentx.Updater):
'value': data_spec[2](ds.data['local'][data_spec[0]]) 'value': data_spec[2](ds.data['local'][data_spec[0]])
} }
number_of_peers = len(ds.data['peers']) number_of_peers = len(ds.data['peers'])
# logger.debug(f"number of peers: {number_of_peers}") logger.debug(f"number of peers: {number_of_peers}")
number_of_peers_oid_prefix = f"{NUMBER_OF_PEERS_PREFIX}" number_of_peers_oid_prefix = f"{NUMBER_OF_PEERS_PREFIX}"
self._data[number_of_peers_oid_prefix] = { self._data[number_of_peers_oid_prefix] = {
'name': number_of_peers_oid_prefix, 'name': number_of_peers_oid_prefix,
@ -181,7 +179,7 @@ class NtpsecDataUpdater(pyagentx.Updater):
'value': number_of_peers 'value': number_of_peers
} }
for peer_index, (associd, peer) in enumerate(ds.data['peers'].items(), start=1): for peer_index, (associd, peer) in enumerate(ds.data['peers'].items(), start=1):
# logger.debug(f"peer: {peer}") logger.debug(f"peer: {peer}")
index_oid_prefix = f"{TABLE_OF_PEERS_PREFIX}.1.{peer_index}" index_oid_prefix = f"{TABLE_OF_PEERS_PREFIX}.1.{peer_index}"
self._data[index_oid_prefix] = { self._data[index_oid_prefix] = {
'name': index_oid_prefix, 'name': index_oid_prefix,
@ -195,7 +193,7 @@ class NtpsecDataUpdater(pyagentx.Updater):
'value': associd 'value': associd
} }
for key_index, data_spec in enumerate(PEER_KEYS, start=3): for key_index, data_spec in enumerate(PEER_KEYS, start=3):
# logger.debug(f"peer: {associd=} {key_index=} {data_spec=}") logger.debug(f"peer: {associd=} {key_index=} {data_spec=}")
oid_prefix = f"{TABLE_OF_PEERS_PREFIX}.{key_index}.{peer_index}" oid_prefix = f"{TABLE_OF_PEERS_PREFIX}.{key_index}.{peer_index}"
self._data[oid_prefix] = { self._data[oid_prefix] = {
'name': oid_prefix, 'name': oid_prefix,
@ -261,17 +259,6 @@ def set_user_group(user, group):
if __name__ == '__main__': if __name__ == '__main__':
logging.basicConfig(
level=LOGGING_LEVEL,
format="%(name)s - %(levelname)s - %(message)s",
handlers=[logging.handlers.SysLogHandler(address='/dev/log')]
)
logger = logging.getLogger('agentx-ntpsec')
stdout_handler = logging.StreamHandler(sys.stdout)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
stdout_handler.setFormatter(formatter)
logger.addHandler(stdout_handler)
pid_filename = '/tmp/agentx-ntpsec.pid' pid_filename = '/tmp/agentx-ntpsec.pid'
parser = argparse.ArgumentParser(description='snmpd agentx extension for ntpsec') parser = argparse.ArgumentParser(description='snmpd agentx extension for ntpsec')
@ -300,6 +287,11 @@ if __name__ == '__main__':
help="Set gid of process", help="Set gid of process",
required=False, required=False,
default='') default='')
parser.add_argument('--verbose', '-v',
help='Enable debug output',
required=False,
action='store_true',
default=False)
args = parser.parse_args() args = parser.parse_args()
@ -311,18 +303,33 @@ if __name__ == '__main__':
try: try:
gid = grp.getgrnam(args.group).gr_gid gid = grp.getgrnam(args.group).gr_gid
except KeyError: except KeyError:
logger.error(f"Group {args.group} does not exist") print(f"Group {args.group} does not exist")
sys.exit(1) sys.exit(1)
os.setgid(gid) os.setgid(gid)
if args.user: if args.user:
try: try:
uid = pwd.getpwnam(args.user).pw_uid uid = pwd.getpwnam(args.user).pw_uid
except KeyError: except KeyError:
logger.error(f"user {args.user} does not exist") print(f"user {args.user} does not exist")
sys.exit(1) sys.exit(1)
os.setuid(uid) os.setuid(uid)
log_level = logging.DEBUG if args.verbose else logging.INFO
logging.basicConfig(
level=log_level,
format="%(name)s - %(levelname)s - %(message)s",
handlers=[logging.handlers.SysLogHandler(address='/dev/log')]
)
logger = logging.getLogger('agentx-ntpsec')
stdout_handler = logging.StreamHandler(sys.stdout)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
stdout_handler.setFormatter(formatter)
logger.addHandler(stdout_handler)
ntpserver = args.ntpserver ntpserver = args.ntpserver
try: try:
period = int(args.period) period = int(args.period)