# -*- coding: utf-8 -*-
from docker import Client


def cli2rest(cli, image, name, cmd, timeout=120):
    print("===> Create container: %s" % name)
    container = cli.create_container(name=name,
                                     image=image,
                                     command=["/bin/sleep", str(timeout)])
    print("===> Start container: %s" % name)
    cli.start(container=container['Id'])

    print("===> Create exec instance")
    exec_instance = cli.exec_create(container['Id'], cmd=cmd, tty=True)

    print("===> Start exec instance")
    out = cli.exec_start(exec_id=exec_instance['Id'])

    print("===> Remove container")
    cli.remove_container(container=name, force=True)

    return out


if __name__ == '__main__':
    cli = Client(base_url='unix://var/run/docker.sock', version='auto')
    result = cli2rest(cli=cli,
             image="ahmet2mir/httpie",
             name="httpiedemo",
             cmd=["http","HEAD","ahmet2mir.eu"])

    print("======> Result")
    print(result)
