ok
| Direktori : /proc/self/root/bin/fm-agent/ |
| Current File : //proc/self/root/bin/fm-agent/register.py |
import fcntl
import time
import sys
import os, os.path
import csv
if "freebsd" in sys.platform.lower():
register_file = "/usr/local/fm-agent/lib/register"
elif "darwin" == sys.platform.lower():
register_file = "/usr/local/FortiMonitor/agent/share/fm-agent/register"
else:
register_file = "/var/lib/fm-agent/register"
if not os.path.exists(register_file):
home = os.path.expanduser("~")
register_file = os.path.join(home, "lib", "fm-agent", "register")
unlock_attempts = 10
def register_metric(textkey, description):
csvfile = open(register_file, "a")
# Acquire lock
locked = True
for i in range(unlock_attempts):
try:
fcntl.flock(csvfile, fcntl.LOCK_EX | fcntl.LOCK_NB)
locked = False
break
except:
time.sleep(1.0)
if locked:
print(
"Could not unlock %s after %s attempts" % (register_file, unlock_attempts)
)
sys.exit(1)
# Append new metrics
csvwriter = csv.writer(csvfile)
csvwriter.writerow([textkey, description])
# Release lock
fcntl.flock(csvfile, fcntl.LOCK_UN)
csvfile.close()
if __name__ == "__main__":
if len(sys.argv) < 3:
print("Please specify textkey and description")
sys.exit(0)
else:
register_metric(sys.argv[1], sys.argv[2])