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