MCPcopy Create free account
hub / github.com/aaPanel/BaoTa / model

Method model

class/projectModel/dockerModel.py:20–98  ·  view source on GitHub ↗

@name 调用指定项目模型 @author hwliang<2021-07-15> @param args { mod_name: string<模型名称> def_name: string<方法名称> data: JSON }

(self, args)

Source from the content-addressed store, hash-verified

18 pass
19
20 def model(self, args):
21 ''&#x27;
22 @name 调用指定项目模型
23 @author hwliang<2021-07-15>
24 @param args<dict_obj> {
25 mod_name: string<模型名称>
26 def_name: string<方法名称>
27 data: JSON
28 }
29 ''&#x27;
30 import panelPlugin
31 a = public.to_dict_obj({})
32 a.focre = 1
33 plugin_list = panelPlugin.panelPlugin().get_soft_list(a)
34 __ltd_bool = int(plugin_list['ltd']) > 1
35 # __string_pro = public.to_string(
36 # [20307, 39564, 26102, 38388, 32467, 26463, 65292, 32487, 32493, 20351, 29992, 35831, 36141, 20080, 20225, 19994, 29256, 65281])
37 # if time.time() > 1652975999:
38 # if not __ltd_bool:
39 # return public.returnMsg(False,__string_pro)
40 try: # 表单验证
41 args.def_name = args.dk_def_name
42 args.mod_name = args.dk_model_name
43 if args['mod_name'] in ['base']: return public.return_status_code(1000, 'Wrong call!')
44 public.exists_args('def_name,mod_name', args)
45 if args['def_name'].find('__') != -1: return public.return_status_code(1000, 'The called method name cannot contain the "__" characterrong call!')
46 if not re.match(r"^\w+$", args['mod_name']): return public.return_status_code(1000, 'The called module name cannot contain characters other than \w')
47 if not re.match(r"^\w+$", args['def_name']): return public.return_status_code(1000, 'The called module name cannot contain characters other than \w')
48 except:
49 return public.get_error_object()
50 # 参数处理
51 mod_name = "dk_{}".format(args['mod_name'].strip())
52 def_name = args['def_name'].strip()
53
54 # 指定模型是否存在
55 mod_file = "{}/projectModel/bt_docker/{}.py".format(public.get_class_path(), mod_name)
56 if not os.path.exists(mod_file):
57 return public.return_status_code(1003, mod_name)
58 # 实例化
59 def_object = public.get_script_object(mod_file)
60 if not def_object: return public.return_status_code(1000, '{} model not found'.format(mod_name))
61 run_object = getattr(def_object.main(), def_name, None)
62 if not run_object: return public.return_status_code(1000, '{} method not found in {} model'.format(mod_name, def_name))
63 # if not hasattr(args, 'data'): args.data = {}
64 # if args.data:
65 # if isinstance(args.data, str):
66 # try: # 解析为dict_obj
67 # pdata = public.to_dict_obj(json.loads(args.data))
68 # except:
69 # return public.get_error_object()
70 # else:
71 # pdata = args.data
72 # else:
73 # pdata = public.dict_obj()
74
75 # 前置HOOK
76 hook_index = '{}_{}_LAST'.format(mod_name.upper(), def_name.upper())
77 hook_result = public.exec_hook(hook_index, args)

Callers 5

func_modelsMethod · 0.45
get_database_sizeMethod · 0.45
get_testMethod · 0.45
check_cloud_databaseMethod · 0.45
func_modelsMethod · 0.45

Calls 7

get_soft_listMethod · 0.45
findMethod · 0.45
matchMethod · 0.45
formatMethod · 0.45
existsMethod · 0.45
mainMethod · 0.45
return_dataMethod · 0.45

Tested by

no test coverage detected