diff --git a/ClusterController/ClusterController.py b/ClusterController/ClusterController.py index 06dd3a6..80c974c 100644 --- a/ClusterController/ClusterController.py +++ b/ClusterController/ClusterController.py @@ -43,7 +43,7 @@ class SleepCompleteNotifier( ISleepCompleteNotifier ): self.m_machineName = machineName self.m_clusterController = clusterController def onSleepComplete( self, bSleepSucceeded ): - logDebug('WakeUpCompleteNotifier::onWakeUpComplete : start') + logDebug('SleepCompleteNotifier::onSleepComplete : start') self.m_clusterController.onMachineSleepComplete( self.m_machineName, bSleepSucceeded ) def jouleToKwh( fEnergyInJoules ): @@ -79,6 +79,8 @@ class ClusterController: self.DELAY_BETWEEN_ENERGY_STATUS_LOGS = 60 # in seconds self.m_iSessionId = None # session (run) identifier in database self.m_webServer = WebServerThread(self) + self.m_bStop = False + self.m_bStopLock = threading.Lock() # to prevent concurrent access to m_bStop def getClusterStatus( self ): return self.m_clusterStatus @@ -104,9 +106,9 @@ class ClusterController: #logDebug('ClusterController::onMachineSleepComplete : machine %s new len(self.m_machinesThatNeedWakeUp) = %d' % (machineName,len(self.m_machinesThatNeedWakeUp)) ) self.m_machinesThatNeedSleepingLock.release() if bSleepSucceeded: - logDebug('ClusterController::onMachineWakeUpComplete : removed %s from the list of machines that need waking up because it\'s now awake' % machineName) + logDebug('ClusterController::onMachineSleepComplete : removed %s from the list of machines that need sleeping because it\'s now sleeping' % machineName) else: - logDebug('ClusterController::onMachineWakeUpComplete : removed %s from the list of machines that need waking up because it can\'t be put to sleep at the moment (eg a job just arrived)' % machineName) + logDebug('ClusterController::onMachineSleepComplete : removed %s from the list of machines that need sleeping because it can\'t be put to sleep at the moment (eg a job just arrived)' % machineName) def getNumPendingWakeUps( self ): self.m_machinesThatNeedWakeupLock.acquire() @@ -243,7 +245,7 @@ class ClusterController: None logInfo('ClusterController::run : cluster initial readings have completed') startTime = time.localtime() - while True: + while not self.m_bStop: currentTime = time.time() #clusterStatus.m_nodesStatus['simpatix10'].dump() if (not self.m_lastEnergyStatusLogTime) or (currentTime > (self.m_lastEnergyStatusLogTime +self.DELAY_BETWEEN_ENERGY_STATUS_LOGS)):