#!/usr/bin/python
-
+# Something relevant
"""Node Manager"""
import optparse
from config import Config
from plcapi import PLCAPI
import random
+import net
savedargv = sys.argv[:]
modules = []
def GetSlivers(plc):
- data = plc.GetSlivers()
- # net needs access to API for i2 nodes.
+ try: data = plc.GetSlivers()
+ except: logger.log_exc()
+ # Set i2 ip list for nodes in I2 nodegroup.
+ try: net.GetSlivers(plc, data)
+ except: logger.log_exc()
+ # All other callback modules
for module in modules:
- if module.__name__ == 'net':
- module.GetSlivers(plc, data)
- else:
+ try:
callback = getattr(module, 'GetSlivers')
callback(data)
-
-def UpdateHostKey(plc):
- logger.log('Trying to update ssh host key at PLC...')
- ssh_host_key = open('/etc/ssh/ssh_host_rsa_key.pub').read().strip()
- plc.BootUpdateNode(dict(ssh_host_key=ssh_host_key))
- logger.log('Host key update succeeded')
+ except: logger.log_exc()
def run():
try:
print "Warning while writing PID file:", err
# Load and start modules
- for module in ['net', 'proper', 'conf_files', 'sm', 'bwmon']:
+ for module in ['proper', 'conf_files', 'sm', 'bwmon']:
try:
m = __import__(module)
m.start(options, config)
plc = PLCAPI(config.plc_api_uri, config.cacert, session, timeout=options.period/2)
while True:
- try: UpdateHostKey(plc)
- except: logger.log_exc()
- try: GetSlivers(plc)
- except: logger.log_exc()
+ # Main NM Loop
+ GetSlivers(plc)
time.sleep(options.period + random.randrange(0,301))
except: logger.log_exc()