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,304 @@
|
|
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_relative "../utils.rb"
|
17
|
+
|
18
|
+
|
19
|
+
LDAP_SERVERS = ['ldap_server1', 'ldap_server2', 'ldap_server3',
|
20
|
+
'ldap_server4', 'ldap_server5', 'ldap_server6']
|
21
|
+
LDAP_SERVER_PORTS = ['ldap_server_port1', 'ldap_server_port2',
|
22
|
+
'ldap_server_port3', 'ldap_server_port4',
|
23
|
+
'ldap_server_port5', 'ldap_server_port6']
|
24
|
+
LDAP_DN = "sys/ldap-ext"
|
25
|
+
|
26
|
+
#
|
27
|
+
# Checks if the specified LDAP settings are already applied
|
28
|
+
#
|
29
|
+
# @param handle [ImcHandle] ImcHandle class object
|
30
|
+
# @param kwargs [Hash] Key-Value paired arguments
|
31
|
+
# @return [TrueClass, AaaLdap] if settings match
|
32
|
+
# @return [FalseClass, nil] if settings doen't match
|
33
|
+
# @example
|
34
|
+
# match, mo = ldap_settings_exist(
|
35
|
+
# handle: handle, :enabled => true,
|
36
|
+
# :basedn => 'DC=LAB,DC=cisco,DC=com',
|
37
|
+
# :domain => 'LAB.cisco.com',
|
38
|
+
# :timeout => 20, :group_auth => true,
|
39
|
+
# :bind_dn => 'CN=administrator,CN=Users,DC=LAB,DC=cisco,DC=com',
|
40
|
+
# :password => 'abcdefg', :ldap_servers=>ldap_servers)
|
41
|
+
#
|
42
|
+
def ldap_settings_exist(handle:, **kwargs)
|
43
|
+
|
44
|
+
mo = _get_mo(handle: handle, dn: LDAP_DN)
|
45
|
+
|
46
|
+
params = _get_ldap_params(kwargs)
|
47
|
+
if !mo.check_prop_match(**params)
|
48
|
+
return false, mo
|
49
|
+
end
|
50
|
+
|
51
|
+
if _is_valid_arg('ldap_servers', kwargs)
|
52
|
+
if ! _check_ldap_server_match(mo, kwargs.delete(:ldap_servers))
|
53
|
+
return false, mo
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
if !mo.check_prop_match(**kwargs)
|
58
|
+
return false, mo
|
59
|
+
end
|
60
|
+
return true, mo
|
61
|
+
end
|
62
|
+
|
63
|
+
#
|
64
|
+
# Checks if LDAP is enabled
|
65
|
+
#
|
66
|
+
# @param handle [ImcHandle] ImcHandle class object
|
67
|
+
# @return [TrueClass, FalseClass]
|
68
|
+
# @example
|
69
|
+
# is_ldap_enabled(handle: handle)
|
70
|
+
#
|
71
|
+
def is_ldap_enabled(handle:)
|
72
|
+
mo = _get_mo(handle: handle, dn: LDAP_DN)
|
73
|
+
return mo.admin_state.downcase == "enabled"
|
74
|
+
end
|
75
|
+
|
76
|
+
#
|
77
|
+
# Gets the ldap role group based on domain and name
|
78
|
+
#
|
79
|
+
# @param handle [ImcHandle] ImcHandle class object
|
80
|
+
# @param domain [String] The LDAP server domain the group resides in.
|
81
|
+
# @param name [String] The name of the group in the LDAP server database.
|
82
|
+
# @param kwargs [Hash] Key-Value paired arguments for future use
|
83
|
+
# @return [AaaLdapRoleGroup]
|
84
|
+
# @example
|
85
|
+
# ldap_role_group_get(handle: handle, domain: 'abcd.pqrs.com', name: 'abcd')
|
86
|
+
#
|
87
|
+
def ldap_role_group_get(handle:, domain:, name:, **kwargs)
|
88
|
+
mos = handle.query_classid('AaaLdapRoleGroup')
|
89
|
+
for mo in mos
|
90
|
+
if mo.domain == domain and mo.name == name
|
91
|
+
return mo
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
return nil
|
96
|
+
end
|
97
|
+
|
98
|
+
#
|
99
|
+
# Configures LDAP
|
100
|
+
#
|
101
|
+
# @param handle [ImcHandle] ImcHandle class object
|
102
|
+
# @param enabled [TrueClass, FalseClass] true to enable LDAP
|
103
|
+
# @param basedn [String] Represents the Base Distinguished Name. Describes where to load users and groups from.
|
104
|
+
# It must be in the 'dc=domain,dc=com' format for Active Directory servers.
|
105
|
+
# @param domain [String] The domain that all users must be in.
|
106
|
+
# @param encryption [TrueClass, FalseClass] true to enable encryption
|
107
|
+
# @param timeout [Integer] The number of seconds the Cisco IMC waits until the LDAP search operation times out. Value must be between [0-180]
|
108
|
+
# @param user_search_precedence [String] Preference to search in local user db versus ldap user db, valid values ['local-user-db', 'ldap-user-db']
|
109
|
+
# @param bind_method [String] valid values ['login-credentials', 'configured-credentials', 'anonymous']
|
110
|
+
# @param bind_dn [String] Represents the distinguished name (DN) of the user.
|
111
|
+
# This field is applicable only for bind_method='configured-credentials'
|
112
|
+
# @param password [String] The password of the user. This field is applicable only for bind_method='configured-credentials'
|
113
|
+
# @param filter [String] Represents the filter attribute in the schema on the LDAP server.
|
114
|
+
# @param attribute [String] Represents the role and locale information. Should match the attribute specified on the LDAP server.
|
115
|
+
# @param group_attribute [String] Represents the group attribute in the schema on the LDAP server.
|
116
|
+
# @param group_nested_search [Integer] Represents the depth of a nested group search
|
117
|
+
# @param group_auth [TrueClass, FalseClass] Enables authentication at the group level for LDAP users that are not found in the local user database.
|
118
|
+
# @param ldap_servers [Array] Represents the list of preconfigured LDAP server.
|
119
|
+
# List of Hash in the format:-
|
120
|
+
# [{:id => 1, :ip => "192.168.1.1", :port => 300},
|
121
|
+
# {:id => 2, :ip => "192.168.1.2", :port => 400}]
|
122
|
+
# @param locate_directory_using_dns [TrueClass, FalseClass]
|
123
|
+
# @param dns_domain_source [String] Represents the method to obtain domain name
|
124
|
+
# ['extracted-domain', 'configured-domain', 'extracted-configured-domain']
|
125
|
+
# @param dns_search_domain [String] Domain name to be used for DNS query. Disabled when domain_name_source='extracted-domain'
|
126
|
+
# @param dns_search_forest [String] Forest name to used for DNS query. Disabled when domain_name_source='extracted-domain'
|
127
|
+
# @param kwargs [Hash] Key-Value paired arguments. Reserved for future use
|
128
|
+
# @return [AaaLdap]
|
129
|
+
# @raise [ImcOperationError] when AaaLdap object doesn't exist
|
130
|
+
# @example
|
131
|
+
# ldap_configure(handle: handle, enabled: true,
|
132
|
+
# basedn: 'DC=LAB,DC=cisco,DC=com',
|
133
|
+
# domain: 'LAB.cisco.com',
|
134
|
+
# timeout: 20, group_auth: true,
|
135
|
+
# bind_dn: 'CN=administrator,CN=Users,DC=LAB,DC=cisco,DC=com',
|
136
|
+
# password: 'abcdefg', ldap_servers: ldap_servers)
|
137
|
+
#
|
138
|
+
def ldap_configure(handle:, enabled: false, basedn: nil, domain: nil,
|
139
|
+
encryption: true, timeout: 60, user_search_precedence: 'local-user-db',
|
140
|
+
bind_method: 'login-credentials', bind_dn: nil,
|
141
|
+
password: nil, filter: 'sAMAccountName',
|
142
|
+
attribute: 'CiscoAvPair', group_attribute: 'memberOf',
|
143
|
+
group_nested_search: 128, group_auth: false,
|
144
|
+
ldap_servers: [], locate_directory_using_dns: false,
|
145
|
+
dns_domain_source: 'extracted-domain',
|
146
|
+
dns_search_domain: nil, dns_search_forest: nil, **kwargs)
|
147
|
+
|
148
|
+
mo = _get_mo(handle: handle, dn: LDAP_DN)
|
149
|
+
|
150
|
+
params = {
|
151
|
+
|
152
|
+
:admin_state => enabled == true ? 'enabled' : 'disabled',
|
153
|
+
:basedn => basedn,
|
154
|
+
:domain => domain,
|
155
|
+
:encryption => encryption == true ? 'enabled' : 'disabled',
|
156
|
+
:timeout => timeout.to_s,
|
157
|
+
:user_search_precedence => user_search_precedence,
|
158
|
+
:bind_method => bind_method,
|
159
|
+
:bind_dn => bind_dn,
|
160
|
+
:password => password,
|
161
|
+
:filter => filter,
|
162
|
+
:attribute => attribute,
|
163
|
+
:group_attribute => group_attribute,
|
164
|
+
:group_nested_search => group_nested_search.to_s,
|
165
|
+
:group_auth => group_auth == true ? 'enabled' : 'disabled',
|
166
|
+
:locate_directory_using_dns => locate_directory_using_dns == true ? 'yes' : 'no',
|
167
|
+
:dns_domain_source => dns_domain_source,
|
168
|
+
:dns_search_domain => dns_search_domain,
|
169
|
+
:dns_search_forest => dns_search_forest
|
170
|
+
}
|
171
|
+
|
172
|
+
mo.set_prop_multiple(**params)
|
173
|
+
|
174
|
+
if ldap_servers
|
175
|
+
_set_ldap_servers(mo, ldap_servers)
|
176
|
+
end
|
177
|
+
|
178
|
+
mo.set_prop_multiple(**kwargs)
|
179
|
+
handle.set_mo(mo: mo)
|
180
|
+
return handle.query_dn(dn: mo.dn)
|
181
|
+
end
|
182
|
+
#
|
183
|
+
# Enables ldap certificate management
|
184
|
+
#
|
185
|
+
# @param handle [ImcHandle] ImcHandle class object
|
186
|
+
# @return [LdapCACertificateManagement]
|
187
|
+
#
|
188
|
+
def ldap_certificate_management_enable(handle:)
|
189
|
+
mo = _get_mo(handle: handle, dn: "sys/ldap-ext/ldap-ca-cert-mgmt")
|
190
|
+
mo.set_prop(:binding_certificate, "enabled")
|
191
|
+
handle.set_mo(mo: mo)
|
192
|
+
return handle.query_dn(dn: mo.dn)
|
193
|
+
end
|
194
|
+
#
|
195
|
+
# Disables ldap certificate management
|
196
|
+
#
|
197
|
+
# @param handle [ImcHandle] ImcHandle class object
|
198
|
+
# @return [LdapCACertificateManagement]
|
199
|
+
#
|
200
|
+
def ldap_certificate_management_disable(handle:)
|
201
|
+
mo = _get_mo(handle: handle, dn: "sys/ldap-ext/ldap-ca-cert-mgmt")
|
202
|
+
mo.set_prop(:binding_certificate, "disabled")
|
203
|
+
handle.set_mo(mo: mo)
|
204
|
+
return handle.query_dn(dn: mo.dn)
|
205
|
+
end
|
206
|
+
|
207
|
+
private
|
208
|
+
|
209
|
+
def _set_ldap_servers(mo, ldap_servers)
|
210
|
+
if ldap_servers.size > LDAP_SERVERS.size
|
211
|
+
raise ImcOperationError.new("Configure LDAP", "Cannot configure more than #{_LDAP_SERVERS.size} servers")
|
212
|
+
end
|
213
|
+
servers = {}
|
214
|
+
ports = {}
|
215
|
+
for server in ldap_servers
|
216
|
+
servers[("ldap_server" + server[:id].to_s).to_sym] = server[:ip]
|
217
|
+
ports[("ldap_server_port" + server[:id].to_s).to_sym] = server[:port].to_s
|
218
|
+
end
|
219
|
+
mo.set_prop_multiple(**servers)
|
220
|
+
mo.set_prop_multiple(**ports)
|
221
|
+
end
|
222
|
+
|
223
|
+
|
224
|
+
def _get_ldap_params(kwargs)
|
225
|
+
params = {}
|
226
|
+
|
227
|
+
if _is_valid_arg('enabled', kwargs)
|
228
|
+
params[:admin_state] = kwargs.delete(:enabled)? 'enabled': 'disabled'
|
229
|
+
end
|
230
|
+
|
231
|
+
if _is_valid_arg('encryption', kwargs)
|
232
|
+
params[:encryption] = kwargs.delete(:encryption)? 'enabled': 'disabled'
|
233
|
+
end
|
234
|
+
|
235
|
+
if _is_valid_arg('group_auth', kwargs)
|
236
|
+
params[:group_auth] = kwargs.delete(:group_auth)? 'enabled': 'disabled'
|
237
|
+
end
|
238
|
+
|
239
|
+
if _is_valid_arg('locate_directory_using_dns', kwargs)
|
240
|
+
params[:locate_directory_using_dns] = kwargs.delete(:locate_directory_using_dns)? 'yes': 'no'
|
241
|
+
end
|
242
|
+
|
243
|
+
if _is_valid_arg('timeout', kwargs)
|
244
|
+
params[:timeout] = kwargs.delete(:timeout).to_s
|
245
|
+
end
|
246
|
+
|
247
|
+
if _is_valid_arg('group_nested_search', kwargs)
|
248
|
+
params[:group_nested_search] = kwargs.delete(:group_nested_search).to_s
|
249
|
+
end
|
250
|
+
|
251
|
+
# pop the password property if it exists
|
252
|
+
if _is_valid_arg('password', kwargs)
|
253
|
+
kwargs.delete(:password)
|
254
|
+
end
|
255
|
+
|
256
|
+
return params
|
257
|
+
|
258
|
+
end
|
259
|
+
|
260
|
+
def _check_ldap_server_match(ldap_mo, ldap_servers)
|
261
|
+
mo = AaaLdap.new(parent_mo_or_dn: "sys")
|
262
|
+
_set_ldap_servers(mo, ldap_servers)
|
263
|
+
for server, port in LDAP_SERVERS.zip(LDAP_SERVER_PORTS)
|
264
|
+
conf_server = ldap_mo.instance_variable_get("@" + server)
|
265
|
+
in_server = mo.instance_variable_get("@" + server)
|
266
|
+
|
267
|
+
match = _check_match(conf_server, in_server)
|
268
|
+
# IMC assigns a default value of port even when a valid server ip is
|
269
|
+
# not assigned. The following logic will skip checking for ports where
|
270
|
+
# the server ip itself is not specified, but default port is set.
|
271
|
+
if match.nil?
|
272
|
+
next
|
273
|
+
end
|
274
|
+
|
275
|
+
if !match
|
276
|
+
return false
|
277
|
+
end
|
278
|
+
|
279
|
+
conf_port = ldap_mo.instance_variable_get("@" + port)
|
280
|
+
in_port = mo.instance_variable_get("@" + port)
|
281
|
+
|
282
|
+
if _check_match(conf_port, in_port) == false
|
283
|
+
return false
|
284
|
+
end
|
285
|
+
end
|
286
|
+
return true
|
287
|
+
end
|
288
|
+
|
289
|
+
def _check_match(prop1, prop2)
|
290
|
+
if _is_invalid_value(prop1) and _is_invalid_value(prop2)
|
291
|
+
return nil
|
292
|
+
end
|
293
|
+
return prop1 == prop2
|
294
|
+
end
|
295
|
+
|
296
|
+
def _get_free_ldap_role_group_id(handle)
|
297
|
+
mos = handle.query_classid('AaaLdapRoleGroup')
|
298
|
+
for mo in mos
|
299
|
+
if !mo.name and !mo.domain
|
300
|
+
return mo.id
|
301
|
+
end
|
302
|
+
end
|
303
|
+
raise ImcOperationError.new("LDAP role group create", "No free role group available")
|
304
|
+
end
|
@@ -0,0 +1,202 @@
|
|
1
|
+
# Copyright 2017 Cisco Systems, Inc.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
7
|
+
#
|
8
|
+
# Unless required by applicable law or agreed to in writing, software
|
9
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
10
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
11
|
+
# See the License for the specific language governing permissions and
|
12
|
+
# limitations under the License.
|
13
|
+
|
14
|
+
$:.unshift(*Dir[::File.expand_path('./../../', File.dirname(__FILE__))])
|
15
|
+
|
16
|
+
require_relative "../utils.rb"
|
17
|
+
require "imcexception"
|
18
|
+
|
19
|
+
|
20
|
+
COMM_EXT_DN = "sys/svc-ext"
|
21
|
+
NTP_DN = "sys/svc-ext/ntp-svc"
|
22
|
+
NTP_SERVER_LIST = ["ntp_server1", "ntp_server2", "ntp_server3", "ntp_server4"]
|
23
|
+
|
24
|
+
#
|
25
|
+
# Enables NTP and configures the NTP servers provided
|
26
|
+
#
|
27
|
+
# @param handle [ImcHandle] ImcHandle class object
|
28
|
+
# @param ntp_servers [Array] List of dictionaries in the format
|
29
|
+
# [{:id => 1, :ip => "192.168.1.1"},
|
30
|
+
# {:id => 2, :ip => "192.168.1.2"}]
|
31
|
+
# @note Upto 4 ntp servers can be specified.
|
32
|
+
# @return [CommNtpProvider]
|
33
|
+
# @example
|
34
|
+
# ntp_enable(handle: handle,
|
35
|
+
# ntp_servers = [{:id => 1, :ip => "192.168.1.1"},
|
36
|
+
# {:id => 2, :ip => "192.168.1.2"}]
|
37
|
+
#
|
38
|
+
def ntp_enable(handle:, ntp_servers: Array.new)
|
39
|
+
mo = _get_mo(handle: handle, dn: NTP_DN)
|
40
|
+
mo.set_prop(:ntp_enable, "yes")
|
41
|
+
_set_ntp_servers(mo, ntp_servers)
|
42
|
+
handle.set_mo(mo: mo)
|
43
|
+
return handle.query_dn(dn: mo.dn)
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
#
|
48
|
+
# Disables NTP
|
49
|
+
#
|
50
|
+
# @param handle [ImcHandle] ImcHandle class object
|
51
|
+
# @return [CommNtpProvider]
|
52
|
+
#
|
53
|
+
def ntp_disable(handle:)
|
54
|
+
mo = _get_mo(handle: handle, dn: NTP_DN)
|
55
|
+
mo.set_prop(:ntp_enable, "no")
|
56
|
+
handle.set_mo(mo: mo)
|
57
|
+
return handle.query_dn(dn: mo.dn)
|
58
|
+
end
|
59
|
+
|
60
|
+
#
|
61
|
+
# Clears the NTP servers provided in the arguments.
|
62
|
+
# Clears all the NTP servers, only if ntp is disabled.
|
63
|
+
#
|
64
|
+
# @param handle [ImcHandle] ImcHandle class object
|
65
|
+
# @param ntp_servers [Array] List of NTP servers in the format ["192.168.1.1", "192.168.1.2"]
|
66
|
+
# @return [CommNtpProvider]
|
67
|
+
#
|
68
|
+
def ntp_servers_clear(handle:, ntp_servers: Array.new)
|
69
|
+
mo = _get_mo(handle: handle, dn: NTP_DN)
|
70
|
+
args = {}
|
71
|
+
|
72
|
+
if ntp_servers.size > 0
|
73
|
+
NTP_SERVER_LIST.each do |x|
|
74
|
+
ntp_server_ip = mo.instance_variable_get("@" + x )
|
75
|
+
if ntp_servers.include? ntp_server_ip
|
76
|
+
args[x.to_sym] = ""
|
77
|
+
end
|
78
|
+
end
|
79
|
+
#args = {x => "" for x in NTP_SERVER_LIST if mo.instance_variable_get("@" + x) in ntp_servers}
|
80
|
+
else
|
81
|
+
NTP_SERVER_LIST.each do |x|
|
82
|
+
args[x.to_sym] = ""
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
if ["yes", "true"].include? mo.ntp_enable.downcase and args.size == NTP_SERVER_LIST.size
|
87
|
+
raise ImcOperationError.new("Clear NTP Servers", "Cannot clear all NTP servers when NTP is enabled")
|
88
|
+
end
|
89
|
+
mo.set_prop(:ntp_enable, mo.ntp_enable)
|
90
|
+
mo.set_prop_multiple(**args)
|
91
|
+
handle.set_mo(mo: mo)
|
92
|
+
return handle.query_dn(dn: mo.dn)
|
93
|
+
end
|
94
|
+
|
95
|
+
#
|
96
|
+
# Modifies the configured NTP servers
|
97
|
+
#
|
98
|
+
# @param handle [ImcHandle] ImcHandle class object
|
99
|
+
# @param ntp_servers [Array] List of dictionaries in the format
|
100
|
+
# [{:id => 1, :ip => "192.168.1.1"},
|
101
|
+
# {:id => 2, :ip => "192.168.1.2"}]
|
102
|
+
# @note Upto 4 ntp servers can be specified.
|
103
|
+
# @return [CommNtpProvider]
|
104
|
+
# @example
|
105
|
+
# ntp_servers_modify(handle: handle,
|
106
|
+
# ntp_servers = [{:id => 1, :ip => "192.168.1.1"},
|
107
|
+
# {:id => 2, :ip => "192.168.1.2"},
|
108
|
+
# {:id => 3, :ip => ""}]
|
109
|
+
#
|
110
|
+
def ntp_servers_modify(handle:, ntp_servers: Array.new)
|
111
|
+
|
112
|
+
# While sending the modified list of servers, it is imperative to send
|
113
|
+
# ntp_enable property in the request.
|
114
|
+
# Hence, query the MO and reassign the same value to ntp_enable
|
115
|
+
mo = _get_mo(handle: handle, dn: NTP_DN)
|
116
|
+
mo.set_prop(:ntp_enable, mo.ntp_enable)
|
117
|
+
_set_ntp_servers(mo, ntp_servers)
|
118
|
+
handle.set_mo(mo: mo)
|
119
|
+
return handle.query_dn(dn: mo.dn)
|
120
|
+
end
|
121
|
+
|
122
|
+
#
|
123
|
+
# Check if NTP is enabled
|
124
|
+
#
|
125
|
+
# @param handle [ImcHandle] ImcHandle class object
|
126
|
+
# @return [TrueClass, FalseClass] true if enabled, else false
|
127
|
+
#
|
128
|
+
def is_ntp_enabled(handle:)
|
129
|
+
mo = _get_mo(handle: handle, dn: NTP_DN)
|
130
|
+
return (["true", "yes"].include? mo.ntp_enable.downcase)
|
131
|
+
end
|
132
|
+
=begin
|
133
|
+
def get_ntp_server_list(ntp_mo, ntp_servers)
|
134
|
+
|
135
|
+
ntp_server_list = []
|
136
|
+
for x in ntp_servers
|
137
|
+
key = "ntp_server" + x[:id].to_s
|
138
|
+
value = ntp_mo.instance_variable_get("@" + prop)
|
139
|
+
ntp_server_list.push({:id => x[:id].to_s, :ip => value.to_s })
|
140
|
+
end
|
141
|
+
return ntp_Server_list
|
142
|
+
end
|
143
|
+
=end
|
144
|
+
|
145
|
+
#
|
146
|
+
# Check if the specified NTP settings are already applied
|
147
|
+
#
|
148
|
+
# @param handle [ImcHandle] ImcHandle class object
|
149
|
+
# @param kwargs [Hash] key-value paired arguments
|
150
|
+
# @return [TrueClass, CommNtpProvider] if settings match
|
151
|
+
# @return [FalseClass, CommNtpProvider] if settings don't match
|
152
|
+
#
|
153
|
+
def ntp_settings_match(handle:, **kwargs)
|
154
|
+
ntp_mo = _get_mo(handle: handle, dn: NTP_DN)
|
155
|
+
|
156
|
+
if _is_valid_arg("ntp_enable", kwargs)
|
157
|
+
if ntp_mo.ntp_enable != kwargs[:ntp_enable]
|
158
|
+
return false, ntp_mo
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
if _is_valid_arg("ntp_servers", kwargs)
|
163
|
+
require "mometa/comm/CommNtpProvider"
|
164
|
+
mo = CommNtpProvider.new( parent_mo_or_dn: COMM_EXT_DN)
|
165
|
+
_set_ntp_servers(mo, kwargs[:ntp_servers])
|
166
|
+
if !_check_ntp_server_match(ntp_mo, mo)
|
167
|
+
return false, ntp_mo
|
168
|
+
end
|
169
|
+
end
|
170
|
+
|
171
|
+
return true, ntp_mo
|
172
|
+
end
|
173
|
+
|
174
|
+
private
|
175
|
+
def _check_ntp_server_match(ntp_mo, mo)
|
176
|
+
for prop in NTP_SERVER_LIST
|
177
|
+
configured_value = ntp_mo.instance_variable_get("@" + prop)
|
178
|
+
in_value = mo.instance_variable_get("@" + prop)
|
179
|
+
|
180
|
+
if _is_invalid_value(configured_value) and
|
181
|
+
_is_invalid_value(in_value)
|
182
|
+
next
|
183
|
+
end
|
184
|
+
if configured_value != in_value
|
185
|
+
return false
|
186
|
+
end
|
187
|
+
end
|
188
|
+
return true
|
189
|
+
end
|
190
|
+
|
191
|
+
def _set_ntp_servers(mo, ntp_servers)
|
192
|
+
if ntp_servers.size > NTP_SERVER_LIST.size
|
193
|
+
raise ImcOperationError.new("Set NTP Servers", "Cannot specify more than #{NTP_SERVER_LIST.size} servers")
|
194
|
+
end
|
195
|
+
args = {}
|
196
|
+
for x in ntp_servers
|
197
|
+
key = "ntp_server" + x[:id].to_s
|
198
|
+
value = x[:ip]
|
199
|
+
args[key.to_sym] = value
|
200
|
+
end
|
201
|
+
mo.set_prop_multiple(**args)
|
202
|
+
end
|