From e4464204133db657a86d14e257df661a6fcf886b Mon Sep 17 00:00:00 2001 From: "Francois @fanf42 Armand" Date: Fri, 23 May 2014 11:22:34 +0200 Subject: [PATCH] Fixes #4888: Add missing AIX LPAR VM support --- .../com/normation/inventory/domain/MachineInventory.scala | 2 ++ .../provisioning/fusion/FusionReportUnmarshaller.scala | 3 ++- .../src/main/resources/ldap/inventory.schema | 7 +++++++ .../normation/inventory/ldap/core/InventoryMapper.scala | 2 ++ .../com/normation/inventory/ldap/core/LDAPConstants.scala | 5 ++++- 5 files changed, 17 insertions(+), 2 deletions(-) diff --git a/inventory-api/src/main/scala/com/normation/inventory/domain/MachineInventory.scala b/inventory-api/src/main/scala/com/normation/inventory/domain/MachineInventory.scala index c54b4ba0..469ad873 100644 --- a/inventory-api/src/main/scala/com/normation/inventory/domain/MachineInventory.scala +++ b/inventory-api/src/main/scala/com/normation/inventory/domain/MachineInventory.scala @@ -143,6 +143,8 @@ case object VirtualBox extends VmType("vbox") with HashcodeCaching case object VMWare extends VmType("vmware") with HashcodeCaching case object QEmu extends VmType("qemu") with HashcodeCaching case object Xen extends VmType("xen") with HashcodeCaching +case object AixLPAR extends VmType("aixlpar") with HashcodeCaching + /** diff --git a/inventory-fusion/src/main/scala/com/normation/inventory/provisioning/fusion/FusionReportUnmarshaller.scala b/inventory-fusion/src/main/scala/com/normation/inventory/provisioning/fusion/FusionReportUnmarshaller.scala index c2861ede..c0534662 100644 --- a/inventory-fusion/src/main/scala/com/normation/inventory/provisioning/fusion/FusionReportUnmarshaller.scala +++ b/inventory-fusion/src/main/scala/com/normation/inventory/provisioning/fusion/FusionReportUnmarshaller.scala @@ -316,7 +316,7 @@ class FusionReportUnmarshaller( * ARCHNAME : architecture type. * Ex: "x86_64-linux-gnu-thread-multi" * VMSYSTEM : The virtualization technologie used if the machine is a virtual machine. - * Can be: Physical (default), Xen, VirtualBox, Virtual Machine, VMware, QEMU, SolarisZone + * Can be: Physical (default), Xen, VirtualBox, Virtual Machine, VMware, QEMU, SolarisZone, Aix LPAR * * MEMORY : RAM for that OS * Ex: "512" @@ -392,6 +392,7 @@ class FusionReportUnmarshaller( case "vmware" => report.machine.copy(machineType = VirtualMachineType(VMWare) ) case "qemu" => report.machine.copy(machineType = VirtualMachineType(QEmu) ) case "solariszone" => report.machine.copy(machineType = VirtualMachineType(SolarisZone) ) + case "aix_lpar" => report.machine.copy(machineType = VirtualMachineType(AixLPAR) ) case _ => report.machine.copy(machineType = VirtualMachineType(UnknownVmType) ) } } diff --git a/inventory-repository/src/main/resources/ldap/inventory.schema b/inventory-repository/src/main/resources/ldap/inventory.schema index e1ba0dbc..0730cd10 100644 --- a/inventory-repository/src/main/resources/ldap/inventory.schema +++ b/inventory-repository/src/main/resources/ldap/inventory.schema @@ -832,6 +832,13 @@ objectclass ( InventoryObjectClasses:80:5 SUP VirtualMachine AUXILIARY ) +objectclass ( InventoryObjectClasses:80:6 + NAME 'aixLpar' + DESC 'An LPAR partition on AIX' + SUP VirtualMachine + AUXILIARY ) + + objectclass ( InventoryObjectClasses:4 NAME 'physicalElement' DESC 'A physical element, ie a component of a machine (network card, memory slots, etc)' diff --git a/inventory-repository/src/main/scala/com/normation/inventory/ldap/core/InventoryMapper.scala b/inventory-repository/src/main/scala/com/normation/inventory/ldap/core/InventoryMapper.scala index 2f737c3e..f7881be8 100644 --- a/inventory-repository/src/main/scala/com/normation/inventory/ldap/core/InventoryMapper.scala +++ b/inventory-repository/src/main/scala/com/normation/inventory/ldap/core/InventoryMapper.scala @@ -381,6 +381,7 @@ class InventoryMapper( case VirtualMachineType(VMWare) => OC(OC_VM_VMWARE) case VirtualMachineType(SolarisZone) => OC(OC_VM_SOLARIS_ZONE) case VirtualMachineType(QEmu) => OC(OC_VM_QEMU) + case VirtualMachineType(AixLPAR) => OC(OC_VM_AIX_LPAR) case PhysicalMachineType => OC(OC_PM) } } @@ -394,6 +395,7 @@ class InventoryMapper( case LDAPObjectClass(OC_VM_VMWARE,_,_,_) => Some(VirtualMachineType(VMWare)) case LDAPObjectClass(OC_VM_SOLARIS_ZONE,_,_,_) => Some(VirtualMachineType(SolarisZone)) case LDAPObjectClass(OC_VM_QEMU,_,_,_) => Some(VirtualMachineType(QEmu)) + case LDAPObjectClass(OC_VM_AIX_LPAR,_,_,_) => Some(VirtualMachineType(AixLPAR)) case LDAPObjectClass(OC_PM,_,_,_) => Some(PhysicalMachineType) case _ => None } diff --git a/inventory-repository/src/main/scala/com/normation/inventory/ldap/core/LDAPConstants.scala b/inventory-repository/src/main/scala/com/normation/inventory/ldap/core/LDAPConstants.scala index e21fe569..29be1a17 100644 --- a/inventory-repository/src/main/scala/com/normation/inventory/ldap/core/LDAPConstants.scala +++ b/inventory-repository/src/main/scala/com/normation/inventory/ldap/core/LDAPConstants.scala @@ -236,6 +236,7 @@ object LDAPConstants { val OC_VM_VMWARE = "vmWare" val OC_VM_SOLARIS_ZONE = "solarisZone" val OC_VM_QEMU = "qemu" + val OC_VM_AIX_LPAR = "aixLpar" implicit val OC = new LDAPSchema() @@ -257,6 +258,7 @@ object LDAPConstants { OC +=(OC_VM_VMWARE, OC(OC_VM)) OC +=(OC_VM_SOLARIS_ZONE, OC(OC_VM)) OC +=(OC_VM_QEMU, OC(OC_VM)) + OC +=(OC_VM_AIX_LPAR, OC(OC_VM)) OC +=(OC_PE, must = Set(), @@ -271,7 +273,8 @@ object LDAPConstants { OC_VM_XEN, OC_VM_VMWARE, OC_VM_SOLARIS_ZONE, - OC_VM_QEMU + OC_VM_QEMU, + OC_VM_AIX_LPAR ) OC +=(OC_MEMORY, sup = OC(OC_PE),