1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
import logging
import requests
from python_moonclient.core import config
from python_moonclient.core.check_tools import *
logger = logging.getLogger("moonclient.core.slaves")
URL = None
HEADERS = None
def init(consul_host, consul_port):
conf_data = config.get_config_data(consul_host, consul_port)
global URL, HEADERS
URL = "http://{}:{}".format(
conf_data['manager_host'],
conf_data['manager_port'])
URL = URL + "{}"
HEADERS = {"content-type": "application/json"}
def get_slaves():
req = requests.get(URL.format("/slaves"))
req.raise_for_status()
result = req.json()
check_slaves_in_result(result)
return result
def set_slave(name):
slaves = get_slaves().get("slaves", [])
check_name_in_slaves(name, slaves)
req = requests.patch(URL.format("/slaves/{}".format(name)),
headers=HEADERS,
json={
"op": "replace",
"variable": "configured",
"value": True
})
req.raise_for_status()
result = req.json()
check_slaves_in_result(result)
return get_slaves()
def delete_slave(name):
slaves = get_slaves().get("slaves", [])
check_name_in_slaves(name, slaves)
req = requests.patch(URL.format("/slaves/{}".format(name)),
headers=HEADERS,
json={
"op": "replace",
"variable": "configured",
"value": False
})
req.raise_for_status()
result = req.json()
check_slaves_in_result(result)
return get_slaves()
|