import nacos
import yaml
def add_to_dict(d,keys,value):
key=keys.pop(0)
if keys:
d[key]=d.get(key,{})
add_to_dict(d[key],keys,value)
else:
d[key]=value
# 连接地址
SERVER_ADDRESSES = "192.168.1.45"
SERVER_PORT = '18848'
# 命名空间
NAMESPACE = '68d3efdc-5df1-4aaf-aee4-78257515e672'
# 账号信息
USERNAME = 'nacos'
PASSWORD = 'nacos'
auth_token = "eyJhbGciOiJIUzI1NiJ9.eyJidnN0IjoiYnZzdEAxMjMiLCJleHAiOjE3MDI0NjU0NzN9.dIrv-tIiP6O-W95K96pws4SPC_i9SvhlP5J5Z0MPswE"
# 创建一个连接对象
client = nacos.NacosClient(
f'{SERVER_ADDRESSES}:{SERVER_PORT}',
namespace=NAMESPACE,
username=USERNAME,
password=PASSWORD
)
print(client)
# 服务id(键)
data_id = 'kae-cloud-kae-cdg.yaml'
# 分组名称,默认为:DEFAULT_GROUP
group = "DEFAULT_GROUP"
# 解析
config = client.get_config(data_id, group)
# 配置数据解析(YAML)
config_data = yaml.load(config, Loader=yaml.FullLoader)
# 通过键路径,解析出数据
print(config_data)
#config_data['redis']['timeout']=6000
#print(config_data)
import re
# 将修改后的配置转换回字符串
while(1):
jiedian=[]
while(1):
tmp=input("请输入节点:")
if tmp=="":
continue
jiedian.append(tmp)
if(input("节点值是否输入完毕?")=='y'):
break
print(jiedian)
zhi=input("请输入此节点值:")
if re.search(r'^int\(',zhi):
zhi=int(re.findall(r'[0-9.]+',zhi)[0])
elif re.search(r'^float\(',zhi):
zhi=float(re.findall(r'[0-9.]+',zhi)[0])
elif re.search(r'^bool\(',zhi):
zhi=bool(re.findall(r'true|false',zhi)[0])
add_to_dict(config_data,jiedian,zhi)
print(config_data)
if input("是否完成")=='y':
break
content = yaml.dump(config_data)
# 发布修改后的配置
client.publish_config(data_id=data_id, group=group, content=content, config_type="yaml")