]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/balancer: restrict to time of day
authorSage Weil <sage@redhat.com>
Tue, 24 Oct 2017 22:12:54 +0000 (17:12 -0500)
committerSage Weil <sage@redhat.com>
Wed, 1 Nov 2017 12:28:49 +0000 (07:28 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
src/pybind/mgr/balancer/module.py

index 087744a5e192ee248be7982898d7f063883d3121..76b1360fe7e6a0c7fb34842e07a2d2f3080b845e 100644 (file)
@@ -325,14 +325,25 @@ class Module(MgrModule):
         self.run = False
         self.event.set()
 
+    def time_in_interval(self, tod, begin, end):
+        if begin <= end:
+            return tod >= begin and tod < end
+        else:
+            return tod >= begin or tod < end
+
     def serve(self):
         self.log.info('Starting')
         while self.run:
-            self.log.debug('Waking up')
             self.active = self.get_config('active', '') is not ''
+            begin_time = self.get_config('begin_time') or '0000'
+            end_time = self.get_config('end_time') or '2400'
+            timeofday = time.strftime('%H%M', time.localtime())
+            self.log.debug('Waking up [%s, scheduled for %s-%s, now %s]',
+                           "active" if self.active else "inactive",
+                           begin_time, end_time, timeofday)
             sleep_interval = float(self.get_config('sleep_interval',
                                                    default_sleep_interval))
-            if self.active:
+            if self.active and self.time_in_interval(timeofday, begin_time, end_time):
                 self.log.debug('Running')
                 name = 'auto_%s' % time.strftime(TIME_FORMAT, time.gmtime())
                 plan = self.plan_create(name)