PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB` 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])