From fa9c882d8c028c903ad8fddba25fffedaf24d123 Mon Sep 17 00:00:00 2001 From: Kelven Yang Date: Mon, 29 Nov 2010 16:48:40 -0800 Subject: [PATCH] Add VMWare hypervisor guru --- client/tomcatconf/components.xml.in | 1 + server/src/com/cloud/hypervisor/KVMGuru.java | 2 +- .../src/com/cloud/hypervisor/VMwareGuru.java | 54 +++++++++++++++++++ 3 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 server/src/com/cloud/hypervisor/VMwareGuru.java diff --git a/client/tomcatconf/components.xml.in b/client/tomcatconf/components.xml.in index 1eca3242fec..71461e0e30f 100755 --- a/client/tomcatconf/components.xml.in +++ b/client/tomcatconf/components.xml.in @@ -64,6 +64,7 @@ + diff --git a/server/src/com/cloud/hypervisor/KVMGuru.java b/server/src/com/cloud/hypervisor/KVMGuru.java index 32527dc5b88..ccbe4e0a27e 100644 --- a/server/src/com/cloud/hypervisor/KVMGuru.java +++ b/server/src/com/cloud/hypervisor/KVMGuru.java @@ -13,6 +13,7 @@ import com.cloud.vm.VirtualMachineProfile; @Local(value=HypervisorGuru.class) public class KVMGuru extends HypervisorGuruBase implements HypervisorGuru { @Inject GuestOSDao _guestOsDao; + @Override public HypervisorType getHypervisorType() { return HypervisorType.KVM; @@ -33,5 +34,4 @@ public class KVMGuru extends HypervisorGuruBase implements HypervisorGuru { return to; } - } diff --git a/server/src/com/cloud/hypervisor/VMwareGuru.java b/server/src/com/cloud/hypervisor/VMwareGuru.java new file mode 100644 index 00000000000..fb7f90d189a --- /dev/null +++ b/server/src/com/cloud/hypervisor/VMwareGuru.java @@ -0,0 +1,54 @@ +/** + * Copyright (C) 2010 Cloud.com, Inc. All rights reserved. + * + * This software is licensed under the GNU General Public License v3 or later. + * + * It is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or any later version. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +package com.cloud.hypervisor; + +import javax.ejb.Local; + +import com.cloud.agent.api.to.VirtualMachineTO; +import com.cloud.hypervisor.Hypervisor.HypervisorType; +import com.cloud.storage.GuestOSVO; +import com.cloud.storage.dao.GuestOSDao; +import com.cloud.template.VirtualMachineTemplate.BootloaderType; +import com.cloud.utils.component.Inject; +import com.cloud.vm.VirtualMachine; +import com.cloud.vm.VirtualMachineProfile; + +@Local(value=HypervisorGuru.class) +public class VMwareGuru extends HypervisorGuruBase implements HypervisorGuru { + @Inject GuestOSDao _guestOsDao; + + protected VMwareGuru() { + super(); + } + + @Override + public HypervisorType getHypervisorType() { + return HypervisorType.VmWare; + } + + @Override + public VirtualMachineTO implement(VirtualMachineProfile vm) { + VirtualMachineTO to = toVirtualMachineTO(vm); + to.setBootloader(BootloaderType.HVM); + + // Determine the VM's OS description + GuestOSVO guestOS = _guestOsDao.findById(vm.getVirtualMachine().getGuestOSId()); + to.setOs(guestOS.getDisplayName()); + return to; + } +}