Beispiel #1
0
    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
Beispiel #2
0
def distro_init(name, force=False):
    Distro.initialize(name, force)
Beispiel #3
0
def distro_destroy(name, force=False):
    Distro.get_by_name(name).destroy(force)