import logging from buildman.manager.etcd_canceller import EtcdCanceller from buildman.manager.noop_canceller import NoopCanceller logger = logging.getLogger(__name__) CANCELLERS = {'ephemeral': EtcdCanceller} class BuildCanceller(object): """ A class to manage cancelling a build """ def __init__(self, app=None): build_manager_config = app.config.get('BUILD_MANAGER') if app is None or build_manager_config is None: self.handler = NoopCanceller() return canceller = CANCELLERS.get(build_manager_config[0], NoopCanceller) self.handler = canceller(build_manager_config[1]) def try_cancel_build(self, uuid): """ A method to kill a running build """ return self.handler.try_cancel_build(uuid)