本文整理汇总了Python中eru.models.Pod类的典型用法代码示例。如果您正苦于以下问题:Python Pod类的具体用法?Python Pod怎么用?Python Pod使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Pod类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _get_pod
def _get_pod(id_or_name):
if id_or_name.isdigit():
pod = Pod.get(int(id_or_name))
else:
pod = Pod.get_by_name(id_or_name)
if not pod:
abort(404, 'Pod %s not found' % id_or_name)
return pod
示例2: get_pod
def get_pod(id_or_name):
if id_or_name.isdigit():
pod = Pod.get(int(id_or_name))
else:
pod = Pod.get_by_name(id_or_name)
if not pod:
raise EruAbortException(consts.HTTP_NOT_FOUND, 'Pod %s not found' % id_or_name)
return pod
示例3: list_pod_hosts
def list_pod_hosts(id_or_name):
if id_or_name.isdigit():
pod = Pod.get(int(id_or_name))
else:
pod = Pod.get_by_name(id_or_name)
if not pod:
raise EruAbortException(consts.HTTP_NOT_FOUND, 'Pod %s not found' % id_or_name)
show_all = request.args.get('all', type=bool, default=False)
return pod.list_hosts(g.start, g.limit, show_all=show_all)
示例4: test_group_pod
def test_group_pod(test_db):
p1 = Pod.create('pod1', 'pod1')
p2 = Pod.create('pod1', 'pod1')
assert p1 is not None
assert p1.name == 'pod1'
assert p2 is None
p3 = Pod.get_by_name('pod1')
assert p3.id == p1.id
assert p3.get_free_public_hosts(10) == []
assert get_max_container_count(p3, 1, 2) == 0
assert centralized_schedule(p3, 1, 1, 2) == {}
示例5: create_host
def create_host():
"""为了文件, 只好不用json了"""
addr = request.form.get('addr', default='')
pod_name = request.form.get('pod_name', default='')
if not (addr and pod_name):
abort(400, 'Need addr and pod_name')
pod = Pod.get_by_name(pod_name)
if not pod:
abort(400, 'No pod found')
# 存证书, 没有就算了
if all(k in request.files for k in ['ca', 'cert', 'key']):
try:
ca, cert, key = request.files['ca'], request.files['cert'], request.files['key']
save_docker_certs(addr.split(':', 1)[0], ca.read(), cert.read(), key.read())
finally:
ca.close()
cert.close()
key.close()
try:
client = get_docker_client(addr, force_flush=True)
info = client.info()
except Exception as e:
abort(400, 'Docker daemon error on host %s, error: %s' % (addr, e.message))
if not Host.create(pod, addr, info['Name'], info['ID'], info['NCPU'], info['MemTotal']):
abort(400, 'Host create error.')
return 201, {'r':0, 'msg': consts.OK}
示例6: test_container_release_cores
def test_container_release_cores(test_db):
a = App.get_or_create('app', 'http://git.hunantv.com/group/app.git')
v = a.add_version(random_sha1())
p = Pod.create('pod', 'pod', 10, -1)
host = Host.create(p, random_ipv4(), random_string(), random_uuid(), 200, 0)
for core in host.cores:
assert core.host_id == host.id
assert core.remain == 10
containers = []
cores = sorted(host.cores, key=operator.attrgetter('label'))
for fcores, pcores in zip(chunked(cores[:100], 10), chunked(cores[100:], 10)):
used_cores = {'full': fcores, 'part': pcores}
host.occupy_cores(used_cores, 5)
c = Container.create(random_sha1(), host, v, random_string(), 'entrypoint', used_cores, 'env', nshare=5)
containers.append(c)
cores = sorted(host.cores, key=operator.attrgetter('label'))
for fcores, pcores in zip(chunked(cores[:100], 10), chunked(cores[100:], 10)):
for core in fcores:
assert core.remain == 0
for core in pcores:
assert core.remain == 5
for c in containers:
c.delete()
cores = sorted(host.cores, key=operator.attrgetter('label'))
for fcores, pcores in zip(chunked(cores[:100], 10), chunked(cores[100:], 10)):
for core in fcores:
assert core.remain == 10
for core in pcores:
assert core.remain == 10
示例7: create_host
def create_host():
"""为了文件, 只好不用json了"""
addr = request.form.get('addr', default='')
ip = addr.split(':', 1)[0]
podname = request.form.get('podname', default='')
is_public = request.form.get('is_public', default=False, type=bool)
if not (addr and podname):
abort(400, 'Bad addr or podname: addr="{}", podname="{}"'.format(addr, podname))
pod = Pod.get_by_name(podname)
if not pod:
abort(400, 'Pod {} not found'.format(podname))
# 存证书, 没有就算了
certs = ['ca', 'cert', 'key']
if all(k in request.files for k in certs):
certs_contents = tuple(request.files[f].read() for f in certs)
save_docker_certs(ip, *certs_contents)
try:
client = get_docker_client(addr, force_flush=True)
info = client.info()
except Exception as e:
abort(400, 'Docker daemon error on host %s, error: %s' % (addr, e.message))
if not Host.create(pod, addr, info['Name'], info['ID'], info['NCPU'],
info['MemTotal'], is_public=is_public):
abort(400, 'Error while creating host')
return 201, DEFAULT_RETURN_VALUE
示例8: create_local_test_data
def create_local_test_data(private=False):
appyaml = {
'appname': 'blueberry',
'entrypoints': {
'web': {
'cmd': 'python app.py',
'ports': ['5000/tcp'],
},
'daemon': {
'cmd': 'python daemon.py',
},
'service': {
'cmd': 'python service.py'
},
},
'build': 'pip install -r ./requirements.txt',
}
app = App.get_or_create('blueberry', 'http://git.hunantv.com/tonic/blueberry.git', 'token')
version = app.add_version('abe23812aeb50a17a2509c02a28423462161d306')
appconfig = version.appconfig
appconfig.update(**appyaml)
appconfig.save()
group = Group.create('group', 'group')
pod = Pod.create('pod', 'pod')
pod.assigned_to_group(group)
c = docker.Client(**kwargs_from_env(assert_hostname=False))
r = c.info()
host = Host.create(pod, '192.168.59.103:2376', r['Name'], r['ID'], r['NCPU'], r['MemTotal'])
if private:
host.assigned_to_group(group)
return app, version, group, pod, host
示例9: create_host
def create_host():
"""为了文件, 只好不用json了"""
addr = request.form.get('addr', type=str, default='')
pod_name = request.form.get('pod_name', type=str, default='')
if not (addr and pod_name):
raise EruAbortException(consts.HTTP_BAD_REQUEST, 'need addr and pod_name')
pod = Pod.get_by_name(pod_name)
if not pod:
raise EruAbortException(consts.HTTP_BAD_REQUEST, 'No pod found')
# 存证书, 没有就算了
try:
ca, cert, key = request.files['ca'], request.files['cert'], request.files['key']
save_docker_certs(addr.split(':', 1)[0], ca.read(), cert.read(), key.read())
finally:
ca.close()
cert.close()
key.close()
try:
client = get_docker_client(addr, force_flush=True)
info = client.info()
except Exception:
raise EruAbortException(consts.HTTP_BAD_REQUEST, 'Docker daemon error on host %s' % addr)
if not Host.create(pod, addr, info['Name'], info['ID'], info['NCPU'], info['MemTotal']):
raise EruAbortException(consts.HTTP_BAD_REQUEST)
return consts.HTTP_CREATED, {'r':0, 'msg': consts.OK}
示例10: _create_data
def _create_data(core_share, max_share_core, host_count):
group = Group.create('group', 'group')
pod = Pod.create('pod', 'pod', core_share, max_share_core)
for _ in range(host_count):
host = Host.create(pod, random_ipv4(), random_string(), random_uuid(), 16, 4096)
host.assigned_to_group(group)
return group, pod
示例11: test_pod
def test_pod(test_db):
p1 = Pod.create('p1', 'p1', core_share=10)
assert p1 is not None
assert p1.get_core_allocation(1) == (1, 0)
assert p1.get_core_allocation(1.5) == (1, 5)
assert p1.get_core_allocation(2) == (2, 0)
assert p1.get_core_allocation(2.8) == (2, 8)
assert p1.get_core_allocation(0.8) == (0, 8)
assert p1.get_core_allocation(0.1) == (0, 1)
p2 = Pod.create('p2', 'p2', core_share=100)
assert p2 is not None
assert p2.get_core_allocation(1) == (1, 0)
assert p2.get_core_allocation(1.5) == (1, 50)
assert p2.get_core_allocation(2) == (2, 0)
assert p2.get_core_allocation(2.8) == (2, 80)
assert p2.get_core_allocation(0.81) == (0, 81)
assert p2.get_core_allocation(0.14) == (0, 14)
示例12: get_pod_resource
def get_pod_resource(pod_id):
pod = Pod.get(pod_id)
if not pod:
raise EruAbortException(code.HTTP_NOT_FOUND, 'Pod %s not found' % pod_id)
core_count = sum(len(h.cores.all()) for h in pod.hosts.all())
free_cores = [c for h in pod.hosts.all() for c in h.get_free_cores()]
return {
'core_count': core_count,
'free_cores': [c.label for c in free_cores],
}
示例13: create_pod
def create_pod():
data = request.get_json()
if not Pod.create(
data['name'],
data.get('description', ''),
data.get('core_share', DEFAULT_CORE_SHARE),
data.get('max_share_core', DEFAULT_MAX_SHARE_CORE),
):
raise EruAbortException(code.HTTP_BAD_REQUEST)
return {'r':0, 'msg': code.OK}
示例14: test_get_max_container_count_single_host
def test_get_max_container_count_single_host(test_db):
pod = Pod.create('pod', 'pod', 10, -1)
Host.create(pod, random_ipv4(), random_string(), random_uuid(), 64, 4096)
assert get_max_container_count(pod, ncore=1, nshare=0) == 64
assert get_max_container_count(pod, ncore=2, nshare=0) == 32
assert get_max_container_count(pod, ncore=3, nshare=0) == 21
assert get_max_container_count(pod, ncore=4, nshare=0) == 16
assert get_max_container_count(pod, ncore=5, nshare=0) == 12
assert get_max_container_count(pod, ncore=1, nshare=5) == 42
assert get_max_container_count(pod, ncore=2, nshare=5) == 25
示例15: create_pod
def create_pod():
data = request.get_json()
if not Pod.create(
data['name'],
data.get('description', ''),
data.get('core_share', DEFAULT_CORE_SHARE),
data.get('max_share_core', DEFAULT_MAX_SHARE_CORE),
):
abort(400, 'Pod create failed')
_log.info('Pod create succeeded (name=%s, desc=%s)', data['name'], data.get('description', ''))
return 201, DEFAULT_RETURN_VALUE