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,549 @@
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
+ $:.unshift(*Dir[::File.expand_path('.',File.dirname(__FILE__))])
15
+
16
+ require 'imcexception'
17
+ require 'imcxmlcodec'
18
+ require 'imcdriver'
19
+ require 'imcmethodfactory'
20
+ require 'imccoremeta'
21
+ require 'imccoreutils'
22
+ require "mometa/top/TopSystem"
23
+
24
+ class ImcSession < Object
25
+
26
+ =begin
27
+ ImcSession class is session interface for any Imc related communication.
28
+ Parent class of ImcHandle, used internally by ImcHandle class.
29
+ =end
30
+ attr_accessor :ip
31
+ attr_accessor :username
32
+ attr_accessor :password
33
+ attr_accessor :proxy
34
+ attr_accessor :uri
35
+ attr_accessor :platform
36
+ attr_accessor :model
37
+ attr_accessor :imc
38
+ attr_accessor :name
39
+ attr_accessor :cookie
40
+ attr_accessor :version
41
+ attr_accessor :refresh_period
42
+ attr_accessor :priv
43
+ attr_accessor :domains
44
+ attr_accessor :channel
45
+ attr_accessor :evt_channel
46
+ attr_accessor :last_update_time
47
+ attr_accessor :force
48
+ attr_accessor :session_id
49
+ attr_accessor :driver
50
+ attr_accessor :refresh_timer
51
+ def initialize(ip:, username:, password:, port: "80", secure: nil, proxy: nil)
52
+ @ip = ip
53
+ @username = username
54
+ @password = password
55
+ @proxy = proxy
56
+ @uri = _create_uri(port, secure)
57
+ @platform = nil
58
+ @model = nil
59
+ @imc = ip
60
+ @name = nil
61
+ @cookie = nil
62
+ @session_id = nil
63
+ @version = nil
64
+ @refresh_period = nil
65
+ @priv = nil
66
+ @domains = nil
67
+ @channel = nil
68
+ @evt_channel = nil
69
+ @last_update_time = nil
70
+
71
+ @refresh_timer = nil
72
+ @force = false
73
+ @dump_xml = false
74
+ @redirect = false
75
+
76
+ @driver = ImcDriver.new(proxy=@proxy)
77
+
78
+ end
79
+
80
+ def post(uri, data: nil, read: true, timeout: "60")
81
+ =begin
82
+ sends the request and receives the response from imcm server
83
+
84
+ Args:
85
+ uri (str): URI of the the imc Server
86
+ data (str): request data to send via post request
87
+
88
+ Returns:
89
+ response xml string
90
+
91
+ Example:
92
+ response = post("http://192.168.1.1:80", data: xml_str)
93
+ =end
94
+ response = self.driver.post(uri=uri, data=data, false, read=read, timeout=timeout)
95
+ return response
96
+ end
97
+
98
+ def post_xml(xml_str, read: true, timeout: "60")
99
+ =begin
100
+ sends the xml request and receives the response from imc server
101
+
102
+ Args:
103
+ xml_str (str): xml string
104
+ read (bool): if True, returns response.read() else returns object.
105
+ timeout (int): if set, this will be used as timeout in secs for urllib2
106
+
107
+ Returns:
108
+ response xml string
109
+
110
+ Example:
111
+ response = post_xml('<aaaLogin inName="user" inPassword="pass">')
112
+
113
+ =end
114
+
115
+ imc_uri = self.uri + "/nuova"
116
+ response_str = post(imc_uri, data: xml_str, read: read, timeout: timeout)
117
+
118
+ return response_str
119
+ end
120
+
121
+ def dump_xml_request(elem)
122
+ #TBD
123
+ end
124
+
125
+ def dump_xml_response(resp)
126
+
127
+ #TBD implementation
128
+ end
129
+
130
+ def post_elem(elem, timeout: "60")
131
+ =begin
132
+ sends the request and receives the response from imc server using xml
133
+ element
134
+
135
+ Args:
136
+ elem (xml element)
137
+ timeout (int): if set, it is used as timeout in secs for urllib2
138
+
139
+ Returns:
140
+ response xml string
141
+
142
+ Example:
143
+ response = post_elem(elem=xml_element)
144
+ =end
145
+ if _is_stale_cookie(elem)
146
+ elem.attributes["cookie"] = self.cookie
147
+ end
148
+ xml_str = ImcXmlCodec.to_xml_str(elem)
149
+ response_str = post_xml(xml_str, timeout: timeout)
150
+
151
+ if response_str and !response_str.empty?
152
+ response = ImcXmlCodec.from_xml_str(response_str)
153
+ if elem.name.equal? "aaaRefresh"
154
+ _update_cookie(response)
155
+ end
156
+ return response
157
+ end
158
+ return nil
159
+ end
160
+
161
+ def file_download(url_suffix, file_dir, file_name, progress=Progress())
162
+
163
+ #TBD implementation
164
+ end
165
+
166
+ def file_upload(url_suffix, file_dir, file_name, progress=Progress())
167
+
168
+ #TBD implementation
169
+ end
170
+
171
+ private
172
+
173
+ def _login(auto_refresh: false, force: false, timeout: "60")
174
+ =begin
175
+ Internal method responsible to do a login on imc server.
176
+
177
+ Args:
178
+ auto_refresh (bool): if set to True, it refresh the cookie
179
+ continuously
180
+ force (bool): if set to True it reconnects even if cookie exists
181
+ and is valid for respective connection.
182
+
183
+ Returns:
184
+ true on successful connect
185
+ =end
186
+ self.force = force
187
+
188
+ if _validate_connection()
189
+ return true
190
+ end
191
+
192
+ elem = aaa_login(self.username, self.password)
193
+ response = post_elem(elem, timeout: timeout)
194
+ if response.error_code != 0
195
+ _clear()
196
+ raise ImcException.new(response.error_code, response.error_descr)
197
+ else
198
+ _update(response)
199
+ end
200
+
201
+ # Verify to connect to IMC only
202
+ if !_validate_imc()
203
+ raise ImcLoginError.new("Not a supported server.")
204
+ end
205
+
206
+ _update_version(response)
207
+ _update_domain_name_and_ip()
208
+
209
+ if auto_refresh
210
+ _start_refresh_timer()
211
+ end
212
+
213
+ ImcCoreUtils.add_handle_to_list(self)
214
+ return true
215
+ end
216
+
217
+
218
+ def _logout(timeout: nil)
219
+ =begin
220
+ Internal method to disconnect from imc server.
221
+
222
+ Args:
223
+ nil
224
+
225
+ Returns:
226
+ true on successful disconnect
227
+ =end
228
+ if self.cookie.nil?
229
+ return true
230
+ end
231
+
232
+ if self.refresh_timer
233
+ self.refresh_timer.cancel()
234
+ end
235
+
236
+ elem = aaa_logout(self.cookie)
237
+ response = post_elem(elem, timeout: timeout)
238
+
239
+ if response.error_code == 555
240
+ return true
241
+ end
242
+
243
+ if response.error_code != 0
244
+ raise ImcException.new(response.error_code, response.error_descr)
245
+ end
246
+ _clear()
247
+ return true
248
+ end
249
+
250
+ def _refresh(auto_relogin: false)
251
+ #Sends the aaaRefresh query to the imc to refresh the connection (to prevent session expiration).
252
+ _stop_refresh_timer()
253
+
254
+ elem = aaa_refresh(self.cookie, self.username, self.password)
255
+ response = self.post_elem(elem)
256
+ if response.error_code != 0
257
+ self.cookie = nil
258
+ if auto_relogin
259
+ return login()
260
+ end
261
+ return false
262
+ end
263
+ self.cookie = response.out_cookie
264
+ self.refresh_period = response.out_refresh_period.to_i
265
+ self.priv = response.out_priv.split(',')
266
+ self.domains = response.out_domains
267
+ self.last_update_time = Time.now.asctime
268
+
269
+ # re-enable the timer
270
+ _start_refresh_timer()
271
+ return true
272
+ end
273
+
274
+ def _update_cookie(response)
275
+ if response.error_code != 0
276
+ return
277
+ end
278
+ self.cookie = response.get_property("cookie")
279
+ end
280
+
281
+ def _is_stale_cookie(elem)
282
+ return ((elem.attributes.include? "cookie") and (elem.attributes["cookie"] != "") and !(elem.attributes["cookie"].equal? self.cookie))
283
+ end
284
+
285
+ def _validate_connection()
286
+ =begin
287
+ Internal method to validate if needs to reconnect or if exist use the existing connection
288
+ =end
289
+
290
+ if !self.cookie.nil? and self.cookie != ""
291
+ #if self.force == false
292
+ top_system = TopSystem.new()
293
+ elem = config_resolve_dn(self.cookie, String.new, false)
294
+ response = post_elem(elem)
295
+ if response.error_code != 0
296
+ return false
297
+ end
298
+ return true
299
+ #else
300
+ # logout()
301
+ #end
302
+ end
303
+ return false
304
+ end
305
+
306
+ def _validate_model(model)
307
+ valid_model_prefixes = ["UCSC", "UCS-E", "UCSS", "HX"]
308
+ valid_models = ["R460-4640810", "C260-BASE-2646"]
309
+
310
+ if valid_models.include?(model)
311
+ return true
312
+ end
313
+
314
+ valid_model_prefixes.each do |prefix|
315
+ if model.start_with?(prefix)
316
+ return true
317
+ end
318
+ end
319
+
320
+ return false
321
+ end
322
+
323
+ def _validate_imc()
324
+ #Validate IMC method validates if a given host is a valid IMC Server
325
+
326
+ model_validated = false
327
+ rack_elem = config_resolve_class(self.cookie, "biosUnit", false)
328
+
329
+ rack_elem_response = post_elem(rack_elem)
330
+
331
+ if rack_elem_response.nil? or rack_elem_response.error_code != 0 or rack_elem_response.get_outconfig_child().size == 0
332
+ _logout()
333
+ return false
334
+ end
335
+
336
+ if rack_elem_response.error_code == 0
337
+ model_name = String.new
338
+ #rack_elem_response.instance_variable_get(:@out_configs).instance_variable_get(:@child).each do |rack|
339
+ rack_elem_response.get_outconfig_child().each do |rack|
340
+ model_name = rack.model
341
+
342
+ if !_validate_model(model_name)
343
+ _logout()
344
+ return false
345
+ end
346
+
347
+ _set_platform(model_name, nil)
348
+ _set_model(model_name)
349
+ end
350
+ end
351
+
352
+ if _is_fabric_interconnect()
353
+ _logout()
354
+ return false
355
+ end
356
+
357
+ return true
358
+ end
359
+
360
+
361
+ def _set_model(model)
362
+ =begin
363
+ Internal method to set the server model
364
+ Not to be exposed at the handle
365
+ =end
366
+ class_ids = {
367
+ IMC_PLATFORM::TYPE_MODULAR => "ComputeServerNode",
368
+ IMC_PLATFORM::TYPE_CLASSIC => "ComputeRackUnit"
369
+ }
370
+
371
+ # Check for the right platform
372
+ if class_ids.include? self.platform
373
+ mo_list = self.query_classid(class_id: class_ids[self.platform])
374
+ if mo_list
375
+ self.model = mo_list[0].model
376
+ return
377
+ end
378
+ end
379
+
380
+ # Unknown platform, should not end up here
381
+ # Blindly assign the model passed
382
+ self.model = model
383
+ end
384
+
385
+ def _is_fabric_interconnect()
386
+ nw_elem = config_resolve_class(self.cookie, "networkElement", false)
387
+ begin
388
+ nw_elem_response = post_elem(nw_elem)
389
+ if nw_elem_response.error_code == 0
390
+ return true
391
+ else
392
+ return false
393
+ end
394
+ #rescue => exception
395
+ rescue Exception => exception
396
+ return false
397
+ end
398
+ end
399
+
400
+ def _set_platform(model=nil, platform=nil)
401
+ =begin
402
+ Internal method to set the platform type
403
+ Not to be exposed at the handle
404
+ =end
405
+ modular_platform_prefixes = ["UCSC-C3X", "UCSS-S32"]
406
+ if !platform.nil?
407
+ self.platform = platform
408
+ elsif model
409
+ self.platform = IMC_PLATFORM::TYPE_CLASSIC
410
+ for prefix in modular_platform_prefixes
411
+ if model.start_with? prefix
412
+ self.platform = IMC_PLATFORM::TYPE_MODULAR
413
+ end
414
+ end
415
+ end
416
+ end
417
+
418
+
419
+ def _update_version(response=nil)
420
+
421
+ require "mometa/firmware/FirmwareRunning"
422
+ # If the aaaLogin response has the version populated, we do not
423
+ # need to query for it
424
+ # There are cases where version is missing from aaaLogin response
425
+ # In such cases the later part of this method populates it
426
+ if !response.get_property("out_version").nil? and response.get_property("out_version") != ""
427
+ return
428
+ end
429
+
430
+ top_system = TopSystem.new()
431
+ firmware = FirmwareRunning.new(parent_mo_or_dn: top_system, \
432
+ deployment: FirmwareRunningConsts::DEPLOYMENT_SYSTEM)
433
+ elem = config_resolve_dn(self.cookie, firmware.dn, false)
434
+ response = self.post_elem(elem)
435
+ if response.error_code != 0
436
+ raise ImcException(response.error_code, \
437
+ response.error_descr)
438
+ end
439
+ firmware = response.get_outconfig_child()[0]
440
+ self.version = ImcVersion.new(firmware.version)
441
+ end
442
+
443
+ def _update_domain_name_and_ip()
444
+ elem = config_resolve_class(self.cookie, "topSystem", false)
445
+ response = self.post_elem(elem)
446
+ if response.error_code != 0
447
+ raise ImcException.new(response.error_code, response.error_descr)
448
+ end
449
+ top_system = response.get_outconfig_child[0]
450
+ self.imc = top_system.name
451
+ #self.virtual_ipv4_address = top_system.address
452
+ end
453
+
454
+ def _create_uri(port, secure)
455
+ =begin
456
+ Generates IMC URI used for connection
457
+
458
+ Args:
459
+ port (int or None): The port number to be used during connection
460
+ secure (bool or None): True for secure connection otherwise False
461
+
462
+ Returns:
463
+ uri (str)
464
+
465
+ Example:
466
+ uri = __create_uri(port=443, secure=True)
467
+ =end
468
+
469
+ port = _get_port(port, secure)
470
+ protocol = _get_proto(port, secure)
471
+
472
+ uri = "#{protocol}://#{self.ip}:#{port}"
473
+ return uri
474
+ end
475
+
476
+ def _update(response)
477
+ #Internal method to update the session variables
478
+ self.cookie = response.get_property("out_cookie")
479
+ self.session_id = response.get_property("out_session_id")
480
+ self.version = ImcVersion.new(response.get_property("out_version"))
481
+ self.refresh_period = response.get_property("out_refresh_period")
482
+ self.priv = response.get_property("out_priv")
483
+ self.domains = response.get_property("out_domains")
484
+ self.channel = response.get_property("out_channel")
485
+ self.evt_channel = response.get_property("out_evt_channel")
486
+ self.last_update_time = Time.now.asctime
487
+ end
488
+
489
+ def _start_refresh_timer()
490
+ #Internal method to support auto-refresh functionality.
491
+
492
+ if self.refresh_period > 60
493
+ interval = self.refresh_period.to_i - 60
494
+ else
495
+ interval = 60
496
+ end
497
+ #@refresh_timer = Timer.new (interval, Refresh())
498
+ #@refresh_timer.setDaemon(true)
499
+ #@refresh_timer.start
500
+ end
501
+
502
+ def _stop_refresh_timer()
503
+ #Internal method to support auto-refresh functionality.
504
+
505
+ if !self.refresh_timer.nil?
506
+ self.refresh_timer.cancel()
507
+ end
508
+ self.refresh_timer = nil
509
+ end
510
+
511
+ def _clear()
512
+ #Internal method to clear the session variables
513
+
514
+ self.name = nil
515
+ self.cookie = nil
516
+ self.session_id = nil
517
+ self.version = nil
518
+ self.refresh_period = nil
519
+ self.priv = nil
520
+ self.domains = nil
521
+ self.channel = nil
522
+ self.evt_channel = nil
523
+ #TBD
524
+ self.last_update_time = Time.now.asctime
525
+ #end
526
+ end
527
+
528
+ def _get_port(port, secure)
529
+ if !port.nil?
530
+ return port.to_i
531
+ end
532
+ if secure == false
533
+ return 80
534
+ end
535
+ return 443
536
+ end
537
+
538
+
539
+ def _get_proto(port, secure)
540
+ if secure.nil?
541
+ if port.to_s == "80"
542
+ return "http"
543
+ end
544
+ elsif secure == false
545
+ return "http"
546
+ end
547
+ return "https"
548
+ end
549
+ end