def __init__(self, warnThreshold, warnDelay = 0):
     """Create a new warning strategy
     warnThreshold - Threshold at which the users should be warned
     warnDelay - user will be warned warnDelay before maximum usage time
     
     """
     ManagementStrategy.__init__(self)
     self.warnedUsersNum = 0
     self.warnThreshold = warnThreshold
     self.warnDelay = warnDelay
     self.requiredServices = ['notifyEvent', 'getFreePercentage', 'getUserBeforeMaxUsage']
 def __init__(self, keepStateTimeout, minFreePercentage, maxFreePercentage = 1):
     """Creates a new instance of the strategy
     keepStateTimeout - duration (in seconds) between state change
     minFreePercentage - minimal percentage to keep free on the server
     maxFreePercentage - max allowed percentage after action
     
     """
     ManagementStrategy.__init__(self)
     self.switchTime = None
     self.keepStateTimeout = keepStateTimeout
     self.minFreePercentage = minFreePercentage
     self.maxFreePercentage = maxFreePercentage
     self.when = None
     self._setWhen = False
     self.currentState = ApplicationState.INIT
     self.bannedUsers = []
     self.idealState = ApplicationState.FREE
     self.requiredServices = ['resetUserUsage',
                              'getUserToBan',
                              'writeFlexOptFile',
                              'notifyEvent',
                              'scheduleServerReloadOnce',
                              'getFreePercentage',
                              'getTotalNumberOfUsers']