2 ##############################################################################
3 # Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
5 # All rights reserved. This program and the accompanying materials
6 # are made available under the terms of the Apache License, Version 2.0
7 # which accompanies this distribution, and is available at
8 # http://www.apache.org/licenses/LICENSE-2.0
9 ##############################################################################
10 '''This file contain some function about docker API.
11 At present, This file contain the following function:
12 1.Ask Docker service to create a docker(yardstick or ELK).
23 client = docker.from_env()
27 def docker_find(docker_name):
29 docker_client = client.containers.get(docker_name)
33 def env_yardstick(docker_name):
35 yardstick_info["name"] = docker_name
37 env_docker = docker_find(docker_name)
38 yardstick_info["containner"] = env_docker
39 yardstick_info["ip"] = get_docker_ip(docker_name)
41 except docker.errors.NotFound:
43 env_docker = client.containers.run(image="opnfv/yardstick:latest",
46 ports={'8888': '5000'},
47 volumes={'/var/run/docker.sock':
48 '/var/run/docker.sock'},
50 yardstick_info["containner"] = env_docker
51 yardstick_info["ip"] = get_docker_ip(docker_name)
55 def env_elk(docker_name):
57 ELK_info["name"] = docker_name
59 env_docker = docker_find(docker_name)
60 ELK_info["container"] = env_docker
61 ELK_info["ip"] = get_docker_ip(docker_name)
63 except docker.errors.NotFound:
65 env_docker = client.containers.run(image="sebp/elk:es241_l240_k461",
68 ports={'5044': '5044',
72 ELK_info["container"] = env_docker
73 ELK_info["ip"] = get_docker_ip(docker_name)
77 def get_docker_ip(docker_name):
78 env_docker = docker_find(docker_name)
79 client = docker.APIClient(base_url='unix://var/run/docker.sock')
80 ip_address = client.inspect_container(env_docker.id)
84 def docker_exec_cmd(docker, cmd):
85 return docker.exec_cmd(cmd)
88 def remove_docker(docker_name):
89 docker = docker_find(docker_name)