def load_file(fun):
def load_pillar_sls_files(default="base", base_root="/srv/pillar/base", file_type="sls"):
response_data = {}
base_root = os.path.join(base_root, default)
for file_name in os.listdir(base_root):
# 判断是 以sls结尾的文件
is_file = os.path.isfile(os.path.join(base_root, file_name))
is_end_sls = file_name.endswith(file_type)
if not (is_end_sls and is_file):
continue
# 满足条件的 接下来去加载
try:
temp_dic = yaml.load(open(url, encoding="utf8").read(), Loader=yaml.FullLoader)
except:
temp_dic = yaml.load(open(url, encoding="utf8").read())
file_key = file_name[:-4]
response_data[file_key] = temp_dic
return response_data
def inner(*args, **kwargs):
print(f"业务代码{args},{kwargs}")
# 这里需要去参数里面判断有没有pillar,如果有的话那重新赋值
var_key = "pillar"
if var_key in kwargs.keys():
kwargs[var_key] = load_pillar_sls_files()
return fun(*args, **kwargs)
return inner
def aaa(pi,*args,**kwargs):
var_key = "pillar"
if var_key in kwargs.keys():
kwargs[var_key] = 1
-----------------------------------