コード例 #1
0
def rebuild_container_pool():
    hosts = Host.query.all()
    for host in hosts:
        key = 'eru:agent:%s:containers:meta' % host.name
        rds.delete(key)
        for c in host.containers.all():
            add_container_for_agent(c)
コード例 #2
0
ファイル: calico.py プロジェクト: timfeirg/eru-core
    def remove_ip_pool(self, cidr):
        try:
            cidr = IPNetwork(cidr)
        except (AddrFormatError, ValueError):
            return

        name = rds.get(_POOL_NAME_KEY % cidr)
        rds.delete(_POOL_NAME_KEY % cidr)
        rds.delete(_POOL_CIDR_KEY % name)
        _ipam.remove_ip_pool(4, cidr)
        _ipam.remove_profile(name)
コード例 #3
0
    def remove_ip_pool(self, cidr):
        try:
            cidr = IPNetwork(cidr)
        except (AddrFormatError, ValueError):
            return

        name = rds.get(_POOL_NAME_KEY % cidr)
        rds.delete(_POOL_NAME_KEY % cidr)
        rds.delete(_POOL_CIDR_KEY % name)
        _ipam.remove_ip_pool(4, cidr)
        _ipam.remove_profile(name)
コード例 #4
0
def kill_container(id_or_cid):
    c = _get_container(id_or_cid)
    c.kill()

    key = ERU_AGENT_DIE_REASON % c.container_id
    r = rds.get(key)
    rds.delete(key)
    if r is not None:
        c.set_props({'oom': 1})

    c.callback_report(status='die')

    migrate_container.apply_async(args=(c.container_id, True))

    _log.info('Kill container (container_id=%s)', c.container_id)
    return DEFAULT_RETURN_VALUE
コード例 #5
0
ファイル: container.py プロジェクト: timfeirg/eru-core
def kill_container(id_or_cid):
    c = _get_container(id_or_cid)
    c.kill()

    key = ERU_AGENT_DIE_REASON % c.container_id
    r = rds.get(key)
    rds.delete(key)
    if r is not None:
        c.set_props({'oom': 1})

    c.callback_report(status='die')

    migrate_container.apply_async(args=(c.container_id, True))

    _log.info('Kill container (container_id=%s)', c.container_id)
    return DEFAULT_RETURN_VALUE
コード例 #6
0
ファイル: fix_core.py プロジェクト: timfeirg/eru-core
def fix_core(host):
    containers = Container.get_multi_by_host(host)

    # 没有的话, 直接销毁重建
    if not containers:
        _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
コード例 #7
0
def fix_core(host):
    containers = Container.get_multi_by_host(host)

    # 没有的话, 直接销毁重建
    if not containers:
        _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
コード例 #8
0
ファイル: base.py プロジェクト: timfeirg/eru-core
 def destroy_props(self):
     rds.delete(self._property_key)
コード例 #9
0
def _create_cores_on_host(host, count):
    rds.delete(host._cores_key)
    data = {str(i): host.core_share for i in xrange(count)}
    rds.zadd(host._cores_key, **data)
コード例 #10
0
 def delete(self):
     IP.delete_by_network(self.id)
     rds.delete(self.storekey, self.gatekey)
     db.session.delete(self)
     db.session.commit()
コード例 #11
0
 def destroy_props(self):
     rds.delete(self._property_key)
コード例 #12
0
ファイル: container.py プロジェクト: timfeirg/eru-core
def clean_eip_bound(eip):
    rds.delete(_EIP_BOUND_KEY % eip)
コード例 #13
0
ファイル: host.py プロジェクト: timfeirg/eru-core
def _create_cores_on_host(host, count):
    rds.delete(host._cores_key)
    data = {str(i): host.core_share for i in xrange(count)}
    rds.zadd(host._cores_key, **data)
コード例 #14
0
 def _del_cores(self):
     rds.delete(self._cores_key)
コード例 #15
0
def remove_flag_for_agent(container_ids):
    flags = [_NO_REPORT_KEY % cid for cid in container_ids]
    rds.delete(*flags)
コード例 #16
0
ファイル: publish.py プロジェクト: timfeirg/eru-core
def remove_flag_for_agent(container_ids):
    flags = [_NO_REPORT_KEY % cid for cid in container_ids]
    rds.delete(*flags)
コード例 #17
0
def clean_eip_bound(eip):
    rds.delete(_EIP_BOUND_KEY % eip)
コード例 #18
0
ファイル: container.py プロジェクト: timfeirg/eru-core
 def _del_cores(self):
     rds.delete(self._cores_key)
コード例 #19
0
ファイル: network.py プロジェクト: timfeirg/eru-core
 def delete(self):
     IP.delete_by_network(self.id)
     rds.delete(self.storekey, self.gatekey)
     db.session.delete(self)
     db.session.commit()