ImcSdk 0.9.2

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.
Files changed (395) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +12 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +5 -0
  5. data/.yardopts +7 -0
  6. data/CODE_OF_CONDUCT.md +74 -0
  7. data/Gemfile +4 -0
  8. data/ImcSdk.gemspec +43 -0
  9. data/LICENSE +201 -0
  10. data/Makefile +9 -0
  11. data/README.md +79 -0
  12. data/Rakefile +15 -0
  13. data/bin/console +14 -0
  14. data/bin/setup +8 -0
  15. data/docs/ImcHandle.html +2900 -0
  16. data/docs/_index.html +109 -0
  17. data/docs/class_list.html +51 -0
  18. data/docs/css/common.css +1 -0
  19. data/docs/css/full_list.css +58 -0
  20. data/docs/css/style.css +492 -0
  21. data/docs/file_list.html +56 -0
  22. data/docs/frames.html +17 -0
  23. data/docs/index.html +147 -0
  24. data/docs/js/app.js +248 -0
  25. data/docs/js/full_list.js +216 -0
  26. data/docs/js/jquery.js +4 -0
  27. data/docs/method_list.html +619 -0
  28. data/docs/top-level-namespace.html +10218 -0
  29. data/lib/ImcSdk.rb +395 -0
  30. data/lib/ImcSdk/apis/admin/ipmi.rb +99 -0
  31. data/lib/ImcSdk/apis/admin/ldap.rb +304 -0
  32. data/lib/ImcSdk/apis/admin/ntp.rb +202 -0
  33. data/lib/ImcSdk/apis/admin/user.rb +221 -0
  34. data/lib/ImcSdk/apis/server/bios.rb +311 -0
  35. data/lib/ImcSdk/apis/server/power.rb +219 -0
  36. data/lib/ImcSdk/apis/server/remotepresence.rb +170 -0
  37. data/lib/ImcSdk/apis/server/serveractions.rb +382 -0
  38. data/lib/ImcSdk/apis/server/storage.rb +438 -0
  39. data/lib/ImcSdk/apis/utils.rb +55 -0
  40. data/lib/ImcSdk/imcbasetype.rb +121 -0
  41. data/lib/ImcSdk/imcconstants.rb +1351 -0
  42. data/lib/ImcSdk/imccore.rb +220 -0
  43. data/lib/ImcSdk/imccoremeta.rb +271 -0
  44. data/lib/ImcSdk/imccoreutils.rb +441 -0
  45. data/lib/ImcSdk/imcdriver.rb +187 -0
  46. data/lib/ImcSdk/imcexception.rb +86 -0
  47. data/lib/ImcSdk/imcfiltertype.rb +228 -0
  48. data/lib/ImcSdk/imcgenutils.rb +29 -0
  49. data/lib/ImcSdk/imcmeta.rb +975 -0
  50. data/lib/ImcSdk/imcmethod.rb +182 -0
  51. data/lib/ImcSdk/imcmethodfactory.rb +190 -0
  52. data/lib/ImcSdk/imcmo.rb +669 -0
  53. data/lib/ImcSdk/imcsession.rb +549 -0
  54. data/lib/ImcSdk/imcxmlcodec.rb +94 -0
  55. data/lib/ImcSdk/methodmeta/AaaGetComputeAuthTokensMeta.rb +16 -0
  56. data/lib/ImcSdk/methodmeta/AaaKeepAliveMeta.rb +14 -0
  57. data/lib/ImcSdk/methodmeta/AaaLoginMeta.rb +36 -0
  58. data/lib/ImcSdk/methodmeta/AaaLogoutMeta.rb +18 -0
  59. data/lib/ImcSdk/methodmeta/AaaRefreshMeta.rb +36 -0
  60. data/lib/ImcSdk/methodmeta/ConfigConfMoMeta.rb +22 -0
  61. data/lib/ImcSdk/methodmeta/ConfigConfMosMeta.rb +20 -0
  62. data/lib/ImcSdk/methodmeta/ConfigResolveChildrenMeta.rb +24 -0
  63. data/lib/ImcSdk/methodmeta/ConfigResolveClassMeta.rb +20 -0
  64. data/lib/ImcSdk/methodmeta/ConfigResolveDnMeta.rb +20 -0
  65. data/lib/ImcSdk/methodmeta/ConfigResolveParentMeta.rb +20 -0
  66. data/lib/ImcSdk/methodmeta/EventSubscribeMeta.rb +14 -0
  67. data/lib/ImcSdk/methodmeta/EventUnsubscribeMeta.rb +14 -0
  68. data/lib/ImcSdk/mometa/aaa/AaaLdap.rb +269 -0
  69. data/lib/ImcSdk/mometa/aaa/AaaLdapRoleGroup.rb +122 -0
  70. data/lib/ImcSdk/mometa/aaa/AaaSession.rb +123 -0
  71. data/lib/ImcSdk/mometa/aaa/AaaUser.rb +130 -0
  72. data/lib/ImcSdk/mometa/aaa/AaaUserEp.rb +88 -0
  73. data/lib/ImcSdk/mometa/aaa/AaaUserPasswordExpiration.rb +118 -0
  74. data/lib/ImcSdk/mometa/aaa/AaaUserPolicy.rb +100 -0
  75. data/lib/ImcSdk/mometa/activate/ActivatePIDCatalog.rb +101 -0
  76. data/lib/ImcSdk/mometa/adaptor/AdaptorCfgBackup.rb +143 -0
  77. data/lib/ImcSdk/mometa/adaptor/AdaptorCfgImporter.rb +143 -0
  78. data/lib/ImcSdk/mometa/adaptor/AdaptorConnectorInfo.rb +97 -0
  79. data/lib/ImcSdk/mometa/adaptor/AdaptorEthCompQueueProfile.rb +100 -0
  80. data/lib/ImcSdk/mometa/adaptor/AdaptorEthGenProfile.rb +158 -0
  81. data/lib/ImcSdk/mometa/adaptor/AdaptorEthISCSIProfile.rb +261 -0
  82. data/lib/ImcSdk/mometa/adaptor/AdaptorEthInterruptProfile.rb +116 -0
  83. data/lib/ImcSdk/mometa/adaptor/AdaptorEthOffloadProfile.rb +112 -0
  84. data/lib/ImcSdk/mometa/adaptor/AdaptorEthRdmaProfile.rb +106 -0
  85. data/lib/ImcSdk/mometa/adaptor/AdaptorEthRecvQueueProfile.rb +100 -0
  86. data/lib/ImcSdk/mometa/adaptor/AdaptorEthUSNICProfile.rb +167 -0
  87. data/lib/ImcSdk/mometa/adaptor/AdaptorEthWorkQueueProfile.rb +100 -0
  88. data/lib/ImcSdk/mometa/adaptor/AdaptorExtEthIf.rb +154 -0
  89. data/lib/ImcSdk/mometa/adaptor/AdaptorExtIpV6RssHashProfile.rb +100 -0
  90. data/lib/ImcSdk/mometa/adaptor/AdaptorFcBootTable.rb +106 -0
  91. data/lib/ImcSdk/mometa/adaptor/AdaptorFcCdbWorkQueueProfile.rb +100 -0
  92. data/lib/ImcSdk/mometa/adaptor/AdaptorFcErrorRecoveryProfile.rb +130 -0
  93. data/lib/ImcSdk/mometa/adaptor/AdaptorFcGenProfile.rb +133 -0
  94. data/lib/ImcSdk/mometa/adaptor/AdaptorFcInterruptProfile.rb +96 -0
  95. data/lib/ImcSdk/mometa/adaptor/AdaptorFcPersistentBindings.rb +118 -0
  96. data/lib/ImcSdk/mometa/adaptor/AdaptorFcPortFLogiProfile.rb +100 -0
  97. data/lib/ImcSdk/mometa/adaptor/AdaptorFcPortPLogiProfile.rb +100 -0
  98. data/lib/ImcSdk/mometa/adaptor/AdaptorFcPortProfile.rb +106 -0
  99. data/lib/ImcSdk/mometa/adaptor/AdaptorFcRecvQueueProfile.rb +94 -0
  100. data/lib/ImcSdk/mometa/adaptor/AdaptorFcWorkQueueProfile.rb +94 -0
  101. data/lib/ImcSdk/mometa/adaptor/AdaptorGenProfile.rb +166 -0
  102. data/lib/ImcSdk/mometa/adaptor/AdaptorHostEthIf.rb +163 -0
  103. data/lib/ImcSdk/mometa/adaptor/AdaptorHostFcIf.rb +148 -0
  104. data/lib/ImcSdk/mometa/adaptor/AdaptorIpV4RssHashProfile.rb +100 -0
  105. data/lib/ImcSdk/mometa/adaptor/AdaptorIpV6RssHashProfile.rb +100 -0
  106. data/lib/ImcSdk/mometa/adaptor/AdaptorLinkTraining.rb +79 -0
  107. data/lib/ImcSdk/mometa/adaptor/AdaptorPortProfiles.rb +100 -0
  108. data/lib/ImcSdk/mometa/adaptor/AdaptorRssProfile.rb +94 -0
  109. data/lib/ImcSdk/mometa/adaptor/AdaptorUnit.rb +155 -0
  110. data/lib/ImcSdk/mometa/advanced/AdvancedPowerProfile.rb +140 -0
  111. data/lib/ImcSdk/mometa/auto/AutoPowerProfile.rb +117 -0
  112. data/lib/ImcSdk/mometa/bios/BiosBOT.rb +88 -0
  113. data/lib/ImcSdk/mometa/bios/BiosBootDev.rb +114 -0
  114. data/lib/ImcSdk/mometa/bios/BiosBootDevGrp.rb +112 -0
  115. data/lib/ImcSdk/mometa/bios/BiosBootDevPrecision.rb +152 -0
  116. data/lib/ImcSdk/mometa/bios/BiosBootMode.rb +96 -0
  117. data/lib/ImcSdk/mometa/bios/BiosPassword.rb +73 -0
  118. data/lib/ImcSdk/mometa/bios/BiosPlatformDefaults.rb +88 -0
  119. data/lib/ImcSdk/mometa/bios/BiosProfile.rb +139 -0
  120. data/lib/ImcSdk/mometa/bios/BiosProfileManagement.rb +106 -0
  121. data/lib/ImcSdk/mometa/bios/BiosProfileToken.rb +106 -0
  122. data/lib/ImcSdk/mometa/bios/BiosSettings.rb +88 -0
  123. data/lib/ImcSdk/mometa/bios/BiosUnit.rb +106 -0
  124. data/lib/ImcSdk/mometa/bios/BiosVfASPMSupport.rb +97 -0
  125. data/lib/ImcSdk/mometa/bios/BiosVfAdjacentCacheLinePrefetch.rb +98 -0
  126. data/lib/ImcSdk/mometa/bios/BiosVfAltitude.rb +99 -0
  127. data/lib/ImcSdk/mometa/bios/BiosVfAssertNMIOnPERR.rb +98 -0
  128. data/lib/ImcSdk/mometa/bios/BiosVfAssertNMIOnSERR.rb +98 -0
  129. data/lib/ImcSdk/mometa/bios/BiosVfAutonumousCstateEnable.rb +81 -0
  130. data/lib/ImcSdk/mometa/bios/BiosVfBootOptionRetry.rb +98 -0
  131. data/lib/ImcSdk/mometa/bios/BiosVfCDNEnable.rb +92 -0
  132. data/lib/ImcSdk/mometa/bios/BiosVfCDNSupport.rb +96 -0
  133. data/lib/ImcSdk/mometa/bios/BiosVfCPUEnergyPerformance.rb +98 -0
  134. data/lib/ImcSdk/mometa/bios/BiosVfCPUFrequencyFloor.rb +98 -0
  135. data/lib/ImcSdk/mometa/bios/BiosVfCPUPerformance.rb +98 -0
  136. data/lib/ImcSdk/mometa/bios/BiosVfCPUPowerManagement.rb +98 -0
  137. data/lib/ImcSdk/mometa/bios/BiosVfCkeLowPolicy.rb +98 -0
  138. data/lib/ImcSdk/mometa/bios/BiosVfCmciEnable.rb +98 -0
  139. data/lib/ImcSdk/mometa/bios/BiosVfConsoleRedirection.rb +162 -0
  140. data/lib/ImcSdk/mometa/bios/BiosVfCoreMultiProcessing.rb +118 -0
  141. data/lib/ImcSdk/mometa/bios/BiosVfDCUPrefetch.rb +109 -0
  142. data/lib/ImcSdk/mometa/bios/BiosVfDRAMClockThrottling.rb +98 -0
  143. data/lib/ImcSdk/mometa/bios/BiosVfDemandScrub.rb +98 -0
  144. data/lib/ImcSdk/mometa/bios/BiosVfDirectCacheAccess.rb +100 -0
  145. data/lib/ImcSdk/mometa/bios/BiosVfDramRefreshRate.rb +99 -0
  146. data/lib/ImcSdk/mometa/bios/BiosVfEnhancedIntelSpeedStepTech.rb +98 -0
  147. data/lib/ImcSdk/mometa/bios/BiosVfExecuteDisableBit.rb +98 -0
  148. data/lib/ImcSdk/mometa/bios/BiosVfExtendedAPIC.rb +92 -0
  149. data/lib/ImcSdk/mometa/bios/BiosVfFRB2Enable.rb +98 -0
  150. data/lib/ImcSdk/mometa/bios/BiosVfHWPMEnable.rb +80 -0
  151. data/lib/ImcSdk/mometa/bios/BiosVfHardwarePrefetch.rb +98 -0
  152. data/lib/ImcSdk/mometa/bios/BiosVfIOHResource.rb +99 -0
  153. data/lib/ImcSdk/mometa/bios/BiosVfIntelHyperThreadingTech.rb +98 -0
  154. data/lib/ImcSdk/mometa/bios/BiosVfIntelTurboBoostTech.rb +98 -0
  155. data/lib/ImcSdk/mometa/bios/BiosVfIntelVTForDirectedIO.rb +142 -0
  156. data/lib/ImcSdk/mometa/bios/BiosVfIntelVirtualizationTechnology.rb +98 -0
  157. data/lib/ImcSdk/mometa/bios/BiosVfLOMPortOptionROM.rb +150 -0
  158. data/lib/ImcSdk/mometa/bios/BiosVfLegacyUSBSupport.rb +100 -0
  159. data/lib/ImcSdk/mometa/bios/BiosVfLvDIMMSupport.rb +97 -0
  160. data/lib/ImcSdk/mometa/bios/BiosVfMMCFGBase.rb +99 -0
  161. data/lib/ImcSdk/mometa/bios/BiosVfMemoryInterleave.rb +126 -0
  162. data/lib/ImcSdk/mometa/bios/BiosVfMemoryMappedIOAbove4GB.rb +98 -0
  163. data/lib/ImcSdk/mometa/bios/BiosVfMirroringMode.rb +96 -0
  164. data/lib/ImcSdk/mometa/bios/BiosVfNUMAOptimized.rb +98 -0
  165. data/lib/ImcSdk/mometa/bios/BiosVfOSBootWatchdogTimer.rb +98 -0
  166. data/lib/ImcSdk/mometa/bios/BiosVfOSBootWatchdogTimerPolicy.rb +97 -0
  167. data/lib/ImcSdk/mometa/bios/BiosVfOSBootWatchdogTimerTimeout.rb +98 -0
  168. data/lib/ImcSdk/mometa/bios/BiosVfOnboardNIC.rb +109 -0
  169. data/lib/ImcSdk/mometa/bios/BiosVfOnboardStorage.rb +98 -0
  170. data/lib/ImcSdk/mometa/bios/BiosVfOnboardStorageSWStack.rb +90 -0
  171. data/lib/ImcSdk/mometa/bios/BiosVfOutOfBandMgmtPort.rb +92 -0
  172. data/lib/ImcSdk/mometa/bios/BiosVfPCIOptionROMs.rb +100 -0
  173. data/lib/ImcSdk/mometa/bios/BiosVfPCISlotOptionROMEnable.rb +726 -0
  174. data/lib/ImcSdk/mometa/bios/BiosVfPCIeSSDHotPlugSupport.rb +81 -0
  175. data/lib/ImcSdk/mometa/bios/BiosVfPOSTErrorPause.rb +98 -0
  176. data/lib/ImcSdk/mometa/bios/BiosVfPStateCoordType.rb +97 -0
  177. data/lib/ImcSdk/mometa/bios/BiosVfPackageCStateLimit.rb +105 -0
  178. data/lib/ImcSdk/mometa/bios/BiosVfPatrolScrub.rb +98 -0
  179. data/lib/ImcSdk/mometa/bios/BiosVfPatrolScrubDuration.rb +94 -0
  180. data/lib/ImcSdk/mometa/bios/BiosVfPchUsb30Mode.rb +98 -0
  181. data/lib/ImcSdk/mometa/bios/BiosVfPciRomClp.rb +92 -0
  182. data/lib/ImcSdk/mometa/bios/BiosVfPowerOnPasswordSupport.rb +98 -0
  183. data/lib/ImcSdk/mometa/bios/BiosVfProcessorC1E.rb +98 -0
  184. data/lib/ImcSdk/mometa/bios/BiosVfProcessorC3Report.rb +98 -0
  185. data/lib/ImcSdk/mometa/bios/BiosVfProcessorC6Report.rb +98 -0
  186. data/lib/ImcSdk/mometa/bios/BiosVfProcessorCState.rb +98 -0
  187. data/lib/ImcSdk/mometa/bios/BiosVfPwrPerfTuning.rb +90 -0
  188. data/lib/ImcSdk/mometa/bios/BiosVfQPIConfig.rb +99 -0
  189. data/lib/ImcSdk/mometa/bios/BiosVfQpiSnoopMode.rb +94 -0
  190. data/lib/ImcSdk/mometa/bios/BiosVfResumeOnACPowerLoss.rb +111 -0
  191. data/lib/ImcSdk/mometa/bios/BiosVfSataModeSelect.rb +97 -0
  192. data/lib/ImcSdk/mometa/bios/BiosVfSelectMemoryRASConfiguration.rb +98 -0
  193. data/lib/ImcSdk/mometa/bios/BiosVfSerialPortAEnable.rb +98 -0
  194. data/lib/ImcSdk/mometa/bios/BiosVfSparingMode.rb +96 -0
  195. data/lib/ImcSdk/mometa/bios/BiosVfSrIov.rb +98 -0
  196. data/lib/ImcSdk/mometa/bios/BiosVfTPMSupport.rb +98 -0
  197. data/lib/ImcSdk/mometa/bios/BiosVfUCSMBootOrderRuleControl.rb +96 -0
  198. data/lib/ImcSdk/mometa/bios/BiosVfUSBBootConfig.rb +98 -0
  199. data/lib/ImcSdk/mometa/bios/BiosVfUSBEmulation.rb +98 -0
  200. data/lib/ImcSdk/mometa/bios/BiosVfUSBPortsConfig.rb +164 -0
  201. data/lib/ImcSdk/mometa/bios/BiosVfVgaPriority.rb +97 -0
  202. data/lib/ImcSdk/mometa/bios/BiosVfWorkLoadConfig.rb +90 -0
  203. data/lib/ImcSdk/mometa/bmc/BmcResetReason.rb +77 -0
  204. data/lib/ImcSdk/mometa/certificate/CertificateManagement.rb +94 -0
  205. data/lib/ImcSdk/mometa/chassis/ChassisPIDCatalog.rb +77 -0
  206. data/lib/ImcSdk/mometa/chassis/ChassisPowerBudget.rb +110 -0
  207. data/lib/ImcSdk/mometa/chassis/ChassisPowerMonitor.rb +93 -0
  208. data/lib/ImcSdk/mometa/chassis/ChassisPowerUtilization.rb +77 -0
  209. data/lib/ImcSdk/mometa/comm/CommEpIpmiLan.rb +87 -0
  210. data/lib/ImcSdk/mometa/comm/CommHttp.rb +149 -0
  211. data/lib/ImcSdk/mometa/comm/CommHttps.rb +141 -0
  212. data/lib/ImcSdk/mometa/comm/CommIpmiLan.rb +108 -0
  213. data/lib/ImcSdk/mometa/comm/CommKvm.rb +124 -0
  214. data/lib/ImcSdk/mometa/comm/CommNtpProvider.rb +130 -0
  215. data/lib/ImcSdk/mometa/comm/CommRedfish.rb +86 -0
  216. data/lib/ImcSdk/mometa/comm/CommSavedVMediaMap.rb +148 -0
  217. data/lib/ImcSdk/mometa/comm/CommSnmp.rb +169 -0
  218. data/lib/ImcSdk/mometa/comm/CommSnmpTrap.rb +149 -0
  219. data/lib/ImcSdk/mometa/comm/CommSnmpUser.rb +147 -0
  220. data/lib/ImcSdk/mometa/comm/CommSsh.rb +141 -0
  221. data/lib/ImcSdk/mometa/comm/CommSvcEp.rb +88 -0
  222. data/lib/ImcSdk/mometa/comm/CommSvcRack.rb +73 -0
  223. data/lib/ImcSdk/mometa/comm/CommSyslog.rb +151 -0
  224. data/lib/ImcSdk/mometa/comm/CommSyslogClient.rb +123 -0
  225. data/lib/ImcSdk/mometa/comm/CommVMedia.rb +122 -0
  226. data/lib/ImcSdk/mometa/comm/CommVMediaMap.rb +153 -0
  227. data/lib/ImcSdk/mometa/compute/ComputeBoard.rb +178 -0
  228. data/lib/ImcSdk/mometa/compute/ComputeMbPowerStats.rb +112 -0
  229. data/lib/ImcSdk/mometa/compute/ComputeRackUnit.rb +206 -0
  230. data/lib/ImcSdk/mometa/compute/ComputeRackUnitMbTempStats.rb +101 -0
  231. data/lib/ImcSdk/mometa/compute/ComputeServerNode.rb +192 -0
  232. data/lib/ImcSdk/mometa/compute/ComputeServerNodeMbTempStats.rb +101 -0
  233. data/lib/ImcSdk/mometa/compute/ComputeServerRef.rb +81 -0
  234. data/lib/ImcSdk/mometa/compute/ComputeSharedIOMbPowerStats.rb +89 -0
  235. data/lib/ImcSdk/mometa/compute/ComputeSharedIOMbTempStats.rb +99 -0
  236. data/lib/ImcSdk/mometa/current/CurrentCertificate.rb +178 -0
  237. data/lib/ImcSdk/mometa/custom/CustomPowerProfile.rb +103 -0
  238. data/lib/ImcSdk/mometa/download/DownloadClientCertificate.rb +106 -0
  239. data/lib/ImcSdk/mometa/download/DownloadClientPrivateKey.rb +106 -0
  240. data/lib/ImcSdk/mometa/download/DownloadLdapCACertificate.rb +135 -0
  241. data/lib/ImcSdk/mometa/download/DownloadRootCACertificate.rb +106 -0
  242. data/lib/ImcSdk/mometa/equipment/EquipmentChassis.rb +93 -0
  243. data/lib/ImcSdk/mometa/equipment/EquipmentChassisLocatorLed.rb +106 -0
  244. data/lib/ImcSdk/mometa/equipment/EquipmentFan.rb +223 -0
  245. data/lib/ImcSdk/mometa/equipment/EquipmentFanModule.rb +217 -0
  246. data/lib/ImcSdk/mometa/equipment/EquipmentIndicatorLed.rb +122 -0
  247. data/lib/ImcSdk/mometa/equipment/EquipmentLocatorLed.rb +131 -0
  248. data/lib/ImcSdk/mometa/equipment/EquipmentPsu.rb +235 -0
  249. data/lib/ImcSdk/mometa/equipment/EquipmentPsuColdRedundancy.rb +77 -0
  250. data/lib/ImcSdk/mometa/equipment/EquipmentPsuFan.rb +186 -0
  251. data/lib/ImcSdk/mometa/equipment/EquipmentSharedIOModule.rb +125 -0
  252. data/lib/ImcSdk/mometa/equipment/EquipmentSystemIOController.rb +87 -0
  253. data/lib/ImcSdk/mometa/equipment/EquipmentTpm.rb +164 -0
  254. data/lib/ImcSdk/mometa/error/Error.rb +98 -0
  255. data/lib/ImcSdk/mometa/event/EventManagement.rb +100 -0
  256. data/lib/ImcSdk/mometa/export/ExportClientCertificate.rb +106 -0
  257. data/lib/ImcSdk/mometa/export/ExportClientPrivateKey.rb +106 -0
  258. data/lib/ImcSdk/mometa/export/ExportLdapCACertificate.rb +135 -0
  259. data/lib/ImcSdk/mometa/export/ExportRootCACertificate.rb +106 -0
  260. data/lib/ImcSdk/mometa/fan/FanPolicy.rb +89 -0
  261. data/lib/ImcSdk/mometa/fault/FaultInst.rb +238 -0
  262. data/lib/ImcSdk/mometa/firmware/FirmwareBootDefinition.rb +101 -0
  263. data/lib/ImcSdk/mometa/firmware/FirmwareBootUnit.rb +159 -0
  264. data/lib/ImcSdk/mometa/firmware/FirmwareRunning.rb +124 -0
  265. data/lib/ImcSdk/mometa/firmware/FirmwareUpdatable.rb +197 -0
  266. data/lib/ImcSdk/mometa/generate/GenerateCertificateSigningRequest.rb +435 -0
  267. data/lib/ImcSdk/mometa/generate/GenerateRandomPassword.rb +94 -0
  268. data/lib/ImcSdk/mometa/generated/GeneratedStorageControllerKeyId.rb +77 -0
  269. data/lib/ImcSdk/mometa/huu/HuuController.rb +94 -0
  270. data/lib/ImcSdk/mometa/huu/HuuFirmwareCatalog.rb +100 -0
  271. data/lib/ImcSdk/mometa/huu/HuuFirmwareCatalogComponent.rb +106 -0
  272. data/lib/ImcSdk/mometa/huu/HuuFirmwareComponent.rb +154 -0
  273. data/lib/ImcSdk/mometa/huu/HuuFirmwareRunning.rb +106 -0
  274. data/lib/ImcSdk/mometa/huu/HuuFirmwareUpdateCancel.rb +95 -0
  275. data/lib/ImcSdk/mometa/huu/HuuFirmwareUpdateStatus.rb +118 -0
  276. data/lib/ImcSdk/mometa/huu/HuuFirmwareUpdater.rb +179 -0
  277. data/lib/ImcSdk/mometa/huu/HuuUpdateComponentStatus.rb +178 -0
  278. data/lib/ImcSdk/mometa/io/IoExpander.rb +104 -0
  279. data/lib/ImcSdk/mometa/iod/IodController.rb +94 -0
  280. data/lib/ImcSdk/mometa/iod/IodSnapshotCancel.rb +101 -0
  281. data/lib/ImcSdk/mometa/iod/IodSnapshotStart.rb +192 -0
  282. data/lib/ImcSdk/mometa/iod/IodSnapshotStatus.rb +148 -0
  283. data/lib/ImcSdk/mometa/ip/IpBlocking.rb +118 -0
  284. data/lib/ImcSdk/mometa/ip/IpFiltering.rb +128 -0
  285. data/lib/ImcSdk/mometa/kmip/KmipManagement.rb +95 -0
  286. data/lib/ImcSdk/mometa/kmip/KmipServer.rb +98 -0
  287. data/lib/ImcSdk/mometa/kmip/KmipServerLogin.rb +89 -0
  288. data/lib/ImcSdk/mometa/ldap/LdapCACertificate.rb +107 -0
  289. data/lib/ImcSdk/mometa/ldap/LdapCACertificateManagement.rb +100 -0
  290. data/lib/ImcSdk/mometa/lsboot/LsbootBootSecurity.rb +99 -0
  291. data/lib/ImcSdk/mometa/lsboot/LsbootDef.rb +111 -0
  292. data/lib/ImcSdk/mometa/lsboot/LsbootDevPrecision.rb +139 -0
  293. data/lib/ImcSdk/mometa/lsboot/LsbootEfi.rb +107 -0
  294. data/lib/ImcSdk/mometa/lsboot/LsbootHdd.rb +127 -0
  295. data/lib/ImcSdk/mometa/lsboot/LsbootIscsi.rb +133 -0
  296. data/lib/ImcSdk/mometa/lsboot/LsbootLan.rb +116 -0
  297. data/lib/ImcSdk/mometa/lsboot/LsbootLocalStorage.rb +88 -0
  298. data/lib/ImcSdk/mometa/lsboot/LsbootNVMe.rb +114 -0
  299. data/lib/ImcSdk/mometa/lsboot/LsbootPchStorage.rb +120 -0
  300. data/lib/ImcSdk/mometa/lsboot/LsbootPxe.rb +133 -0
  301. data/lib/ImcSdk/mometa/lsboot/LsbootSan.rb +133 -0
  302. data/lib/ImcSdk/mometa/lsboot/LsbootSd.rb +127 -0
  303. data/lib/ImcSdk/mometa/lsboot/LsbootStorage.rb +107 -0
  304. data/lib/ImcSdk/mometa/lsboot/LsbootUefiShell.rb +114 -0
  305. data/lib/ImcSdk/mometa/lsboot/LsbootUsb.rb +124 -0
  306. data/lib/ImcSdk/mometa/lsboot/LsbootVMedia.rb +138 -0
  307. data/lib/ImcSdk/mometa/lsboot/LsbootVirtualMedia.rb +108 -0
  308. data/lib/ImcSdk/mometa/memory/MemoryArray.rb +200 -0
  309. data/lib/ImcSdk/mometa/memory/MemoryUnit.rb +299 -0
  310. data/lib/ImcSdk/mometa/memory/MemoryUnitEnvStats.rb +112 -0
  311. data/lib/ImcSdk/mometa/mgmt/MgmtBackup.rb +172 -0
  312. data/lib/ImcSdk/mometa/mgmt/MgmtBackupServer.rb +132 -0
  313. data/lib/ImcSdk/mometa/mgmt/MgmtController.rb +118 -0
  314. data/lib/ImcSdk/mometa/mgmt/MgmtIf.rb +388 -0
  315. data/lib/ImcSdk/mometa/mgmt/MgmtImporter.rb +172 -0
  316. data/lib/ImcSdk/mometa/mgmt/MgmtImporterServer.rb +132 -0
  317. data/lib/ImcSdk/mometa/mgmt/MgmtInventory.rb +143 -0
  318. data/lib/ImcSdk/mometa/network/NetworkAdapterEthIf.rb +100 -0
  319. data/lib/ImcSdk/mometa/network/NetworkAdapterUnit.rb +116 -0
  320. data/lib/ImcSdk/mometa/one/OneTimeBootDevice.rb +103 -0
  321. data/lib/ImcSdk/mometa/one/OneTimePrecisionBootDevice.rb +116 -0
  322. data/lib/ImcSdk/mometa/osi/OsiCancel.rb +101 -0
  323. data/lib/ImcSdk/mometa/osi/OsiController.rb +94 -0
  324. data/lib/ImcSdk/mometa/osi/OsiStart.rb +266 -0
  325. data/lib/ImcSdk/mometa/osi/OsiStatus.rb +148 -0
  326. data/lib/ImcSdk/mometa/pci/PciEquipSlot.rb +124 -0
  327. data/lib/ImcSdk/mometa/pid/PidCatalog.rb +100 -0
  328. data/lib/ImcSdk/mometa/pid/PidCatalogCpu.rb +136 -0
  329. data/lib/ImcSdk/mometa/pid/PidCatalogDimm.rb +154 -0
  330. data/lib/ImcSdk/mometa/pid/PidCatalogHdd.rb +130 -0
  331. data/lib/ImcSdk/mometa/pid/PidCatalogPCIAdapter.rb +130 -0
  332. data/lib/ImcSdk/mometa/platform/PlatformEventFilters.rb +109 -0
  333. data/lib/ImcSdk/mometa/power/PowerBudget.rb +146 -0
  334. data/lib/ImcSdk/mometa/power/PowerMonitor.rb +123 -0
  335. data/lib/ImcSdk/mometa/processor/ProcessorEnvStats.rb +112 -0
  336. data/lib/ImcSdk/mometa/processor/ProcessorUnit.rb +213 -0
  337. data/lib/ImcSdk/mometa/self/SelfEncryptStorageController.rb +98 -0
  338. data/lib/ImcSdk/mometa/server/ServerUtilization.rb +112 -0
  339. data/lib/ImcSdk/mometa/sioc/SiocResetReason.rb +77 -0
  340. data/lib/ImcSdk/mometa/sol/SolIf.rb +128 -0
  341. data/lib/ImcSdk/mometa/standard/StandardPowerProfile.rb +108 -0
  342. data/lib/ImcSdk/mometa/storage/StorageController.rb +165 -0
  343. data/lib/ImcSdk/mometa/storage/StorageControllerHealth.rb +100 -0
  344. data/lib/ImcSdk/mometa/storage/StorageControllerNVMe.rb +154 -0
  345. data/lib/ImcSdk/mometa/storage/StorageControllerProps.rb +406 -0
  346. data/lib/ImcSdk/mometa/storage/StorageControllerSettings.rb +220 -0
  347. data/lib/ImcSdk/mometa/storage/StorageEnclosure.rb +82 -0
  348. data/lib/ImcSdk/mometa/storage/StorageEnclosureDisk.rb +149 -0
  349. data/lib/ImcSdk/mometa/storage/StorageEnclosureDiskFwHelper.rb +108 -0
  350. data/lib/ImcSdk/mometa/storage/StorageEnclosureDiskSlotEp.rb +85 -0
  351. data/lib/ImcSdk/mometa/storage/StorageEnclosureDiskSlotZoneHelper.rb +97 -0
  352. data/lib/ImcSdk/mometa/storage/StorageFlexFlashController.rb +193 -0
  353. data/lib/ImcSdk/mometa/storage/StorageFlexFlashControllerProps.rb +202 -0
  354. data/lib/ImcSdk/mometa/storage/StorageFlexFlashOperationalProfile.rb +164 -0
  355. data/lib/ImcSdk/mometa/storage/StorageFlexFlashPhysicalDrive.rb +256 -0
  356. data/lib/ImcSdk/mometa/storage/StorageFlexFlashVirtualDrive.rb +152 -0
  357. data/lib/ImcSdk/mometa/storage/StorageFlexFlashVirtualDriveImageMap.rb +145 -0
  358. data/lib/ImcSdk/mometa/storage/StorageLocalDisk.rb +247 -0
  359. data/lib/ImcSdk/mometa/storage/StorageLocalDiskEp.rb +77 -0
  360. data/lib/ImcSdk/mometa/storage/StorageLocalDiskProps.rb +250 -0
  361. data/lib/ImcSdk/mometa/storage/StorageLocalDiskSlotEp.rb +146 -0
  362. data/lib/ImcSdk/mometa/storage/StorageLocalDiskUsage.rb +124 -0
  363. data/lib/ImcSdk/mometa/storage/StorageOperation.rb +112 -0
  364. data/lib/ImcSdk/mometa/storage/StorageRaidBattery.rb +252 -0
  365. data/lib/ImcSdk/mometa/storage/StorageSasExpander.rb +113 -0
  366. data/lib/ImcSdk/mometa/storage/StorageSasUplink.rb +121 -0
  367. data/lib/ImcSdk/mometa/storage/StorageUnusedLocalDisk.rb +124 -0
  368. data/lib/ImcSdk/mometa/storage/StorageVirtualDrive.rb +307 -0
  369. data/lib/ImcSdk/mometa/storage/StorageVirtualDriveCreatorUsingUnusedPhysicalDrive.rb +223 -0
  370. data/lib/ImcSdk/mometa/storage/StorageVirtualDriveCreatorUsingVirtualDriveGroup.rb +199 -0
  371. data/lib/ImcSdk/mometa/storage/StorageVirtualDriveWithDriveGroupSpace.rb +130 -0
  372. data/lib/ImcSdk/mometa/suggested/SuggestedStorageControllerSecurityKey.rb +77 -0
  373. data/lib/ImcSdk/mometa/sysdebug/SysdebugMEpLog.rb +122 -0
  374. data/lib/ImcSdk/mometa/sysdebug/SysdebugTechSupportExport.rb +149 -0
  375. data/lib/ImcSdk/mometa/system/SystemIOController.rb +81 -0
  376. data/lib/ImcSdk/mometa/thermal/ThermalPowerProfile.rb +89 -0
  377. data/lib/ImcSdk/mometa/top/TopRoot.rb +88 -0
  378. data/lib/ImcSdk/mometa/top/TopSystem.rb +561 -0
  379. data/lib/ImcSdk/mometa/upload/UploadBiosProfile.rb +129 -0
  380. data/lib/ImcSdk/mometa/upload/UploadCertificate.rb +136 -0
  381. data/lib/ImcSdk/mometa/upload/UploadPIDCatalog.rb +129 -0
  382. data/lib/ImcSdk/version.rb +3 -0
  383. data/spec/ImcSdk_spec.rb +11 -0
  384. data/spec/spec_helper.rb +11 -0
  385. data/test/ImcSdk_bios_test.rb +57 -0
  386. data/test/ImcSdk_ipmi_test.rb +65 -0
  387. data/test/ImcSdk_ldap_test.rb +79 -0
  388. data/test/ImcSdk_ntp_test.rb +88 -0
  389. data/test/ImcSdk_powerbudget_test.rb +64 -0
  390. data/test/ImcSdk_remotepresence_test.rb +60 -0
  391. data/test/ImcSdk_serveractions_test.rb +69 -0
  392. data/test/ImcSdk_storage_test.rb +60 -0
  393. data/test/ImcSdk_user_test.rb +98 -0
  394. data/test/test_helper.rb +21 -0
  395. metadata +492 -0
@@ -0,0 +1,182 @@
1
+ # Copyright 2017 Cisco Systems, Inc.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ # http://www.apache.org/licenses/LICENSE-2.0
7
+ #
8
+ # Unless required by applicable law or agreed to in writing, software
9
+ # distributed under the License is distributed on an "AS IS" BASIS,
10
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ # See the License for the specific language governing permissions and
12
+ # limitations under the License.
13
+
14
+ # This module contains the ImcSdk Core Classes
15
+
16
+ require_relative 'imccore'
17
+ require_relative 'imccoreutils'
18
+
19
+
20
+ class ExternalMethod < ImcBase
21
+
22
+ @@external_method_attrs = { "errorCode" => "error_code",
23
+ "errorDescr" => "error_descr",
24
+ "invocationResult" => "invocation_result",
25
+ "response" => "response"}
26
+
27
+ attr_accessor :error_code
28
+ attr_accessor :error_descr
29
+
30
+ def initialize(method_id)
31
+ super(method_id)
32
+ meta = File.dirname(__FILE__) + "/methodmeta/" + method_id + "Meta.rb"
33
+ load meta
34
+ @error_code = 0
35
+ @error_descr = nil
36
+ @invocation_result = nil
37
+ @response = nil
38
+ self.mark_clean()
39
+ end
40
+
41
+ def set_property(prop,value)
42
+ self.instance_variable_set("@" + prop, value)
43
+ end
44
+
45
+ def get_property(prop)
46
+ if self.instance_variable_defined?("@" + prop)
47
+ return self.instance_variable_get("@" + prop)
48
+ else
49
+ return nil
50
+ end
51
+ end
52
+
53
+ def child_add(mo)
54
+ #This method adds child external method object to a external method object.
55
+ childs.push(mo)
56
+ end
57
+
58
+ def set_attr(key, value)
59
+ #This method sets the attribute of external method object
60
+ if @@method_prop_meta.include?(key)
61
+ set_property(key, value)
62
+ elsif key.equal?("error_code")
63
+ @error_code = value
64
+ elsif key.equal?("error_descr")
65
+ @error_descr = value
66
+ elsif key.equal?("invocation_result")
67
+ @invocation_result = value
68
+ elsif key.equal?("response")
69
+ @response = value
70
+ else
71
+ #no such property
72
+ return nil
73
+ end
74
+ end
75
+
76
+ def get_error_response(error_code, error_descr)
77
+ # This methos sets error attributes of an external method object.
78
+
79
+ @error_code = error_code
80
+ @error_descr = error_descr
81
+ @response = "yes"
82
+ end
83
+
84
+
85
+ def to_xml(xml_doc=nil, option=nil, elem_name=nil)
86
+ # This method writes the xml representation of the external method object.
87
+ cookie = nil
88
+ if self.instance_variable_defined?("@cookie")
89
+ cookie = self.get_property("cookie")
90
+ end
91
+ xml_obj = elem_create(@@method_meta.xml_attribute, xml_doc, elem_name)
92
+
93
+ @@method_prop_meta.each do |prop, prop_meta|
94
+ if xml_obj.name == "aaaLogout" and prop == "in_delay_secs" and get_property(prop).to_i > 300
95
+ next
96
+ end
97
+
98
+ if prop_meta.inp_out == "Output"
99
+ next
100
+ end
101
+
102
+ if prop_meta.is_complex_type
103
+ if !get_property(prop).nil?
104
+ #x = get_property(prop)
105
+ get_property(prop).to_xml(xml_obj, option, prop_meta.xml_attribute, cookie=cookie)
106
+ end
107
+ elsif
108
+ key = prop_meta.xml_attribute
109
+ value = get_property(prop)
110
+ xml_obj.add_attribute(key, value)
111
+ end
112
+ end
113
+ child_to_xml(xml_obj, option, cookie=cookie)
114
+ return xml_obj
115
+ end
116
+
117
+ def from_xml(elem, handle=nil)
118
+ # This method updates/fills the object from xml representation of the External method object.
119
+
120
+ if elem.attributes
121
+ elem.attributes.each do |attr_name, attr_value|
122
+ if @@method_prop_map.include? attr_name
123
+ attr1 = @@method_prop_map[attr_name]
124
+ method_prop_meta = @@method_prop_meta[attr1]
125
+ if method_prop_meta.inp_out.equal? "Input" or method_prop_meta.is_complex_type
126
+ pass
127
+ end
128
+ set_attr(attr1, attr_value)
129
+ elsif @@external_method_attrs.include? attr_name
130
+ set_attr @@external_method_attrs[attr_name], attr_value
131
+ end
132
+ end
133
+ end
134
+
135
+ if elem.children
136
+ for child_elem in elem.children do
137
+ if !child_elem.instance_variable_defined?(:@name)
138
+ next
139
+ end
140
+ child_name = child_elem.name
141
+
142
+ if @@method_prop_map.include? child_name
143
+ child_name = @@method_prop_map[child_name]
144
+ method_prop_meta = @@method_prop_meta[child_name]
145
+ if method_prop_meta.inp_out == "Output" and method_prop_meta.is_complex_type
146
+ child_obj = ImcCoreUtils.get_imc_obj(method_prop_meta.field_type, child_elem, nil)
147
+ if !child_obj.nil?
148
+ set_attr(child_name, child_obj)
149
+ child_obj.from_xml(child_elem, handle)
150
+ end
151
+ end
152
+ end
153
+ end
154
+ end
155
+ end
156
+ def get_outconfig_child()
157
+ if self.instance_variable_defined?(:@out_config)
158
+ return self.instance_variable_get(:@out_config).instance_variable_get(:@child)
159
+ elsif self.instance_variable_defined?(:@out_configs)
160
+ return self.instance_variable_get(:@out_configs).instance_variable_get(:@child)
161
+ else
162
+ return Array.new
163
+ end
164
+ end
165
+
166
+ def is_outconfig_available()
167
+ if self.instance_variable_defined?(:@out_config) or self.instance_variable_defined?(:@out_configs)
168
+ return true
169
+ else
170
+ false
171
+ end
172
+ end
173
+ =begin
174
+ private
175
+ def to_s()
176
+
177
+ #TBD implementation
178
+ end
179
+ =end
180
+
181
+
182
+ end
@@ -0,0 +1,190 @@
1
+ # Copyright 2015 Cisco Systems, Inc.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ # http://www.apache.org/licenses/LICENSE-2.0
7
+ #
8
+ # Unless required by applicable law or agreed to in writing, software
9
+ # distributed under the License is distributed on an "AS IS" BASIS,
10
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ # See the License for the specific language governing permissions and
12
+ # limitations under the License.
13
+
14
+
15
+ #This is an auto-generated module.
16
+ #It contains supporting classes for External Method.
17
+
18
+
19
+ require_relative 'imcmethod'
20
+ require_relative 'imccoremeta'
21
+ require_relative 'imcconstants'
22
+
23
+
24
+ def aaa_get_compute_auth_tokens(cookie)
25
+ # Auto-generated IMC XML API Method.
26
+ method = ExternalMethod.new("AaaGetComputeAuthTokens")
27
+
28
+ method.set_property("cookie",cookie)
29
+
30
+ xml_request = method.to_xml(nil, WriteXmlOption::DIRTY, nil)
31
+ return xml_request
32
+
33
+ end
34
+
35
+ def aaa_keep_alive(cookie)
36
+ # Auto-generated IMC XML API Method.
37
+ method = ExternalMethod.new("AaaKeepAlive")
38
+
39
+ method.set_property("cookie",cookie)
40
+
41
+ xml_request = method.to_xml(nil, WriteXmlOption::DIRTY, nil)
42
+ return xml_request
43
+
44
+ end
45
+
46
+ def aaa_login(in_name, in_password)
47
+ # Auto-generated IMC XML API Method.
48
+ method = ExternalMethod.new("AaaLogin")
49
+
50
+ method.set_property("in_name",in_name)
51
+ method.set_property("in_password",in_password)
52
+
53
+ xml_request = method.to_xml(nil, WriteXmlOption::DIRTY, nil)
54
+ return xml_request
55
+
56
+ end
57
+
58
+ def aaa_logout(in_cookie)
59
+ # Auto-generated IMC XML API Method.
60
+ method = ExternalMethod.new("AaaLogout")
61
+
62
+ method.set_property("in_cookie",in_cookie)
63
+
64
+ xml_request = method.to_xml(nil, WriteXmlOption::DIRTY, nil)
65
+ return xml_request
66
+
67
+ end
68
+
69
+ def aaa_refresh(in_cookie, in_name, in_password)
70
+ # Auto-generated IMC XML API Method.
71
+ method = ExternalMethod.new("AaaRefresh")
72
+
73
+ method.set_property("in_cookie",in_cookie)
74
+ method.set_property("in_name",in_name)
75
+ method.set_property("in_password",in_password)
76
+
77
+ xml_request = method.to_xml(nil, WriteXmlOption::DIRTY, nil)
78
+ return xml_request
79
+
80
+ end
81
+
82
+ def config_conf_mo(cookie, dn, in_config, in_hierarchical=YesOrNo.FALSE)
83
+ # Auto-generated IMC XML API Method.
84
+ method = ExternalMethod.new("ConfigConfMo")
85
+
86
+ method.set_property("cookie",cookie)
87
+ method.set_property("dn",dn)
88
+ method.set_property("in_config",in_config)
89
+ method.set_property("in_hierarchical", (ImcGenUtils::AFFIRMATIVE_LIST.include? in_hierarchical) ? true : false)
90
+
91
+ xml_request = method.to_xml(nil, WriteXmlOption::DIRTY, nil)
92
+ return xml_request
93
+
94
+ end
95
+
96
+ def config_conf_mos(cookie, in_configs, in_hierarchical=YesOrNo.FALSE)
97
+ # Auto-generated IMC XML API Method.
98
+ method = ExternalMethod.new("ConfigConfMos")
99
+
100
+ method.set_property("cookie",cookie)
101
+ method.set_property("in_configs",in_configs)
102
+ method.set_property("in_hierarchical", (ImcGenUtils::AFFIRMATIVE_LIST.include? in_hierarchical) ? true : false)
103
+
104
+ xml_request = method.to_xml(nil, WriteXmlOption::DIRTY, nil)
105
+ return xml_request
106
+
107
+ end
108
+
109
+ def config_resolve_children(cookie, class_id, in_dn, in_hierarchical=YesOrNo.FALSE)
110
+ # Auto-generated IMC XML API Method.
111
+ method = ExternalMethod.new("ConfigResolveChildren")
112
+
113
+ meta_class_id = ImcCoreUtils.find_class_id_in_mo_meta_ignore_case(class_id)
114
+ if !meta_class_id.nil?
115
+ class_id = ImcGenUtils.word_l(meta_class_id)
116
+ end
117
+ method.set_property("class_id",class_id)
118
+ method.set_property("cookie",cookie)
119
+ method.set_property("in_dn",in_dn)
120
+ method.set_property("in_hierarchical", (ImcGenUtils::AFFIRMATIVE_LIST.include? in_hierarchical) ? true : false)
121
+
122
+ xml_request = method.to_xml(nil, WriteXmlOption::DIRTY, nil)
123
+ return xml_request
124
+
125
+ end
126
+
127
+ def config_resolve_class(cookie, class_id, in_hierarchical=YesOrNo.FALSE)
128
+ # Auto-generated IMC XML API Method.
129
+ method = ExternalMethod.new("ConfigResolveClass")
130
+
131
+ meta_class_id = ImcCoreUtils.find_class_id_in_mo_meta_ignore_case(class_id)
132
+ if !meta_class_id.nil?
133
+ class_id = ImcGenUtils.word_l(meta_class_id)
134
+ end
135
+ method.set_property("class_id",class_id)
136
+ method.set_property("cookie",cookie)
137
+ method.set_property("in_hierarchical", (ImcGenUtils::AFFIRMATIVE_LIST.include? in_hierarchical) ? true : false)
138
+
139
+ xml_request = method.to_xml(nil, WriteXmlOption::DIRTY, nil)
140
+ return xml_request
141
+
142
+ end
143
+
144
+ def config_resolve_dn(cookie, dn, in_hierarchical=YesOrNo.FALSE)
145
+ # Auto-generated IMC XML API Method.
146
+ method = ExternalMethod.new("ConfigResolveDn")
147
+
148
+ method.set_property("cookie",cookie)
149
+ method.set_property("dn",dn)
150
+ method.set_property("in_hierarchical", (ImcGenUtils::AFFIRMATIVE_LIST.include? in_hierarchical) ? true : false)
151
+
152
+ xml_request = method.to_xml(nil, WriteXmlOption::DIRTY, nil)
153
+ return xml_request
154
+
155
+ end
156
+
157
+ def config_resolve_parent(cookie, dn, in_hierarchical=YesOrNo.FALSE)
158
+ # Auto-generated IMC XML API Method.
159
+ method = ExternalMethod.new("ConfigResolveParent")
160
+
161
+ method.set_property("cookie",cookie)
162
+ method.set_property("dn",dn)
163
+ method.set_property("in_hierarchical", (ImcGenUtils::AFFIRMATIVE_LIST.include? in_hierarchical) ? true : false)
164
+
165
+ xml_request = method.to_xml(nil, WriteXmlOption::DIRTY, nil)
166
+ return xml_request
167
+
168
+ end
169
+
170
+ def event_subscribe(cookie)
171
+ # Auto-generated IMC XML API Method.
172
+ method = ExternalMethod.new("EventSubscribe")
173
+
174
+ method.set_property("cookie",cookie)
175
+
176
+ xml_request = method.to_xml(nil, WriteXmlOption::DIRTY, nil)
177
+ return xml_request
178
+
179
+ end
180
+
181
+ def event_unsubscribe(cookie)
182
+ # Auto-generated IMC XML API Method.
183
+ method = ExternalMethod.new("EventUnsubscribe")
184
+
185
+ method.set_property("cookie",cookie)
186
+
187
+ xml_request = method.to_xml(nil, WriteXmlOption::DIRTY, nil)
188
+ return xml_request
189
+
190
+ end
@@ -0,0 +1,669 @@
1
+ #!/usr/bin/ruby
2
+ # Copyright 2017 Cisco Systems, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ # This module contains the Managed Object and Generic Managed Object class
16
+
17
+ require_relative 'imcgenutils'
18
+ require_relative 'imccoreutils'
19
+ require_relative 'imccoremeta'
20
+ require_relative 'imcxmlcodec'
21
+
22
+ private
23
+ class GenericProp
24
+
25
+ attr_accessor :name
26
+ attr_accessor :value
27
+ attr_accessor :is_dirty
28
+
29
+ #Internal class to handle the unknown property
30
+ def initialize(name, value, is_dirty)
31
+ @name = name
32
+ @value = value
33
+ @is_dirty = is_dirty
34
+ end
35
+ end
36
+
37
+ class ManagedObject < ImcBase
38
+
39
+ # This class structures/represents all the managed objects.
40
+
41
+ attr_reader :parent_mo
42
+ attr_reader :parent_dn
43
+ attr_reader :dn
44
+ attr_reader :mo_class
45
+ DUMMY_DIRTY = "0x1L"
46
+
47
+ @@internal_prop = ["dirty_mask", "class_id", "child", "handle",'']
48
+ @@internal_prop.freeze
49
+ def initialize(class_id: nil, parent_mo_or_dn: nil, from_xml_response: false, **kwargs)
50
+
51
+ @parent_mo = nil
52
+ @status = nil
53
+ @parent_dn = nil
54
+ @xtra_props = {}
55
+ @xtra_props_dirty_mask = 0x1
56
+ @mo_class = Object.const_get(self.class.name)
57
+
58
+ if parent_mo_or_dn
59
+ if parent_mo_or_dn.is_a? ManagedObject
60
+ @parent_mo = parent_mo_or_dn
61
+ @parent_dn = @parent_mo.dn
62
+ elsif parent_mo_or_dn.is_a? String
63
+ @parent_dn = parent_mo_or_dn
64
+ else
65
+ raise ValueError.new('parent mo or dn must be specified')
66
+ end
67
+ end
68
+
69
+ if !from_xml_response
70
+ rn_set()
71
+ dn_set()
72
+ end
73
+
74
+ mo_meta = ImcCoreUtils.get_mo_meta(@mo_class)
75
+ xml_attribute = mo_meta.xml_attribute
76
+
77
+ super(ImcGenUtils.word_u(xml_attribute))
78
+
79
+ if @parent_mo
80
+ @parent_mo.child_add(self)
81
+ end
82
+
83
+ if kwargs
84
+ kwargs.each do |prop_name, prop_value|
85
+ if ImcCoreUtils.prop_exists(@mo_class, prop_name.to_s)
86
+ set_prop(prop_name, prop_value)
87
+ end
88
+ end
89
+ end
90
+ end
91
+
92
+ def mark_dirty()
93
+ #Method to mark the managed object dirty
94
+ if self.class.name.equal? "ManagedObject" and !self.is_dirty()
95
+ self.dirty_mask = ManagedObject.DUMMY_DIRTY
96
+ elsif instance_variable_defined?("mo_meta")
97
+ self.dirty_mask = self.mo_meta.mask
98
+ end
99
+ end
100
+
101
+
102
+ def is_dirty()
103
+ #This method checks if managed object is dirty
104
+ condition1 = @dirty_mask.to_i.equal? 0
105
+ condition2 = child_is_dirty()
106
+ return !condition1 || condition2
107
+ end
108
+
109
+
110
+ def make_rn()
111
+ #This method returns the Rb for a managed Object
112
+
113
+ mo_meta = ImcCoreUtils.get_mo_meta(self.mo_class)
114
+ rn_pattern = mo_meta.rn
115
+ rn_pattern.scan(/\[([^\]]*)\]/) do |prop|
116
+ prop_name = prop[0]
117
+
118
+ if ImcCoreUtils.prop_exists(@mo_class, prop_name)
119
+ prop_value = self.instance_variable_get("@" + prop_name)
120
+
121
+ if prop_value
122
+ rn_pattern = rn_pattern.gsub(/\[#{prop_name}\]/, prop_value)
123
+ else
124
+ raise ImcValidationException("Property #{prop} was None in make_rn")
125
+ end
126
+
127
+ else
128
+ #log.debug('Property "%s" was not found in make_rn arguments' % prop)
129
+ raise ImcValidationException("Property #{prop} was not found in make_rn arguments")
130
+ end
131
+ end
132
+ return rn_pattern
133
+ end
134
+
135
+ def to_xml(xml_doc=nil, option=nil, elem_name=nil, cookie=nil)
136
+ #Method writes the xml representation of the Managed Object
137
+
138
+ #unknown_properties = []
139
+
140
+ if option == WriteXmlOption::DIRTY and !is_dirty()
141
+ return
142
+ end
143
+
144
+ platform = nil
145
+ handle = nil
146
+
147
+ if cookie
148
+ handle = ImcCoreUtils.get_handle_from_cookie(cookie)
149
+
150
+ if handle
151
+ platform = handle.platform
152
+ end
153
+
154
+ end
155
+
156
+ mo_meta = ImcCoreUtils.get_mo_meta(self.mo_class)
157
+ xml_attribute = mo_meta.xml_attribute
158
+ xml_obj = elem_create(xml_attribute, xml_doc=xml_doc, elem_name)
159
+
160
+ self.instance_variables.each do |key|
161
+ key_str = key.to_s
162
+ key_str[0] = ''
163
+ #hash = self.class.prop_meta
164
+ if key_str != "rn" and ImcCoreUtils.prop_exists(
165
+ self.mo_class,
166
+ key_str,
167
+ platform=platform)
168
+ mo_prop_meta = ImcCoreUtils.get_prop_meta(self.mo_class, key_str, platform=platform)
169
+
170
+ if option != WriteXmlOption::DIRTY or (!mo_prop_meta.mask.nil? and (self.dirty_mask & mo_prop_meta.mask !=0))
171
+ value = instance_variable_get(key)
172
+ if !value.nil?
173
+ if handle
174
+ if(mo_prop_meta.version.le(handle.version))
175
+ xml_obj.add_attribute(mo_prop_meta.xml_attribute, value)
176
+ end
177
+ else
178
+ xml_obj.add_attribute(mo_prop_meta.xml_attribute, value)
179
+ end
180
+ end
181
+ end
182
+
183
+ else
184
+
185
+ if !@xtra_props.has_key? key
186
+ #This is an internal property
187
+ #This should not be a part of the xml
188
+ next
189
+ end
190
+
191
+ if option != WriteXmlOption.DIRTY or xtra_props[key].is_dirty
192
+ value = xtra_props[key].value
193
+ if !value.nil?
194
+ xml_obj.add_attribute(key, value)
195
+ end
196
+ end
197
+
198
+ end
199
+ end
200
+
201
+ if !xml_obj.attributes.include?("dn")
202
+ xml_obj.add_attribute('dn', self.instance_variable_get(:@dn))
203
+ end
204
+
205
+ child_to_xml(xml_obj, option)
206
+ return xml_obj
207
+ end
208
+
209
+ def check_prop_match(**kwargs)
210
+ kwargs.each do |prop_name, prop_value|
211
+ #prop_name_s = prop_name.to_s
212
+ if prop_value.nil?
213
+ next
214
+ end
215
+ if !ImcCoreUtils.prop_exists(self.mo_class, prop_name.to_s)
216
+ raise ValueError.new("Invalid Property Name Exception - Prop #{prop_name}")
217
+ end
218
+ if prop_value != self.instance_variable_get("@" + prop_name.to_s)
219
+ return false
220
+ end
221
+ end
222
+ return true
223
+ end
224
+
225
+ def set_prop_multiple(**kwargs)
226
+ kwargs.each do |prop_name, prop_value|
227
+ if ImcCoreUtils.prop_exists(self.mo_class, prop_name)
228
+ set_prop(prop_name.to_s, prop_value)
229
+ else
230
+ ImcWarning("Invalid Property Name for Class [#{self.class.to_s}]: Prop <#{prop_name.to_s}>, setting it forcefully")
231
+ set_prop(prop_name.to_s, prop_value, forced: true)
232
+ end
233
+ end
234
+ end
235
+
236
+ def from_xml(elem, handle=nil)
237
+ # Method updates the object from the xml representation of the managed object.
238
+
239
+ @handle = handle
240
+ if elem.attributes
241
+ if !self.class.name.equal? "ManagedObject"
242
+ elem.attributes.each do |attr_name, attr_value|
243
+ if ImcCoreUtils.property_exists_in_prop_map(self.mo_class, attr_name)
244
+ attr_name = ImcCoreUtils.get_property_from_prop_map(self.mo_class, attr_name)
245
+ else
246
+ @xtra_props[attr_name.to_sym] = GenericProp.new(attr_name, attr_value, false)
247
+ end
248
+ self.instance_variable_set("@" + attr_name, attr_value)
249
+ end
250
+ else
251
+ elem.attributes.each do |attr_name, attr_value|
252
+ self.instance_variable_set("@" + attr_name, attr_value)
253
+ end
254
+ end
255
+ end
256
+
257
+
258
+ if elem.children
259
+ elem.children.each do |child_elem|
260
+ if !child_elem.is_a? Element
261
+ next
262
+ end
263
+ if !self.class.name.equal? "ManagedObject" and ImcCoreUtils.get_mo_meta(self.mo_class).field_names.include? child_elem.name
264
+ next
265
+ end
266
+
267
+ class_id = ImcGenUtils.word_u(child_elem.name)
268
+ child_obj = ImcCoreUtils.get_imc_obj(class_id, child_elem, nil)
269
+
270
+ child_obj.from_xml(child_elem, handle)
271
+ self.child_add(child_obj)
272
+ end
273
+ end
274
+ end
275
+
276
+ def get_version(platform)
277
+ =begin
278
+ Method to get the IMC version from which this MO is supported
279
+ =end
280
+ mo_meta = ImcCoreUtils.get_mo_meta(self, platform)
281
+ return mo_meta.version
282
+ end
283
+
284
+ def sync_mo(mo)
285
+ #Method to return string representation of a managed object.
286
+ #TBD
287
+ end
288
+
289
+ def show_tree(level=0)
290
+ #Method to return string representation of a managed object.
291
+ end
292
+
293
+ def show_hierarchy(level=0, depth=nil, show_level=[])
294
+ #Method to print hierarchy
295
+ end
296
+
297
+ def set_prop(name, value, mark_dirty: true, forced: false)
298
+ =begin
299
+ Internal method to set the properties after validation
300
+
301
+ Args:
302
+ name (str): property name
303
+ value (str): property value
304
+ mark_dirty (bool): if True, property will be part of xml request
305
+ forced (bool): if True, set the value without validation
306
+
307
+ Returns:
308
+ None
309
+ =end
310
+
311
+ if value.nil?
312
+ return
313
+ end
314
+ if !forced
315
+ #prop_meta = @mo_class.prop_meta[name.to_s]
316
+ prop_meta = ImcCoreUtils.get_prop_meta(self.mo_class, name.to_s)
317
+ #if prop_meta.access != MoPropertyMeta::READ_WRITE
318
+ if !ImcCoreUtils.is_writable_prop(self.mo_class, name.to_s)
319
+ if self.instance_variable_defined?("@" + name) and prop_meta.access != MoPropertyMeta::CREATE_ONLY
320
+ raise ValueError.new("#{name} is not a read-write property.")
321
+ end
322
+ end
323
+
324
+ if !prop_meta.validate_property_value(value)
325
+ raise ValueError.new("Invalid Value Exception - #{self.class.name}: Prop <#{name}>, Value <#{value}> ")
326
+ end
327
+
328
+ if prop_meta.mask and mark_dirty
329
+ @dirty_mask |= prop_meta.mask
330
+ end
331
+ end
332
+ self.instance_variable_set("@" + name.to_s, value)
333
+ end
334
+
335
+
336
+ private
337
+
338
+ def setattr(name, value)
339
+
340
+ if self.instance_variable_defined? "prop_meta" and \
341
+ ImcCoreUtils.prop_exists(self, name)
342
+
343
+ if ImcCoreUtils.prop_exists(self.mo_class, name)
344
+ if self.instance_variable_defined?("@" + name)
345
+ set_prop(name, value)
346
+ end
347
+ else
348
+ if value
349
+ #if not self.prop_meta[name].validate_property_value(value):
350
+ # raise ValueError.new("Invalid Value Exception - [#{self.class.name}]: Prop <#{name}>, Value<#{value}>. ")
351
+ #end
352
+ self.instance_variable_set("@" + name, value)
353
+ prop = ImcCoreUtils.get_prop_meta(self, name)
354
+ if !prop.mask.nil?
355
+ self.dirty_mask |= prop.mask
356
+ end
357
+ end
358
+ end
359
+ elsif name.start_with("_")
360
+ self.instance_variable_set("@"+name, value)
361
+ else
362
+ # These are properties which the current version of imc sdk
363
+ # does not know of.
364
+ # The code will come here lot often, when using older version of
365
+ # imcsdk with newer releases on the IMC.
366
+ # This needs to be handled so that the same sdk can work across
367
+ # multiple imc releases
368
+ self.xtra_props[name.to_sym] = GenericProp.new(name, value, true)
369
+ self.dirty_mask |= self.xtra_props_dirty_mask
370
+ self.instance_variable_set("@"+name, value)
371
+ end
372
+ end
373
+
374
+ def rn_set()
375
+
376
+ #Internal method to set rn
377
+
378
+ if ImcCoreUtils.prop_exists(self.mo_class, "rn")
379
+ @rn = make_rn()
380
+ else
381
+ @rn = ""
382
+ end
383
+ end
384
+
385
+ def dn_set()
386
+
387
+ #Internal method to set dn
388
+ if ImcCoreUtils.prop_exists(self.mo_class, "dn")
389
+ if !self.parent_dn.nil?
390
+ @dn = @parent_dn + '/' + @rn
391
+ else
392
+ @dn = @rn
393
+ end
394
+ else
395
+ @dn = ""
396
+ end
397
+ end
398
+
399
+ end
400
+
401
+ def generic_mo_from_xml(xml_str)
402
+ #create GenericMo Object from xml String
403
+ =begin
404
+ create GenericMo object from xml string
405
+ =end
406
+ root_elem = ET.fromstring(xml_str)
407
+ class_id = root_elem.name
408
+ gmo = GenericMo.new(class_id)
409
+ gmo.from_xml(root_elem)
410
+ return gmo
411
+ end
412
+
413
+ def generic_mo_from_xml_elem(elem)
414
+ #create GenericMo object from xml element
415
+ =begin
416
+ create GenericMo object from xml element
417
+ =end
418
+
419
+ #from . import imcxmlcodec as xc
420
+ xml_str = ImcXmlCodec.to_xml_str(elem)
421
+ gmo = generic_mo_from_xml(xml_str)
422
+ return gmo
423
+ end
424
+
425
+
426
+ class GenericMo < ImcBase
427
+
428
+ =begin
429
+ This class implements a Generic Managed Object.
430
+ Args:
431
+ class_id (str): class id of managed object
432
+ parent_mo_or_dn (ManagedObject or str): parent managed object or dn
433
+ =end
434
+
435
+ # Every variable that should not be a part of the final xml
436
+ # should start with a underscore in this class
437
+
438
+
439
+ def initialize(class_id, parent_mo_or_dn=nil, **kwargs)
440
+ @properties = {}
441
+
442
+ if parent_mo_or_dn.is_a? GenericMo
443
+ @parent_mo = parent_mo_or_dn
444
+ @parent_dn = parent_mo_or_dn.dn
445
+ elsif parent_mo_or_dn.is_a? String
446
+ @parent_dn = parent_mo_or_dn
447
+ @parent_mo = nil
448
+ elsif parent_mo_or_dn.nil?
449
+ @parent_dn=""
450
+ @parent_mo=nil
451
+ else
452
+ raise ValueError.new("parent_mo_or_dn should be an instance of str or Generic Mo")
453
+ end
454
+
455
+ super(class_id)
456
+
457
+ if kwargs
458
+ kwargs.each do |key, value|
459
+ instance_variable_set(:key, value.to_s)
460
+ properties[:key] = value.to_s
461
+ end
462
+ end
463
+ if self.instance_variable_defined?("@rn") and self.instance_variable_defined?("@dn")
464
+
465
+ elsif self.instance_variable_defined?("@rn") and !self.instance_variable_defined?("@dn")
466
+ if self.parent_dn and self.parent_dn != ""
467
+ self.dn = self.parent_dn + '/' + self.rn
468
+ self.properties[:dn] = self.dn
469
+ else
470
+ self.dn = self.rn
471
+ self.properties[:dn] = self.dn
472
+ end
473
+ elsif !self.instance_variable_defined?("@rn") and self.instance_variable_defined?("@dn")
474
+ self.rn = File.basename(self.dn)
475
+ self.properties[:rn] = self.rn
476
+ else
477
+ self.rn = ""
478
+ self.dn = ""
479
+ end
480
+ if self.parent_mo
481
+ self.parent_mo.child_add(self)
482
+ end
483
+ end
484
+
485
+ def to_xml(xml_doc=nil, option=nil, cookie=nil)
486
+ =begin
487
+ This method returns the xml element node for the current object
488
+ with it's hierarchy.
489
+ Args:
490
+ xml_doc: document to which the Mo attributes are added.
491
+ Can be None.
492
+ option: not required for Generic Mo class object
493
+ Example:
494
+ from imcmsdk.imcmo import GenericMo\n
495
+ args = {"a": 1, "b": 2, "c":3}\n
496
+ obj = GenericMo("testLsA", "org-root", **args)\n
497
+ obj1 = GenericMo("testLsB", "org-root", **args)\n
498
+ obj.add_child(obj1)\n
499
+ elem = obj.write_xml()\n
500
+ import imcmsdk.imcxmlcodec as xc\n
501
+ xc.to_xml_str(elem)\n
502
+ Output:
503
+ '<testLsA a="1" b="2" c="3" dn="org-root/" rn="">\n
504
+ <testLsB a="1" b="2" c="3" dn="org-root/" rn="" />\n
505
+ </testLsA>'
506
+ =end
507
+
508
+ if xml_doc.nil?
509
+ xml_obj = Element.new (ImcGenUtils.word_l(self._class_id))
510
+ else
511
+ xml_obj = xml_obj.add_element(ImcGenUtils.word_l(self._class_id))
512
+ end
513
+ self.instance_variables.each do |key|
514
+ if !key.start_with?("_")
515
+ #xml_obj.set(key, getattr(self, key))
516
+ value = instance_variable_get(key)
517
+ if !value.nil?
518
+ xml_obj.add_attribute(key, value)
519
+ end
520
+ end
521
+ end
522
+ self.child_to_xml(xml_obj)
523
+ return xml_obj
524
+ end
525
+
526
+ def from_xml(elem, handle=nil)
527
+ =begin
528
+ This method is form objects out of xml element.
529
+ This is called internally from imcxmlcode.from_xml_str
530
+ method.
531
+ Example:
532
+ xml = '<testLsA a="1" b="2" c="3" dn="org-root/" rn="">
533
+ <testLsB a="1" b="2" c="3" dn="org-root/" rn="" /></testLsA>'\n
534
+ obj = xc.from_xml_str(xml)\n
535
+ print type(obj)\n
536
+ Outputs:
537
+ <class 'imcsdk.imcmo.GenericMo'>
538
+ =end
539
+
540
+ if elem.nil?
541
+ return nil
542
+ end
543
+ self.handle = handle
544
+ self.class_id = elem.name
545
+ if elem.attributes
546
+ elem.attributes.each do |attr_name, attr_value|
547
+ self.instance_variable_set("@" + attr_name, attr_value)
548
+ self.properties[attr_name.to_sym] = attr_value.to_s
549
+ end
550
+ end
551
+ if self.rn and self.dn
552
+
553
+ elsif self.rn and !self.dn
554
+ if self.parent_dn and self.parent_dn != ""
555
+ self.dn = self.parent_dn + '/' + self.rn
556
+ self.properties[:dn] = self.dn
557
+ else
558
+ self.dn = self.rn
559
+ self.properties[:dn] = self.dn
560
+ end
561
+ elsif !self.rn and self.dn
562
+ self.rn = File.basename(self.dn)
563
+ self.properties[:rn] = self.rn
564
+ end
565
+
566
+ #children = elem.getchildren()
567
+ if elem.children
568
+ elem.children.each do |child_elem|
569
+ if !child_elem.is_a? Element
570
+ next
571
+ end
572
+ class_id = ImcGenUtils.word_u(child.name)
573
+ pdn = nil
574
+ if self.instance_variable_defined?("@dn")
575
+ pdn = self.dn
576
+ end
577
+ child_obj = GenericMo.new(class_id, pdn)
578
+ self.child_add(child_obj)
579
+ child_obj.from_xml(child, handle)
580
+ end
581
+ end
582
+ end
583
+
584
+
585
+ def to_mo()
586
+ =begin
587
+ Converts GenericMo to ManagedObject
588
+ =end
589
+
590
+ #from . import imcmeta
591
+
592
+ class_id = ImcGenUtils.word_u(self.class_id)
593
+ if !($MO_CLASS_ID.include? class_id)
594
+ return nil
595
+ end
596
+ mo = _get_mo_obj(class_id)
597
+ if !mo # or not isinstance(mo, ManagedObject):
598
+ return nil
599
+ end
600
+
601
+ for prop in self.properties
602
+ if ImcCoreUtils.property_exists_in_prop_map(mo, prop)
603
+ prop = ImcCoreUtils.get_property_from_prop_map(mo, prop)
604
+ value = self.properties[prop]
605
+ mo.instance_variable_set(prop.to_sym, value)
606
+ #mo.__dict__[ImcCoreUtils.get_property_from_prop_map(mo, prop)] = \
607
+ # self.properties[prop]
608
+ else
609
+ ImcWarning("Property #{ImcGenUtils.word_u(prop)} Not Exist in MO #{child_id}")
610
+ end
611
+ end
612
+ if self.child.size
613
+ for ch_ in self.child
614
+ mo_ch = ch_.to_mo()
615
+ mo.child_add(mo_ch)
616
+ end
617
+ end
618
+
619
+ return mo
620
+ end
621
+
622
+ private
623
+
624
+
625
+ def _get_mo_obj(class_id)
626
+ =begin
627
+ Internal methods to create managed object from class_id
628
+ =end
629
+
630
+ #import inspect
631
+ mo_class = ImcCoreUtils.load_class(class_id)
632
+ mo_class_params = mo_class.instance_method(:initialize).parameters.map(&:last).map(&:to_s)
633
+
634
+ mo_class_param_dict = {}
635
+ for param in mo_class_params
636
+ prop = ImcCoreUtils.get_prop_meta(mo_class, param)
637
+ mo_param = prop.xml_attribute
638
+ if !(self.properties.include? mo_param)
639
+ if self.properties.inlcude?("rn")
640
+ rn_str = self.properties['rn']
641
+ elsif self.properties.include?("dn")
642
+ rn_str = File.basename(self.properties['dn'])
643
+ end
644
+
645
+ mo_meta = ImcCoreUtils.get_mo_meta(mo_class)
646
+ rn_pattern = mo_meta.rn
647
+ np_dict = ImcCoreUtils.get_naming_props(rn_str, rn_pattern)
648
+ if !(np_dict.inlcude?(param))
649
+ mo_class_param_dict[param] = ""
650
+ else
651
+ mo_class_param_dict[param] = np_dict[param]
652
+ end
653
+ else
654
+ mo_class_param_dict[param] = self.properties[mo_param]
655
+ end
656
+ end
657
+
658
+ p_dn = ""
659
+
660
+ mo_meta = ImcCoreUtils.get_mo_meta(mo_class)
661
+ class_parents = mo_meta.parents
662
+ if class_parents.include?("topRoot")
663
+ mo_obj = mo_class(**mo_class_param_dict)
664
+ else
665
+ mo_obj = mo_class(p_dn, **mo_class_param_dict)
666
+ end
667
+ return mo_obj
668
+ end
669
+ end