def initialize(cls, name): client = connect() try: instance = cls.get_by_name(name) logger.info('running %s for %s', instance.container_id, name) except NotFound: data = settings.bots[name] # mmmhhhh. from meuh.distro import Distro distro = Distro.initialize(data['distro'], force=False) container_id = client.create_container(image=distro.tag, command=['/bin/bash'], name=name, hostname=name, detach=True, tty=True, stdin_open=True, volumes=[ '/meuh/build', '/meuh/publish' ]) logger.info('created %s from %s for %s', container_id, distro.tag, name) instance = cls(name, container_id=container_id) instance.start() return instance
def distro_init(name, force=False): Distro.initialize(name, force)
def distro_destroy(name, force=False): Distro.get_by_name(name).destroy(force)