Exemple #1
0
def fix_core(host):
    containers = Container.get_multi_by_host(host)

    # 没有的话, 直接销毁重建
    if not containers:
        rds.delete(host._cores_key)
        _create_cores_on_host(host, host.ncore)
        return

    data = {str(i): host.core_share for i in xrange(host.ncore)}

    for c in containers:
        cores = c.cores
        nshare = int(cores.get("nshare", "0"))
        for e in cores.get("full", []):
            e.remain = host.core_share
            data.pop(e.label)
        for s in cores.get("part", []):
            s.remain = host.core_share - nshare
            data[s.label] -= nshare
        c.cores = cores
    rds.delete(host._cores_key)
    if data:
        rds.zadd(host._cores_key, **data)
    print "done", host
Exemple #2
0
def _create_cores_on_host(host, count):
    data = {str(i): host.pod.core_share for i in xrange(count)}
    rds.zadd(host._cores_key, **data)