Esempio n. 1
0
def stand_up_compose(target):
    """
    Stand up compose based on target
    """
    args = ["docker-compose", "--env-file", "client.env"]

    if target in [LaunchTarget.discovery, LaunchTarget.everything]:
        discovery_image = f"docker.greenkeytech.com/discovery:{env['DISCOVERY_TAG']}"
        pull_image(discovery_image)
        args += ["-f", "discovery.yaml"]
    if target in [LaunchTarget.nlprocessor, LaunchTarget.everything]:
        nlprocessor_image = (
            f"docker.greenkeytech.com/nlprocessor:{env['NLPROCESSOR_TAG']}")
        pull_image(nlprocessor_image)
        args += ["-f", "nlprocessor.yaml"]

    args += ["up", "-d", "--force-recreate"]
    with patch.object(sys, "argv", args):
        docker_compose()
Esempio n. 2
0
def teardown_docker_compose():
    """
    Teardown docker compose
    """
    args = [
        "docker-compose",
        "--env-file",
        "client.env",
        "-f",
        "discovery.yaml",
        "-f",
        "nlprocessor.yaml",
        "down",
    ]
    with patch.object(sys, "argv", args):
        docker_compose()

    for volume_name in [
        CUSTOM_DISCOVERY_INTERPRETER,
        BUILTIN_DISCOVERY_MODELS,
        BUILTIN_NLPROCESSOR_MODELS,
    ]:
        remove_volume(volume_name)
Esempio n. 3
0
            def command(self, cmd, *args):
                # cmd: up、start、stop等
                if cmd not in (
                        'up',
                        'start',
                        'stop',
                        'pause',
                        'restart',
                        'top',
                        'ps',
                        'logs',
                        'down',
                ):
                    return '为了安全,默认只开放部分命令操作权限'
                cmd_args = list(self.cmd_args)
                cmd_args.append(cmd)
                cmd_args.extend(args)

                sys.argv = [str(i.strip()) for i in cmd_args if i.strip()]
                # print sys.argv, 777777777

                strio = cStringIO.StringIO()
                sys.stderr = sys.stdout = strio  # 输出重定向到内存变量,用于显示到网页
                try:
                    docker_compose()()  # 执行docker-compose命令,参数为sys.argv[1:]
                except Exception as e:
                    print '执行docker-compose出错:\r\n', e
                    raise
                sys.stderr = sys.__stderr__  # 还原输出到控制台
                sys.stdout = sys.__stdout__  # 还原输出到控制台
                msg = strio.getvalue()
                # print '###################'
                # print msg
                # print '###################'

                return msg