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,219 @@
|
|
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
|
+
require "mometa/power/PowerBudget"
|
17
|
+
require "mometa/standard/StandardPowerProfile"
|
18
|
+
require "imccoreutils"
|
19
|
+
require_relative "../utils"
|
20
|
+
|
21
|
+
# This list is currently maintained manually.
|
22
|
+
# Ideally all such config/capabilites should come from a capability file
|
23
|
+
SUPPORTED_MODELS = ['UCSC-C220-M4', 'UCSC-C240-M4', 'UCSC-C3K-M4']
|
24
|
+
SUPPORTED_VARIANTS = ['M4', 'M5']
|
25
|
+
|
26
|
+
#
|
27
|
+
# This api returns the list of rack server models that support power cap and power budgeting
|
28
|
+
#
|
29
|
+
def get_supported_models()
|
30
|
+
return SUPPORTED_MODELS
|
31
|
+
end
|
32
|
+
|
33
|
+
#
|
34
|
+
# This api gets the min and max power limits for the platform, cpu and memory
|
35
|
+
# for this specific server
|
36
|
+
#
|
37
|
+
# @param handle [ImcHandle] ImcHandle class object
|
38
|
+
# @param server_id [Integer] Server Id to be specified for C3260 platforms
|
39
|
+
# @return [PowerBudget]
|
40
|
+
#
|
41
|
+
def server_power_budget_get(handle: , server_id: 1)
|
42
|
+
if !_is_supported_model(handle)
|
43
|
+
return
|
44
|
+
end
|
45
|
+
|
46
|
+
power_budget_mo = handle.query_children(in_dn: ImcCoreUtils.get_server_dn(handle, server_id),
|
47
|
+
class_id: "PowerBudget")
|
48
|
+
if !power_budget_mo
|
49
|
+
raise ImcOperationError.new("Get Power Budget",
|
50
|
+
"Invalid Server Id configured")
|
51
|
+
end
|
52
|
+
|
53
|
+
return power_budget_mo[0]
|
54
|
+
end
|
55
|
+
|
56
|
+
#
|
57
|
+
# Enables power characterization.
|
58
|
+
#
|
59
|
+
# @param handle [ImcHandle] ImcHandle class object.
|
60
|
+
# @param server_id [Integer] Server Id to be specified for C3260 platforms
|
61
|
+
# @return [PowerBudget]
|
62
|
+
#
|
63
|
+
def server_power_characterization_enable(handle:, server_id: 1)
|
64
|
+
if !_is_supported_model(handle)
|
65
|
+
return
|
66
|
+
end
|
67
|
+
power_budget_mo = PowerBudget.new(parent_mo_or_dn: ImcCoreUtils.get_server_dn(handle, server_id))
|
68
|
+
|
69
|
+
power_budget_mo.set_prop(:pow_char_enable, "enabled")
|
70
|
+
handle.set_mo(mo: power_budget_mo)
|
71
|
+
return handle.query_dn(dn: power_budget_mo.dn)
|
72
|
+
end
|
73
|
+
|
74
|
+
#
|
75
|
+
# Disables power characterization.
|
76
|
+
#
|
77
|
+
# @param handle [ImcHandle] ImcHandle class object.
|
78
|
+
# @param server_id [Integer] Server Id to be specified for C3260 platforms
|
79
|
+
# @return [PowerBudget]
|
80
|
+
#
|
81
|
+
def server_power_characterization_disable(handle:, server_id: 1)
|
82
|
+
|
83
|
+
if !_is_supported_model(handle)
|
84
|
+
return
|
85
|
+
end
|
86
|
+
server_standard_power_cap_disable(handle: handle, server_id: server_id)
|
87
|
+
power_budget_mo = PowerBudget.new(parent_mo_or_dn: ImcCoreUtils.get_server_dn(handle, server_id))
|
88
|
+
|
89
|
+
power_budget_mo.set_prop(:pow_char_enable, "disabled")
|
90
|
+
handle.set_mo(mo: power_budget_mo)
|
91
|
+
return handle.query_dn(dn: power_budget_mo.dn)
|
92
|
+
end
|
93
|
+
|
94
|
+
#
|
95
|
+
# Enables power capping feature on the server.
|
96
|
+
#
|
97
|
+
# @param handle [ImcHandle] ImcHandle class object.
|
98
|
+
# @param server_id [Integer] Server Id to be specified for C3260 platforms
|
99
|
+
# @return [PowerBudget]
|
100
|
+
#
|
101
|
+
def server_power_capping_enable(handle:, server_id: 1)
|
102
|
+
if !_is_supported_model(handle)
|
103
|
+
return
|
104
|
+
end
|
105
|
+
power_budget_mo = PowerBudget.new(parent_mo_or_dn: ImcCoreUtils.get_server_dn(handle, server_id))
|
106
|
+
power_budget_mo.set_prop(:admin_state, "enabled")
|
107
|
+
handle.set_mo(mo: power_budget_mo)
|
108
|
+
return power_budget_mo
|
109
|
+
end
|
110
|
+
|
111
|
+
#
|
112
|
+
# Disables power capping feature on the server.
|
113
|
+
#
|
114
|
+
# @param handle [ImcHandle] ImcHandle class object.
|
115
|
+
# @param server_id [Integer] Server Id to be specified for C3260 platforms
|
116
|
+
# @return [PowerBudget]
|
117
|
+
#
|
118
|
+
def server_power_capping_disable(handle:, server_id: 1)
|
119
|
+
|
120
|
+
if !_is_supported_model(handle)
|
121
|
+
return
|
122
|
+
end
|
123
|
+
power_budget_mo = PowerBudget.new(parent_mo_or_dn: ImcCoreUtils.get_server_dn(handle, server_id))
|
124
|
+
power_budget_mo.set_prop(:admin_state, "disabled")
|
125
|
+
handle.set_mo(mo: power_budget_mo)
|
126
|
+
return power_budget_mo
|
127
|
+
end
|
128
|
+
|
129
|
+
#
|
130
|
+
# This method sets up the standard power cap configuration profile
|
131
|
+
#
|
132
|
+
# @param handle [ImcHandle] ImcHandle class object
|
133
|
+
# @param throttle [TrueClass, FalseClass] Power limit in Watts.
|
134
|
+
# Range can be retrieved from min_power and max_power
|
135
|
+
# fields of PowerBudget object
|
136
|
+
# @param correction_time [Integer] Time in seconds before power_limit is enforced
|
137
|
+
# and corrective action is taken. Range (1-600)s
|
138
|
+
# @param corrective_action [String] valid values ["none","alert","shutdown","alert,shutdown"]
|
139
|
+
# @param hard_cap [TrueClass, FalseClass] Enable hard power cap
|
140
|
+
# @param server_id [Integer] Server Id to be specified for C3260 platforms
|
141
|
+
# @return [StandardPowerProfile]'
|
142
|
+
# @example
|
143
|
+
# server_standard_power_cap_set(handle,
|
144
|
+
# correction_time: 5,
|
145
|
+
# corrective_action: "alert")
|
146
|
+
# @example
|
147
|
+
# server_standard_power_cap_set(handle, throttle: true,
|
148
|
+
# power_limit: 200, correction_time: 5,
|
149
|
+
# corrective_action: "alert, shutdown")
|
150
|
+
def server_standard_power_cap_set(handle:, power_limit:, throttle: false,
|
151
|
+
correction_time: 3, corrective_action: "alert",
|
152
|
+
hard_cap: false, server_id: 1)
|
153
|
+
if !_is_supported_model(handle)
|
154
|
+
return
|
155
|
+
end
|
156
|
+
|
157
|
+
power_budget_dn = ImcCoreUtils.get_server_dn(handle, server_id) + "/budget"
|
158
|
+
stdpowerprof_mo = StandardPowerProfile.new(parent_mo_or_dn: power_budget_dn)
|
159
|
+
|
160
|
+
params = {
|
161
|
+
:allow_throttle => throttle ? "yes" : "no",
|
162
|
+
:power_limit => power_limit.to_s,
|
163
|
+
:corr_time => correction_time.to_s,
|
164
|
+
:corr_action => corrective_action,
|
165
|
+
:profile_enabled => "yes",
|
166
|
+
:hard_cap => hard_cap ? "yes" : "no"
|
167
|
+
}
|
168
|
+
|
169
|
+
stdpowerprof_mo.set_prop_multiple(**params)
|
170
|
+
handle.set_mo(mo: stdpowerprof_mo)
|
171
|
+
return stdpowerprof_mo
|
172
|
+
end
|
173
|
+
|
174
|
+
#
|
175
|
+
# This method disables the standard power profile
|
176
|
+
#
|
177
|
+
# @param handle [ImcHandle] ImcHandle class object.
|
178
|
+
# @param server_id [Integer] Server Id to be specified for C3260 platforms
|
179
|
+
# @return [nil]
|
180
|
+
#
|
181
|
+
def server_standard_power_cap_disable(handle:, server_id: 1)
|
182
|
+
if !_is_supported_model(handle)
|
183
|
+
return
|
184
|
+
end
|
185
|
+
server_dn = ImcCoreUtils.get_server_dn(handle, server_id)
|
186
|
+
power_budget_dn = server_dn + "/budget"
|
187
|
+
stdpowerprof_mo = StandardPowerProfile.new(parent_mo_or_dn: power_budget_dn)
|
188
|
+
stdpowerprof_mo.set_prop(:profile_enabled, "no")
|
189
|
+
handle.set_mo(mo: stdpowerprof_mo)
|
190
|
+
end
|
191
|
+
|
192
|
+
#
|
193
|
+
# Starts a power characterization run.
|
194
|
+
# From 3.0(1c) onwards, server_power_characterization_enable needs to be
|
195
|
+
# explicitly done, before invoking this api.
|
196
|
+
#
|
197
|
+
# @param handle [ImcHandle] ImcHandle class object.
|
198
|
+
# @param server_id [Integer] Server Id to be specified for C3260 platforms
|
199
|
+
# @return [PowerBudget]
|
200
|
+
#
|
201
|
+
def server_power_characterization_start(handle:, server_id: 1)
|
202
|
+
if !_is_supported_model(handle)
|
203
|
+
return
|
204
|
+
end
|
205
|
+
power_budget_mo = PowerBudget.new(parent_mo_or_dn: ImcCoreUtils.get_server_dn(handle, server_id))
|
206
|
+
power_budget_mo.set_prop(:admin_action, PowerBudgetConsts::ADMIN_ACTION_START_POWER_CHAR)
|
207
|
+
handle.set_mo(mo: power_budget_mo)
|
208
|
+
return handle.query_dn(dn: power_budget_mo.dn)
|
209
|
+
end
|
210
|
+
|
211
|
+
private
|
212
|
+
def _is_supported_model(handle)
|
213
|
+
for variant in SUPPORTED_VARIANTS
|
214
|
+
if handle.model.include? variant
|
215
|
+
return true
|
216
|
+
end
|
217
|
+
end
|
218
|
+
return false
|
219
|
+
end
|
@@ -0,0 +1,170 @@
|
|
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 "apis/admin/ipmi"
|
18
|
+
require "mometa/comm/CommKvm"
|
19
|
+
require "mometa/sol/SolIf"
|
20
|
+
|
21
|
+
#
|
22
|
+
# This method will setup and enable kvm console access
|
23
|
+
#
|
24
|
+
# @param handle [ImcHandle] ImcHandle class object
|
25
|
+
# @param max_sessions [Integer] Max no. of sessions allowed (1-4)
|
26
|
+
# @param port [Integer] Port used for kvm communication
|
27
|
+
# @param encrypt [TrueClass, FalseClass] Encrypt video information sent over kvm
|
28
|
+
# @param mirror_locally [TrueClass, FalseClass] Mirror the kvm session on local monitor
|
29
|
+
# @param server_id [Integer] Server Id to be specified for C3260 platforms
|
30
|
+
# @return [CommKvm]
|
31
|
+
# @example
|
32
|
+
# kvm_setup(handle: ImcHandle,
|
33
|
+
# max_sessions: 4,
|
34
|
+
# port: 4000,
|
35
|
+
# encrypt: true,
|
36
|
+
# mirror_locally: false)
|
37
|
+
#
|
38
|
+
def kvm_setup(handle: , max_sessions: 1, port: 2068,\
|
39
|
+
encrypt: false, mirror_locally: false, server_id: 1)
|
40
|
+
kvm_mo = CommKvm.new(parent_mo_or_dn: _get_comm_mo_dn(handle, server_id))
|
41
|
+
params = {
|
42
|
+
:admin_state => "enabled",
|
43
|
+
:total_sessions => max_sessions.to_s,
|
44
|
+
:port => port.to_s,
|
45
|
+
:encryption_state => encrypt ? "enabled" : "disabled",
|
46
|
+
:local_video_state => mirror_locally ? "enabled" : "disabled"
|
47
|
+
}
|
48
|
+
|
49
|
+
kvm_mo.set_prop_multiple(**params)
|
50
|
+
handle.set_mo(mo: kvm_mo)
|
51
|
+
return kvm_mo
|
52
|
+
end
|
53
|
+
|
54
|
+
#
|
55
|
+
# This method will disable kvm console access
|
56
|
+
#
|
57
|
+
# @param handle [ImcHandle] ImcHandle class object
|
58
|
+
# @param server_id [Integer] Server Id to be specified for C3260 platforms
|
59
|
+
# @return [nil]
|
60
|
+
#
|
61
|
+
def kvm_disable(handle:, server_id: 1)
|
62
|
+
kvm_mo = CommKvm.new(parent_mo_or_dn: _get_comm_mo_dn(handle, server_id))
|
63
|
+
kvm_mo.set_prop(:admin_state, "disabled")
|
64
|
+
handle.set_mo(mo: kvm_mo)
|
65
|
+
end
|
66
|
+
|
67
|
+
#
|
68
|
+
# This method will check if kvm console access is enabled
|
69
|
+
#
|
70
|
+
# @param handle [ImcHandle] ImcHandle class object
|
71
|
+
# @param server_id [Integer] Server Id to be specified for C3260 platforms
|
72
|
+
# @return [nil]
|
73
|
+
#
|
74
|
+
def is_kvm_enabled(handle:, server_id: 1)
|
75
|
+
kvm_mo = CommKvm.new(parent_mo_or_dn: _get_comm_mo_dn(handle, server_id))
|
76
|
+
kvm_mo = handle.query_dn(dn: kvm_mo.dn)
|
77
|
+
return(kvm_mo.admin_state.downcase == "enabled")
|
78
|
+
end
|
79
|
+
|
80
|
+
#
|
81
|
+
# This method will setup serial over lan connection
|
82
|
+
#
|
83
|
+
# @param handle [ImcHandle] ImcHandle class object
|
84
|
+
# @param speed [String] valid values - "9600", "19200", "38400", "57600", "115200"
|
85
|
+
# @param comport [Strong] valid values :- "com0", "com1"
|
86
|
+
# @param ssh_port [Integer] port for ssh
|
87
|
+
# @param server_id [Integer] Server Id to be specified for C3260 platforms
|
88
|
+
# @return [SolIf]
|
89
|
+
def sol_setup(handle:, speed:, comport:, ssh_port: nil, server_id: 1)
|
90
|
+
solif_mo = SolIf.new(parent_mo_or_dn: ImcCoreUtils.get_server_dn(handle, server_id))
|
91
|
+
params = {
|
92
|
+
:admin_state => SolIfConsts::ADMIN_STATE_ENABLE,
|
93
|
+
:speed => speed.to_s,
|
94
|
+
:comport => comport
|
95
|
+
}
|
96
|
+
if !ssh_port.nil?
|
97
|
+
params[:ssh_port] = ssh_port.to_s
|
98
|
+
end
|
99
|
+
|
100
|
+
solif_mo.set_prop_multiple(**params)
|
101
|
+
handle.set_mo(mo: solif_mo)
|
102
|
+
return handle.query_dn(dn: solif_mo.dn)
|
103
|
+
end
|
104
|
+
|
105
|
+
#
|
106
|
+
# This method will disable Serial over Lan connection
|
107
|
+
#
|
108
|
+
# @param handle [ImcHandle] ImcHandle class object
|
109
|
+
# @param server_id [Integer] Server Id to be specified for C3260 platforms
|
110
|
+
# @return [nil]
|
111
|
+
#
|
112
|
+
def sol_disable(handle:, server_id: 1)
|
113
|
+
solif_mo = SolIf.new(parent_mo_or_dn: ImcCoreUtils.get_server_dn(handle, server_id))
|
114
|
+
solif_mo.set_prop(:admin_state, SolIfConsts::ADMIN_STATE_DISABLE)
|
115
|
+
handle.set_mo(mo: solif_mo)
|
116
|
+
end
|
117
|
+
|
118
|
+
#
|
119
|
+
# This method will check if Serial over Lan connection is enabled
|
120
|
+
#
|
121
|
+
# @param handle [ImcHandle] ImcHandle class object
|
122
|
+
# @param server_id [Integer] Server Id to be specified for C3260 platforms
|
123
|
+
# @return [nil]
|
124
|
+
#
|
125
|
+
def is_sol_enabled(handle:, server_id: 1)
|
126
|
+
solif_mo = SolIf.new(parent_mo_or_dn: ImcCoreUtils.get_server_dn(handle, server_id))
|
127
|
+
solif_mo = handle.query_dn(dn: solif_mo.dn)
|
128
|
+
return ["enable", "enabled"].include? solif_mo.admin_state.downcase
|
129
|
+
end
|
130
|
+
|
131
|
+
|
132
|
+
#
|
133
|
+
# This method will check if the specified SOL settings are already applied.
|
134
|
+
#
|
135
|
+
# @param handle [ImcHandle] ImcHandle class object
|
136
|
+
# @param server_id [Integer] ServerId to be specified for C3260 platforms
|
137
|
+
# @param kwargs [Hash] key-value paired arguments.
|
138
|
+
# @return [TrueClass, SolIf] if settings match
|
139
|
+
# @return [FalseClass, SolIf] if settings don't match
|
140
|
+
#
|
141
|
+
def sol_settings_exist(handle:, server_id: 1, **kwargs)
|
142
|
+
exists = true
|
143
|
+
solif_mo = SolIf.new(parent_mo_or_dn: ImcCoreUtils.get_server_dn(handle, server_id))
|
144
|
+
solif_mo = handle.query_dn(dn: solif_mo.dn)
|
145
|
+
if _is_valid_arg("admin_state", kwargs)
|
146
|
+
if solif_mo.admin_state.downcase != kwargs[:admin_state].downcase
|
147
|
+
exists = false
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
if _is_valid_arg("speed", kwargs)
|
152
|
+
if solif_mo.speed.to_s != kwargs[:speed].to_s
|
153
|
+
exists = false
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
if _is_valid_arg("comport", kwargs)
|
158
|
+
if solif_mo.comport != kwargs[:comport]
|
159
|
+
exists = false
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
if _is_valid_arg("ssh_port", kwargs)
|
164
|
+
if solif_mo.ssh_port.to_s != kwargs[:ssh_port].to_s
|
165
|
+
exists = false
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
169
|
+
return exists, solif_mo
|
170
|
+
end
|
@@ -0,0 +1,382 @@
|
|
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"
|
17
|
+
|
18
|
+
#
|
19
|
+
# This method will return the oper power status of the rack server
|
20
|
+
#
|
21
|
+
# @param handle [ImcHandle] ImcHandle class object
|
22
|
+
# @param server_id [Integer] Server Id to be specified for C3260 platforms
|
23
|
+
# @return [String] Oper Power state
|
24
|
+
# @example
|
25
|
+
# For classic or non-C3260 series servers:-
|
26
|
+
# server_power_state_get(handle)
|
27
|
+
# For modular or C3260 series servers, server_id should also be passed in the params:-
|
28
|
+
# server_power_state_get(handle: handle, server_id: 1)
|
29
|
+
# @note If server_id is not specified, this will assume server_id="1"
|
30
|
+
#
|
31
|
+
def server_power_state_get(handle:, server_id: 1)
|
32
|
+
server_dn = ImcCoreUtils.get_server_dn(handle, server_id)
|
33
|
+
server_mo = handle.query_dn(dn: server_dn)
|
34
|
+
if server_mo
|
35
|
+
return server_mo.oper_power
|
36
|
+
end
|
37
|
+
|
38
|
+
raise ImcOperationError.new("Get Server Power State",
|
39
|
+
"Managed Object not found for dn: #{server_dn}")
|
40
|
+
end
|
41
|
+
|
42
|
+
#
|
43
|
+
# This method will send the server the power up signal, and then polls
|
44
|
+
# the server every $interval until either $timeout or it comes online.
|
45
|
+
#
|
46
|
+
# @param handle [ImcHandle] ImcHandle class object
|
47
|
+
# @param timeout [Integer] timeout in seconds
|
48
|
+
# @param interval [Integer]
|
49
|
+
# @param server_id [Integer] Server Id to be specified for C3260 platforms
|
50
|
+
# @param kwargs [Hash] key=>value paired arguments
|
51
|
+
# @return [ComputeRackUnit] for non C3260 platforms
|
52
|
+
# @return [ComputeServerNode] for C3260 platforms
|
53
|
+
# @example
|
54
|
+
# server_power_up(handle: ImcHandle)
|
55
|
+
# @example
|
56
|
+
# server_power_up(handle: ImcHandle, timeout: 120, interval: 10)
|
57
|
+
# @example
|
58
|
+
# server_power_up(handle: ImcHandle, server_id: 2, timeout: 60)
|
59
|
+
#
|
60
|
+
def server_power_up(handle:, timeout: 60, interval: 5, server_id: 1, **kwargs)
|
61
|
+
server_dn = ImcCoreUtils.get_server_dn(handle, server_id)
|
62
|
+
# Turn power on only if not already powered up
|
63
|
+
if server_power_state_get(handle: handle,server_id: server_id) != "on"
|
64
|
+
_set_power_state(handle, server_dn, "up")
|
65
|
+
end
|
66
|
+
|
67
|
+
# Poll until the server is powered up
|
68
|
+
_wait_for_power_state(handle, "on", timeout: timeout,
|
69
|
+
interval: interval, server_id: server_id)
|
70
|
+
|
71
|
+
# Return object with current state
|
72
|
+
return handle.query_dn(dn: server_dn)
|
73
|
+
|
74
|
+
end
|
75
|
+
|
76
|
+
#
|
77
|
+
# This method will power down the rack server, even if tasks are still
|
78
|
+
# running on it. Then polls the server every $interval until either $timeout
|
79
|
+
#
|
80
|
+
# @param handle [ImcHandle] ImcHandle class object
|
81
|
+
# @param timeout [Integer] timeout in seconds
|
82
|
+
# @param interval [Integer]
|
83
|
+
# @param server_id [Integer] Server Id to be specified for C3260 platforms
|
84
|
+
# @param kwargs [Hash] key=>value paired arguments
|
85
|
+
# @return [ComputeRackUnit] for non C3260 platforms
|
86
|
+
# @return [ComputeServerNode] for C3260 platforms
|
87
|
+
# @example
|
88
|
+
# server_power_down(handle: ImcHandle)
|
89
|
+
# @example
|
90
|
+
# server_power_down(handle: ImcHandle, timeout: 120, interval: 10)
|
91
|
+
# @example
|
92
|
+
# server_power_down(handle: ImcHandle, server_id: 2, timeout: 60)
|
93
|
+
#
|
94
|
+
def server_power_down(handle:, timeout: 60, interval: 5, server_id: 1, **kwargs)
|
95
|
+
server_dn = ImcCoreUtils.get_server_dn(handle, server_id)
|
96
|
+
# Turn power off only if not already powered down
|
97
|
+
if server_power_state_get(handle: handle,server_id: server_id) != "off"
|
98
|
+
_set_power_state(handle, server_dn, "down")
|
99
|
+
end
|
100
|
+
|
101
|
+
# Poll until the server is powered up
|
102
|
+
_wait_for_power_state(handle, "off", timeout: timeout,
|
103
|
+
interval: interval, server_id: server_id)
|
104
|
+
|
105
|
+
return handle.query_dn(dn: server_dn)
|
106
|
+
end
|
107
|
+
|
108
|
+
#
|
109
|
+
# This method will power down the rack server gracefully
|
110
|
+
#
|
111
|
+
# @param handle [ImcHandle] ImcHandle class object
|
112
|
+
# @param timeout [Integer] timeout in seconds
|
113
|
+
# @param interval [Integer]
|
114
|
+
# @param server_id [Integer] Server Id to be specified for C3260 platforms
|
115
|
+
# @param kwargs [Hash] key=>value paired arguments
|
116
|
+
# @return [ComputeRackUnit] for non C3260 platforms
|
117
|
+
# @return [ComputeServerNode] for C3260 platforms
|
118
|
+
# @example
|
119
|
+
# server_power_down_gracefully(handle: ImcHandle)
|
120
|
+
# @example
|
121
|
+
# server_power_down_gracefully(handle: ImcHandle, timeout: 120, interval: 10)
|
122
|
+
# @example
|
123
|
+
# server_power_down_gracefully(handle: ImcHandle, server_id: 2, timeout: 60)
|
124
|
+
#
|
125
|
+
def server_power_down_gracefully(handle:, timeout: 120, interval: 5,
|
126
|
+
server_id: 1, **kwargs)
|
127
|
+
server_dn = ImcCoreUtils.get_server_dn(handle, server_id)
|
128
|
+
# Gracefully power off only if not already powered down
|
129
|
+
if server_power_state_get(handle: handle, server_id: server_id) != "off"
|
130
|
+
_set_power_state(handle, server_dn, "graceful-down")
|
131
|
+
end
|
132
|
+
|
133
|
+
# Poll until the server is powered up
|
134
|
+
_wait_for_power_state(handle, "off", timeout: timeout,
|
135
|
+
interval: interval, server_id: server_id)
|
136
|
+
|
137
|
+
return handle.query_dn(dn: server_dn)
|
138
|
+
|
139
|
+
end
|
140
|
+
|
141
|
+
#
|
142
|
+
# This method will power cycle the rack server immediately.
|
143
|
+
#
|
144
|
+
# @param handle [ImcHandle] ImcHandle class object
|
145
|
+
# @param timeout [Integer] timeout in seconds
|
146
|
+
# @param interval [Integer]
|
147
|
+
# @param server_id [Integer] Server Id to be specified for C3260 platforms
|
148
|
+
# @param kwargs [Hash] key=>value paired arguments
|
149
|
+
# @return [ComputeRackUnit] for non C3260 platforms
|
150
|
+
# @return [ComputeServerNode] for C3260 platforms
|
151
|
+
# @example
|
152
|
+
# server_power_cycle(handle: ImcHandle)
|
153
|
+
# @example
|
154
|
+
# server_power_cycle(handle: ImcHandle, timeout: 120, interval: 10)
|
155
|
+
# @example
|
156
|
+
# server_power_cycle(handle: ImcHandle, server_id: 2, timeout: 60)
|
157
|
+
#
|
158
|
+
def server_power_cycle(handle:, timeout: 120, interval: 5, server_id: 1, **kwargs)
|
159
|
+
server_dn = ImcCoreUtils.get_server_dn(handle, server_id)
|
160
|
+
_set_power_state(handle, server_dn, "cycle")
|
161
|
+
|
162
|
+
# Poll until the server is powered up
|
163
|
+
_wait_for_power_state(handle, "on", timeout: timeout,
|
164
|
+
interval: interval, server_id: server_id)
|
165
|
+
|
166
|
+
return handle.query_dn(dn: server_dn)
|
167
|
+
end
|
168
|
+
|
169
|
+
#
|
170
|
+
# This method will return the locator led status on the server or chassis
|
171
|
+
#
|
172
|
+
# @param handle [ImcHandle] ImcHandle class object
|
173
|
+
# @param kwargs [Hash] key=>value paired arguments
|
174
|
+
# @return [string] status of locator led
|
175
|
+
# @example Turns on locator led on the server (for non-C3260 platforms)
|
176
|
+
# get_locator_led_status(handle: ImcHandle)
|
177
|
+
# @example Turns on locator led on the specified server (for C3260 platforms)
|
178
|
+
# get_locator_led_status(handle: ImcHandle, :server_id => 1)
|
179
|
+
# @example Turns on locator led on the chassis (for C3260 platforms)
|
180
|
+
# get_locator_led_status(handle: ImcHandle, :chassis_id => 1)
|
181
|
+
#
|
182
|
+
def get_locator_led_status(handle:, **kwargs)
|
183
|
+
led_mo = nil
|
184
|
+
led_status = String.new
|
185
|
+
if _is_valid_arg("chassis_id", kwargs)
|
186
|
+
led_mo = _get_chassis_locator_led_state(handle, kwargs)
|
187
|
+
end
|
188
|
+
|
189
|
+
if _is_valid_arg("server_id", kwargs) or \
|
190
|
+
handle.platform == IMC_PLATFORM::TYPE_CLASSIC
|
191
|
+
led_mo = _get_server_locator_led_state(handle, kwargs)
|
192
|
+
end
|
193
|
+
if !led_mo.nil?
|
194
|
+
led_status = led_mo.oper_state
|
195
|
+
end
|
196
|
+
return led_status
|
197
|
+
end
|
198
|
+
|
199
|
+
#
|
200
|
+
# This method will turn on the locator led on the server or chassis
|
201
|
+
#
|
202
|
+
# @param handle [ImcHandle] ImcHandle class object
|
203
|
+
# @param kwargs [Hash] key=>value paired arguments
|
204
|
+
# @return [nil]
|
205
|
+
# @example Turns on locator led on the server (for non-C3260 platforms)
|
206
|
+
# locator_led_on(handle: ImcHandle)
|
207
|
+
# @example Turns on locator led on the specified server (for C3260 platforms)
|
208
|
+
# locator_led_on(handle: ImcHandle, :server_id => 1)
|
209
|
+
# @example Turns on locator led on the chassis (for C3260 platforms)
|
210
|
+
# locator_led_on(handle: ImcHandle, :chassis_id => 1)
|
211
|
+
#
|
212
|
+
def locator_led_on(handle:, **kwargs)
|
213
|
+
|
214
|
+
if _is_valid_arg("chassis_id", kwargs)
|
215
|
+
_set_chassis_locator_led_state(handle, true, kwargs)
|
216
|
+
end
|
217
|
+
|
218
|
+
if _is_valid_arg("server_id", kwargs) or \
|
219
|
+
handle.platform == IMC_PLATFORM::TYPE_CLASSIC
|
220
|
+
_set_server_locator_led_state(handle, true, kwargs)
|
221
|
+
end
|
222
|
+
end
|
223
|
+
|
224
|
+
#
|
225
|
+
# This method will turn off the locator led on the server or on the chassis
|
226
|
+
#
|
227
|
+
# @param handle [ImcHandle] ImcHandle class object
|
228
|
+
# @param kwargs [Hash] key=>value paired arguments
|
229
|
+
# @return [nil]
|
230
|
+
# @example Turns off locator led on the server (for non-C3260 platforms)
|
231
|
+
# locator_led_off(handle: ImcHandle)
|
232
|
+
# @example Turns off locator led on the specified server (for C3260 platforms)
|
233
|
+
# locator_led_off(handle: ImcHandle, :server_id => 1)
|
234
|
+
# @example Turns off locator led on the chassis (for C3260 platforms)
|
235
|
+
# locator_led_off(handle: ImcHandle, :chassis_id => 1)
|
236
|
+
#
|
237
|
+
def locator_led_off(handle:, **kwargs)
|
238
|
+
if _is_valid_arg("chassis_id", kwargs)
|
239
|
+
_set_chassis_locator_led_state(handle, false, kwargs)
|
240
|
+
end
|
241
|
+
|
242
|
+
if _is_valid_arg("server_id", kwargs) or \
|
243
|
+
handle.platform == IMC_PLATFORM::TYPE_CLASSIC
|
244
|
+
_set_server_locator_led_state(handle, false, kwargs)
|
245
|
+
end
|
246
|
+
end
|
247
|
+
|
248
|
+
#
|
249
|
+
# This method will tag the server with the label specified.
|
250
|
+
# Applicable to non-C3260 platforms
|
251
|
+
#
|
252
|
+
# @param handle [ImcHandle] ImcHandle class object
|
253
|
+
# @param tag [String] Label to be used to tag the asset
|
254
|
+
# @return [ComputeRackUnit]
|
255
|
+
# @example
|
256
|
+
# tag_server(handle: ImcHandle, tag: "Row21-Rack10-Slot10")
|
257
|
+
#
|
258
|
+
def tag_server(handle:, tag:)
|
259
|
+
require "mometa/compute/ComputeRackUnit"
|
260
|
+
mo = ComputeRackUnit.new(parent_mo_or_dn: "sys", server_id: '1')
|
261
|
+
mo.set_prop(:asset_tag, tag.to_s)
|
262
|
+
handle.set_mo(mo: mo)
|
263
|
+
return handle.query_dn(dn: mo.dn)
|
264
|
+
end
|
265
|
+
|
266
|
+
#
|
267
|
+
# This method will tag the chassis with the label specified.
|
268
|
+
# Applicable to C3260 platforms
|
269
|
+
#
|
270
|
+
# @param handle [ImcHandle] ImcHandle class object
|
271
|
+
# @param tag [String] Label to be used to tag the asset
|
272
|
+
# @return [EquipmentChassis]
|
273
|
+
# @example
|
274
|
+
# tag_chassis(handle: ImcHandle, tag: "Row21-Rack10-Slot10")
|
275
|
+
#
|
276
|
+
def tag_chassis(handle:, tag:)
|
277
|
+
require "mometa/equipment/EquipmentChassis"
|
278
|
+
mo = EquipmentChassis.new(parent_mo_or_dn: "sys")
|
279
|
+
mo.set_prop(:asset_tag, tag.to_s)
|
280
|
+
handle.set_mo(mo: mo)
|
281
|
+
return handle.query_dn(dn: mo.dn)
|
282
|
+
end
|
283
|
+
|
284
|
+
private
|
285
|
+
|
286
|
+
def _set_chassis_locator_led_state(handle, enabled, kwargs)
|
287
|
+
chassis_id = kwargs[:chassis_id].to_s
|
288
|
+
chassis_dn = "sys/chassis-" + chassis_id
|
289
|
+
require "mometa/equipment/EquipmentChassisLocatorLed"
|
290
|
+
led_mo = EquipmentChassisLocatorLed.new(parent_mo_or_dn: chassis_dn)
|
291
|
+
if enabled
|
292
|
+
led_mo.set_prop(:admin_state, EquipmentChassisLocatorLedConsts::ADMIN_STATE_ON)
|
293
|
+
else
|
294
|
+
led_mo.set_prop(:admin_state, EquipmentChassisLocatorLedConsts::ADMIN_STATE_OFF)
|
295
|
+
end
|
296
|
+
handle.set_mo(mo: led_mo)
|
297
|
+
end
|
298
|
+
|
299
|
+
def _get_chassis_locator_led_state(handle, kwargs)
|
300
|
+
chassis_id = kwargs[:chassis_id].to_s
|
301
|
+
chassis_dn = "sys/chassis-" + chassis_id
|
302
|
+
require "mometa/equipment/EquipmentChassisLocatorLed"
|
303
|
+
led_mo = EquipmentChassisLocatorLed.new(parent_mo_or_dn: chassis_dn)
|
304
|
+
handle.query_dn(dn: led_mo.dn)
|
305
|
+
end
|
306
|
+
|
307
|
+
def _set_server_locator_led_state(handle, enabled, kwargs)
|
308
|
+
server_dn = ImcCoreUtils.set_server_dn(handle, kwargs)
|
309
|
+
require "mometa/equipment/EquipmentLocatorLed"
|
310
|
+
led_mo = EquipmentLocatorLed.new(parent_mo_or_dn: server_dn)
|
311
|
+
if enabled
|
312
|
+
led_mo.set_prop(:admin_state, EquipmentLocatorLedConsts::ADMIN_STATE_ON)
|
313
|
+
else
|
314
|
+
led_mo.set_prop(:admin_state, EquipmentLocatorLedConsts::ADMIN_STATE_OFF)
|
315
|
+
end
|
316
|
+
|
317
|
+
handle.set_mo(mo: led_mo)
|
318
|
+
end
|
319
|
+
|
320
|
+
def _get_server_locator_led_state(handle, kwargs)
|
321
|
+
server_dn = ImcCoreUtils.set_server_dn(handle, kwargs)
|
322
|
+
require "mometa/equipment/EquipmentLocatorLed"
|
323
|
+
led_mo = EquipmentLocatorLed.new(parent_mo_or_dn: server_dn)
|
324
|
+
handle.query_dn(dn: led_mo.dn)
|
325
|
+
end
|
326
|
+
|
327
|
+
def _set_power_state(handle, server_dn, state)
|
328
|
+
server_mo = handle.query_dn(dn: server_dn)
|
329
|
+
if handle.platform == IMC_PLATFORM::TYPE_CLASSIC
|
330
|
+
mo_class = ComputeRackUnitConsts
|
331
|
+
elsif handle.platform == IMC_PLATFORM::TYPE_MODULAR
|
332
|
+
mo_class = ComputeServerNodeConsts
|
333
|
+
else
|
334
|
+
raise ImcOperationError.new("Set Power State", "Unknown platform: #{handle.platform} found")
|
335
|
+
end
|
336
|
+
|
337
|
+
state_dict = {
|
338
|
+
:up => mo_class::ADMIN_POWER_UP,
|
339
|
+
:down => mo_class::ADMIN_POWER_DOWN,
|
340
|
+
"graceful-down".to_sym => mo_class::ADMIN_POWER_SOFT_SHUT_DOWN,
|
341
|
+
:cycle => mo_class::ADMIN_POWER_CYCLE_IMMEDIATE
|
342
|
+
}
|
343
|
+
server_mo.set_prop(:admin_power, state_dict[state.to_sym] )
|
344
|
+
handle.set_mo(mo: server_mo)
|
345
|
+
end
|
346
|
+
|
347
|
+
def _wait_for_power_state(handle, state, timeout: 60, interval: 5, server_id: 1)
|
348
|
+
=begin
|
349
|
+
This method should be called after a power state change has been triggered.
|
350
|
+
It will poll the server and return when the desired state is achieved.
|
351
|
+
Args:
|
352
|
+
handle(ImcHandle)
|
353
|
+
state(str)
|
354
|
+
timeout(int)
|
355
|
+
interval(int)
|
356
|
+
server_id (int): Server Id to be specified for C3260 platforms
|
357
|
+
Returns:
|
358
|
+
bool
|
359
|
+
=end
|
360
|
+
# Verify desired state is valid
|
361
|
+
if !(["on", "off"].include? state)
|
362
|
+
raise ValueError.new("ERROR invalid state:#{state}")
|
363
|
+
end
|
364
|
+
|
365
|
+
# Verify interval not set to zero
|
366
|
+
if interval < 1 or !(interval.is_a? Integer)
|
367
|
+
raise ValueError.new("ERROR: interval must be positive integer")
|
368
|
+
end
|
369
|
+
|
370
|
+
wait_time = 0
|
371
|
+
while server_power_state_get(handle: handle,server_id: server_id) != state do
|
372
|
+
# Raise error if we've reached timeout
|
373
|
+
if wait_time > timeout
|
374
|
+
raise ImcOperationError.new( \
|
375
|
+
"Power State Change", \
|
376
|
+
"#{handle.ip}: ERROR - Power #{state} did not complete within #{timeout} sec")
|
377
|
+
end
|
378
|
+
# Wait interval sec between checks
|
379
|
+
sleep(interval)
|
380
|
+
wait_time += interval
|
381
|
+
end
|
382
|
+
end
|