示例#1
0
            logger.critical(str(e))
            sys.exit(1)
        except ProviderNotFoundException, e:
            logger.critical(str(e))
            sys.exit(1)
        except KeyboardInterrupt:
            logger.critical('interrupted with Ctrl-C... bye!')
            sys.exit(0)

        scheduler = None
        try:
            if command:
                scheduler = TasksScheduler()
                tasks = topology.get_tasks(command)
                assert all(isinstance(t, tuple) for t in tasks)
                scheduler.append(tasks)
                scheduler.run()
        except CandelabraException:
            raise
        except Exception, e:
            logger.critical('uncaught exception')
            raise
        finally:
            if save_state:
                if scheduler and scheduler.num_completed > 0:
                    topology.state.save()

        return topology


class ProviderPlugin(object):