openubmc-bingo 0.5.240__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of openubmc-bingo might be problematic. Click here for more details.

Files changed (242) hide show
  1. bmcgo/__init__.py +12 -0
  2. bmcgo/bmcgo.py +22 -0
  3. bmcgo/bmcgo_config.py +176 -0
  4. bmcgo/cli/__init__.py +10 -0
  5. bmcgo/cli/cli.py +584 -0
  6. bmcgo/codegen/__init__.py +14 -0
  7. bmcgo/codegen/c/__init__.py +9 -0
  8. bmcgo/codegen/c/annotation.py +52 -0
  9. bmcgo/codegen/c/argument.py +42 -0
  10. bmcgo/codegen/c/codegen.py +153 -0
  11. bmcgo/codegen/c/comment.py +22 -0
  12. bmcgo/codegen/c/ctype_defination.py +353 -0
  13. bmcgo/codegen/c/helper.py +87 -0
  14. bmcgo/codegen/c/interface.py +63 -0
  15. bmcgo/codegen/c/method.py +82 -0
  16. bmcgo/codegen/c/property.py +180 -0
  17. bmcgo/codegen/c/renderer.py +21 -0
  18. bmcgo/codegen/c/signal.py +64 -0
  19. bmcgo/codegen/c/template/client.c.mako +145 -0
  20. bmcgo/codegen/c/template/client.h.mako +36 -0
  21. bmcgo/codegen/c/template/interface.c.mako +0 -0
  22. bmcgo/codegen/c/template/interface.introspect.xml.mako +99 -0
  23. bmcgo/codegen/c/template/micro_component.c.mako +32 -0
  24. bmcgo/codegen/c/template/public.c.mako +228 -0
  25. bmcgo/codegen/c/template/public.h.mako +128 -0
  26. bmcgo/codegen/c/template/server.c.mako +104 -0
  27. bmcgo/codegen/c/template/server.h.mako +36 -0
  28. bmcgo/codegen/lua/.lua-format +7 -0
  29. bmcgo/codegen/lua/Makefile +101 -0
  30. bmcgo/codegen/lua/__init__.py +9 -0
  31. bmcgo/codegen/lua/codegen.py +171 -0
  32. bmcgo/codegen/lua/proto/Makefile +87 -0
  33. bmcgo/codegen/lua/proto/ipmi_types.proto +17 -0
  34. bmcgo/codegen/lua/proto/types.proto +52 -0
  35. bmcgo/codegen/lua/script/check_intfs.py +161 -0
  36. bmcgo/codegen/lua/script/dto/__init__.py +11 -0
  37. bmcgo/codegen/lua/script/dto/exception.py +53 -0
  38. bmcgo/codegen/lua/script/dto/kepler_abstract.py +47 -0
  39. bmcgo/codegen/lua/script/dto/options.py +33 -0
  40. bmcgo/codegen/lua/script/dto/print_simple.py +19 -0
  41. bmcgo/codegen/lua/script/dto/redfish_api.py +241 -0
  42. bmcgo/codegen/lua/script/dto/url_route.py +195 -0
  43. bmcgo/codegen/lua/script/gen_db_json.py +444 -0
  44. bmcgo/codegen/lua/script/gen_depends.py +89 -0
  45. bmcgo/codegen/lua/script/gen_entry.py +263 -0
  46. bmcgo/codegen/lua/script/gen_feature_json.py +156 -0
  47. bmcgo/codegen/lua/script/gen_historical_local_db_json.py +88 -0
  48. bmcgo/codegen/lua/script/gen_intf_json.py +261 -0
  49. bmcgo/codegen/lua/script/gen_intf_rpc_json.py +575 -0
  50. bmcgo/codegen/lua/script/gen_ipmi_json.py +485 -0
  51. bmcgo/codegen/lua/script/gen_mdb_json.py +117 -0
  52. bmcgo/codegen/lua/script/gen_rpc_msg_json.py +487 -0
  53. bmcgo/codegen/lua/script/gen_schema.py +302 -0
  54. bmcgo/codegen/lua/script/ipmi_types_pb2.py +135 -0
  55. bmcgo/codegen/lua/script/loader/__init__.py +11 -0
  56. bmcgo/codegen/lua/script/loader/file_utils.py +33 -0
  57. bmcgo/codegen/lua/script/loader/kepler_abstract_collect.py +79 -0
  58. bmcgo/codegen/lua/script/loader/kepler_abstract_loader.py +47 -0
  59. bmcgo/codegen/lua/script/loader/redfish_loader.py +127 -0
  60. bmcgo/codegen/lua/script/lua_format.py +62 -0
  61. bmcgo/codegen/lua/script/mds_util.py +385 -0
  62. bmcgo/codegen/lua/script/merge_model.py +330 -0
  63. bmcgo/codegen/lua/script/merge_proto_algo.py +85 -0
  64. bmcgo/codegen/lua/script/proto_loader.py +47 -0
  65. bmcgo/codegen/lua/script/proto_plugin.py +140 -0
  66. bmcgo/codegen/lua/script/redfish_source_tree.py +118 -0
  67. bmcgo/codegen/lua/script/render_utils/__init__.py +38 -0
  68. bmcgo/codegen/lua/script/render_utils/base.py +25 -0
  69. bmcgo/codegen/lua/script/render_utils/client_lua.py +98 -0
  70. bmcgo/codegen/lua/script/render_utils/controller_lua.py +71 -0
  71. bmcgo/codegen/lua/script/render_utils/db_lua.py +224 -0
  72. bmcgo/codegen/lua/script/render_utils/error_lua.py +185 -0
  73. bmcgo/codegen/lua/script/render_utils/factory.py +52 -0
  74. bmcgo/codegen/lua/script/render_utils/ipmi_lua.py +159 -0
  75. bmcgo/codegen/lua/script/render_utils/ipmi_message_lua.py +24 -0
  76. bmcgo/codegen/lua/script/render_utils/mdb_lua.py +177 -0
  77. bmcgo/codegen/lua/script/render_utils/mdb_register.py +215 -0
  78. bmcgo/codegen/lua/script/render_utils/message_lua.py +26 -0
  79. bmcgo/codegen/lua/script/render_utils/messages_lua.py +156 -0
  80. bmcgo/codegen/lua/script/render_utils/model_lua.py +485 -0
  81. bmcgo/codegen/lua/script/render_utils/old_model_lua.py +429 -0
  82. bmcgo/codegen/lua/script/render_utils/plugin_lua.py +38 -0
  83. bmcgo/codegen/lua/script/render_utils/redfish_proto.py +86 -0
  84. bmcgo/codegen/lua/script/render_utils/request_lua.py +76 -0
  85. bmcgo/codegen/lua/script/render_utils/service_lua.py +130 -0
  86. bmcgo/codegen/lua/script/render_utils/utils_message_lua.py +125 -0
  87. bmcgo/codegen/lua/script/render_utils/validate_lua.py +221 -0
  88. bmcgo/codegen/lua/script/sep_ipmi_message_cmds.py +217 -0
  89. bmcgo/codegen/lua/script/template.py +166 -0
  90. bmcgo/codegen/lua/script/types_pb2.py +516 -0
  91. bmcgo/codegen/lua/script/utils.py +663 -0
  92. bmcgo/codegen/lua/script/validate.py +80 -0
  93. bmcgo/codegen/lua/script/yaml_to_json.py +73 -0
  94. bmcgo/codegen/lua/templates/Makefile +114 -0
  95. bmcgo/codegen/lua/templates/apps/Makefile +261 -0
  96. bmcgo/codegen/lua/templates/apps/Makefile.mdb.mk +64 -0
  97. bmcgo/codegen/lua/templates/apps/app.lua.mako +19 -0
  98. bmcgo/codegen/lua/templates/apps/class.lua.mako +35 -0
  99. bmcgo/codegen/lua/templates/apps/client.lua.mako +429 -0
  100. bmcgo/codegen/lua/templates/apps/controller.lua.mako +276 -0
  101. bmcgo/codegen/lua/templates/apps/datas.lua.mako +8 -0
  102. bmcgo/codegen/lua/templates/apps/db.lua.mako +89 -0
  103. bmcgo/codegen/lua/templates/apps/entry.lua.mako +128 -0
  104. bmcgo/codegen/lua/templates/apps/feature.lua.mako +37 -0
  105. bmcgo/codegen/lua/templates/apps/generate_route.mako +25 -0
  106. bmcgo/codegen/lua/templates/apps/impl_feature.lua.mako +72 -0
  107. bmcgo/codegen/lua/templates/apps/ipmi.lua.mako +97 -0
  108. bmcgo/codegen/lua/templates/apps/ipmi_cmd.lua.mako +18 -0
  109. bmcgo/codegen/lua/templates/apps/ipmi_message.lua.mako +36 -0
  110. bmcgo/codegen/lua/templates/apps/local_db.lua.mako +263 -0
  111. bmcgo/codegen/lua/templates/apps/main.lua.mako +25 -0
  112. bmcgo/codegen/lua/templates/apps/mc.lua.mako +77 -0
  113. bmcgo/codegen/lua/templates/apps/mdb.lua.mako +45 -0
  114. bmcgo/codegen/lua/templates/apps/mdb_interface.lua.mako +73 -0
  115. bmcgo/codegen/lua/templates/apps/message.lua.mako +38 -0
  116. bmcgo/codegen/lua/templates/apps/model.lua.mako +239 -0
  117. bmcgo/codegen/lua/templates/apps/orm_classes.lua.mako +16 -0
  118. bmcgo/codegen/lua/templates/apps/plugin.lua.mako +8 -0
  119. bmcgo/codegen/lua/templates/apps/redfish.proto.mako +47 -0
  120. bmcgo/codegen/lua/templates/apps/service.lua.mako +440 -0
  121. bmcgo/codegen/lua/templates/apps/signal_listen.lua.mako +19 -0
  122. bmcgo/codegen/lua/templates/apps/utils/default_intf.lua.mako +41 -0
  123. bmcgo/codegen/lua/templates/apps/utils/enum.mako +10 -0
  124. bmcgo/codegen/lua/templates/apps/utils/imports.mako +13 -0
  125. bmcgo/codegen/lua/templates/apps/utils/mdb_intf.lua.mako +25 -0
  126. bmcgo/codegen/lua/templates/apps/utils/mdb_obj.lua.mako +23 -0
  127. bmcgo/codegen/lua/templates/apps/utils/message.mako +160 -0
  128. bmcgo/codegen/lua/templates/apps/utils/request.lua.mako +59 -0
  129. bmcgo/codegen/lua/templates/apps/utils/validate.mako +83 -0
  130. bmcgo/codegen/lua/templates/errors.lua.mako +36 -0
  131. bmcgo/codegen/lua/templates/messages.lua.mako +32 -0
  132. bmcgo/codegen/lua/templates/new_app/.clang-format.mako +170 -0
  133. bmcgo/codegen/lua/templates/new_app/.gitignore.mako +26 -0
  134. bmcgo/codegen/lua/templates/new_app/CHANGELOG.md.mako +0 -0
  135. bmcgo/codegen/lua/templates/new_app/CMakeLists.txt.mako +29 -0
  136. bmcgo/codegen/lua/templates/new_app/Makefile.mako +25 -0
  137. bmcgo/codegen/lua/templates/new_app/README.md.mako +0 -0
  138. bmcgo/codegen/lua/templates/new_app/conanfile.py.mako +7 -0
  139. bmcgo/codegen/lua/templates/new_app/config.cfg.mako +6 -0
  140. bmcgo/codegen/lua/templates/new_app/mds/model.json.mako +3 -0
  141. bmcgo/codegen/lua/templates/new_app/mds/service.json.mako +21 -0
  142. bmcgo/codegen/lua/templates/new_app/permissions.ini.mako +16 -0
  143. bmcgo/codegen/lua/templates/new_app/src/lualib/${project_name}_app.lua.mako +16 -0
  144. bmcgo/codegen/lua/templates/new_app/src/service/main.lua.mako +25 -0
  145. bmcgo/codegen/lua/templates/new_app/test/integration/test_${project_name}.conf.mako +9 -0
  146. bmcgo/codegen/lua/templates/new_app/test/integration/test_${project_name}.lua.mako +47 -0
  147. bmcgo/codegen/lua/templates/new_app/test/unit/test.lua.mako +23 -0
  148. bmcgo/codegen/lua/templates/new_app/user_conf/rootfs/etc/systemd/system/${project_name}.service.mako +18 -0
  149. bmcgo/codegen/lua/templates/new_app/user_conf/rootfs/etc/systemd/system/multi-user.target.wants/${project_name}.service.link +1 -0
  150. bmcgo/component/__init__.py +10 -0
  151. bmcgo/component/analysis/analysis.py +183 -0
  152. bmcgo/component/analysis/build_deps.py +165 -0
  153. bmcgo/component/analysis/data_deps.py +333 -0
  154. bmcgo/component/analysis/dep-rules.json +912 -0
  155. bmcgo/component/analysis/dep_node.py +110 -0
  156. bmcgo/component/analysis/intf_deps.py +163 -0
  157. bmcgo/component/analysis/intf_validation.py +254 -0
  158. bmcgo/component/analysis/rule.py +211 -0
  159. bmcgo/component/analysis/smc_dfx_whitelist.json +11 -0
  160. bmcgo/component/analysis/sr_validation.py +391 -0
  161. bmcgo/component/build.py +222 -0
  162. bmcgo/component/component_dt_version_parse.py +348 -0
  163. bmcgo/component/component_helper.py +114 -0
  164. bmcgo/component/coverage/__init__.py +11 -0
  165. bmcgo/component/coverage/c_incremental_cov_report.template +53 -0
  166. bmcgo/component/coverage/incremental_cov.py +464 -0
  167. bmcgo/component/deploy.py +110 -0
  168. bmcgo/component/gen.py +169 -0
  169. bmcgo/component/package_info.py +236 -0
  170. bmcgo/component/template/conanbase.py.mako +278 -0
  171. bmcgo/component/template/conanfile.deploy.py.mako +40 -0
  172. bmcgo/component/test.py +947 -0
  173. bmcgo/errors.py +119 -0
  174. bmcgo/frame.py +217 -0
  175. bmcgo/functional/__init__.py +10 -0
  176. bmcgo/functional/analysis.py +96 -0
  177. bmcgo/functional/bmc_studio_action.py +98 -0
  178. bmcgo/functional/check.py +185 -0
  179. bmcgo/functional/conan_index_build.py +251 -0
  180. bmcgo/functional/config.py +332 -0
  181. bmcgo/functional/csr_build.py +724 -0
  182. bmcgo/functional/deploy.py +263 -0
  183. bmcgo/functional/diff.py +235 -0
  184. bmcgo/functional/fetch.py +235 -0
  185. bmcgo/functional/full_component.py +391 -0
  186. bmcgo/functional/maintain.py +381 -0
  187. bmcgo/functional/new.py +166 -0
  188. bmcgo/functional/schema_valid.py +111 -0
  189. bmcgo/functional/simple_sign.py +104 -0
  190. bmcgo/functional/upgrade.py +78 -0
  191. bmcgo/ipmigen/__init__.py +13 -0
  192. bmcgo/ipmigen/ctype_defination.py +82 -0
  193. bmcgo/ipmigen/ipmigen.py +309 -0
  194. bmcgo/ipmigen/template/cmd.c.mako +366 -0
  195. bmcgo/ipmigen/template/ipmi.c.mako +25 -0
  196. bmcgo/ipmigen/template/ipmi.h.mako +51 -0
  197. bmcgo/logger.py +176 -0
  198. bmcgo/misc.py +117 -0
  199. bmcgo/target/app.yml +17 -0
  200. bmcgo/target/install_sdk.yml +15 -0
  201. bmcgo/target/personal.yml +53 -0
  202. bmcgo/target/publish.yml +45 -0
  203. bmcgo/tasks/__init__.py +11 -0
  204. bmcgo/tasks/download_buildtools_hm.py +124 -0
  205. bmcgo/tasks/misc.py +15 -0
  206. bmcgo/tasks/task.py +354 -0
  207. bmcgo/tasks/task_build_conan.py +714 -0
  208. bmcgo/tasks/task_build_rootfs_img.py +595 -0
  209. bmcgo/tasks/task_buildgppbin.py +88 -0
  210. bmcgo/tasks/task_buildhpm_ext4.py +82 -0
  211. bmcgo/tasks/task_create_interface_config.py +122 -0
  212. bmcgo/tasks/task_download_buildtools.py +99 -0
  213. bmcgo/tasks/task_download_dependency.py +72 -0
  214. bmcgo/tasks/task_hpm_envir_prepare.py +112 -0
  215. bmcgo/tasks/task_packet_to_supporte.py +87 -0
  216. bmcgo/tasks/task_prepare.py +105 -0
  217. bmcgo/tasks/task_sign_and_pack_hpm.py +42 -0
  218. bmcgo/utils/__init__.py +10 -0
  219. bmcgo/utils/buffer.py +128 -0
  220. bmcgo/utils/combine_json_schemas.py +170 -0
  221. bmcgo/utils/component_post.py +54 -0
  222. bmcgo/utils/component_version_check.py +86 -0
  223. bmcgo/utils/config.py +1067 -0
  224. bmcgo/utils/fetch_component_code.py +232 -0
  225. bmcgo/utils/install_manager.py +61 -0
  226. bmcgo/utils/installations/__init__.py +10 -0
  227. bmcgo/utils/installations/base_installer.py +70 -0
  228. bmcgo/utils/installations/install_consts.py +30 -0
  229. bmcgo/utils/installations/install_plans/bingo.yml +11 -0
  230. bmcgo/utils/installations/install_workflow.py +50 -0
  231. bmcgo/utils/installations/installers/apt_installer.py +177 -0
  232. bmcgo/utils/installations/installers/pip_installer.py +46 -0
  233. bmcgo/utils/installations/version_util.py +100 -0
  234. bmcgo/utils/mapping_config_patch.py +443 -0
  235. bmcgo/utils/perf_analysis.py +114 -0
  236. bmcgo/utils/tools.py +704 -0
  237. bmcgo/worker.py +417 -0
  238. openubmc_bingo-0.5.240.dist-info/METADATA +30 -0
  239. openubmc_bingo-0.5.240.dist-info/RECORD +242 -0
  240. openubmc_bingo-0.5.240.dist-info/WHEEL +5 -0
  241. openubmc_bingo-0.5.240.dist-info/entry_points.txt +2 -0
  242. openubmc_bingo-0.5.240.dist-info/top_level.txt +1 -0
@@ -0,0 +1,239 @@
1
+ % if version >= 4:
2
+ ${make_header('lua')}
3
+ local mdb = require 'mc.mdb'
4
+ local class = require 'mc.class_mgnt'
5
+ local privilege = require 'mc.privilege'
6
+ % if version >= 9 and render_utils.get_features(root):
7
+ require 'mc.plugin.loader'.load()
8
+ % for feature in render_utils.get_features(root):
9
+ local ${feature} = require '${project_name}.features.${feature}'.get_instance()
10
+ % endfor
11
+ % endif
12
+
13
+ ${render_utils.render_types(project_name, root)}
14
+
15
+ % for (class_name, msg) in root.items():
16
+
17
+ % if version >= 9:
18
+ % if class_name == 'private':
19
+ <% continue %>
20
+ % endif
21
+ % endif
22
+ local ${class_name} = {
23
+ % if render_utils.has_table_name(msg):
24
+ ['table_name'] = '${msg['tableName']}',
25
+ % endif
26
+ % if render_utils.has_alias(msg):
27
+ ['alias_map'] = ${render_utils.get_alias_map(msg)},
28
+ % endif
29
+ % if render_utils.has_prop_configs(msg):
30
+ ['prop_configs'] = ${render_utils.get_prop_configs(class_name, msg)},
31
+ % endif
32
+ % if render_utils.has_properties(msg):
33
+ ['default_props'] = ${render_utils.get_default_props(class_name, msg)},
34
+ % endif
35
+ % if render_utils.has_mdb_prop_configs(msg):
36
+ ['mdb_prop_configs'] = ${render_utils.get_mdb_prop_configs(msg)},
37
+ % endif
38
+ % if render_utils.has_mdb_method_configs(msg):
39
+ ['mdb_method_configs'] = ${render_utils.get_mdb_method_configs(msg)},
40
+ % endif
41
+ % if render_utils.has_mdb_signal_configs(msg):
42
+ ['mdb_signal_configs'] = ${render_utils.get_mdb_signal_configs(msg)},
43
+ % endif
44
+ % if render_utils.has_mdb_classes(msg):
45
+ ['mdb_classes'] = ${render_utils.get_mdb_classes(root, msg)},
46
+ % endif
47
+ % if render_utils.has_new_mdb_objects(msg):
48
+ ['new_mdb_objects'] = ${render_utils.get_new_mdb_objects(msg)},
49
+ % endif
50
+ }
51
+
52
+ % endfor
53
+ local M = {}
54
+
55
+ % if render_utils.has_block_io(root):
56
+ M.block_io_classes = {
57
+ % for (class_name, msg) in root.items():
58
+ % if render_utils.has_path(msg):
59
+ % for (interface, intf_msg) in msg['interfaces'].items():
60
+ % if interface == 'bmc.kepler.Chip.BlockIO':
61
+ '${class_name}',
62
+ % endif
63
+ %endfor
64
+ % endif
65
+ % endfor
66
+ }
67
+ % endif
68
+
69
+ function M.init(bus)
70
+ % for (class_name, msg) in root.items():
71
+ % if class_name != 'private':
72
+ class('${class_name}', ${class_name}):set_bus(bus)
73
+ % endif
74
+ % endfor
75
+ end
76
+ % for (class_name, msg) in root.items():
77
+ % if render_utils.has_path(msg):
78
+ % for (interface, intf_msg) in msg['interfaces'].items():
79
+ % if render_utils.has_methods(intf_msg):
80
+
81
+ % for (method, method_config) in intf_msg['methods'].items():
82
+ -- The callback needs to be registered during app initialization
83
+ function M.Impl${class_name}${render_utils.get_intf_name(interface, intf_msg)}${method}(cb)
84
+ class('${class_name}')['${interface}'].${method} = function(obj, ctx, ...)
85
+ % if version >= 9 and "featureTag" in method_config:
86
+ ${method_config["featureTag"]}:set_default_callback("${class_name}${render_utils.get_intf_name(interface, intf_msg)}${method}", cb)
87
+ % endif
88
+ local req = ${render_utils.get_intf_type(render_utils.get_intf_name(interface, intf_msg))}.${method}Req.new(...):validate(nil, nil, true)
89
+ % if version >= 9 and "featureTag" in method_config:
90
+ local rsp = ${render_utils.get_intf_type(render_utils.get_intf_name(interface, intf_msg))}.${method}Rsp.new(${method_config["featureTag"]}:${class_name}${render_utils.get_intf_name(interface, intf_msg)}${method}(obj, ctx, req:unpack())):validate()
91
+ % else:
92
+ local rsp = ${render_utils.get_intf_type(render_utils.get_intf_name(interface, intf_msg))}.${method}Rsp.new(cb(obj, ctx, req:unpack())):validate()
93
+ % endif
94
+ return rsp:unpack(true)
95
+ end
96
+ end
97
+
98
+ %endfor
99
+ % endif
100
+ %endfor
101
+ % endif
102
+ % endfor
103
+ % if version >= 9:
104
+ % for method, method_config in root.get("private", {}).get("methods", {}).items():
105
+ % if "featureTag" in method_config:
106
+ -- The callback needs to be registered during app initialization
107
+ function M.Impl${method}(cb)
108
+ ${method_config["featureTag"]}:set_default_callback("${method}", cb)
109
+ end
110
+
111
+ function M.${method}(...)
112
+ local req = ${render_utils.get_class_type("private")}.${method}Req.new(...):validate(nil, nil, true)
113
+ local rsp = ${render_utils.get_class_type("private")}.${method}Rsp.new(${method_config["featureTag"]}:${method}(req:unpack())):validate()
114
+ return rsp:unpack(true)
115
+ end
116
+
117
+ % endif
118
+ % endfor
119
+ % endif
120
+ return M
121
+ % else:
122
+ ${make_header('lua')}
123
+ local mdb = require 'mc.mdb'
124
+ local utils = require 'mc.utils'
125
+ local logging = require 'mc.logging'
126
+ local class = require 'mc.class_mgnt'
127
+ local err = require 'validate.errors'
128
+ local privilege = require 'mc.privilege'
129
+
130
+ local get_table_node = utils.get_table_node
131
+
132
+ % for (class_name, msg) in root.items():
133
+ % if render_utils.has_path(msg):
134
+ local ${class_name.lower()}_mdb_prop_configs = ${render_utils.get_mdb_prop_configs(project_name, msg)}
135
+ % else:
136
+ local ${class_name.lower()}_mdb_prop_configs = {}
137
+ % endif
138
+
139
+ local ${class_name} = {
140
+ % if render_utils.has_table_name(msg):
141
+ ['table_name'] = '${msg['tableName']}',
142
+ % endif
143
+ ['alias_map'] = ${render_utils.get_alias_map(msg)},
144
+ ['prop_configs'] = ${render_utils.get_prop_configs(class_name, msg, project_name)},
145
+ ['default_props'] = ${render_utils.get_default_props(project_name, class_name, msg)},
146
+ ['mdb_prop_configs'] = ${class_name.lower()}_mdb_prop_configs,
147
+ ['mdb_method_configs'] = ${render_utils.get_mdb_method_configs(msg)},
148
+ ['mdb_signal_configs'] = ${render_utils.get_mdb_signal_configs(msg)},
149
+ ['mdb_classes'] = ${render_utils.get_mdb_classes(root, msg)},
150
+ % if render_utils.has_path(msg):
151
+ ['new_mdb_objects'] = function(path)
152
+ local objs = {} <% num = 0 %>
153
+ % for (interface, intf_msg) in msg['interfaces'].items():
154
+ % if num == 0:
155
+ local obj_cls, params = mdb.match_interface(path, '${interface}')
156
+ % else:
157
+ obj_cls, params = mdb.match_interface(path, '${interface}')
158
+ % endif
159
+ if not obj_cls then <% intf_name = render_utils.get_intf_name(interface, intf_msg)%>
160
+ % if use_frame_log:
161
+ logging:mcf_warn('Not match interface, path:%s, interface:%s', path, '${interface}')
162
+ % else:
163
+ logging:warn('Not match interface, path:%s, interface:%s', path, '${interface}')
164
+ % endif
165
+ else
166
+ local obj = obj_cls.new(table.unpack(params))
167
+ % if render_utils.has_properties(intf_msg):
168
+ % for (prop, prop_config) in intf_msg['properties'].items():
169
+ obj["${prop}"] = ${render_utils.get_mdb_prop_default_value(project_name, intf_name, prop, prop_config)}
170
+ % endfor
171
+ % endif
172
+ obj:access_control({
173
+ % if 'privilege' in msg:
174
+ path = ${render_utils.get_privilege(msg)},
175
+ % endif
176
+ % if 'privilege' in intf_msg:
177
+ interface = ${render_utils.get_privilege(intf_msg)},
178
+ % endif
179
+ props = ${render_utils.get_property_privileges(intf_msg.get('properties', {}))},
180
+ methods = ${render_utils.get_privileges(intf_msg.get('methods', {}))}
181
+ },
182
+ ${render_utils.get_readonlys(intf_msg.get('properties', {}))},
183
+ require '${project_name}.json_types.${intf_name}')
184
+ objs['${interface}'] = obj
185
+ end<% num = num + 1 %>
186
+ % endfor
187
+ return objs
188
+ end
189
+ % else:
190
+ ['new_mdb_objects'] = nil
191
+ % endif
192
+ }
193
+
194
+ % endfor
195
+ local M = {}
196
+
197
+ % if render_utils.has_block_io(root):
198
+ M.block_io_classes = {
199
+ % for (class_name, msg) in root.items():
200
+ % if render_utils.has_path(msg):
201
+ % for (interface, intf_msg) in msg['interfaces'].items():
202
+ % if interface == 'bmc.kepler.Chip.BlockIO':
203
+ '${class_name}',
204
+ % endif
205
+ %endfor
206
+ % endif
207
+ % endfor
208
+ }
209
+ % endif
210
+
211
+ function M.init(bus)
212
+ % for (class_name, msg) in root.items():
213
+ class('${class_name}', ${class_name}):set_bus(bus)
214
+ % endfor
215
+ end
216
+ % for (class_name, msg) in root.items():
217
+ % if render_utils.has_path(msg):
218
+ % for (interface, intf_msg) in msg['interfaces'].items():
219
+ % if render_utils.has_methods(intf_msg):
220
+
221
+ % for (method, method_config) in intf_msg['methods'].items():
222
+ -- The callback needs to be registered during app initialization
223
+ function M.Impl${class_name}${render_utils.get_intf_name(interface, intf_msg)}${method}(cb)
224
+ class('${class_name}')['${interface}'].${method} = function(obj, ctx, ...)
225
+ local ${interface.split(".")[-1].lower()}_types = require "${project_name}.json_types.${render_utils.get_intf_name(interface, intf_msg)}"
226
+ local req = ${interface.split(".")[-1].lower()}_types.${method}Req.new(...):validate(nil, nil, true)
227
+ local rsp = ${interface.split(".")[-1].lower()}_types.${method}Rsp.new(cb(obj, ctx, req:unpack())):validate()
228
+ return rsp:unpack(true)
229
+ end
230
+ end
231
+
232
+ %endfor
233
+ % endif
234
+ %endfor
235
+ % endif
236
+
237
+ % endfor
238
+ return M
239
+ % endif
@@ -0,0 +1,16 @@
1
+ ${make_header('lua')}
2
+ local c_object = require 'mc.orm.object'
3
+
4
+ local orm_classes = {}
5
+
6
+ % if utils_py.check_db_open(project_name):
7
+ function orm_classes.init(db)
8
+ % for msg in root['data']:
9
+ % if render_utils.table_name(msg):
10
+ orm_classes.${msg['name']} = c_object("${msg['name']}")
11
+ % endif
12
+ % endfor
13
+ end
14
+ % endif
15
+
16
+ return orm_classes
@@ -0,0 +1,8 @@
1
+ ${make_header('lua')}
2
+ % for feature in render_utils.get_features(root):
3
+ % if project_name != 'dft' and project_name != 'debug':
4
+ require 'plugin.features.${feature}'
5
+ % else:
6
+ require 'plugin.${project_name}.features.${feature}'
7
+ % endif
8
+ % endfor
@@ -0,0 +1,47 @@
1
+ ${make_header('proto')}
2
+ syntax = "proto3";
3
+ import "types.proto";
4
+ import "apps/redfish/types/common.proto";
5
+ import "apps/redfish/types/resource.proto";
6
+ %if utils_py.oem_is_exist(render_utils.get_file_name()):
7
+ import "apps/redfish/resource/oem/hw/${render_utils.get_file_name()}.proto";${load_import(f"apps/redfish/resource/oem/hw/{render_utils.get_file_name()}.proto",render_utils.get_file_name())}
8
+ %endif
9
+ package ${render_utils.get_file_name()};
10
+ <%def name="unpack_enum(key,properties)">
11
+ %for idx, val in enumerate(properties):
12
+ ${key}_${render_utils.replace_tag(val)} = ${idx};
13
+ %endfor
14
+ </%def>
15
+ <%def name="unpack_propties(k,properties)">
16
+ %for idx, val in enumerate([(k, v) for k, v in properties.items()]):
17
+ %if val[0] == 'PowerState':
18
+ Resource.PowerState PowerState = ${idx+1}${render_utils.attr_option_field(val[1])};
19
+ %elif val[0] == 'Oem' and utils_py.oem_is_exist(render_utils.get_file_name()) and utils_py.is_oem_message(render_utils.get_file_name(),k):
20
+ ${utils_py.get_oem_message(render_utils.get_file_name(),k)['package']}.${k} oem = ${idx+1}${render_utils.attr_option_field(val[1])};
21
+ %elif 'type' in val[1] and 'items' in val[1]:
22
+ %if 'anyOf' in val[1]['items']:
23
+ ${render_utils.get_class_name(val[1]['items']['anyOf'][0]['$ref'])} ${render_utils.replace_tag(val[0])} = ${idx+1}${render_utils.attr_option_field(val[1])};
24
+ %elif 'type' in val[1]['items'] :
25
+ repeated ${render_utils.get_type(val[0],val[1]['items']['type'])} ${render_utils.replace_tag(val[0])} = ${idx+1}${render_utils.attr_option_field(val[1])};
26
+ %else:
27
+ ${render_utils.get_class_name(val[1]['items']['$ref'])} ${render_utils.replace_tag(val[0])} = ${idx+1}${render_utils.attr_option_field(val[1])};
28
+ %endif
29
+ %elif '$ref' in val[1]:
30
+ ${render_utils.get_class_name(val[1]['$ref'])} ${render_utils.replace_tag(val[0])} = ${idx+1}${render_utils.attr_option_field(val[1])};
31
+ %elif 'anyOf' in val[1]:
32
+ ${render_utils.get_class_name(val[1]['anyOf'][0]['$ref'])} ${render_utils.replace_tag(val[0])} = ${idx+1}${render_utils.attr_option_field(val[1])};
33
+ %elif 'type' in val[1]:
34
+ ${render_utils.get_type(val[0],val[1]['type'])} ${render_utils.replace_tag(val[0])} = ${idx+1}${render_utils.attr_option_field(val[1])};
35
+ %else:
36
+ ${val[0]} ${render_utils.replace_tag(val[0])} = ${idx+1}${render_utils.attr_option_field(val[1])};
37
+ %endif
38
+ %endfor
39
+ </%def>
40
+ %for k,v in root['definitions'].items():
41
+ %if 'enum' in v and k != 'PowerState':
42
+ enum ${k} {${unpack_enum(k,v['enum'])}}
43
+ %elif 'properties' in v:
44
+ message ${k} {${unpack_propties(k, v['properties'])}}
45
+ %endif
46
+
47
+ %endfor