Bump APScheduler to >=3.0

This patch upgrades nodepool to support APScheduler 3.0. For the most
part, 3.0 was a rewrite but our changes seem to be limited.

This is part of the effort to packaged our CI tools for fedora
rawhide.

Change-Id: Ia39dca8327cbc89c6bfe707a82a41afe03f52ffa
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
This commit is contained in:
Paul Belanger 2015-12-28 10:18:16 -05:00 committed by Drew Thorstensen
parent de4a31873c
commit 37cdfdd43b
2 changed files with 10 additions and 11 deletions

View File

@ -16,7 +16,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import apscheduler.scheduler
import apscheduler.schedulers.background
import apscheduler.triggers.cron
import gear
import json
import logging
@ -1109,7 +1110,7 @@ class NodePool(threading.Thread):
z.listener.join()
if self.zmq_context:
self.zmq_context.destroy()
if self.apsched:
if self.apsched and self.apsched.running:
self.apsched.shutdown()
def waitForBuiltImages(self):
@ -1179,27 +1180,25 @@ class NodePool(threading.Thread):
}
if not self.apsched:
self.apsched = apscheduler.scheduler.Scheduler()
self.apsched = apscheduler.schedulers.background.BackgroundScheduler()
self.apsched.start()
for c in config.crons.values():
if ((not self.config) or
c.timespec != self.config.crons[c.name].timespec):
if self.config and self.config.crons[c.name].job:
self.apsched.unschedule_job(self.config.crons[c.name].job)
self.config.crons[c.name].job.remove()
parts = c.timespec.split()
if len(parts) > 5:
second = parts[5]
else:
second = None
minute, hour, dom, month, dow = parts[:5]
c.job = self.apsched.add_cron_job(
cron_map[c.name],
day=dom,
day_of_week=dow,
hour=hour,
minute=minute,
trigger = apscheduler.triggers.cron.CronTrigger(
day=dom, day_of_week=dow, hour=hour, minute=minute,
second=second)
c.job = self.apsched.add_job(
cron_map[c.name], trigger=trigger)
else:
c.job = self.config.crons[c.name].job

View File

@ -7,7 +7,7 @@ paramiko>1.11.6
python-daemon>=2.0.4,<2.1.0
extras
statsd>=3.0
apscheduler>=2.1.1,<3.0
apscheduler>=3.0
sqlalchemy>=0.8.2,<1.1.0
pyzmq>=13.1.0
python-novaclient>=2.21.0