aboutsummaryrefslogtreecommitdiffstats
path: root/old/python_moonclient/python_moonclient/core/slaves.py
blob: 77b127c15f4acbc10899b6a237912292891f8bde (plain)
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
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()