- d_node = None
- for node in l_plcnodes:
- if node['hostname'] == nodename:
- d_node = node
- break
- if not d_node:
- return None
-
- pf = PersistFlags(nodename, 1, db='node_persistflags')
-
- if not pf.checkattr('last_changed'):
- pf.last_changed = time.time()
-
- pf.last_checked = time.time()
-
- if not pf.checkattr('status'):
- pf.status = "unknown"
-
- state_path = "nodes/" + nodename + "/values/state"
- bootstate_path = "nodes/" + nodename + "/values/plcnode/boot_state"
-
- if get(fb, state_path) == "BOOT":
- if pf.status != "good": pf.last_changed = time.time()
- pf.status = "good"
- elif get(fb, state_path) == "DEBUG":
- bs = get(fb, bootstate_path)
- if pf.status != bs: pf.last_changed = time.time()
- pf.status = bs
- else:
- if pf.status != "down": pf.last_changed = time.time()
- pf.status = "down"
-
- count += 1
- print "%d %35s %s since(%s)" % (count, nodename, pf.status, diff_time(pf.last_changed))
- # updated by other modules
- #pf.enabled =
- #pf.suspended =
-
- pf.save()
+ # NOTE: this commits all pending operations to the DB. Do not remove, or
+ # replace with another operations that also commits all pending ops, such
+ # as session.commit() or flush() or something
+ print HistoryNodeRecord.query.count()