CIM call

这几天搞CIM相关的东西,之前对CIM完全不了解,网上DMTF的官网一堆官话,看完还是不明确,下载DSP的文档读起来也十分拗口,对instance,association,reference,各种invokemethod感到比较困惑,请教CSF同学之后茅塞顿开,趁有时间赶紧记录下来。


1. 安装ecute,这样可以使用eclipse的插件方便的图形化的展示所有的CIM类,包括类的方法和属性

2. 看到这些方法和属性之后还是零散的概念,这时再来看DMTF中DSP的文档,特别是文档中展示的各个功能模块之间的类图,很好的解释了类间关系和是用功能时候的过程

3. 特别深刻的是:CIM中各个类之间不是和我想象的java的各个类之间通过聚合,组合等联系在一起的,而是通过association table,在table中的每一项都是相关联的类名。

4. association可以拿到一个实例关联的实例对象,reference也可以拿到一个实例关联的实例对象,然而对于像ComputerSystem这样的大类来说,如果直接通过reference来拿相关联的实例对象会拿到很多无用的,这样会很慢,而通过associator拿到关联的实例对象后,再通过associator反过来再拿reference更合适。


看完之后可能有点儿晕,两个例子:

读取,设置bootorder:

读取: 通过CIM_ComputerSystem的instance拿到host的instance,通过此instance associator instance (ElementSettingData,BootConfigSetting),拿到BootConfigSetting的instance之后,通过BootConfigSetting的instance拿其Reference,可以得到ElementSettingData读取isNext属性,如果是3表示下一次boot时候使用。

如何知道这个BootConfigSetting对应的是什么设备呢,再通过associator instance(OrderComponent, BootSourceSetting),得到BootSourceSetting的实例,查看这些实例中assignsequence便可以知道下次启动是什么设备


设置:

查看BootConfigSetting的类的方法,有SetBoorOrder,需要传入Source,这个Source就是上述读取的步骤中通过associator instance得到的BootSourceSetting的实例,比如我们传入”PXE“的实例,就可以设置下次从PXE启动了。


其他的功能都是类似的,只要我们认真观察类图,查看文档,就能尝试出来,CIM开始变得容易起来。
error in ./src/views/edc/eqp-utilization/index.vue?vue&type=script&lang=js Module not found: Error: Can't resolve '@/api/deviceApi' in 'E:\0000Work\006-AuckSun\codes\trunk\web-client_backup\cim-client\src\views\edc\eqp-utilization' Build finished at 01:06:56 by 0.000s Build finished at 01:06:56 by 0.000s ERROR in ./src/views/edc/eqp-utilization/index.vue?vue&type=script&lang=js (./node_modules/unplugin/dist/webpack/loaders/transform.js?unpluginName=unplugin-vue-components!./node_modules/unplugin/dist/webpack/loaders/transform.js?unpluginName=unplugin-auto-import!./node_modules/unplugin-element-plus/node_modules/unplugin/dist/webpack/loaders/transform.js??ruleSet[1].rules[43].use[0]!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./library/build/chainWebpack/sourceInjector/injector.ts!./src/views/edc/eqp-utilization/index.vue?vue&type=script&lang=js) 1:38-93 Module not found: Error: Can't resolve '@/api/deviceApi' in 'E:\0000Work\006-AuckSun\codes\trunk\web-client_backup\cim-client\src\views\edc\eqp-utilization' @ ./src/views/edc/eqp-utilization/index.vue?vue&type=script&lang=js 1:38-736 1:38-736 1:737-1424 1:737-1424 @ ./src/views/edc/eqp-utilization/index.vue 2:0-56 3:0-51 3:0-51 8:41-47 12:49-55 @ ./src/ lazy ^\.\/.*\.vue$ namespace object ./views/edc/eqp-utilization/index.vue @ ./src/utils/routes.ts 47:21-56 @ ./src/router/permissions.ts 12:0-46 96:17-29 108:24-36 @ ./src/router/index.ts 3:0-49 106:2-18 @ ./src/main.ts 8:0-39 69:13-24 webpack compiled with 1 error
09-18
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值