+ # If in dbg, set to rins, then reboot. Inform PLC.
+ if (node in self.cmn.dbg):
+ self.__actOnDebug(node)
+
+ if (node in self.emailed.keys()) and \
+ (node not in self.cmn.filerw) and \
+ (node not in self.cmn.clock_drift):
+ # If we emailed before, how long ago?
+ delta = time.time() - self.emailed[node][1]
+ if delta < SPERDAY:
+ logger.info("POLICY: already acted on %s today." % node)
+ return
+
+ logger.info("POLICY: acted %s on %s days ago" % (node,
+ delta // SPERDAY))
+
+ # If no luck with tech, email PI
+ if (delta >= SPERDAY):
+ target.append(PIEMAIL % loginbase)
+
+ if (delta >= 7 * SPERDAY):
+ #remove slice creation if enough nodes arent up
+ if not self.enoughUp(loginbase):
+ slices = plc.slices(loginbase)
+ if len(slices) >= 1:
+ for slice in slices:
+ target.append(SLICEMAIL % slice)
+ logger.info("POLICY: Removing slice creation from %s" % loginbase)
+ tmp = emailTxt.mailtxt.removedSliceCreation
+ sbj = tmp[0]
+ msg = tmp[1] % {'loginbase': loginbase}
+ plc.removeSliceCreation(node)
+ mailer.email(sbj, msg, target)
+ self.squeezed[loginbase] = (time.time(), "creation")
+ self.emailed[node] = ("creation", time.time())
+ logger.info("POLICY: Emailing (%s) %s - %s"\
+ %("creation", node, target))
+ return
+
+ if (delta >= 14 * SPERDAY):
+ target.append(PIEMAIL % loginbase)
+ # Email slices at site.
+ slices = plc.slices([loginbase])
+ if len(slices) >= 1:
+ for slice in slices:
+ target.append(SLICEMAIL % slice)
+ # If not enough up, freeze slices and email everyone.
+ if not self.enoughUp(loginbase):
+ logger.info("POLICY: Suspending %s slices." % loginbase)
+ tmp = emailTxt.mailtxt.suspendSlices
+ sbj = tmp[0]
+ msg = tmp[1] % {'loginbase': loginbase}
+ plc.suspendSlices([node])
+ self.squeezed[loginbase] = (time.time(), "freeze")
+ mailer.email(sbj, msg, target)
+ self.emailed[node] = ("freeze", time.time())
+ logger.info("POLICY: Emailing (%s) %s - %s"\
+ %("freeze", node, target))
+
+ return
+
+ # Find the bucket the node is in and send appropriate email
+ # to approriate list of people.
+ for bkt in self.cmn.comonbkts.keys():
+ if (node in getattr(self.cmn, bkt)):
+ # Send predefined message for that bucket.
+ logger.info("POLICY: Emailing (%s) %s - %s"\
+ %(bkt, node, target))
+ tmp = getattr(emailTxt.mailtxt, bkt)
+ sbj = tmp[0] % {'hostname': node}
+ msg = tmp[1] % {'hostname': node}
+ mailer.email(sbj, msg, target)
+ self.emailed[node] = (bkt , time.time())
+ return
+
+
+ """