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.
- checksums.yaml +7 -0
- data/.gitignore +12 -0
- data/.rspec +2 -0
- data/.travis.yml +5 -0
- data/.yardopts +7 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +4 -0
- data/ImcSdk.gemspec +43 -0
- data/LICENSE +201 -0
- data/Makefile +9 -0
- data/README.md +79 -0
- data/Rakefile +15 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/docs/ImcHandle.html +2900 -0
- data/docs/_index.html +109 -0
- data/docs/class_list.html +51 -0
- data/docs/css/common.css +1 -0
- data/docs/css/full_list.css +58 -0
- data/docs/css/style.css +492 -0
- data/docs/file_list.html +56 -0
- data/docs/frames.html +17 -0
- data/docs/index.html +147 -0
- data/docs/js/app.js +248 -0
- data/docs/js/full_list.js +216 -0
- data/docs/js/jquery.js +4 -0
- data/docs/method_list.html +619 -0
- data/docs/top-level-namespace.html +10218 -0
- data/lib/ImcSdk.rb +395 -0
- data/lib/ImcSdk/apis/admin/ipmi.rb +99 -0
- data/lib/ImcSdk/apis/admin/ldap.rb +304 -0
- data/lib/ImcSdk/apis/admin/ntp.rb +202 -0
- data/lib/ImcSdk/apis/admin/user.rb +221 -0
- data/lib/ImcSdk/apis/server/bios.rb +311 -0
- data/lib/ImcSdk/apis/server/power.rb +219 -0
- data/lib/ImcSdk/apis/server/remotepresence.rb +170 -0
- data/lib/ImcSdk/apis/server/serveractions.rb +382 -0
- data/lib/ImcSdk/apis/server/storage.rb +438 -0
- data/lib/ImcSdk/apis/utils.rb +55 -0
- data/lib/ImcSdk/imcbasetype.rb +121 -0
- data/lib/ImcSdk/imcconstants.rb +1351 -0
- data/lib/ImcSdk/imccore.rb +220 -0
- data/lib/ImcSdk/imccoremeta.rb +271 -0
- data/lib/ImcSdk/imccoreutils.rb +441 -0
- data/lib/ImcSdk/imcdriver.rb +187 -0
- data/lib/ImcSdk/imcexception.rb +86 -0
- data/lib/ImcSdk/imcfiltertype.rb +228 -0
- data/lib/ImcSdk/imcgenutils.rb +29 -0
- data/lib/ImcSdk/imcmeta.rb +975 -0
- data/lib/ImcSdk/imcmethod.rb +182 -0
- data/lib/ImcSdk/imcmethodfactory.rb +190 -0
- data/lib/ImcSdk/imcmo.rb +669 -0
- data/lib/ImcSdk/imcsession.rb +549 -0
- data/lib/ImcSdk/imcxmlcodec.rb +94 -0
- data/lib/ImcSdk/methodmeta/AaaGetComputeAuthTokensMeta.rb +16 -0
- data/lib/ImcSdk/methodmeta/AaaKeepAliveMeta.rb +14 -0
- data/lib/ImcSdk/methodmeta/AaaLoginMeta.rb +36 -0
- data/lib/ImcSdk/methodmeta/AaaLogoutMeta.rb +18 -0
- data/lib/ImcSdk/methodmeta/AaaRefreshMeta.rb +36 -0
- data/lib/ImcSdk/methodmeta/ConfigConfMoMeta.rb +22 -0
- data/lib/ImcSdk/methodmeta/ConfigConfMosMeta.rb +20 -0
- data/lib/ImcSdk/methodmeta/ConfigResolveChildrenMeta.rb +24 -0
- data/lib/ImcSdk/methodmeta/ConfigResolveClassMeta.rb +20 -0
- data/lib/ImcSdk/methodmeta/ConfigResolveDnMeta.rb +20 -0
- data/lib/ImcSdk/methodmeta/ConfigResolveParentMeta.rb +20 -0
- data/lib/ImcSdk/methodmeta/EventSubscribeMeta.rb +14 -0
- data/lib/ImcSdk/methodmeta/EventUnsubscribeMeta.rb +14 -0
- data/lib/ImcSdk/mometa/aaa/AaaLdap.rb +269 -0
- data/lib/ImcSdk/mometa/aaa/AaaLdapRoleGroup.rb +122 -0
- data/lib/ImcSdk/mometa/aaa/AaaSession.rb +123 -0
- data/lib/ImcSdk/mometa/aaa/AaaUser.rb +130 -0
- data/lib/ImcSdk/mometa/aaa/AaaUserEp.rb +88 -0
- data/lib/ImcSdk/mometa/aaa/AaaUserPasswordExpiration.rb +118 -0
- data/lib/ImcSdk/mometa/aaa/AaaUserPolicy.rb +100 -0
- data/lib/ImcSdk/mometa/activate/ActivatePIDCatalog.rb +101 -0
- data/lib/ImcSdk/mometa/adaptor/AdaptorCfgBackup.rb +143 -0
- data/lib/ImcSdk/mometa/adaptor/AdaptorCfgImporter.rb +143 -0
- data/lib/ImcSdk/mometa/adaptor/AdaptorConnectorInfo.rb +97 -0
- data/lib/ImcSdk/mometa/adaptor/AdaptorEthCompQueueProfile.rb +100 -0
- data/lib/ImcSdk/mometa/adaptor/AdaptorEthGenProfile.rb +158 -0
- data/lib/ImcSdk/mometa/adaptor/AdaptorEthISCSIProfile.rb +261 -0
- data/lib/ImcSdk/mometa/adaptor/AdaptorEthInterruptProfile.rb +116 -0
- data/lib/ImcSdk/mometa/adaptor/AdaptorEthOffloadProfile.rb +112 -0
- data/lib/ImcSdk/mometa/adaptor/AdaptorEthRdmaProfile.rb +106 -0
- data/lib/ImcSdk/mometa/adaptor/AdaptorEthRecvQueueProfile.rb +100 -0
- data/lib/ImcSdk/mometa/adaptor/AdaptorEthUSNICProfile.rb +167 -0
- data/lib/ImcSdk/mometa/adaptor/AdaptorEthWorkQueueProfile.rb +100 -0
- data/lib/ImcSdk/mometa/adaptor/AdaptorExtEthIf.rb +154 -0
- data/lib/ImcSdk/mometa/adaptor/AdaptorExtIpV6RssHashProfile.rb +100 -0
- data/lib/ImcSdk/mometa/adaptor/AdaptorFcBootTable.rb +106 -0
- data/lib/ImcSdk/mometa/adaptor/AdaptorFcCdbWorkQueueProfile.rb +100 -0
- data/lib/ImcSdk/mometa/adaptor/AdaptorFcErrorRecoveryProfile.rb +130 -0
- data/lib/ImcSdk/mometa/adaptor/AdaptorFcGenProfile.rb +133 -0
- data/lib/ImcSdk/mometa/adaptor/AdaptorFcInterruptProfile.rb +96 -0
- data/lib/ImcSdk/mometa/adaptor/AdaptorFcPersistentBindings.rb +118 -0
- data/lib/ImcSdk/mometa/adaptor/AdaptorFcPortFLogiProfile.rb +100 -0
- data/lib/ImcSdk/mometa/adaptor/AdaptorFcPortPLogiProfile.rb +100 -0
- data/lib/ImcSdk/mometa/adaptor/AdaptorFcPortProfile.rb +106 -0
- data/lib/ImcSdk/mometa/adaptor/AdaptorFcRecvQueueProfile.rb +94 -0
- data/lib/ImcSdk/mometa/adaptor/AdaptorFcWorkQueueProfile.rb +94 -0
- data/lib/ImcSdk/mometa/adaptor/AdaptorGenProfile.rb +166 -0
- data/lib/ImcSdk/mometa/adaptor/AdaptorHostEthIf.rb +163 -0
- data/lib/ImcSdk/mometa/adaptor/AdaptorHostFcIf.rb +148 -0
- data/lib/ImcSdk/mometa/adaptor/AdaptorIpV4RssHashProfile.rb +100 -0
- data/lib/ImcSdk/mometa/adaptor/AdaptorIpV6RssHashProfile.rb +100 -0
- data/lib/ImcSdk/mometa/adaptor/AdaptorLinkTraining.rb +79 -0
- data/lib/ImcSdk/mometa/adaptor/AdaptorPortProfiles.rb +100 -0
- data/lib/ImcSdk/mometa/adaptor/AdaptorRssProfile.rb +94 -0
- data/lib/ImcSdk/mometa/adaptor/AdaptorUnit.rb +155 -0
- data/lib/ImcSdk/mometa/advanced/AdvancedPowerProfile.rb +140 -0
- data/lib/ImcSdk/mometa/auto/AutoPowerProfile.rb +117 -0
- data/lib/ImcSdk/mometa/bios/BiosBOT.rb +88 -0
- data/lib/ImcSdk/mometa/bios/BiosBootDev.rb +114 -0
- data/lib/ImcSdk/mometa/bios/BiosBootDevGrp.rb +112 -0
- data/lib/ImcSdk/mometa/bios/BiosBootDevPrecision.rb +152 -0
- data/lib/ImcSdk/mometa/bios/BiosBootMode.rb +96 -0
- data/lib/ImcSdk/mometa/bios/BiosPassword.rb +73 -0
- data/lib/ImcSdk/mometa/bios/BiosPlatformDefaults.rb +88 -0
- data/lib/ImcSdk/mometa/bios/BiosProfile.rb +139 -0
- data/lib/ImcSdk/mometa/bios/BiosProfileManagement.rb +106 -0
- data/lib/ImcSdk/mometa/bios/BiosProfileToken.rb +106 -0
- data/lib/ImcSdk/mometa/bios/BiosSettings.rb +88 -0
- data/lib/ImcSdk/mometa/bios/BiosUnit.rb +106 -0
- data/lib/ImcSdk/mometa/bios/BiosVfASPMSupport.rb +97 -0
- data/lib/ImcSdk/mometa/bios/BiosVfAdjacentCacheLinePrefetch.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfAltitude.rb +99 -0
- data/lib/ImcSdk/mometa/bios/BiosVfAssertNMIOnPERR.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfAssertNMIOnSERR.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfAutonumousCstateEnable.rb +81 -0
- data/lib/ImcSdk/mometa/bios/BiosVfBootOptionRetry.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfCDNEnable.rb +92 -0
- data/lib/ImcSdk/mometa/bios/BiosVfCDNSupport.rb +96 -0
- data/lib/ImcSdk/mometa/bios/BiosVfCPUEnergyPerformance.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfCPUFrequencyFloor.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfCPUPerformance.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfCPUPowerManagement.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfCkeLowPolicy.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfCmciEnable.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfConsoleRedirection.rb +162 -0
- data/lib/ImcSdk/mometa/bios/BiosVfCoreMultiProcessing.rb +118 -0
- data/lib/ImcSdk/mometa/bios/BiosVfDCUPrefetch.rb +109 -0
- data/lib/ImcSdk/mometa/bios/BiosVfDRAMClockThrottling.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfDemandScrub.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfDirectCacheAccess.rb +100 -0
- data/lib/ImcSdk/mometa/bios/BiosVfDramRefreshRate.rb +99 -0
- data/lib/ImcSdk/mometa/bios/BiosVfEnhancedIntelSpeedStepTech.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfExecuteDisableBit.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfExtendedAPIC.rb +92 -0
- data/lib/ImcSdk/mometa/bios/BiosVfFRB2Enable.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfHWPMEnable.rb +80 -0
- data/lib/ImcSdk/mometa/bios/BiosVfHardwarePrefetch.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfIOHResource.rb +99 -0
- data/lib/ImcSdk/mometa/bios/BiosVfIntelHyperThreadingTech.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfIntelTurboBoostTech.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfIntelVTForDirectedIO.rb +142 -0
- data/lib/ImcSdk/mometa/bios/BiosVfIntelVirtualizationTechnology.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfLOMPortOptionROM.rb +150 -0
- data/lib/ImcSdk/mometa/bios/BiosVfLegacyUSBSupport.rb +100 -0
- data/lib/ImcSdk/mometa/bios/BiosVfLvDIMMSupport.rb +97 -0
- data/lib/ImcSdk/mometa/bios/BiosVfMMCFGBase.rb +99 -0
- data/lib/ImcSdk/mometa/bios/BiosVfMemoryInterleave.rb +126 -0
- data/lib/ImcSdk/mometa/bios/BiosVfMemoryMappedIOAbove4GB.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfMirroringMode.rb +96 -0
- data/lib/ImcSdk/mometa/bios/BiosVfNUMAOptimized.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfOSBootWatchdogTimer.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfOSBootWatchdogTimerPolicy.rb +97 -0
- data/lib/ImcSdk/mometa/bios/BiosVfOSBootWatchdogTimerTimeout.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfOnboardNIC.rb +109 -0
- data/lib/ImcSdk/mometa/bios/BiosVfOnboardStorage.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfOnboardStorageSWStack.rb +90 -0
- data/lib/ImcSdk/mometa/bios/BiosVfOutOfBandMgmtPort.rb +92 -0
- data/lib/ImcSdk/mometa/bios/BiosVfPCIOptionROMs.rb +100 -0
- data/lib/ImcSdk/mometa/bios/BiosVfPCISlotOptionROMEnable.rb +726 -0
- data/lib/ImcSdk/mometa/bios/BiosVfPCIeSSDHotPlugSupport.rb +81 -0
- data/lib/ImcSdk/mometa/bios/BiosVfPOSTErrorPause.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfPStateCoordType.rb +97 -0
- data/lib/ImcSdk/mometa/bios/BiosVfPackageCStateLimit.rb +105 -0
- data/lib/ImcSdk/mometa/bios/BiosVfPatrolScrub.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfPatrolScrubDuration.rb +94 -0
- data/lib/ImcSdk/mometa/bios/BiosVfPchUsb30Mode.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfPciRomClp.rb +92 -0
- data/lib/ImcSdk/mometa/bios/BiosVfPowerOnPasswordSupport.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfProcessorC1E.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfProcessorC3Report.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfProcessorC6Report.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfProcessorCState.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfPwrPerfTuning.rb +90 -0
- data/lib/ImcSdk/mometa/bios/BiosVfQPIConfig.rb +99 -0
- data/lib/ImcSdk/mometa/bios/BiosVfQpiSnoopMode.rb +94 -0
- data/lib/ImcSdk/mometa/bios/BiosVfResumeOnACPowerLoss.rb +111 -0
- data/lib/ImcSdk/mometa/bios/BiosVfSataModeSelect.rb +97 -0
- data/lib/ImcSdk/mometa/bios/BiosVfSelectMemoryRASConfiguration.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfSerialPortAEnable.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfSparingMode.rb +96 -0
- data/lib/ImcSdk/mometa/bios/BiosVfSrIov.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfTPMSupport.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfUCSMBootOrderRuleControl.rb +96 -0
- data/lib/ImcSdk/mometa/bios/BiosVfUSBBootConfig.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfUSBEmulation.rb +98 -0
- data/lib/ImcSdk/mometa/bios/BiosVfUSBPortsConfig.rb +164 -0
- data/lib/ImcSdk/mometa/bios/BiosVfVgaPriority.rb +97 -0
- data/lib/ImcSdk/mometa/bios/BiosVfWorkLoadConfig.rb +90 -0
- data/lib/ImcSdk/mometa/bmc/BmcResetReason.rb +77 -0
- data/lib/ImcSdk/mometa/certificate/CertificateManagement.rb +94 -0
- data/lib/ImcSdk/mometa/chassis/ChassisPIDCatalog.rb +77 -0
- data/lib/ImcSdk/mometa/chassis/ChassisPowerBudget.rb +110 -0
- data/lib/ImcSdk/mometa/chassis/ChassisPowerMonitor.rb +93 -0
- data/lib/ImcSdk/mometa/chassis/ChassisPowerUtilization.rb +77 -0
- data/lib/ImcSdk/mometa/comm/CommEpIpmiLan.rb +87 -0
- data/lib/ImcSdk/mometa/comm/CommHttp.rb +149 -0
- data/lib/ImcSdk/mometa/comm/CommHttps.rb +141 -0
- data/lib/ImcSdk/mometa/comm/CommIpmiLan.rb +108 -0
- data/lib/ImcSdk/mometa/comm/CommKvm.rb +124 -0
- data/lib/ImcSdk/mometa/comm/CommNtpProvider.rb +130 -0
- data/lib/ImcSdk/mometa/comm/CommRedfish.rb +86 -0
- data/lib/ImcSdk/mometa/comm/CommSavedVMediaMap.rb +148 -0
- data/lib/ImcSdk/mometa/comm/CommSnmp.rb +169 -0
- data/lib/ImcSdk/mometa/comm/CommSnmpTrap.rb +149 -0
- data/lib/ImcSdk/mometa/comm/CommSnmpUser.rb +147 -0
- data/lib/ImcSdk/mometa/comm/CommSsh.rb +141 -0
- data/lib/ImcSdk/mometa/comm/CommSvcEp.rb +88 -0
- data/lib/ImcSdk/mometa/comm/CommSvcRack.rb +73 -0
- data/lib/ImcSdk/mometa/comm/CommSyslog.rb +151 -0
- data/lib/ImcSdk/mometa/comm/CommSyslogClient.rb +123 -0
- data/lib/ImcSdk/mometa/comm/CommVMedia.rb +122 -0
- data/lib/ImcSdk/mometa/comm/CommVMediaMap.rb +153 -0
- data/lib/ImcSdk/mometa/compute/ComputeBoard.rb +178 -0
- data/lib/ImcSdk/mometa/compute/ComputeMbPowerStats.rb +112 -0
- data/lib/ImcSdk/mometa/compute/ComputeRackUnit.rb +206 -0
- data/lib/ImcSdk/mometa/compute/ComputeRackUnitMbTempStats.rb +101 -0
- data/lib/ImcSdk/mometa/compute/ComputeServerNode.rb +192 -0
- data/lib/ImcSdk/mometa/compute/ComputeServerNodeMbTempStats.rb +101 -0
- data/lib/ImcSdk/mometa/compute/ComputeServerRef.rb +81 -0
- data/lib/ImcSdk/mometa/compute/ComputeSharedIOMbPowerStats.rb +89 -0
- data/lib/ImcSdk/mometa/compute/ComputeSharedIOMbTempStats.rb +99 -0
- data/lib/ImcSdk/mometa/current/CurrentCertificate.rb +178 -0
- data/lib/ImcSdk/mometa/custom/CustomPowerProfile.rb +103 -0
- data/lib/ImcSdk/mometa/download/DownloadClientCertificate.rb +106 -0
- data/lib/ImcSdk/mometa/download/DownloadClientPrivateKey.rb +106 -0
- data/lib/ImcSdk/mometa/download/DownloadLdapCACertificate.rb +135 -0
- data/lib/ImcSdk/mometa/download/DownloadRootCACertificate.rb +106 -0
- data/lib/ImcSdk/mometa/equipment/EquipmentChassis.rb +93 -0
- data/lib/ImcSdk/mometa/equipment/EquipmentChassisLocatorLed.rb +106 -0
- data/lib/ImcSdk/mometa/equipment/EquipmentFan.rb +223 -0
- data/lib/ImcSdk/mometa/equipment/EquipmentFanModule.rb +217 -0
- data/lib/ImcSdk/mometa/equipment/EquipmentIndicatorLed.rb +122 -0
- data/lib/ImcSdk/mometa/equipment/EquipmentLocatorLed.rb +131 -0
- data/lib/ImcSdk/mometa/equipment/EquipmentPsu.rb +235 -0
- data/lib/ImcSdk/mometa/equipment/EquipmentPsuColdRedundancy.rb +77 -0
- data/lib/ImcSdk/mometa/equipment/EquipmentPsuFan.rb +186 -0
- data/lib/ImcSdk/mometa/equipment/EquipmentSharedIOModule.rb +125 -0
- data/lib/ImcSdk/mometa/equipment/EquipmentSystemIOController.rb +87 -0
- data/lib/ImcSdk/mometa/equipment/EquipmentTpm.rb +164 -0
- data/lib/ImcSdk/mometa/error/Error.rb +98 -0
- data/lib/ImcSdk/mometa/event/EventManagement.rb +100 -0
- data/lib/ImcSdk/mometa/export/ExportClientCertificate.rb +106 -0
- data/lib/ImcSdk/mometa/export/ExportClientPrivateKey.rb +106 -0
- data/lib/ImcSdk/mometa/export/ExportLdapCACertificate.rb +135 -0
- data/lib/ImcSdk/mometa/export/ExportRootCACertificate.rb +106 -0
- data/lib/ImcSdk/mometa/fan/FanPolicy.rb +89 -0
- data/lib/ImcSdk/mometa/fault/FaultInst.rb +238 -0
- data/lib/ImcSdk/mometa/firmware/FirmwareBootDefinition.rb +101 -0
- data/lib/ImcSdk/mometa/firmware/FirmwareBootUnit.rb +159 -0
- data/lib/ImcSdk/mometa/firmware/FirmwareRunning.rb +124 -0
- data/lib/ImcSdk/mometa/firmware/FirmwareUpdatable.rb +197 -0
- data/lib/ImcSdk/mometa/generate/GenerateCertificateSigningRequest.rb +435 -0
- data/lib/ImcSdk/mometa/generate/GenerateRandomPassword.rb +94 -0
- data/lib/ImcSdk/mometa/generated/GeneratedStorageControllerKeyId.rb +77 -0
- data/lib/ImcSdk/mometa/huu/HuuController.rb +94 -0
- data/lib/ImcSdk/mometa/huu/HuuFirmwareCatalog.rb +100 -0
- data/lib/ImcSdk/mometa/huu/HuuFirmwareCatalogComponent.rb +106 -0
- data/lib/ImcSdk/mometa/huu/HuuFirmwareComponent.rb +154 -0
- data/lib/ImcSdk/mometa/huu/HuuFirmwareRunning.rb +106 -0
- data/lib/ImcSdk/mometa/huu/HuuFirmwareUpdateCancel.rb +95 -0
- data/lib/ImcSdk/mometa/huu/HuuFirmwareUpdateStatus.rb +118 -0
- data/lib/ImcSdk/mometa/huu/HuuFirmwareUpdater.rb +179 -0
- data/lib/ImcSdk/mometa/huu/HuuUpdateComponentStatus.rb +178 -0
- data/lib/ImcSdk/mometa/io/IoExpander.rb +104 -0
- data/lib/ImcSdk/mometa/iod/IodController.rb +94 -0
- data/lib/ImcSdk/mometa/iod/IodSnapshotCancel.rb +101 -0
- data/lib/ImcSdk/mometa/iod/IodSnapshotStart.rb +192 -0
- data/lib/ImcSdk/mometa/iod/IodSnapshotStatus.rb +148 -0
- data/lib/ImcSdk/mometa/ip/IpBlocking.rb +118 -0
- data/lib/ImcSdk/mometa/ip/IpFiltering.rb +128 -0
- data/lib/ImcSdk/mometa/kmip/KmipManagement.rb +95 -0
- data/lib/ImcSdk/mometa/kmip/KmipServer.rb +98 -0
- data/lib/ImcSdk/mometa/kmip/KmipServerLogin.rb +89 -0
- data/lib/ImcSdk/mometa/ldap/LdapCACertificate.rb +107 -0
- data/lib/ImcSdk/mometa/ldap/LdapCACertificateManagement.rb +100 -0
- data/lib/ImcSdk/mometa/lsboot/LsbootBootSecurity.rb +99 -0
- data/lib/ImcSdk/mometa/lsboot/LsbootDef.rb +111 -0
- data/lib/ImcSdk/mometa/lsboot/LsbootDevPrecision.rb +139 -0
- data/lib/ImcSdk/mometa/lsboot/LsbootEfi.rb +107 -0
- data/lib/ImcSdk/mometa/lsboot/LsbootHdd.rb +127 -0
- data/lib/ImcSdk/mometa/lsboot/LsbootIscsi.rb +133 -0
- data/lib/ImcSdk/mometa/lsboot/LsbootLan.rb +116 -0
- data/lib/ImcSdk/mometa/lsboot/LsbootLocalStorage.rb +88 -0
- data/lib/ImcSdk/mometa/lsboot/LsbootNVMe.rb +114 -0
- data/lib/ImcSdk/mometa/lsboot/LsbootPchStorage.rb +120 -0
- data/lib/ImcSdk/mometa/lsboot/LsbootPxe.rb +133 -0
- data/lib/ImcSdk/mometa/lsboot/LsbootSan.rb +133 -0
- data/lib/ImcSdk/mometa/lsboot/LsbootSd.rb +127 -0
- data/lib/ImcSdk/mometa/lsboot/LsbootStorage.rb +107 -0
- data/lib/ImcSdk/mometa/lsboot/LsbootUefiShell.rb +114 -0
- data/lib/ImcSdk/mometa/lsboot/LsbootUsb.rb +124 -0
- data/lib/ImcSdk/mometa/lsboot/LsbootVMedia.rb +138 -0
- data/lib/ImcSdk/mometa/lsboot/LsbootVirtualMedia.rb +108 -0
- data/lib/ImcSdk/mometa/memory/MemoryArray.rb +200 -0
- data/lib/ImcSdk/mometa/memory/MemoryUnit.rb +299 -0
- data/lib/ImcSdk/mometa/memory/MemoryUnitEnvStats.rb +112 -0
- data/lib/ImcSdk/mometa/mgmt/MgmtBackup.rb +172 -0
- data/lib/ImcSdk/mometa/mgmt/MgmtBackupServer.rb +132 -0
- data/lib/ImcSdk/mometa/mgmt/MgmtController.rb +118 -0
- data/lib/ImcSdk/mometa/mgmt/MgmtIf.rb +388 -0
- data/lib/ImcSdk/mometa/mgmt/MgmtImporter.rb +172 -0
- data/lib/ImcSdk/mometa/mgmt/MgmtImporterServer.rb +132 -0
- data/lib/ImcSdk/mometa/mgmt/MgmtInventory.rb +143 -0
- data/lib/ImcSdk/mometa/network/NetworkAdapterEthIf.rb +100 -0
- data/lib/ImcSdk/mometa/network/NetworkAdapterUnit.rb +116 -0
- data/lib/ImcSdk/mometa/one/OneTimeBootDevice.rb +103 -0
- data/lib/ImcSdk/mometa/one/OneTimePrecisionBootDevice.rb +116 -0
- data/lib/ImcSdk/mometa/osi/OsiCancel.rb +101 -0
- data/lib/ImcSdk/mometa/osi/OsiController.rb +94 -0
- data/lib/ImcSdk/mometa/osi/OsiStart.rb +266 -0
- data/lib/ImcSdk/mometa/osi/OsiStatus.rb +148 -0
- data/lib/ImcSdk/mometa/pci/PciEquipSlot.rb +124 -0
- data/lib/ImcSdk/mometa/pid/PidCatalog.rb +100 -0
- data/lib/ImcSdk/mometa/pid/PidCatalogCpu.rb +136 -0
- data/lib/ImcSdk/mometa/pid/PidCatalogDimm.rb +154 -0
- data/lib/ImcSdk/mometa/pid/PidCatalogHdd.rb +130 -0
- data/lib/ImcSdk/mometa/pid/PidCatalogPCIAdapter.rb +130 -0
- data/lib/ImcSdk/mometa/platform/PlatformEventFilters.rb +109 -0
- data/lib/ImcSdk/mometa/power/PowerBudget.rb +146 -0
- data/lib/ImcSdk/mometa/power/PowerMonitor.rb +123 -0
- data/lib/ImcSdk/mometa/processor/ProcessorEnvStats.rb +112 -0
- data/lib/ImcSdk/mometa/processor/ProcessorUnit.rb +213 -0
- data/lib/ImcSdk/mometa/self/SelfEncryptStorageController.rb +98 -0
- data/lib/ImcSdk/mometa/server/ServerUtilization.rb +112 -0
- data/lib/ImcSdk/mometa/sioc/SiocResetReason.rb +77 -0
- data/lib/ImcSdk/mometa/sol/SolIf.rb +128 -0
- data/lib/ImcSdk/mometa/standard/StandardPowerProfile.rb +108 -0
- data/lib/ImcSdk/mometa/storage/StorageController.rb +165 -0
- data/lib/ImcSdk/mometa/storage/StorageControllerHealth.rb +100 -0
- data/lib/ImcSdk/mometa/storage/StorageControllerNVMe.rb +154 -0
- data/lib/ImcSdk/mometa/storage/StorageControllerProps.rb +406 -0
- data/lib/ImcSdk/mometa/storage/StorageControllerSettings.rb +220 -0
- data/lib/ImcSdk/mometa/storage/StorageEnclosure.rb +82 -0
- data/lib/ImcSdk/mometa/storage/StorageEnclosureDisk.rb +149 -0
- data/lib/ImcSdk/mometa/storage/StorageEnclosureDiskFwHelper.rb +108 -0
- data/lib/ImcSdk/mometa/storage/StorageEnclosureDiskSlotEp.rb +85 -0
- data/lib/ImcSdk/mometa/storage/StorageEnclosureDiskSlotZoneHelper.rb +97 -0
- data/lib/ImcSdk/mometa/storage/StorageFlexFlashController.rb +193 -0
- data/lib/ImcSdk/mometa/storage/StorageFlexFlashControllerProps.rb +202 -0
- data/lib/ImcSdk/mometa/storage/StorageFlexFlashOperationalProfile.rb +164 -0
- data/lib/ImcSdk/mometa/storage/StorageFlexFlashPhysicalDrive.rb +256 -0
- data/lib/ImcSdk/mometa/storage/StorageFlexFlashVirtualDrive.rb +152 -0
- data/lib/ImcSdk/mometa/storage/StorageFlexFlashVirtualDriveImageMap.rb +145 -0
- data/lib/ImcSdk/mometa/storage/StorageLocalDisk.rb +247 -0
- data/lib/ImcSdk/mometa/storage/StorageLocalDiskEp.rb +77 -0
- data/lib/ImcSdk/mometa/storage/StorageLocalDiskProps.rb +250 -0
- data/lib/ImcSdk/mometa/storage/StorageLocalDiskSlotEp.rb +146 -0
- data/lib/ImcSdk/mometa/storage/StorageLocalDiskUsage.rb +124 -0
- data/lib/ImcSdk/mometa/storage/StorageOperation.rb +112 -0
- data/lib/ImcSdk/mometa/storage/StorageRaidBattery.rb +252 -0
- data/lib/ImcSdk/mometa/storage/StorageSasExpander.rb +113 -0
- data/lib/ImcSdk/mometa/storage/StorageSasUplink.rb +121 -0
- data/lib/ImcSdk/mometa/storage/StorageUnusedLocalDisk.rb +124 -0
- data/lib/ImcSdk/mometa/storage/StorageVirtualDrive.rb +307 -0
- data/lib/ImcSdk/mometa/storage/StorageVirtualDriveCreatorUsingUnusedPhysicalDrive.rb +223 -0
- data/lib/ImcSdk/mometa/storage/StorageVirtualDriveCreatorUsingVirtualDriveGroup.rb +199 -0
- data/lib/ImcSdk/mometa/storage/StorageVirtualDriveWithDriveGroupSpace.rb +130 -0
- data/lib/ImcSdk/mometa/suggested/SuggestedStorageControllerSecurityKey.rb +77 -0
- data/lib/ImcSdk/mometa/sysdebug/SysdebugMEpLog.rb +122 -0
- data/lib/ImcSdk/mometa/sysdebug/SysdebugTechSupportExport.rb +149 -0
- data/lib/ImcSdk/mometa/system/SystemIOController.rb +81 -0
- data/lib/ImcSdk/mometa/thermal/ThermalPowerProfile.rb +89 -0
- data/lib/ImcSdk/mometa/top/TopRoot.rb +88 -0
- data/lib/ImcSdk/mometa/top/TopSystem.rb +561 -0
- data/lib/ImcSdk/mometa/upload/UploadBiosProfile.rb +129 -0
- data/lib/ImcSdk/mometa/upload/UploadCertificate.rb +136 -0
- data/lib/ImcSdk/mometa/upload/UploadPIDCatalog.rb +129 -0
- data/lib/ImcSdk/version.rb +3 -0
- data/spec/ImcSdk_spec.rb +11 -0
- data/spec/spec_helper.rb +11 -0
- data/test/ImcSdk_bios_test.rb +57 -0
- data/test/ImcSdk_ipmi_test.rb +65 -0
- data/test/ImcSdk_ldap_test.rb +79 -0
- data/test/ImcSdk_ntp_test.rb +88 -0
- data/test/ImcSdk_powerbudget_test.rb +64 -0
- data/test/ImcSdk_remotepresence_test.rb +60 -0
- data/test/ImcSdk_serveractions_test.rb +69 -0
- data/test/ImcSdk_storage_test.rb +60 -0
- data/test/ImcSdk_user_test.rb +98 -0
- data/test/test_helper.rb +21 -0
- metadata +492 -0
@@ -0,0 +1,438 @@
|
|
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
|
+
|
15
|
+
$:.unshift(*Dir[::File.expand_path('./../../', File.dirname(__FILE__))])
|
16
|
+
|
17
|
+
require 'imccoreutils'
|
18
|
+
#
|
19
|
+
# This method returns the virtual drive name by raid_level and drive_list
|
20
|
+
#
|
21
|
+
# @param raid_level [Integer] raid level ex. 0, 1, 5, 6, 10, 50, 60
|
22
|
+
# Raid 0 Simple striping.
|
23
|
+
# Raid 1 Simple mirroring.
|
24
|
+
# Raid 5 Striping with parity.
|
25
|
+
# Raid 6 Striping with two parity drives.
|
26
|
+
# Raid 10 Spanned mirroring.
|
27
|
+
# Raid 50 Spanned striping with parity.
|
28
|
+
# Raid 60 Spanned striping with two parity drives.
|
29
|
+
# @param drive_list [Array<Array>] list of drives
|
30
|
+
# [[1]]
|
31
|
+
# [[1,2]]
|
32
|
+
# [[1,2],[3,4]]
|
33
|
+
# @return [string]
|
34
|
+
def vd_name_derive(raid_level, drive_list)
|
35
|
+
return "RAID" + raid_level.to_s + "_" + _flatten_to_string(drive_list)
|
36
|
+
end
|
37
|
+
|
38
|
+
#
|
39
|
+
# This method queries the virtual drive by name
|
40
|
+
#
|
41
|
+
# @param handle [ImcHandle] ImcHandle class object
|
42
|
+
# @param controller_type [String] Controller type ex. 'SAS'
|
43
|
+
# @param controller_slot [String] Controller slot name/number ex. "MEZZ","0"-"9", "HBA"
|
44
|
+
# @param virtual_drive_name [String] Name of the virtual drive
|
45
|
+
# @param server_id [Integer] Server Id to be specified for C3260 platforms
|
46
|
+
# @return [StorageVirtualDrive] if virtual drive found.
|
47
|
+
# @return [nil] if virtual drive not found.
|
48
|
+
#
|
49
|
+
def vd_query_by_name(handle:, controller_type:, controller_slot:, virtual_drive_name:, server_id: 1)
|
50
|
+
slot_dn = _get_controller_dn(handle, controller_type, controller_slot, server_id)
|
51
|
+
|
52
|
+
mos = handle.query_children(in_dn: slot_dn, class_id: "storageVirtualDrive")
|
53
|
+
for mo in mos
|
54
|
+
if mo.name == virtual_drive_name
|
55
|
+
return mo
|
56
|
+
end
|
57
|
+
end
|
58
|
+
return nil
|
59
|
+
end
|
60
|
+
|
61
|
+
#
|
62
|
+
# Set drive as the boot drive
|
63
|
+
#
|
64
|
+
# @param handle [ImcHandle] ImcHandle class object
|
65
|
+
# @param controller_type [String] Controller type ex. 'SAS'
|
66
|
+
# @param controller_slot [String] Controller slot name/number ex. "MEZZ","0"-"9", "HBA"
|
67
|
+
# @param virtual_drive_name [String] Name of the virtual drive
|
68
|
+
# @param raid_level [Integer] raid level ex. 0, 1, 5, 6, 10, 50, 60
|
69
|
+
# Raid 0 Simple striping.
|
70
|
+
# Raid 1 Simple mirroring.
|
71
|
+
# Raid 5 Striping with parity.
|
72
|
+
# Raid 6 Striping with two parity drives.
|
73
|
+
# Raid 10 Spanned mirroring.
|
74
|
+
# Raid 50 Spanned striping with parity.
|
75
|
+
# Raid 60 Spanned striping with two parity drives.
|
76
|
+
# @param drive_group [Array<Array>] list of drives
|
77
|
+
# [[1]]
|
78
|
+
# [[1,2]]
|
79
|
+
# [[1,2],[3,4]]
|
80
|
+
# @param server_id [Integer] Server Id to be specified for C3260 platforms
|
81
|
+
# @return [nil]
|
82
|
+
#
|
83
|
+
def set_as_boot_drive(handle:,
|
84
|
+
controller_type:,
|
85
|
+
controller_slot:,
|
86
|
+
virtual_drive_name: nil,
|
87
|
+
raid_level: nil,
|
88
|
+
drive_group: nil,
|
89
|
+
server_id: 1)
|
90
|
+
|
91
|
+
vd_name = virtual_drive_name
|
92
|
+
if vd_name.nil?
|
93
|
+
vd_name = vd_name_derive(raid_level,drive_group)
|
94
|
+
end
|
95
|
+
vd = vd_query_by_name(handle: handle,
|
96
|
+
controller_type: controller_type,
|
97
|
+
controller_slot: controller_slot,
|
98
|
+
virtual_drive_name: vd_name,
|
99
|
+
server_id: server_id)
|
100
|
+
vd.set_prop(:admin_action,"set-boot-drive")
|
101
|
+
handle.set_mo(mo: vd)
|
102
|
+
end
|
103
|
+
|
104
|
+
#
|
105
|
+
# Checks if a virtual drive by the specified name exists.
|
106
|
+
#
|
107
|
+
# @param handle [ImcHandle] ImcHandle class object
|
108
|
+
# @param controller_type [String] Controller type ex. 'SAS'
|
109
|
+
# @param controller_slot [String] Controller slot name/number ex. "MEZZ","0"-"9", "HBA"
|
110
|
+
# @param virtual_drive_name [String] Name of the virtual drive
|
111
|
+
# @param server_id [Integer] Server Id to be specified for C3260 platforms
|
112
|
+
# @return [TrueClass, StorageVirtualDrive] if virtual drive exists.
|
113
|
+
# @return [FalseClass, nil] if virtual drive doesn't exist.
|
114
|
+
#
|
115
|
+
def virtual_drive_exists(handle:,
|
116
|
+
controller_type:,
|
117
|
+
controller_slot:,
|
118
|
+
virtual_drive_name:,
|
119
|
+
server_id: 1)
|
120
|
+
mo = vd_query_by_name(handle: handle, controller_type: controller_type, controller_slot: controller_slot,
|
121
|
+
virtual_drive_name: virtual_drive_name, server_id: server_id)
|
122
|
+
return !mo.nil?, mo
|
123
|
+
end
|
124
|
+
|
125
|
+
#
|
126
|
+
# Deletes the specified virtual drive
|
127
|
+
#
|
128
|
+
# @param handle [ImcHandle] ImcHandle class object
|
129
|
+
# @param controller_type [String] Controller type ex. 'SAS'
|
130
|
+
# @param controller_slot [String] Controller slot name/number ex. "MEZZ","0"-"9", "HBA"
|
131
|
+
# @param virtual_drive_name [String] Name of the virtual drive
|
132
|
+
# @param server_id [Integer] Server Id to be specified for C3260 platforms
|
133
|
+
# @example
|
134
|
+
# virtual_drive_delete(handle: imc,
|
135
|
+
# controller_slot: 'MEZZ',
|
136
|
+
# virtual_drive_name: "RAID0_1")
|
137
|
+
#
|
138
|
+
def virtual_drive_delete(handle:,
|
139
|
+
controller_type:,
|
140
|
+
controller_slot:,
|
141
|
+
virtual_drive_name:,
|
142
|
+
server_id: 1)
|
143
|
+
vd = vd_query_by_name(handle: handle,
|
144
|
+
controller_type: controller_type,
|
145
|
+
controller_slot: controller_slot,
|
146
|
+
virtual_drive_name: virtual_drive_name,
|
147
|
+
server_id: server_id)
|
148
|
+
handle.remove_mo(mo: vd)
|
149
|
+
end
|
150
|
+
|
151
|
+
#
|
152
|
+
# Creates virtual drive from unused physical drives
|
153
|
+
#
|
154
|
+
# @param handle [ImcHandle] ImcHandle class object
|
155
|
+
# @param drive_group [Array<Array>] list of drives
|
156
|
+
# [[1]]
|
157
|
+
# [[1,2]]
|
158
|
+
# [[1,2],[3,4]]
|
159
|
+
# @param controller_type [String] Controller type ex. 'SAS'
|
160
|
+
# @param controller_slot [String] Controller slot name/number ex. "MEZZ","0"-"9", "HBA"
|
161
|
+
# @param virtual_drive_name [String] Name of the virtual drive
|
162
|
+
# @param raid_level [Integer] raid level ex. 0, 1, 5, 6, 10, 50, 60
|
163
|
+
# Raid 0 Simple striping.
|
164
|
+
# Raid 1 Simple mirroring.
|
165
|
+
# Raid 5 Striping with parity.
|
166
|
+
# Raid 6 Striping with two parity drives.
|
167
|
+
# Raid 10 Spanned mirroring.
|
168
|
+
# Raid 50 Spanned striping with parity.
|
169
|
+
# Raid 60 Spanned striping with two parity drives.
|
170
|
+
# @param access_policy [String] Access-policy for the virtual drive, ex. ['read-write', 'read-only', 'hidden', 'default', 'blocked']
|
171
|
+
# @param read_policy [String]
|
172
|
+
# @param disk_cache_policy [String]
|
173
|
+
# @param write_policy [String]
|
174
|
+
# @param strip_size [String]
|
175
|
+
# @param size
|
176
|
+
# @param self_encrypt [TrueClass, FalseClass] encrypt the virtual drive if the underlying controller and physical drive support it
|
177
|
+
# @param server_id [Integer] Server Id to be specified for C3260 platforms
|
178
|
+
# @return [StorageVirtualDrive]
|
179
|
+
#
|
180
|
+
# @example
|
181
|
+
# virtual_drive_create(handle: imcHandle,
|
182
|
+
# drive_group: [[2]],
|
183
|
+
# controller_slot: 'MEZZ')
|
184
|
+
#
|
185
|
+
def virtual_drive_create(handle:,
|
186
|
+
drive_group:,
|
187
|
+
controller_type:,
|
188
|
+
controller_slot:,
|
189
|
+
raid_level: 0,
|
190
|
+
virtual_drive_name: nil,
|
191
|
+
access_policy: "read-write",
|
192
|
+
read_policy: "no-read-ahead",
|
193
|
+
cache_policy: "direct-io",
|
194
|
+
disk_cache_policy: "unchanged",
|
195
|
+
write_policy: "Write Through",
|
196
|
+
strip_size: "64k",
|
197
|
+
size: nil,
|
198
|
+
self_encrypt: false,
|
199
|
+
server_id: 1)
|
200
|
+
slot_dn = _get_controller_dn(handle, controller_type,
|
201
|
+
controller_slot, server_id)
|
202
|
+
|
203
|
+
dg_str = _list_to_string(drive_group)
|
204
|
+
vdn = virtual_drive_name
|
205
|
+
|
206
|
+
params = {}
|
207
|
+
params[:parent_mo_or_dn] = slot_dn
|
208
|
+
params[:drive_group] = dg_str
|
209
|
+
params[:raid_level] = raid_level.to_s
|
210
|
+
params[:access_policy] = access_policy
|
211
|
+
params[:read_policy] = read_policy
|
212
|
+
params[:cache_policy] = cache_policy
|
213
|
+
params[:disk_cache_policy] = disk_cache_policy
|
214
|
+
params[:write_policy] = write_policy
|
215
|
+
params[:strip_size] = strip_size
|
216
|
+
|
217
|
+
if self_encrypt
|
218
|
+
params[:admin_action] = "enable-self-encrypt"
|
219
|
+
end
|
220
|
+
params[:virtual_drive_name] = vdn.nil? ? vd_name_derive(raid_level, drive_group) : vdn
|
221
|
+
|
222
|
+
params[:size] = size.nil? ? _vd_max_size_get(handle,
|
223
|
+
controller_type,
|
224
|
+
controller_slot,
|
225
|
+
drive_group,
|
226
|
+
raid_level,
|
227
|
+
server_id) : size
|
228
|
+
|
229
|
+
require "mometa/storage/StorageVirtualDriveCreatorUsingUnusedPhysicalDrive"
|
230
|
+
#mo = vd_creator(**params)
|
231
|
+
mo = StorageVirtualDriveCreatorUsingUnusedPhysicalDrive.new(**params)
|
232
|
+
mo.set_prop(:admin_state, "trigger")
|
233
|
+
handle.add_mo(mo: mo)
|
234
|
+
return mo
|
235
|
+
end
|
236
|
+
|
237
|
+
#
|
238
|
+
# Gets the physical drive
|
239
|
+
#
|
240
|
+
# @param handle [ImcHandle] ImcHandle class object
|
241
|
+
# @param controller_type [String] Controller type ex. 'SAS'
|
242
|
+
# @param controller_slot [String] Controller slot name/number ex. "MEZZ","0"-"9", "HBA"
|
243
|
+
# @param drive_slot [Integer] Slot in which the drive resides
|
244
|
+
# @param server_id [Integer] Server Id to be specified for C3260 platforms
|
245
|
+
# @return [StorageLocalDisk]
|
246
|
+
#
|
247
|
+
# @example
|
248
|
+
# mo = physical_drive_get(handle: imcHandle, controller_type: 'SAS',
|
249
|
+
# controller_slot: 'HBA',
|
250
|
+
# drive_slot: 4)
|
251
|
+
def physical_drive_get(handle:,
|
252
|
+
controller_type:,
|
253
|
+
controller_slot:,
|
254
|
+
drive_slot:,
|
255
|
+
server_id: 1)
|
256
|
+
controller_dn = _get_controller_dn(handle, controller_type,
|
257
|
+
controller_slot, server_id)
|
258
|
+
drive_dn = controller_dn + '/pd-' + drive_slot.to_s
|
259
|
+
return handle.query_dn(dn: drive_dn)
|
260
|
+
end
|
261
|
+
|
262
|
+
|
263
|
+
private
|
264
|
+
|
265
|
+
def _vd_max_size_get(handle,
|
266
|
+
controller_type,
|
267
|
+
controller_slot,
|
268
|
+
drive_list,
|
269
|
+
raid_level,
|
270
|
+
server_id=1)
|
271
|
+
=begin
|
272
|
+
Returns the usable disk size for the specified virtual_drive
|
273
|
+
drive_list:
|
274
|
+
[[1]]
|
275
|
+
[[1,2],[3,4]]
|
276
|
+
min_size = smallest size of all the drives from this disk group
|
277
|
+
available_size = accumulated size of all the drives together
|
278
|
+
span_depth = number of sub groups [[1,2,3],[4,5,6]] span_depth = 2
|
279
|
+
=end
|
280
|
+
sizes = _pd_sizes_get(handle,
|
281
|
+
controller_type,
|
282
|
+
controller_slot,
|
283
|
+
drive_list,
|
284
|
+
server_id)
|
285
|
+
min_size = _pd_min_size_get(sizes)
|
286
|
+
total_size = _pd_total_size_get(sizes)
|
287
|
+
span_depth = _vd_span_depth_get(drive_list)
|
288
|
+
|
289
|
+
max_size = _raid_max_size_get(raid_level, total_size, min_size, span_depth)
|
290
|
+
return _bytes_to_human(max_size, "MB")
|
291
|
+
end
|
292
|
+
|
293
|
+
def _vd_span_depth_get(drive_list)
|
294
|
+
#return len(drive_list)
|
295
|
+
return drive_list.size
|
296
|
+
end
|
297
|
+
|
298
|
+
def _raid_max_size_get(raid_level, total_size, min_size, span_depth)
|
299
|
+
size = {0 => total_size,
|
300
|
+
1 => total_size/2,
|
301
|
+
5 => total_size - (span_depth * 1 * min_size),
|
302
|
+
6 => total_size - (span_depth * 2 * min_size),
|
303
|
+
10 => total_size/2,
|
304
|
+
50 => total_size - (span_depth * 1 * min_size),
|
305
|
+
60 => total_size - (span_depth * 2 * min_size)}
|
306
|
+
|
307
|
+
if !size.has_key?(raid_level)
|
308
|
+
raise "Unsupported Raid level: " + raid_level.to_s
|
309
|
+
end
|
310
|
+
return size[raid_level]
|
311
|
+
end
|
312
|
+
|
313
|
+
|
314
|
+
def _pd_sizes_get(handle,
|
315
|
+
controller_type,
|
316
|
+
controller_slot,
|
317
|
+
drive_list,
|
318
|
+
server_id=1)
|
319
|
+
sizes = []
|
320
|
+
for each in drive_list
|
321
|
+
for drive in each
|
322
|
+
dmo = physical_drive_get(handle: handle,
|
323
|
+
controller_type: controller_type,
|
324
|
+
controller_slot: controller_slot,
|
325
|
+
drive_slot: drive,
|
326
|
+
server_id: server_id)
|
327
|
+
sizes.push(_human_to_bytes(dmo.coerced_size))
|
328
|
+
end
|
329
|
+
end
|
330
|
+
return sizes
|
331
|
+
end
|
332
|
+
|
333
|
+
def _pd_min_size_get(sizes)
|
334
|
+
return sizes.min
|
335
|
+
end
|
336
|
+
|
337
|
+
|
338
|
+
def _pd_total_size_get(sizes)
|
339
|
+
#return sum(sizes)
|
340
|
+
return sizes.inject(:+)
|
341
|
+
end
|
342
|
+
|
343
|
+
def _human_to_bytes(size_str)
|
344
|
+
=begin
|
345
|
+
returns the size in bytes
|
346
|
+
supported formats KB, MB, GB, TB, PB, EB, ZB, YB
|
347
|
+
KB to bytes = (* 1024) == << 10
|
348
|
+
MB to bytes = (* 1024 * 1024) == << 20
|
349
|
+
GB to bytes = (* 1024 * 1024 * 1024) == << 30
|
350
|
+
=end
|
351
|
+
convert = {'KB' => 1, 'MB' => 2, 'GB' => 3, 'TB' => 4,
|
352
|
+
'PB' => 5, 'EB' => 6, 'ZB' => 7, 'YB' => 8}
|
353
|
+
s = size_str.split()
|
354
|
+
if !convert.has_key?(s[1])
|
355
|
+
raise "unknown size format" + size_str
|
356
|
+
end
|
357
|
+
return s[0].to_i << (10 * convert[s[1]])
|
358
|
+
|
359
|
+
end
|
360
|
+
|
361
|
+
def _bytes_to_human(size, output_format=nil)
|
362
|
+
=begin
|
363
|
+
converts bytes to human readable format.
|
364
|
+
The return is in output_format.
|
365
|
+
=end
|
366
|
+
convert = {'KB' => 1, 'MB' => 2, 'GB' => 3, 'TB' => 4,
|
367
|
+
'PB' => 5, 'EB' => 6, 'ZB' => 7, 'YB' => 8}
|
368
|
+
unit = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']
|
369
|
+
if output_format.nil?
|
370
|
+
#output_format = unit[int(math.floor(math.log(size, 2))/10)]
|
371
|
+
output_format = unit[((Math.log(size, 2)).floor/10).to_i]
|
372
|
+
end
|
373
|
+
if !convert.has_key?(output_format)
|
374
|
+
raise "unknown output format" + output_format
|
375
|
+
end
|
376
|
+
return (size >> (10 * convert[output_format])).to_s + ' ' + output_format
|
377
|
+
end
|
378
|
+
|
379
|
+
def _flatten_list(drive_list)
|
380
|
+
# convert to format imc expects
|
381
|
+
# [[1]] => [1]
|
382
|
+
# [[1,2],[3,4]] => [1, 2, 3, 4]
|
383
|
+
#if !(isinstance(drive_list, list) and isinstance(drive_list[0], list))
|
384
|
+
if !(drive_list.is_a?(Array) and drive_list[0].is_a?(Array))
|
385
|
+
raise "drive_list needs a list of list(s). i.e [[1,2],[3,4]]"
|
386
|
+
end
|
387
|
+
dg_list = []
|
388
|
+
for each in drive_list
|
389
|
+
for sub_each in each
|
390
|
+
dg_list.push(sub_each)
|
391
|
+
end
|
392
|
+
end
|
393
|
+
return dg_list
|
394
|
+
end
|
395
|
+
|
396
|
+
def _get_controller_dn(handle, controller_type, controller_slot, server_id=1)
|
397
|
+
server_dn = ImcCoreUtils.get_server_dn(handle, server_id)
|
398
|
+
return (server_dn + "/board/storage-" + controller_type + "-" + controller_slot)
|
399
|
+
end
|
400
|
+
|
401
|
+
def _get_controller(handle, controller_type, controller_slot, server_id=1)
|
402
|
+
mo = handle.query_dn(_get_controller_dn(handle,
|
403
|
+
controller_type,
|
404
|
+
controller_slot,
|
405
|
+
server_id))
|
406
|
+
if mo.nil?
|
407
|
+
raise ImcOperationError.new("Get Controller Type:#{controller_type} Slot: #{controller_slot}", "Managed Object not found")
|
408
|
+
end
|
409
|
+
return mo
|
410
|
+
end
|
411
|
+
def _flatten_to_string(drive_list)
|
412
|
+
# convert to format imc expects
|
413
|
+
# [[1]] => '1'
|
414
|
+
# [[1,2],[3,4]] => '1234'
|
415
|
+
|
416
|
+
flat_array = _flatten_list(drive_list)
|
417
|
+
#for x in _flatten_list(drive_list)
|
418
|
+
# flat_array.push(x.to_s.join(''))
|
419
|
+
#end
|
420
|
+
return flat_array.join('')
|
421
|
+
#return ''.join([''.join(x.to_s) for x in _flatten_list(drive_list)])
|
422
|
+
end
|
423
|
+
|
424
|
+
def _list_to_string(drive_list)
|
425
|
+
# convert to format imc expects
|
426
|
+
# list to string
|
427
|
+
# [[1]] => '[1]'
|
428
|
+
# [[1,2],[3,4]] => '[1,2][3,4]'
|
429
|
+
# imc fails to parse '[1, 2]'
|
430
|
+
# it needs to be '[1,2]'
|
431
|
+
# and hence the replace(' ', '')
|
432
|
+
dg_str = String.new
|
433
|
+
for each in drive_list
|
434
|
+
dg_str += each.to_s
|
435
|
+
end
|
436
|
+
#return dg_str.gsub!(' ', '')
|
437
|
+
return dg_str.delete(' ')
|
438
|
+
end
|
@@ -0,0 +1,55 @@
|
|
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
|
+
|
15
|
+
require_relative "../imcexception.rb"
|
16
|
+
|
17
|
+
def _get_mo(handle:, dn: nil, **kwargs)
|
18
|
+
|
19
|
+
if handle.nil?
|
20
|
+
raise ImcOperationError.new("Get Managed Object for dn: #{dn}", "Handle is nil")
|
21
|
+
end
|
22
|
+
if dn
|
23
|
+
mo = handle.query_dn(dn: dn)
|
24
|
+
if mo.nil?
|
25
|
+
raise ImcOperationError.new("Get Managed Object for dn:#{dn}", "Managed Object doesn't exist")
|
26
|
+
end
|
27
|
+
return mo
|
28
|
+
end
|
29
|
+
|
30
|
+
return nil
|
31
|
+
end
|
32
|
+
|
33
|
+
|
34
|
+
def _is_invalid_value(value)
|
35
|
+
return ["", nil].include? value
|
36
|
+
end
|
37
|
+
|
38
|
+
|
39
|
+
def _is_valid_arg(param, kwargs)
|
40
|
+
return !kwargs[param.to_sym].nil?
|
41
|
+
end
|
42
|
+
|
43
|
+
Tuple = Struct.new(:first, :second) do
|
44
|
+
def <=>(other)
|
45
|
+
return second <=> other.second if first == other.first
|
46
|
+
first <=> other.first
|
47
|
+
end
|
48
|
+
|
49
|
+
def to_s
|
50
|
+
"(#{first}, #{second})"
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
class TrueClass; def to_i; 1; end; end
|
55
|
+
class FalseClass; def to_i; 0; end; end
|