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
LOGGING_LEVEL=logging.DEBUG
BASE_OID_ENTERPRISE = '1.3.6.1.4.1'
BASE_OID_HOTTIS = BASE_OID_ENTERPRISE + '.9676'
BASE_OID_HOTTIS_NTPSEC = BASE_OID_HOTTIS + '.123'
@ -165,7 +163,7 @@ class NtpsecDataUpdater(pyagentx.Updater):
try:
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}"
self._data[oid_prefix] = {
'name': oid_prefix,
@ -173,7 +171,7 @@ class NtpsecDataUpdater(pyagentx.Updater):
'value': data_spec[2](ds.data['local'][data_spec[0]])
}
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}"
self._data[number_of_peers_oid_prefix] = {
'name': number_of_peers_oid_prefix,
@ -181,7 +179,7 @@ class NtpsecDataUpdater(pyagentx.Updater):
'value': number_of_peers
}
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}"
self._data[index_oid_prefix] = {
'name': index_oid_prefix,
@ -195,7 +193,7 @@ class NtpsecDataUpdater(pyagentx.Updater):
'value': associd
}
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}"
self._data[oid_prefix] = {
'name': oid_prefix,
@ -261,17 +259,6 @@ def set_user_group(user, group):
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'
parser = argparse.ArgumentParser(description='snmpd agentx extension for ntpsec')
@ -300,6 +287,11 @@ if __name__ == '__main__':
help="Set gid of process",
required=False,
default='')
parser.add_argument('--verbose', '-v',
help='Enable debug output',
required=False,
action='store_true',
default=False)
args = parser.parse_args()
@ -311,18 +303,33 @@ if __name__ == '__main__':
try:
gid = grp.getgrnam(args.group).gr_gid
except KeyError:
logger.error(f"Group {args.group} does not exist")
print(f"Group {args.group} does not exist")
sys.exit(1)
os.setgid(gid)
if args.user:
try:
uid = pwd.getpwnam(args.user).pw_uid
except KeyError:
logger.error(f"user {args.user} does not exist")
print(f"user {args.user} does not exist")
sys.exit(1)
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
try:
period = int(args.period)