晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
| DIR:/opt/cloudlinux/venv/lib64/python3.11/site-packages/ |
| Current File : //opt/cloudlinux/venv/lib64/python3.11/site-packages/remove_ubc.py |
#!/opt/cloudlinux/venv/bin/python3 -bb
# -*- coding: utf-8 -*-
# Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2019 All Rights Reserved
#
# Licensed under CLOUD LINUX LICENSE AGREEMENT
# http://cloudlinux.com/docs/LICENSE.TXT
import os
import sys
import xml.dom.minidom as xml
CoreVersion = 6
core = os.uname()
if core[2].find('el5.lve0.8') != -1:
CoreVersion = 5
# defined ve.cfg variables
ve_cfg = ''
ve_lveconfig = ''
ve_ubc = ''
ve_default = ''
ve_lve = ''
ve_defaults = ''
ve_package = ''
ubc = 'false'
VE_CFG_PATH = '/etc/container/ve.cfg'
VE_CFG_PATH_TMP = VE_CFG_PATH + '.tmp'
# Save XML config ve.cfg
def save_xml(xml_config):
xml_config = xml_config.toprettyxml(encoding='utf-8', indent='', newl='')
xml_config = xml_config.replace("\n", '').replace("\t", '')
new_xml = xml.parseString(xml_config)
buf = new_xml.toprettyxml(encoding='utf-8')
if not buf: # paranoia mode)
raise RuntimeError(f"Rejected attempt to write empty {VE_CFG_PATH}")
with open(VE_CFG_PATH_TMP, 'wb') as f:
f.write(buf)
f.flush()
os.fsync(f.fileno())
os.rename(VE_CFG_PATH_TMP, VE_CFG_PATH)
def get_XML_cfg():
global ve_cfg
global ve_lveconfig
global ve_ubc
global ve_default
global ve_lve
global ve_defaults
global ve_package
try:
ve_cfg = xml.parse(VE_CFG_PATH)
except Exception:
print('error: bad ve.cfg file')
sys.exit(1)
try:
ve_lveconfig = ve_cfg.getElementsByTagName("lveconfig")[0]
except Exception:
print('error: bad ve.cfg file')
sys.exit(1)
global ubc
try:
ve_ubc = ve_lveconfig.getElementsByTagName("system")[0].getElementsByTagName("ubc")[0].getAttribute("enabled")
ubc = ve_ubc
except Exception:
ubc = 'true'
try:
ve_default = ve_lveconfig.getElementsByTagName("defaults")[0]
except Exception:
print('warning: default section error in ve.cfg')
try:
ve_lve = ve_lveconfig.getElementsByTagName("lve")
except Exception:
pass
try:
ve_package = ve_lveconfig.getElementsByTagName("package")
except Exception:
pass
# Get defaults values from ve.cfg
ve_defaults = {}
try:
ve_defaults['mem'] = int(ve_default.getElementsByTagName('mem')[0].getAttribute('limit'))
except Exception:
ve_defaults['mem'] = 262144
mem = ve_cfg.createElement('mem')
mem.setAttribute('limit', str(262144))
try:
ve_default.appendChild(mem)
except Exception:
pass
if CoreVersion != 5:
try:
ve_defaults['io'] = int(ve_default.getElementsByTagName('io')[0].getAttribute('limit'))
if ve_defaults['io'] == 25:
ve_default.getElementsByTagName('io')[0].setAttribute('limit', str(1024))
except Exception:
ve_defaults['io'] = 1024
io = ve_cfg.createElement('io')
io.setAttribute('limit', str(1024))
try:
ve_default.appendChild(io)
except Exception:
pass
if os.path.exists('/sys/module/lve/parameters/lve_ubc'):
try:
with open('/sys/module/lve/parameters/lve_ubc', "w", encoding="utf-8") as f:
f.write('Y')
except Exception:
pass
def main():
get_XML_cfg()
for el in ve_lve:
if ubc == 'false':
try:
el.getElementsByTagName('mem')[0].setAttribute('limit', str(0))
except Exception:
mem = ve_cfg.createElement('mem')
mem.setAttribute('limit', str(0))
el.appendChild(mem)
else:
try:
mem = el.getElementsByTagName('mem')[0].getAttribute('limit')
except Exception:
mem = ve_cfg.createElement('mem')
mem.setAttribute('limit', str(ve_defaults['mem']))
el.appendChild(mem)
else:
pass
if CoreVersion != 5:
if ve_defaults['io'] == 25:
try:
if (
int(el.getElementsByTagName('io')[0].getAttribute('limit')) <= 100
and int(el.getElementsByTagName('io')[0].getAttribute('limit')) != 0
):
el.getElementsByTagName('io')[0].setAttribute('limit', str(1024))
except Exception:
pass
for el in ve_package:
if ubc == 'false':
try:
el.getElementsByTagName('mem')[0].setAttribute('limit', str(0))
except Exception:
mem = ve_cfg.createElement('mem')
mem.setAttribute('limit', str(0))
el.appendChild(mem)
else:
try:
mem = el.getElementsByTagName('mem')[0].getAttribute('limit')
except Exception:
mem = ve_cfg.createElement('mem')
mem.setAttribute('limit', str(ve_defaults['mem']))
el.appendChild(mem)
if CoreVersion != 5:
if ve_defaults['io'] == 25:
try:
if (
int(el.getElementsByTagName('io')[0].getAttribute('limit')) <= 100
and int(el.getElementsByTagName('io')[0].getAttribute('limit')) != 0
):
el.getElementsByTagName('io')[0].setAttribute('limit', str(1024))
except Exception:
pass
try:
ve_ubc = ve_lveconfig.getElementsByTagName("system")
for el in ve_ubc:
el.parentNode.removeChild(el)
except Exception:
pass
save_xml(ve_cfg)
sys.exit(0)
if __name__ == "__main__":
main()
|