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
data/lib/ImcSdk.rb
ADDED
@@ -0,0 +1,395 @@
|
|
1
|
+
$:.unshift(*Dir[::File.expand_path('./ImcSdk/', File.dirname(__FILE__))])
|
2
|
+
|
3
|
+
require 'version'
|
4
|
+
require 'imcsession'
|
5
|
+
require 'imcexception'
|
6
|
+
require 'imcmethodfactory'
|
7
|
+
require 'imcconstants'
|
8
|
+
|
9
|
+
# ImcHandle class is the user interface point for any Imc communication.
|
10
|
+
# @author Amit Mandal(amimanda@cisco.com)
|
11
|
+
# @!attribute [rw] to_commit
|
12
|
+
|
13
|
+
class ImcHandle < ImcSession
|
14
|
+
|
15
|
+
attr_accessor :to_commit
|
16
|
+
|
17
|
+
# Create an object of ImcHandle class
|
18
|
+
#
|
19
|
+
# @param ip [String] The IP or Hostname of the IMC Server
|
20
|
+
# @param username [String] The username as configured on the Imc Server
|
21
|
+
# @param password [String] The password as configured on the Imc Server
|
22
|
+
# @param port [Integer, nil] The port number to be used during connection
|
23
|
+
# @param secure [bool, nil] true for secure connection, otherwise false
|
24
|
+
# @param proxy [String, nil] The proxy object to be used to connect
|
25
|
+
# @example
|
26
|
+
# handle = ImcHandle.new (ip: "192.168.1.1",username: "admin",password: "password")
|
27
|
+
# @example
|
28
|
+
# handle = ImcHandle.new (ip: "192.168.1.1",username: "admin",password: "password", secure: true)
|
29
|
+
# @example
|
30
|
+
# handle = ImcHandle.new (ip: "192.168.1.1",username: "admin",password: "password", secure: false)
|
31
|
+
# @example
|
32
|
+
# handle = ImcHandle.new (ip: "192.168.1.1",username: "admin",password: "password", port: 80)
|
33
|
+
# @example
|
34
|
+
# handle = ImcHandle.new (ip: "192.168.1.1",username: "admin",password: "password", port: 443)
|
35
|
+
# @example
|
36
|
+
# handle = ImcHandle.new (ip: "192.168.1.1",username: "admin",password: "password", port: 100, secure: true)
|
37
|
+
# @example
|
38
|
+
# handle = ImcHandle.new(ip: "192.168.1.1",username: "admin",password: "password", port: 100, secure: false)
|
39
|
+
|
40
|
+
def initialize(ip:, username:, password:, port: "80", secure: nil, proxy: nil)
|
41
|
+
super(ip: ip, username: username, password: password, port: port, secure: secure, proxy: proxy)
|
42
|
+
self.to_commit = {}
|
43
|
+
end
|
44
|
+
|
45
|
+
#def set_dump_xml()
|
46
|
+
# #Enables the logging of xml requests and responses
|
47
|
+
# super
|
48
|
+
#end
|
49
|
+
|
50
|
+
#def unset_dump_xml()
|
51
|
+
#Disables the logging of xml request and responses
|
52
|
+
# super
|
53
|
+
#end
|
54
|
+
|
55
|
+
# Initiated a connection to the server referenced by the ImcHandle. A cookie is populated in the ImcHandle, if the login is successful.
|
56
|
+
#
|
57
|
+
# @param auto_refresh [TrueClass, FalseCalss] If set to true, it refresh the cookie continuously
|
58
|
+
# @param force [TrueClass, FalseClass] If set to true it reconnects even if cookie exists and is valid for respective connection.
|
59
|
+
# @param timeout [Integer] Timeout value in seconds
|
60
|
+
# @return [TrueClass, FalseClass] true on successful connect
|
61
|
+
# @example
|
62
|
+
# handle.login()
|
63
|
+
# @example
|
64
|
+
# handle.login(auto_refresh: true)
|
65
|
+
# @example
|
66
|
+
# handle.login(force: true)
|
67
|
+
# @example
|
68
|
+
# handle.login(auto_refresh: true, force: true)
|
69
|
+
# @note Where handle is an object of ImcHandle class.
|
70
|
+
def login(auto_refresh: false, force: false, timeout: "60")
|
71
|
+
return _login(auto_refresh: auto_refresh, force: force, timeout: timeout)
|
72
|
+
end
|
73
|
+
|
74
|
+
# Disconnects from the server referenced by the ImcHandle.
|
75
|
+
#
|
76
|
+
# @param timeout [Integer] timeout value in seconds.
|
77
|
+
# @return [TrueClass, FalseClass] true on successful disconnect
|
78
|
+
#
|
79
|
+
# @example
|
80
|
+
# handle.logout()
|
81
|
+
# @example
|
82
|
+
# handle.logout(timout: 60)
|
83
|
+
# @note Where handle is an object of ImcHandle class.
|
84
|
+
|
85
|
+
def logout(timeout: "60")
|
86
|
+
return _logout(timeout: timeout)
|
87
|
+
end
|
88
|
+
|
89
|
+
#
|
90
|
+
# process_xml_elem is a helper method which posts xml elements to the
|
91
|
+
# server and returns parsed response. It's role is to operate on the
|
92
|
+
# output of methods from Imcmethodfactory, which return xml element
|
93
|
+
# node(s).
|
94
|
+
#
|
95
|
+
# @param elem [] XML Element Object
|
96
|
+
# @return [External Method Object, MO List] MO List or External Method Object
|
97
|
+
#
|
98
|
+
# @example
|
99
|
+
# elem = imcmethodfactory.config_resolve_class(cookie: handle.cookie, class_id: "computeRackUnit")
|
100
|
+
# objs = handle.process_xml_elem(elem)
|
101
|
+
#
|
102
|
+
def process_xml_elem(elem, timeout: "60")
|
103
|
+
response = self.post_elem(elem, timeout: timeout)
|
104
|
+
if response.error_code != 0
|
105
|
+
raise ImcException.new(response.error_code, response.error_descr)
|
106
|
+
end
|
107
|
+
if response.is_outconfig_available()
|
108
|
+
return response.get_outconfig_child()
|
109
|
+
else
|
110
|
+
return response
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
# Returns a token that is used for IMC authentication.
|
115
|
+
#
|
116
|
+
# @param timeout [Integer] timeout value(in seconds)
|
117
|
+
# @return [String] Token used for IMC Authentication
|
118
|
+
#
|
119
|
+
# @example
|
120
|
+
# handle.get_auth_token()
|
121
|
+
#
|
122
|
+
def get_auth_token(timeout: "60")
|
123
|
+
|
124
|
+
auth_token = nil
|
125
|
+
mo = self.query_classid(class_id: NamingId::COMPUTE_BOARD)
|
126
|
+
if mo.nil?
|
127
|
+
mo = self.query_classid(class_id: NamingId::COMPUTE_RACK_UNIT)
|
128
|
+
end
|
129
|
+
|
130
|
+
if !mo.nil?
|
131
|
+
elem = aaa_get_compute_auth_tokens(cookie: self.cookie)
|
132
|
+
response = self.post_elem(elem, timeout: timeout)
|
133
|
+
|
134
|
+
if response.error_code != 0
|
135
|
+
raise ImcException.new(response.error_code, response.error_descr)
|
136
|
+
end
|
137
|
+
|
138
|
+
if response.instance_variable_defined?(:@out_tokens)
|
139
|
+
auth_token = response.instance_variable_get(:@out_tokens).split(',').first
|
140
|
+
end
|
141
|
+
end
|
142
|
+
return auth_token
|
143
|
+
end
|
144
|
+
|
145
|
+
#
|
146
|
+
# Finds an object using it's distinguished name.
|
147
|
+
#
|
148
|
+
# @param dn [String] distinguished name of the object to be queried for.
|
149
|
+
# @param hierarchy [TrueClass, FalseClass] Gets all objects in hierarchy if true
|
150
|
+
# @param need_response [TrueClass, FalseClass] returns the response xml node, instead of parsed objects.
|
151
|
+
# @param timeout [Integer] timeout value(in seconds)
|
152
|
+
# @return [ManagedObject, Array<ManagedObject>, ExternalMethod] Return Managed Object by default, returns Array<ManagedObject> if hierarchy is set to true,
|
153
|
+
# returns ExternalMethod if need_response is set to true.
|
154
|
+
#
|
155
|
+
# @example
|
156
|
+
# obj = handle.query_dn(dn: "sys/rack-unit-1")
|
157
|
+
# @example
|
158
|
+
# obj = handle.query_dn(dn: "sys/rack-unit-1", hierarchy: true)
|
159
|
+
# @example
|
160
|
+
# obj = handle.query_dn(dn: "sys/rack-unit-1", need_response: true
|
161
|
+
# @example
|
162
|
+
# obj = handle.query_dn(dn: "sys/rack-unit-1", hierarchy: true, need_response: true)
|
163
|
+
|
164
|
+
def query_dn(dn:, hierarchy: false, need_response: false, timeout: "60")
|
165
|
+
|
166
|
+
if dn.nil?
|
167
|
+
raise ValueError.new ("Provide dn.")
|
168
|
+
end
|
169
|
+
|
170
|
+
elem = config_resolve_dn(self.cookie, dn, hierarchy)
|
171
|
+
|
172
|
+
response = self.post_elem(elem, timeout: timeout)
|
173
|
+
|
174
|
+
if response.error_code != 0
|
175
|
+
raise ImcException.new(response.error_code, response.error_descr)
|
176
|
+
end
|
177
|
+
|
178
|
+
if need_response
|
179
|
+
return response
|
180
|
+
end
|
181
|
+
|
182
|
+
if hierarchy
|
183
|
+
out_mo_list = ImcCoreUtils.extract_molist_from_method_response(response, hierarchy)
|
184
|
+
return out_mo_list
|
185
|
+
end
|
186
|
+
|
187
|
+
mo = nil
|
188
|
+
child = response.get_outconfig_child()
|
189
|
+
if child.size > 0
|
190
|
+
mo = child[0]
|
191
|
+
end
|
192
|
+
return mo
|
193
|
+
end
|
194
|
+
|
195
|
+
#
|
196
|
+
# Finds an object using it's class id.
|
197
|
+
#
|
198
|
+
# @param class_id [String] class id of the object to be queried for.
|
199
|
+
# @param hierarchy [TrueClass, FalseClass] if set to true will return all the child hierarchical objects.
|
200
|
+
# @param need_response [TrueClass, FalseClass] if set to true will return only response object.
|
201
|
+
# @param timeout [Integer] timeout value(in seconds)
|
202
|
+
# @return [Array<ManagedObject>, Method_Response, nil] returns Method_Response if need_response is set to true
|
203
|
+
#
|
204
|
+
# @example
|
205
|
+
# obj = handle.query_classid(class_id: "computeRackUnit")
|
206
|
+
# @example
|
207
|
+
# obj = handle.query_classid(class_id: "computeRackUnit", hierarchy: true)
|
208
|
+
# @example
|
209
|
+
# obj = handle.query_classid(class_id: "computeRackUnit", need_response: true)
|
210
|
+
#
|
211
|
+
def query_classid(class_id:, hierarchy: false, need_response: false, timeout: "60" )
|
212
|
+
|
213
|
+
if class_id.nil?
|
214
|
+
raise ValueError("Provide Parameter class_id")
|
215
|
+
end
|
216
|
+
|
217
|
+
meta_class_id = ImcCoreUtils.find_class_id_in_mo_meta_ignore_case(class_id)
|
218
|
+
|
219
|
+
if meta_class_id.nil?
|
220
|
+
meta_class_id = class_id
|
221
|
+
end
|
222
|
+
|
223
|
+
elem = config_resolve_class(self.cookie, class_id = meta_class_id, hierarchy)
|
224
|
+
|
225
|
+
response = self.post_elem(elem, timeout: timeout)
|
226
|
+
|
227
|
+
if response.error_code != 0
|
228
|
+
raise ImcException.new(response.error_code, response.error_descr)
|
229
|
+
end
|
230
|
+
|
231
|
+
if need_response
|
232
|
+
return response
|
233
|
+
end
|
234
|
+
|
235
|
+
out_mo_list = ImcCoreUtils.extract_molist_from_method_response(response, hierarchy)
|
236
|
+
return out_mo_list
|
237
|
+
|
238
|
+
end
|
239
|
+
|
240
|
+
#
|
241
|
+
# Finds children of a given managed object or distinguished name.
|
242
|
+
# Arguments can be specified to query only a specific type(class_id) of children.
|
243
|
+
# Arguments can also be specified to query only direct children or the entire hierarchy of children.
|
244
|
+
#
|
245
|
+
# @param in_mo [ManagedObject] query children managed object under this object.
|
246
|
+
# @param in_dn [String] query children managed object for a given managed object of the respective dn.
|
247
|
+
# @param class_id [String] by default nil, if given finds only specific childred object for a given class_id.
|
248
|
+
# @param hierarchy [TrueClass, FalseClass] if set to true will return all the child hierarchical objects.
|
249
|
+
# @param timeout [Integer] timeout value in seconds
|
250
|
+
# @return [Array<ManagedObject>, nil]
|
251
|
+
#
|
252
|
+
# @example
|
253
|
+
# mo_list = handle.query_children(in_mo: mo)
|
254
|
+
# @example
|
255
|
+
# mo_list = handle.query_children(in_mo: mo, class_id: "classid")
|
256
|
+
# @example
|
257
|
+
# mo_list = handle.query_children(in_dn: dn)
|
258
|
+
# @example
|
259
|
+
# mo_list = handle.query_children(in_dn: dn, class_id: "classid")
|
260
|
+
#
|
261
|
+
def query_children(in_mo: nil, in_dn: nil, class_id: nil, hierarchy: false, timeout: "60")
|
262
|
+
if in_mo.nil? and in_dn.nil?
|
263
|
+
raise ValueError("[Error]: GetChild: Provide in_mo or in_dn")
|
264
|
+
end
|
265
|
+
|
266
|
+
if in_mo
|
267
|
+
parent_dn = in_mo.dn
|
268
|
+
elsif
|
269
|
+
parent_dn = in_dn
|
270
|
+
end
|
271
|
+
|
272
|
+
if class_id
|
273
|
+
meta_class_id = ImcCoreUtils.find_class_id_in_mo_meta_ignore_case(class_id)
|
274
|
+
if meta_class_id.nil?
|
275
|
+
meta_class_id = class_id
|
276
|
+
end
|
277
|
+
else
|
278
|
+
meta_class_id = class_id
|
279
|
+
end
|
280
|
+
|
281
|
+
elem = config_resolve_children(self.cookie, class_id = meta_class_id, in_dn = parent_dn, hierarchy)
|
282
|
+
|
283
|
+
response = post_elem(elem, timeout: timeout)
|
284
|
+
|
285
|
+
if response.error_code != 0
|
286
|
+
raise ImcException.new(response.error_code, response.error_descr)
|
287
|
+
end
|
288
|
+
|
289
|
+
out_mo_list = ImcCoreUtils.extract_molist_from_method_response(response, hierarchy)
|
290
|
+
|
291
|
+
return out_mo_list
|
292
|
+
end
|
293
|
+
#
|
294
|
+
# Add a Managed Object to the IMC Server
|
295
|
+
#
|
296
|
+
# @param mo [ManagedObject] Managed Object to the added to the IMC Server
|
297
|
+
# @param modify_present [TrueClass, FalseClass] Over-write an existing object if true
|
298
|
+
# @param timeout [Integer] timoeout value(in seconds)
|
299
|
+
# @return [nil]
|
300
|
+
# @example
|
301
|
+
# handle.add_mo(mo: mo)
|
302
|
+
#
|
303
|
+
def add_mo(mo:, modify_present: true, timeout: "60")
|
304
|
+
if ImcGenUtils::AFFIRMATIVE_LIST.include? modify_present
|
305
|
+
if self.query_dn(dn: mo.dn).nil?
|
306
|
+
mo.set_prop("status","created")
|
307
|
+
else
|
308
|
+
mo.set_prop("status", "modified")
|
309
|
+
end
|
310
|
+
else
|
311
|
+
mo.set_prop("status", "created")
|
312
|
+
end
|
313
|
+
|
314
|
+
self.to_commit[mo.dn] = mo
|
315
|
+
_commit(timeout: timeout)
|
316
|
+
end
|
317
|
+
|
318
|
+
#
|
319
|
+
# Modifies a managed object and adds it to the ImcHandle commit buffer (if not already in it)
|
320
|
+
#
|
321
|
+
# @param mo [ManagedObject] Managed Object with modified properties
|
322
|
+
# @param timeout [Integer, nil] timeout value in seconds
|
323
|
+
# @return [nil]
|
324
|
+
#
|
325
|
+
# @example
|
326
|
+
# handle.set_mo(mo: mo)
|
327
|
+
#
|
328
|
+
def set_mo(mo:, timeout: "60")
|
329
|
+
#mo.instance_variable_set(:@status, "modified")
|
330
|
+
mo.set_prop("status", "modified")
|
331
|
+
self.to_commit[mo.instance_variable_get(:@dn)] = mo
|
332
|
+
_commit(timeout: timeout)
|
333
|
+
end
|
334
|
+
|
335
|
+
#
|
336
|
+
# Remove a Managed Object from the IMC Server
|
337
|
+
#
|
338
|
+
# @param mo [ManagedObject] Managed Object to be removed.
|
339
|
+
# @param timeout [Integer] timeout value(in seconds).
|
340
|
+
# @return [nil] Nothing is returned.
|
341
|
+
#
|
342
|
+
# @example
|
343
|
+
# handle.remove_mo(mo: mo)
|
344
|
+
#
|
345
|
+
def remove_mo(mo:, timeout: "60")
|
346
|
+
mo.set_prop("status", "deleted")
|
347
|
+
if mo.instance_variable_defined?(:@parent_mo) and !mo.parent_mo.nil?
|
348
|
+
mo.parent_mo.child_remove(mo)
|
349
|
+
end
|
350
|
+
|
351
|
+
self.to_commit[mo.dn] = mo
|
352
|
+
_commit(timeout: timeout)
|
353
|
+
end
|
354
|
+
|
355
|
+
#private methods
|
356
|
+
private
|
357
|
+
#
|
358
|
+
# Commit the buffer to the server. Pushes all the configuration changes so far to the server.
|
359
|
+
# Configuration could be added to the commit buffer using add_mo(), set_mo(), and remove_mo().
|
360
|
+
#
|
361
|
+
# @param timeout [Integer] timeout value in seconds.
|
362
|
+
# @return [nil]
|
363
|
+
# @example
|
364
|
+
# self._commit()
|
365
|
+
#
|
366
|
+
def _commit(timeout: "60")
|
367
|
+
|
368
|
+
mo_dict = self.to_commit
|
369
|
+
if mo_dict.nil? or mo_dict.empty?
|
370
|
+
return nil
|
371
|
+
end
|
372
|
+
|
373
|
+
config_map = ConfigMap.new()
|
374
|
+
|
375
|
+
mo_dict.each do |mo_dn, mo|
|
376
|
+
config_map.child_add(mo)
|
377
|
+
elem = config_conf_mo(self.cookie, mo_dn, config_map, false)
|
378
|
+
|
379
|
+
response = post_elem(elem, timeout: timeout)
|
380
|
+
|
381
|
+
if response.error_code != 0
|
382
|
+
self.to_commit = {}
|
383
|
+
raise ImcException.new(response.error_code, response.error_descr)
|
384
|
+
end
|
385
|
+
|
386
|
+
child = response.get_outconfig_child()
|
387
|
+
for pair_ in child do
|
388
|
+
for out_mo in pair_.child do
|
389
|
+
out_mo.sync_mo(mo_dict[out_mo.dn])
|
390
|
+
end
|
391
|
+
end
|
392
|
+
self.to_commit = {}
|
393
|
+
end
|
394
|
+
end
|
395
|
+
end
|
@@ -0,0 +1,99 @@
|
|
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_relative "../utils.rb"
|
17
|
+
require "imccoreutils"
|
18
|
+
|
19
|
+
require "mometa/comm/CommIpmiLan"
|
20
|
+
|
21
|
+
#
|
22
|
+
# Enable IPMI over LAN.
|
23
|
+
#
|
24
|
+
# @param handle [ImcHandle] ImcHandle class object
|
25
|
+
# @param priv [String] Optional privilege level: "admin", "user", or "read-only"
|
26
|
+
# @param server_id [Integer] Server Id to be specified for C3260 platforms
|
27
|
+
# @return [CommIpmiLan]
|
28
|
+
# @raise [ValueError] if privilege or key is invalid
|
29
|
+
# @example
|
30
|
+
# if ipmi_enable(handle) then puts "IPMI Enable" end
|
31
|
+
#
|
32
|
+
def ipmi_enable(handle:, priv: CommIpmiLanConsts::PRIV_ADMIN,
|
33
|
+
key: '0'*40, server_id: 1)
|
34
|
+
|
35
|
+
# Verify key is a hex number
|
36
|
+
begin
|
37
|
+
key.to_i(16).to_s(16)
|
38
|
+
rescue
|
39
|
+
raise ValueError.new("#{handle.ip}: ERROR: Encryption key is not hex number: #{key}")
|
40
|
+
end
|
41
|
+
# Create enabled IPMI object
|
42
|
+
ipmi_mo = CommIpmiLan.new(parent_mo_or_dn: _get_comm_mo_dn(handle, server_id))
|
43
|
+
|
44
|
+
args = {:admin_state => "enabled",
|
45
|
+
:priv => priv,
|
46
|
+
:key => key}
|
47
|
+
ipmi_mo.set_prop_multiple(**args)
|
48
|
+
|
49
|
+
# Configure IPMI object on CIMC
|
50
|
+
handle.set_mo(mo: ipmi_mo)
|
51
|
+
return handle.query_dn(dn: ipmi_mo.dn)
|
52
|
+
end
|
53
|
+
|
54
|
+
#
|
55
|
+
# Disable IPMI over LAN.
|
56
|
+
#
|
57
|
+
# @param handle [ImcHandle] ImcHandle class object
|
58
|
+
# @param server_id [Integer] Server Id to be specified for C3260 platforms.
|
59
|
+
# @return [CommIpmiLan]
|
60
|
+
#
|
61
|
+
def ipmi_disable(handle:, server_id: 1)
|
62
|
+
|
63
|
+
# Create disabled IPMI object
|
64
|
+
ipmi_mo = CommIpmiLan.new(parent_mo_or_dn: _get_comm_mo_dn(handle, server_id))
|
65
|
+
ipmi_mo.set_prop(:admin_state, "disabled")
|
66
|
+
|
67
|
+
# Configure IPMI object on CIMC
|
68
|
+
handle.set_mo(mo: ipmi_mo)
|
69
|
+
return handle.query_dn(dn: ipmi_mo.dn)
|
70
|
+
end
|
71
|
+
|
72
|
+
#
|
73
|
+
# Check if IPMI over LAN is enabled
|
74
|
+
#
|
75
|
+
# @param handle [ImcHandle] ImcHandle class object
|
76
|
+
# @param server_id [Integer] Server Id to be specified for C3260 platforms
|
77
|
+
# @return [TrueClass, FalseClass] true if enable, else false
|
78
|
+
#
|
79
|
+
def is_ipmi_enabled(handle:, server_id: 1)
|
80
|
+
ipmi_mo = CommIpmiLan.new(parent_mo_or_dn:_get_comm_mo_dn(handle, server_id))
|
81
|
+
ipmi_mo = handle.query_dn(dn: ipmi_mo.dn)
|
82
|
+
|
83
|
+
return (ipmi_mo.admin_state.downcase == "enabled")
|
84
|
+
end
|
85
|
+
|
86
|
+
private
|
87
|
+
#
|
88
|
+
# Internal method to get the IPMI mo's parent_dn based on the type of platform
|
89
|
+
#
|
90
|
+
def _get_comm_mo_dn(handle, server_id=1)
|
91
|
+
|
92
|
+
if handle.platform == IMC_PLATFORM::TYPE_CLASSIC
|
93
|
+
return("sys/svc-ext")
|
94
|
+
elsif handle.platform == IMC_PLATFORM::TYPE_MODULAR
|
95
|
+
return(ImcCoreUtils.get_server_dn(handle, server_id) + "/svc-ext")
|
96
|
+
else
|
97
|
+
raise ImcValidationException("Invalid platform detected: #{handle.platform}")
|
98
|
+
end
|
99
|
+
end
|