| Server IP : 68.178.202.69 / Your IP : 216.73.216.122 Web Server : Apache System : Linux 69.202.178.68.host.secureserver.net 3.10.0-1160.139.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Nov 3 13:30:41 UTC 2025 x86_64 User : ikioworld ( 1005) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/bin/fm-agent/ |
Upload File : |
import fcntl
import time
import sys
import os, os.path
update_config_file = '/etc/panopta-agent/panopta_agent.cfg'
if not os.path.exists(update_config_file):
home = os.path.expanduser("~")
update_config_file = os.path.join(home, "lib", "fm-agent", "update_config")
unlock_attempts = 10
def update_config(manifest_file):
if not os.path.exists(manifest_file):
print "Manifest file %s does not exist" % manifest_file
sys.exit(0)
try:
mf = open(manifest_file).read().strip().split('\n')
props = dict([map(str.strip, line.split("=")) for line in mf])
except:
print "Error reading manifest file %s" % manifest_file
sys.exit(0)
manfile = open(update_config_file, 'wt')
# Acquire lock
locked = True
for i in range(unlock_attempts):
try:
fcntl.flock(manfile, fcntl.LOCK_EX | fcntl.LOCK_NB)
locked = False
break
except:
time.sleep(1.0)
if locked:
print "Could not unlock %s after %s attempts" % (update_config_file, unlock_attempts)
sys.exit(1)
# Write new properties
manfile.write(open(manifest_file).read())
# Release lock
fcntl.flock(manfile, fcntl.LOCK_UN)
manfile.close()
# Change perms to make sure the agent user can read the config file
os.system("chmod 666 %s" % update_config_file)
if __name__ == "__main__":
if len(sys.argv) < 2:
print "Please specify the manifest file"
sys.exit(0)
else:
update_config(sys.argv[1])