From 7bcff5acf32616769171ca7d43ecf2fb4f0826ff Mon Sep 17 00:00:00 2001 From: Kelven Yang Date: Fri, 20 Aug 2010 18:50:33 -0700 Subject: [PATCH] Vmware incremental check-in --- api/src/com/cloud/hypervisor/Hypervisor.java | 3 ++- build/build-cloud.xml | 1 + .../hypervisor/xen/resource/CitrixResourceBase.java | 1 + core/test/com/cloud/vmware/TestVMWare.java | 13 ++++++++++++- .../com/cloud/agent/manager/AgentManagerImpl.java | 10 ++++++++-- setup/db/templates.xenserver.sql | 3 +++ 6 files changed, 27 insertions(+), 4 deletions(-) diff --git a/api/src/com/cloud/hypervisor/Hypervisor.java b/api/src/com/cloud/hypervisor/Hypervisor.java index 17178bd2154..36ef21f035b 100644 --- a/api/src/com/cloud/hypervisor/Hypervisor.java +++ b/api/src/com/cloud/hypervisor/Hypervisor.java @@ -23,7 +23,8 @@ public class Hypervisor { None, //for storage hosts Xen, XenServer, - KVM; + KVM, + VMware; } } diff --git a/build/build-cloud.xml b/build/build-cloud.xml index b11abe57254..09899cf25c5 100755 --- a/build/build-cloud.xml +++ b/build/build-cloud.xml @@ -264,6 +264,7 @@ + diff --git a/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java b/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java index cf0a7932969..21660ef71cb 100644 --- a/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java +++ b/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java @@ -4114,6 +4114,7 @@ public abstract class CitrixResourceBase implements StoragePoolResource, ServerR break; } } + // assume the memory Virtualization overhead is 1/64 ram = (ram - dom0Ram) * 63/64; cmd.setMemory(ram); diff --git a/core/test/com/cloud/vmware/TestVMWare.java b/core/test/com/cloud/vmware/TestVMWare.java index 48c3bb57e79..a6754ded927 100644 --- a/core/test/com/cloud/vmware/TestVMWare.java +++ b/core/test/com/cloud/vmware/TestVMWare.java @@ -19,6 +19,7 @@ import com.vmware.vim25.VirtualMachineConfigSpec; import com.vmware.vim25.VirtualDeviceConfigSpecOperation; import com.vmware.vim25.VirtualEthernetCard; import com.vmware.vim25.VirtualEthernetCardNetworkBackingInfo; +import com.vmware.vim25.VirtualNicManagerNetConfig; import com.vmware.vim25.VirtualPCNet32; import com.vmware.vim25.VirtualDeviceConfigSpec; import com.vmware.vim25.VirtualMachineCloneSpec; @@ -784,6 +785,14 @@ public class TestVMWare { "cloud.dc.test"); } + private void getPropertyWithPath() throws Exception { + ManagedObjectReference morHost = new ManagedObjectReference(); + morHost.setType("HostSystem"); + morHost.set_value("host-161"); + + VirtualNicManagerNetConfig[] netConfigs = (VirtualNicManagerNetConfig[])cb.getServiceUtil3().getDynamicProperty(morHost, "config.virtualNicManagerInfo.netConfig"); + } + public static void main(String[] args) throws Exception { setupLog4j(); TestVMWare client = new TestVMWare(); @@ -809,7 +818,9 @@ public class TestVMWare { // client.addNic(); // client.addNicToNetwork(); - client.createDatacenter(); + // client.createDatacenter(); + client.getPropertyWithPath(); + cb.disConnect(); } catch (Exception e) { e.printStackTrace(); diff --git a/server/src/com/cloud/agent/manager/AgentManagerImpl.java b/server/src/com/cloud/agent/manager/AgentManagerImpl.java index 498b6c26a0e..01ca1820670 100755 --- a/server/src/com/cloud/agent/manager/AgentManagerImpl.java +++ b/server/src/com/cloud/agent/manager/AgentManagerImpl.java @@ -478,7 +478,13 @@ public class AgentManagerImpl implements AgentManager, HandlerFactory { Enumeration en = _discoverers.enumeration(); while (en.hasMoreElements()) { Discoverer discoverer = en.nextElement(); - Map> resources = discoverer.find(dcId, podId, clusterId, url, username, password); + Map> resources = null; + + try { + resources = discoverer.find(dcId, podId, clusterId, url, username, password); + } catch(Exception e) { + s_logger.info("Exception in host discovery process with discoverer: " + discoverer.getName() + ", skip to another discoverer if there is any"); + } if (resources != null) { for (Map.Entry> entry : resources.entrySet()) { ServerResource resource = entry.getKey(); @@ -1677,7 +1683,7 @@ public class AgentManagerImpl implements AgentManager, HandlerFactory { // If this command is from a KVM agent, or from an agent that has a // null hypervisor type, don't do the CIDR check - if (hypervisorType == null || hypervisorType == Hypervisor.Type.KVM) + if (hypervisorType == null || hypervisorType == Hypervisor.Type.KVM || hypervisorType == Hypervisor.Type.VMware) doCidrCheck = false; if (doCidrCheck) diff --git a/setup/db/templates.xenserver.sql b/setup/db/templates.xenserver.sql index 4ff10d23a5b..5ecd912f575 100644 --- a/setup/db/templates.xenserver.sql +++ b/setup/db/templates.xenserver.sql @@ -72,3 +72,6 @@ INSERT INTO `cloud`.`guest_os` (id, category_id, name, display_name) VALUES (58, INSERT INTO `cloud`.`guest_os` (id, category_id, name, display_name) VALUES (59, 7, 'Other install media', 'Ubuntu'); INSERT INTO `cloud`.`guest_os` (id, category_id, name, display_name) VALUES (60, 7, 'Other install media', 'Other'); +-- temporarily added for vmware, will be moved when vmware support is fully in-place +INSERT INTO `cloud`.`host_master`(`type`, `service_address`, `admin`, `password`) VALUES('VSphere', 'vsphere-1.lab.vmops.com', 'Administrator', 'Suite219'); +