From 8943cc67459958ef933ddfecc57059eafbc5b9c3 Mon Sep 17 00:00:00 2001 From: edison Date: Thu, 16 Sep 2010 13:22:14 -0700 Subject: [PATCH] create volume Conflicts: api/src/com/cloud/vm/VmCharacteristics.java core/src/com/cloud/dc/ClusterVO.java core/src/com/cloud/server/ManagementServer.java server/src/com/cloud/network/NetworkManager.java server/src/com/cloud/storage/allocator/AbstractStoragePoolAllocator.java --- api/src/com/cloud/hypervisor/Hypervisor.java | 29 +- core/.project | 49 +- core/src/com/cloud/dc/ClusterVO.java | 9 + .../com/cloud/server/ManagementServer.java | 9 +- .../src/com/cloud/storage/StorageManager.java | 4 +- core/src/com/cloud/storage/VMTemplateVO.java | 24 +- .../storage/dao/LaunchPermissionDaoImpl.java | 2 +- .../com/cloud/storage/dao/VMTemplateDao.java | 5 +- .../cloud/storage/dao/VMTemplateDaoImpl.java | 18 +- server/.project | 49 +- .../cloud/api/commands/CreateVolumeCmd.java | 5 +- .../cloud/api/commands/ListTemplatesCmd.java | 5 +- .../api/commands/RegisterTemplateCmd.java | 2 +- .../executor/VolumeOperationExecutor.java | 2 +- .../async/executor/VolumeOperationParam.java | 11 + .../xen/discoverer/XcpServerDiscoverer.java | 2 +- .../src/com/cloud/network/NetworkManager.java | 3 +- .../com/cloud/network/NetworkManagerImpl.java | 2 +- .../cloud/server/ManagementServerImpl.java | 7 +- .../com/cloud/storage/StorageManagerImpl.java | 9 +- .../AbstractStoragePoolAllocator.java | 7 + setup/db/create-schema.sql | 1 + setup/db/templates.sql | 425 ++++++++++++++++++ 23 files changed, 615 insertions(+), 64 deletions(-) create mode 100644 setup/db/templates.sql diff --git a/api/src/com/cloud/hypervisor/Hypervisor.java b/api/src/com/cloud/hypervisor/Hypervisor.java index c938bba26e4..89bb66a8a82 100644 --- a/api/src/com/cloud/hypervisor/Hypervisor.java +++ b/api/src/com/cloud/hypervisor/Hypervisor.java @@ -19,13 +19,38 @@ package com.cloud.hypervisor; public class Hypervisor { - public static enum Type { + public static enum HypervisorType { None, //for storage hosts Xen, XenServer, KVM, VmWare, VirtualBox, - Parralels; + Parralels, + Any; /*If you don't care about the hypervisor type*/ + } + + public static HypervisorType getType(String hypervisor) { + if (hypervisor == null) { + return HypervisorType.None; + } + + if (hypervisor.equalsIgnoreCase("Xen")) { + return HypervisorType.Xen; + } else if (hypervisor.equalsIgnoreCase("XenServer")) { + return HypervisorType.XenServer; + } else if (hypervisor.equalsIgnoreCase("KVM")) { + return HypervisorType.KVM; + } else if (hypervisor.equalsIgnoreCase("VmWare")) { + return HypervisorType.VmWare; + } else if (hypervisor.equalsIgnoreCase("VirtualBox")) { + return HypervisorType.VirtualBox; + } else if (hypervisor.equalsIgnoreCase("Parralels")) { + return HypervisorType.Parralels; + } else if (hypervisor.equalsIgnoreCase("Any")) { + return HypervisorType.Any; + } else { + return HypervisorType.None; + } } } diff --git a/core/.project b/core/.project index 9884df8b9ca..5adc59b78b4 100644 --- a/core/.project +++ b/core/.project @@ -1,17 +1,32 @@ - - - core - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - + + + core + + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/org.eclipse.jdt.core.javabuilder.launch + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/New_Builder.launch + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/core/src/com/cloud/dc/ClusterVO.java b/core/src/com/cloud/dc/ClusterVO.java index b8f9f6b3d13..f2215b3a3a1 100644 --- a/core/src/com/cloud/dc/ClusterVO.java +++ b/core/src/com/cloud/dc/ClusterVO.java @@ -24,6 +24,7 @@ import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; +import com.cloud.hypervisor.Hypervisor; import com.cloud.org.Cluster; import com.cloud.utils.NumbersUtil; @@ -99,4 +100,12 @@ public class ClusterVO implements Cluster { ClusterVO that = (ClusterVO)obj; return this.id == that.id; } + + public Hypervisor.Type getHypervisorType() { + return Hypervisor.getType(hypervisorType); + } + + public void setHypervisorType(String hy) { + hypervisorType = hy; + } } diff --git a/core/src/com/cloud/server/ManagementServer.java b/core/src/com/cloud/server/ManagementServer.java index 75e4a19d5de..1c84ccf8a22 100755 --- a/core/src/com/cloud/server/ManagementServer.java +++ b/core/src/com/cloud/server/ManagementServer.java @@ -53,6 +53,8 @@ import com.cloud.exception.StorageUnavailableException; import com.cloud.host.Host; import com.cloud.host.HostStats; import com.cloud.host.HostVO; +import com.cloud.hypervisor.Hypervisor; +import com.cloud.hypervisor.Hypervisor.HypervisorType; import com.cloud.info.ConsoleProxyInfo; import com.cloud.network.FirewallRuleVO; import com.cloud.network.IPAddressVO; @@ -484,11 +486,12 @@ public interface ManagementServer { * @param zoneId - id of the zone to create this volume on * @param diskOfferingId - id of the disk offering to create this volume with * @param size - size of the volume + * @param hyperType - hypervisor type * @return true if success, false if not */ VolumeVO createVolume(long accountId, long userId, String name, long zoneId, long diskOfferingId, long startEventId, long size) throws InternalErrorException; - long createVolumeAsync(long accountId, long userId, String name, long zoneId, long diskOfferingId, long size) throws InvalidParameterValueException, InternalErrorException, ResourceAllocationException; - + + long createVolumeAsync(long userId, long accountId, String name, long zoneId, long diskOfferingId, long size) throws InvalidParameterValueException, InternalErrorException, ResourceAllocationException; /** * Finds the root volume of the VM * @param vmId @@ -1814,7 +1817,7 @@ public interface ManagementServer { * @param zoneId optional zoneid to limit search * @return list of templates */ - List listTemplates(Long templateId, String name, String keyword, TemplateFilter templateFilter, boolean isIso, Boolean bootable, Long accountId, Integer pageSize, Long startIndex, Long zoneId) throws InvalidParameterValueException; + List listTemplates(Long templateId, String name, String keyword, TemplateFilter templateFilter, boolean isIso, Boolean bootable, Long accountId, Integer pageSize, Long startIndex, Long zoneId, HypervisorType hyperType) throws InvalidParameterValueException; /** * Search for disk offerings based on search criteria diff --git a/core/src/com/cloud/storage/StorageManager.java b/core/src/com/cloud/storage/StorageManager.java index d5e447e4e1b..534b37aeebe 100755 --- a/core/src/com/cloud/storage/StorageManager.java +++ b/core/src/com/cloud/storage/StorageManager.java @@ -36,6 +36,8 @@ import com.cloud.exception.ResourceInUseException; import com.cloud.exception.StorageUnavailableException; import com.cloud.host.Host; import com.cloud.host.HostVO; +import com.cloud.hypervisor.Hypervisor; +import com.cloud.hypervisor.Hypervisor.Type; import com.cloud.service.ServiceOfferingVO; import com.cloud.storage.Volume.VolumeType; import com.cloud.user.Account; @@ -211,7 +213,7 @@ public interface StorageManager extends Manager { * @param size * @return VolumeVO */ - VolumeVO createVolume(long accountId, long userId, String name, DataCenterVO dc, DiskOfferingVO diskOffering, long startEventId, long size); + VolumeVO createVolume(long accountId, long userId, String name, DataCenterVO dc, DiskOfferingVO diskOffering, long startEventId, long size, Hypervisor.Type hyperType); /** * Marks the specified volume as destroyed in the management server database. The expunge thread will delete the volume from its storage pool. diff --git a/core/src/com/cloud/storage/VMTemplateVO.java b/core/src/com/cloud/storage/VMTemplateVO.java index e46a3bcc66e..2ef9f017fe2 100644 --- a/core/src/com/cloud/storage/VMTemplateVO.java +++ b/core/src/com/cloud/storage/VMTemplateVO.java @@ -32,6 +32,7 @@ import javax.persistence.Temporal; import javax.persistence.TemporalType; import com.cloud.async.AsyncInstanceCreateStatus; +import com.cloud.hypervisor.Hypervisor; import com.cloud.storage.Storage.FileSystem; import com.cloud.storage.Storage.ImageFormat; import com.cloud.utils.db.GenericDao; @@ -104,7 +105,11 @@ public class VMTemplateVO implements VirtualMachineTemplate { private boolean prepopulate = false; @Column(name="cross_zones") - private boolean crossZones = false; + private boolean crossZones = false; + + @Column(name="hypervisor_type") + private String hypervisorType; + public String getUniqueName() { return uniqueName; @@ -120,11 +125,11 @@ public class VMTemplateVO implements VirtualMachineTemplate { /** * Proper constructor for a new vm template. */ - public VMTemplateVO(long id, String name, ImageFormat format, boolean isPublic, boolean featured, FileSystem fs, String url, boolean requiresHvm, int bits, long accountId, String cksum, String displayText, boolean enablePassword, long guestOSId, boolean bootable) { - this(id, generateUniqueName(id, accountId, name), name, format, isPublic, featured, fs, url, null, requiresHvm, bits, accountId, cksum, displayText, enablePassword, guestOSId, bootable); + public VMTemplateVO(long id, String name, ImageFormat format, boolean isPublic, boolean featured, FileSystem fs, String url, boolean requiresHvm, int bits, long accountId, String cksum, String displayText, boolean enablePassword, long guestOSId, boolean bootable, Hypervisor.Type hyperType) { + this(id, generateUniqueName(id, accountId, name), name, format, isPublic, featured, fs, url, null, requiresHvm, bits, accountId, cksum, displayText, enablePassword, guestOSId, bootable, hyperType); } - public VMTemplateVO(Long id, String uniqueName, String name, ImageFormat format, boolean isPublic, boolean featured, FileSystem fs, String url, Date created, boolean requiresHvm, int bits, long accountId, String cksum, String displayText, boolean enablePassword, long guestOSId, boolean bootable) { + public VMTemplateVO(Long id, String uniqueName, String name, ImageFormat format, boolean isPublic, boolean featured, FileSystem fs, String url, Date created, boolean requiresHvm, int bits, long accountId, String cksum, String displayText, boolean enablePassword, long guestOSId, boolean bootable, Hypervisor.Type hyperType) { this.id = id; this.name = name; this.publicTemplate = isPublic; @@ -141,7 +146,8 @@ public class VMTemplateVO implements VirtualMachineTemplate { this.format = format; this.created = created; this.guestOSId = guestOSId; - this.bootable = bootable; + this.bootable = bootable; + this.hypervisorType = hyperType.toString(); } public boolean getEnablePassword() { @@ -289,6 +295,14 @@ public class VMTemplateVO implements VirtualMachineTemplate { public boolean isCrossZones() { return crossZones; } + + public Hypervisor.Type getHypervisorType() { + return Hypervisor.getType(hypervisorType); + } + + public void setHypervisorType(Hypervisor.Type hyper) { + hypervisorType = hyper.toString(); + } @Override public boolean equals(Object that) { diff --git a/core/src/com/cloud/storage/dao/LaunchPermissionDaoImpl.java b/core/src/com/cloud/storage/dao/LaunchPermissionDaoImpl.java index 990523bb6da..fd6eda64a99 100644 --- a/core/src/com/cloud/storage/dao/LaunchPermissionDaoImpl.java +++ b/core/src/com/cloud/storage/dao/LaunchPermissionDaoImpl.java @@ -140,7 +140,7 @@ public class LaunchPermissionDaoImpl extends GenericDaoBase { public List findIsosByIdAndPath(Long domainId, Long accountId, String path); public List listReadyTemplates(); public List listByAccountId(long accountId); - public List searchTemplates(String name, String keyword, TemplateFilter templateFilter, boolean isIso, Boolean bootable, Account account, DomainVO domain, Integer pageSize, Long startIndex, Long zoneId); + public List searchTemplates(String name, String keyword, TemplateFilter templateFilter, boolean isIso, Boolean bootable, Account account, DomainVO domain, Integer pageSize, Long startIndex, Long zoneId, Hypervisor.Type hyperType); public long addTemplateToZone(VMTemplateVO tmplt, long zoneId); public List listAllInZone(long dataCenterId); + + public List listByHypervisorType(Hypervisor.Type hyperType); } diff --git a/core/src/com/cloud/storage/dao/VMTemplateDaoImpl.java b/core/src/com/cloud/storage/dao/VMTemplateDaoImpl.java index ed62b751e5f..f8172ae2277 100644 --- a/core/src/com/cloud/storage/dao/VMTemplateDaoImpl.java +++ b/core/src/com/cloud/storage/dao/VMTemplateDaoImpl.java @@ -32,6 +32,7 @@ import javax.naming.ConfigurationException; import org.apache.log4j.Logger; import com.cloud.domain.DomainVO; +import com.cloud.hypervisor.Hypervisor; import com.cloud.storage.Storage; import com.cloud.storage.VMTemplateVO; import com.cloud.storage.VMTemplateZoneVO; @@ -131,6 +132,13 @@ public class VMTemplateDaoImpl extends GenericDaoBase implem SearchCriteria sc = AccountIdSearch.create(); sc.setParameters("accountId", accountId); return listBy(sc); + } + + @Override + public List listByHypervisorType(Hypervisor.Type hyperType) { + SearchCriteria sc = createSearchCriteria(); + sc.addAnd("hypervisor_type", SearchCriteria.Op.EQ, hyperType.toString()); + return listBy(sc); } @Override @@ -174,7 +182,7 @@ public class VMTemplateDaoImpl extends GenericDaoBase implem } @Override - public List searchTemplates(String name, String keyword, TemplateFilter templateFilter, boolean isIso, Boolean bootable, Account account, DomainVO domain, Integer pageSize, Long startIndex, Long zoneId) { + public List searchTemplates(String name, String keyword, TemplateFilter templateFilter, boolean isIso, Boolean bootable, Account account, DomainVO domain, Integer pageSize, Long startIndex, Long zoneId, Hypervisor.Type hyperType) { Transaction txn = Transaction.currentTxn(); txn.start(); List templates = new ArrayList(); @@ -225,7 +233,7 @@ public class VMTemplateDaoImpl extends GenericDaoBase implem whereClause += " AND "; } - sql += whereClause + getExtrasWhere(templateFilter, name, keyword, isIso, bootable) + getOrderByLimit(pageSize, startIndex); + sql += whereClause + getExtrasWhere(templateFilter, name, keyword, isIso, bootable, hyperType) + getOrderByLimit(pageSize, startIndex); pstmt = txn.prepareStatement(sql); rs = pstmt.executeQuery(); @@ -259,7 +267,7 @@ public class VMTemplateDaoImpl extends GenericDaoBase implem return templates; } - private String getExtrasWhere(TemplateFilter templateFilter, String name, String keyword, boolean isIso, Boolean bootable) { + private String getExtrasWhere(TemplateFilter templateFilter, String name, String keyword, boolean isIso, Boolean bootable, Hypervisor.Type hyperType) { String sql = ""; if (keyword != null) { sql += " t.name LIKE \"%" + keyword + "%\" AND"; @@ -275,6 +283,10 @@ public class VMTemplateDaoImpl extends GenericDaoBase implem if (bootable != null) { sql += " AND t.bootable = " + bootable; + } + + if (hyperType != null) { + sql += " AND t.hypervisor_type = " + hyperType.toString(); } sql += " AND t.removed IS NULL"; diff --git a/server/.project b/server/.project index 493e8001f75..78621356fbd 100644 --- a/server/.project +++ b/server/.project @@ -1,17 +1,32 @@ - - - server - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - + + + server + + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/ant build.launch + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/org.eclipse.jdt.core.javabuilder (1).launch + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/server/src/com/cloud/api/commands/CreateVolumeCmd.java b/server/src/com/cloud/api/commands/CreateVolumeCmd.java index 9e63a551ee4..b3fa27d58b9 100644 --- a/server/src/com/cloud/api/commands/CreateVolumeCmd.java +++ b/server/src/com/cloud/api/commands/CreateVolumeCmd.java @@ -28,6 +28,7 @@ import com.cloud.api.BaseCmd; import com.cloud.api.ServerApiException; import com.cloud.async.executor.VolumeOperationResultObject; import com.cloud.exception.InvalidParameterValueException; +import com.cloud.hypervisor.Hypervisor; import com.cloud.serializer.SerializerHelper; import com.cloud.storage.DiskOfferingVO; import com.cloud.storage.Snapshot; @@ -49,6 +50,7 @@ public class CreateVolumeCmd extends BaseCmd { s_properties.add(new Pair(BaseCmd.Properties.DISK_OFFERING_ID, Boolean.FALSE)); s_properties.add(new Pair(BaseCmd.Properties.SNAPSHOT_ID, Boolean.FALSE)); s_properties.add(new Pair(BaseCmd.Properties.SIZE, Boolean.FALSE)); + s_properties.add(new Pair(BaseCmd.Properties.HYPERVISOR_TYPE, Boolean.FALSE)); } public String getName() { @@ -74,6 +76,7 @@ public class CreateVolumeCmd extends BaseCmd { Long diskOfferingId = (Long) params.get(BaseCmd.Properties.DISK_OFFERING_ID.getName()); Long snapshotId = (Long)params.get(BaseCmd.Properties.SNAPSHOT_ID.getName()); Long size = (Long)params.get(BaseCmd.Properties.SIZE.getName()); + Hypervisor.Type hyperType = Hypervisor.getType((String)params.get(BaseCmd.Properties.HYPERVISOR_TYPE.getName())); if (account == null) { // Admin API call @@ -184,7 +187,7 @@ public class CreateVolumeCmd extends BaseCmd { if (useSnapshot) { jobId = getManagementServer().createVolumeFromSnapshotAsync(userId, account.getId(), snapshotId, name); } else { - jobId = getManagementServer().createVolumeAsync(userId, account.getId(), name, zoneId, diskOfferingId, size); + jobId = getManagementServer().createVolumeAsync(userId, account.getId(), name, zoneId, diskOfferingId, size, hyperType); } if (jobId == 0) { diff --git a/server/src/com/cloud/api/commands/ListTemplatesCmd.java b/server/src/com/cloud/api/commands/ListTemplatesCmd.java index b55fe57ce0d..84bbd693be7 100644 --- a/server/src/com/cloud/api/commands/ListTemplatesCmd.java +++ b/server/src/com/cloud/api/commands/ListTemplatesCmd.java @@ -29,6 +29,7 @@ import com.cloud.api.ServerApiException; import com.cloud.async.AsyncJobVO; import com.cloud.dc.DataCenterVO; import com.cloud.host.HostVO; +import com.cloud.hypervisor.Hypervisor; import com.cloud.storage.GuestOS; import com.cloud.storage.VMTemplateHostVO; import com.cloud.storage.VMTemplateStorageResourceAssoc.Status; @@ -57,6 +58,7 @@ public class ListTemplatesCmd extends BaseCmd { s_properties.add(new Pair(BaseCmd.Properties.PAGE, Boolean.FALSE)); s_properties.add(new Pair(BaseCmd.Properties.PAGESIZE, Boolean.FALSE)); s_properties.add(new Pair(BaseCmd.Properties.ZONE_ID, Boolean.FALSE)); + s_properties.add(new Pair(BaseCmd.Properties.HYPERVISOR_TYPE, Boolean.FALSE)); } @@ -83,6 +85,7 @@ public class ListTemplatesCmd extends BaseCmd { Integer page = (Integer)params.get(BaseCmd.Properties.PAGE.getName()); Integer pageSize = (Integer)params.get(BaseCmd.Properties.PAGESIZE.getName()); Long zoneId = (Long)params.get(BaseCmd.Properties.ZONE_ID.getName()); + Hypervisor.Type hyperType = Hypervisor.getType((String)params.get(BaseCmd.Properties.HYPERVISOR_TYPE.getName())); boolean isAdmin = false; Long accountId = null; @@ -136,7 +139,7 @@ public class ListTemplatesCmd extends BaseCmd { List templates = null; try { - templates = getManagementServer().listTemplates(id, name, keyword, templateFilter, false, null, accountId, pageSize, startIndex, zoneId); + templates = getManagementServer().listTemplates(id, name, keyword, templateFilter, false, null, accountId, pageSize, startIndex, zoneId, hyperType); } catch (Exception e) { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, e.getMessage()); } diff --git a/server/src/com/cloud/api/commands/RegisterTemplateCmd.java b/server/src/com/cloud/api/commands/RegisterTemplateCmd.java index 01a9150e1a0..a1abb00a883 100755 --- a/server/src/com/cloud/api/commands/RegisterTemplateCmd.java +++ b/server/src/com/cloud/api/commands/RegisterTemplateCmd.java @@ -58,7 +58,7 @@ public class RegisterTemplateCmd extends BaseCmd { s_properties.add(new Pair(BaseCmd.Properties.FORMAT, Boolean.TRUE)); s_properties.add(new Pair(BaseCmd.Properties.OS_TYPE_ID, Boolean.TRUE)); s_properties.add(new Pair(BaseCmd.Properties.ZONE_ID, Boolean.TRUE)); - + s_properties.add(new Pair(BaseCmd.Properties.HYPERVISOR_TYPE, Boolean.FALSE)); } diff --git a/server/src/com/cloud/async/executor/VolumeOperationExecutor.java b/server/src/com/cloud/async/executor/VolumeOperationExecutor.java index 750bf2f6f9e..92380c226cd 100644 --- a/server/src/com/cloud/async/executor/VolumeOperationExecutor.java +++ b/server/src/com/cloud/async/executor/VolumeOperationExecutor.java @@ -62,7 +62,7 @@ public class VolumeOperationExecutor extends BaseAsyncJobExecutor { if (op == VolumeOp.Create) { eventType = EventTypes.EVENT_VOLUME_CREATE; failureDescription = "Failed to create volume"; - volume = asyncMgr.getExecutorContext().getManagementServer().createVolume(param.getUserId(), param.getAccountId(), param.getName(), param.getZoneId(), param.getDiskOfferingId(), param.getEventId(), param.getSize()); + volume = asyncMgr.getExecutorContext().getManagementServer().createVolume(param.getUserId(), param.getAccountId(), param.getName(), param.getZoneId(), param.getDiskOfferingId(), param.getEventId(), param.getSize(), param.getHyperType()); if (volume.getStatus() == AsyncInstanceCreateStatus.Corrupted) { asyncMgr.completeAsyncJob(getJob().getId(), AsyncJobResult.STATUS_FAILED, BaseCmd.INTERNAL_ERROR, "Failed to create volume."); } else { diff --git a/server/src/com/cloud/async/executor/VolumeOperationParam.java b/server/src/com/cloud/async/executor/VolumeOperationParam.java index b59ddd51f2f..463aaadb227 100644 --- a/server/src/com/cloud/async/executor/VolumeOperationParam.java +++ b/server/src/com/cloud/async/executor/VolumeOperationParam.java @@ -18,6 +18,8 @@ package com.cloud.async.executor; +import com.cloud.hypervisor.Hypervisor; + public class VolumeOperationParam { public enum VolumeOp { Create, Attach, Detach;} @@ -32,6 +34,7 @@ public class VolumeOperationParam { private String name; private long diskOfferingId; private long size; + Hypervisor.Type hypervisorType; // Used for Attach and Detach private long vmId; @@ -132,4 +135,12 @@ public class VolumeOperationParam { public void setSize(long size){ this.size = size; } + + public Hypervisor.Type getHyperType() { + return hypervisorType; + } + + public void setHyperType(Hypervisor.Type hyperType) { + hypervisorType = hyperType; + } } diff --git a/server/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java b/server/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java index de780e6964a..e6a1bf454d3 100644 --- a/server/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java +++ b/server/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java @@ -491,7 +491,7 @@ public class XcpServerDiscoverer extends DiscovererBase implements Discoverer, L Long id; if (tmplt == null) { id = _tmpltDao.getNextInSequence(Long.class, "id"); - VMTemplateVO template = new VMTemplateVO(id, xenPVISO.getTemplateName(), xenPVISO.getTemplateName(), ImageFormat.ISO , true, true, FileSystem.cdfs, "/opt/xensource/packages/iso/xs-tools-5.5.0.iso", null, true, 64, Account.ACCOUNT_ID_SYSTEM, null, "xen-pv-drv-iso", false, 1, false); + VMTemplateVO template = new VMTemplateVO(id, xenPVISO.getTemplateName(), xenPVISO.getTemplateName(), ImageFormat.ISO , true, true, FileSystem.cdfs, "/opt/xensource/packages/iso/xs-tools-5.5.0.iso", null, true, 64, Account.ACCOUNT_ID_SYSTEM, null, "xen-pv-drv-iso", false, 1, false, null); _tmpltDao.persist(template); } else { id = _tmpltDao.findByName(xenPVISO.getTemplateName()).getId(); diff --git a/server/src/com/cloud/network/NetworkManager.java b/server/src/com/cloud/network/NetworkManager.java index f312714c638..37a3fc977cc 100644 --- a/server/src/com/cloud/network/NetworkManager.java +++ b/server/src/com/cloud/network/NetworkManager.java @@ -33,6 +33,7 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InsufficientVirtualNetworkCapcityException; import com.cloud.exception.ResourceAllocationException; +import com.cloud.hypervisor.Hypervisor.HypervisorType; import com.cloud.offerings.NetworkOfferingVO; import com.cloud.service.ServiceOfferingVO; import com.cloud.user.AccountVO; @@ -147,7 +148,7 @@ public interface NetworkManager extends Manager { * @param so service offering associated with this request * @return public ip address. */ - public String assignSourceNatIpAddress(AccountVO account, DataCenterVO dc, String domain, ServiceOfferingVO so, long startEventId) throws ResourceAllocationException; + public String assignSourceNatIpAddress(AccountVO account, DataCenterVO dc, String domain, ServiceOfferingVO so, long startEventId, HypervisorType hyperType) throws ResourceAllocationException; /** * @param fwRules list of rules to be updated diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java index 14eb6810379..f554753d615 100644 --- a/server/src/com/cloud/network/NetworkManagerImpl.java +++ b/server/src/com/cloud/network/NetworkManagerImpl.java @@ -255,7 +255,7 @@ public class NetworkManagerImpl implements NetworkManager, VirtualMachineManager } @Override @DB - public String assignSourceNatIpAddress(AccountVO account, final DataCenterVO dc, final String domain, final ServiceOfferingVO serviceOffering, long startEventId) throws ResourceAllocationException { + public String assignSourceNatIpAddress(AccountVO account, final DataCenterVO dc, final String domain, final ServiceOfferingVO serviceOffering, long startEventId, HypervisorType hyperType) throws ResourceAllocationException { if (serviceOffering.getGuestIpType() == NetworkOffering.GuestIpType.DirectDual || serviceOffering.getGuestIpType() == NetworkOffering.GuestIpType.DirectSingle) { return null; } diff --git a/server/src/com/cloud/server/ManagementServerImpl.java b/server/src/com/cloud/server/ManagementServerImpl.java index 16e361dd4d6..b7c7b59c235 100755 --- a/server/src/com/cloud/server/ManagementServerImpl.java +++ b/server/src/com/cloud/server/ManagementServerImpl.java @@ -160,7 +160,7 @@ import com.cloud.host.HostStats; import com.cloud.host.HostVO; import com.cloud.host.Status; import com.cloud.host.dao.HostDao; -import com.cloud.hypervisor.Hypervisor; +import com.cloud.hypervisor.Hypervisor.HypervisorType; import com.cloud.info.ConsoleProxyInfo; import com.cloud.network.FirewallRuleVO; import com.cloud.network.IPAddressVO; @@ -1853,6 +1853,7 @@ public class ManagementServerImpl implements ManagementServer { param.setDiskOfferingId(diskOfferingId); param.setEventId(eventId); param.setSize(size); + param.setHyperType(hyperType); Gson gson = GsonHelper.getBuilder().create(); @@ -4365,7 +4366,7 @@ public class ManagementServerImpl implements ManagementServer { } @Override - public List listTemplates(Long templateId, String name, String keyword, TemplateFilter templateFilter, boolean isIso, Boolean bootable, Long accountId, Integer pageSize, Long startIndex, Long zoneId) throws InvalidParameterValueException { + public List listTemplates(Long templateId, String name, String keyword, TemplateFilter templateFilter, boolean isIso, Boolean bootable, Long accountId, Integer pageSize, Long startIndex, Long zoneId, Hypervisor.Type hyperType) throws InvalidParameterValueException { VMTemplateVO template = null; if (templateId != null) { template = _templateDao.findById(templateId); @@ -4394,7 +4395,7 @@ public class ManagementServerImpl implements ManagementServer { List templates = new ArrayList(); if (template == null) { - templates = _templateDao.searchTemplates(name, keyword, templateFilter, isIso, bootable, account, domain, pageSize, startIndex, zoneId); + templates = _templateDao.searchTemplates(name, keyword, templateFilter, isIso, bootable, account, domain, pageSize, startIndex, zoneId, hyperType); } else { templates = new ArrayList(); templates.add(template); diff --git a/server/src/com/cloud/storage/StorageManagerImpl.java b/server/src/com/cloud/storage/StorageManagerImpl.java index c9c3fc912c5..7911e923b03 100755 --- a/server/src/com/cloud/storage/StorageManagerImpl.java +++ b/server/src/com/cloud/storage/StorageManagerImpl.java @@ -339,7 +339,7 @@ public class StorageManagerImpl implements StorageManager { } else { offering = _offeringDao.findById(vol.getDiskOfferingId()); } - VolumeVO created = createVolume(create, vm, template, dc, pod, host.getClusterId(), offering, diskOffering, new ArrayList(),0); + VolumeVO created = createVolume(create, vm, template, dc, pod, host.getClusterId(), offering, diskOffering, new ArrayList(),0, Hypervisor.Type.Any); if (created == null) { break; } @@ -719,9 +719,10 @@ public class StorageManagerImpl implements StorageManager { return new Pair(vdiUUID, basicErrMsg); } - @DB - protected VolumeVO createVolume(VolumeVO volume, VMInstanceVO vm, VMTemplateVO template, DataCenterVO dc, HostPodVO pod, Long clusterId, - ServiceOfferingVO offering, DiskOfferingVO diskOffering, List avoids, long size) { + @DB + @Override + public VolumeVO createVolume(VolumeVO volume, VMInstanceVO vm, VMTemplateVO template, DataCenterVO dc, HostPodVO pod, Long clusterId, + ServiceOfferingVO offering, DiskOfferingVO diskOffering, List avoids, long size, Hypervisor.Type hyperType) { StoragePoolVO pool = null; final HashSet avoidPools = new HashSet(avoids); diff --git a/server/src/com/cloud/storage/allocator/AbstractStoragePoolAllocator.java b/server/src/com/cloud/storage/allocator/AbstractStoragePoolAllocator.java index cf6471018cf..71e2e493ceb 100644 --- a/server/src/com/cloud/storage/allocator/AbstractStoragePoolAllocator.java +++ b/server/src/com/cloud/storage/allocator/AbstractStoragePoolAllocator.java @@ -144,6 +144,13 @@ public abstract class AbstractStoragePoolAllocator extends AdapterBase implement if (!poolIsCorrectType(dskCh, pool, vm)) { return false; } + + /*hypervisor type is correct*/ + Long clusterId = pool.getClusterId(); + ClusterVO cluster = _clusterDao.findById(clusterId); + if (!cluster.getHypervisorType().equalsIgnoreCase(offering.gethypervisorType())) { + return false; + } /*hypervisor type is correct*/ // TODO : when creating a standalone volume, offering is passed as NULL, need to diff --git a/setup/db/create-schema.sql b/setup/db/create-schema.sql index a39e618a810..747eb44c96c 100755 --- a/setup/db/create-schema.sql +++ b/setup/db/create-schema.sql @@ -550,6 +550,7 @@ CREATE TABLE `cloud`.`vm_template` ( `bootable` int(1) unsigned NOT NULL default 1 COMMENT 'true if this template represents a bootable ISO', `prepopulate` int(1) unsigned NOT NULL default 0 COMMENT 'prepopulate this template to primary storage', `cross_zones` int(1) unsigned NOT NULL default 0 COMMENT 'Make this template available in all zones', + `hypervisor_type` varchar(255) COMMENT 'hypervisor that the template is belonged to', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; diff --git a/setup/db/templates.sql b/setup/db/templates.sql new file mode 100644 index 00000000000..5b6a8865ce6 --- /dev/null +++ b/setup/db/templates.sql @@ -0,0 +1,425 @@ +INSERT INTO `cloud`.`vm_template` (id, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, enable_password, display_text, format, guest_os_id, featured, cross_zones, hypervisor_type) + VALUES (1, 'routing', 'SystemVM Template', 0, now(), 'ext3', 0, 64, 1, 'http://download.cloud.com/releases/2.2/systemvm.vhd.bz2', 'bcc7f290f4c27ab4d0fe95d1012829ea', 0, 'SystemVM Template', 'VHD', 15, 0, 1, 'Xenserver'); +INSERT INTO `cloud`.`vm_template` (id, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, enable_password, display_text, format, guest_os_id, featured, cross_zones, hypervisor_type) + VALUES (2, 'centos53-x86_64', 'CentOS 5.3(x86_64) no GUI', 1, now(), 'ext3', 0, 64, 1, 'http://download.cloud.com/templates/builtin/f59f18fb-ae94-4f97-afd2-f84755767aca.vhd.bz2', 'b63d854a9560c013142567bbae8d98cf', 0, 'CentOS 5.3(x86_64) no GUI', 'VHD', 12, 1, 1, 'Xenserver'); + +INSERT INTO `cloud`.`vm_template` (id, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, display_text, enable_password, format, guest_os_id, featured, cross_zones, hypervisor_type) + VALUES (3, 'routing', 'DomR Template', 0, now(), 'ext3', 0, 64, 1, 'http://download.cloud.com/templates/builtin/a88232bf-6a18-38e7-aeee-c1702725079f.qcow2.bz2', 'e39c55e93ae96bd43bfd588ca6ee3269', 'DomR Template', 0, 'QCOW2', 21, 0, 1, 'KVM'); +INSERT INTO `cloud`.`vm_template` (id, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, display_text, enable_password, format, guest_os_id, featured, cross_zones, hypervisor_type) + VALUES (4, 'centos55-x86_64', 'CentOS 5.5(x86_64) no GUI', 1, now(), 'ext3', 0, 64, 1, 'http://download.cloud.com/templates/builtin/eec2209b-9875-3c8d-92be-c001bd8a0faf.qcow2.bz2', '1da20ae69b54f761f3f733dce97adcc0', 'CentOS 5.5(x86_64) no GUI', 0, 'QCOW2', 9, 1, 1, 'KVM'); + +INSERT INTO `cloud`.`vm_template` (id, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, enable_password, display_text, format, guest_os_id, featured, cross_zones, hypervisor_type) + VALUES (5, 'blank', 'BlankVM', 1, now(), 'ext3', 0, 32, 1, 'http://nfs1.lab.vmops.com/templates/vmware/blankvm.tar.bz2', '3eff7ce3d25cf9433efde8b245c63fcb', 0, 'BlankVM', 'VMDK', 47, 1, 1, 'VMware'); + +INSERT INTO `cloud`.`vm_template` (id, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, enable_password, display_text, format, guest_os_id, featured, cross_zones, hypervisor_type) + VALUES (6, 'winxpsp3', 'WindowsXP-SP3', 1, now(), 'ntfs', 0, 32, 1, 'http://nfs1.lab.vmops.com/templates/vmware/winxpsp3.tar.bz2', '385e67d17a2cb3795bd0b0fb7f88dc5e', 0, 'WindowsXP-SP3', 'VMDK', 16, 1, 1, 'VMware'); + + +INSERT INTO `cloud`.`guest_os_category` (id, name) VALUES (1, 'CentOS'); +INSERT INTO `cloud`.`guest_os_category` (id, name) VALUES (2, 'Debian'); +INSERT INTO `cloud`.`guest_os_category` (id, name) VALUES (3, 'Oracle'); +INSERT INTO `cloud`.`guest_os_category` (id, name) VALUES (4, 'RedHat'); +INSERT INTO `cloud`.`guest_os_category` (id, name) VALUES (5, 'SUSE'); +INSERT INTO `cloud`.`guest_os_category` (id, name) VALUES (6, 'Windows'); +INSERT INTO `cloud`.`guest_os_category` (id, name) VALUES (7, 'Other'); +INSERT INTO `cloud`.`guest_os_category` (id, name) VALUES (8, 'Novel'); +INSERT INTO `cloud`.`guest_os_category` (id, name) VALUES (9, 'Unix'); +INSERT INTO `cloud`.`guest_os_category` (id, name) VALUES (10, 'Ubuntu'); + + +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (1, 1, 'CentOS 4.5 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (2, 1, 'CentOS 4.6 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (3, 1, 'CentOS 4.7 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (4, 1, 'CentOS 4.8 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (5, 1, 'CentOS 5.0 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (6, 1, 'CentOS 5.0 (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (7, 1, 'CentOS 5.1 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (8, 1, 'CentOS 5.1 (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (9, 1, 'CentOS 5.2 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (10, 1, 'CentOS 5.2 (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (11, 1, 'CentOS 5.3 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (12, 1, 'CentOS 5.3 (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (13, 1, 'CentOS 5.4 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (14, 1, 'CentOS 5.4 (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (15, 2, 'Debian GNU/Linux 5.0 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (16, 3, 'Oracle Enterprise Linux 5.0 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (17, 3, 'Oracle Enterprise Linux 5.0 (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (18, 3, 'Oracle Enterprise Linux 5.1 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (19, 3, 'Oracle Enterprise Linux 5.1 (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (20, 3, 'Oracle Enterprise Linux 5.2 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (21, 3, 'Oracle Enterprise Linux 5.2 (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (22, 3, 'Oracle Enterprise Linux 5.3 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (23, 3, 'Oracle Enterprise Linux 5.3 (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (24, 3, 'Oracle Enterprise Linux 5.4 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (25, 3, 'Oracle Enterprise Linux 5.4 (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (26, 4, 'Red Hat Enterprise Linux 4.5 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (27, 4, 'Red Hat Enterprise Linux 4.6 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (28, 4, 'Red Hat Enterprise Linux 4.7 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (29, 4, 'Red Hat Enterprise Linux 4.8 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (30, 4, 'Red Hat Enterprise Linux 5.0 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (31, 4, 'Red Hat Enterprise Linux 5.0 (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (32, 4, 'Red Hat Enterprise Linux 5.1 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (33, 4, 'Red Hat Enterprise Linux 5.1 (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (34, 4, 'Red Hat Enterprise Linux 5.2 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (35, 4, 'Red Hat Enterprise Linux 5.2 (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (36, 4, 'Red Hat Enterprise Linux 5.3 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (37, 4, 'Red Hat Enterprise Linux 5.3 (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (38, 4, 'Red Hat Enterprise Linux 5.4 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (39, 4, 'Red Hat Enterprise Linux 5.4 (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (40, 5, 'SUSE Linux Enterprise Server 9 SP4 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (41, 5, 'SUSE Linux Enterprise Server 10 SP1 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (42, 5, 'SUSE Linux Enterprise Server 10 SP1 (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (43, 5, 'SUSE Linux Enterprise Server 10 SP2 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (44, 5, 'SUSE Linux Enterprise Server 10 SP2 (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (45, 5, 'SUSE Linux Enterprise Server 10 SP3 (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (46, 5, 'SUSE Linux Enterprise Server 11 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (47, 5, 'SUSE Linux Enterprise Server 11 (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (48, 6, 'Windows 7 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (49, 6, 'Windows 7 (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (50, 6, 'Windows Server 2003 Enterprise Edition(32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (51, 6, 'Windows Server 2003 Enterprise Edition(64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (52, 6, 'Windows Server 2008 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (53, 6, 'Windows Server 2008 (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (54, 6, 'Windows Server 2008 R2 (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (55, 6, 'Windows 2000 Server SP4 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (56, 6, 'Windows Vista (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (57, 6, 'Windows XP SP2 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (58, 6, 'Windows XP SP3 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (59, 10, 'Other Ubuntu (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (60, 7, 'Other (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (61, 6, 'Windows 2000 Server'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (62, 6, 'Windows 98'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (63, 6, 'Windows 95'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (64, 6, 'Windows NT 4'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (65, 6, 'Windows 3.1'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (66, 4, 'Red Hat Enterprise Linux 3(32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (67, 4, 'Red Hat Enterprise Linux 3(64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (68, 7, 'Open Enterprise Server'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (69, 7, 'Asianux 3(32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (70, 7, 'Asianux 3(64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (72, 2, 'Debian GNU/Linux 5(64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (73, 2, 'Debian GNU/Linux 4(32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (74, 2, 'Debian GNU/Linux 4(64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (75, 7, 'Other 2.6x Linux (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (76, 7, 'Other 2.6x Linux (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (77, 8, 'Novell Netware 6.x'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (78, 8, 'Novell Netware 5.1'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (79, 9, 'Sun Solaris 10(32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (80, 9, 'Sun Solaris 10(64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (81, 9, 'Sun Solaris 9(Experimental)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (82, 9, 'Sun Solaris 8(Experimental)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (83, 9, 'FreeBSD (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (84, 9, 'FreeBSD (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (85, 9, 'SCO OpenServer 5'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (86, 9, 'SCO UnixWare 7'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (87, 6, 'Windows Server 2003 DataCenter Edition(32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (88, 6, 'Windows Server 2003 DataCenter Edition(64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (89, 6, 'Windows Server 2003 Standard Edition(32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (90, 6, 'Windows Server 2003 Standard Edition(64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (91, 6, 'Windows Server 2003 Web Edition'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (92, 6, 'Microsoft Small Bussiness Server 2003'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (93, 6, 'Windows XP (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (94, 6, 'Windows XP (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (95, 6, 'Windows 2000 Advanced Server'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (96, 5, 'SUSE Linux Enterprise 8(32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (97, 5, 'SUSE Linux Enterprise 8(64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (98, 7, 'Other Linux (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (99, 7, 'Other Linux (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (100, 10, 'Other Ubuntu (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (101, 6, 'Windows Vista (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (102, 6, 'DOS'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (103, 7, 'Other (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (104, 7, 'OS/2'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (105, 6, 'Windows 2000 Professional'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (106, 4, 'Red Hat Enterprise Linux 4(64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (107, 5, 'SUSE Linux Enterprise 9(32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (108, 5, 'SUSE Linux Enterprise 9(64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (109, 5, 'SUSE Linux Enterprise 10(32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (110, 5, 'SUSE Linux Enterprise 10(64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (111, 1, 'CentOS 5.5 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (112, 1, 'CentOS 5.5 (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (113, 4, 'Red Hat Enterprise Linux 5.5 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (114, 4, 'Red Hat Enterprise Linux 5.5 (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (115, 4, 'Fedora 13'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (116, 4, 'Fedora 12'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (117, 4, 'Fedora 11'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (118, 4, 'Fedora 10'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (119, 4, 'Fedora 9'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (120, 4, 'Fedora 8'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (121, 10, 'Ubuntu 10.04 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (122, 10, 'Ubuntu 9.10 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (123, 10, 'Ubuntu 9.04 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (124, 10, 'Ubuntu 8.10 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (125, 10, 'Ubuntu 8.04 (32-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (126, 10, 'Ubuntu 10.04 (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (127, 10, 'Ubuntu 9.10 (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (128, 10, 'Ubuntu 9.04 (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (129, 10, 'Ubuntu 8.10 (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (130, 10, 'Ubuntu 8.04 (64-bit)'); +INSERT INTO `cloud`.`guest_os` (id, category_id, display_name) VALUES (131, 10, 'Red Hat Enterprise Linux 2'); + +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'CentOS 4.5 (32-bit)', 1); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'CentOS 4.6 (32-bit)', 2); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'CentOS 4.7 (32-bit)', 3); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'CentOS 4.8 (32-bit)', 4); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'CentOS 5.0 (32-bit)', 5); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'CentOS 5.0 (64-bit)', 6); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'CentOS 5.1 (32-bit)', 7); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'CentOS 5.1 (32-bit)', 8); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'CentOS 5.2 (32-bit)', 9); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'CentOS 5.2 (64-bit)', 10); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'CentOS 5.3 (32-bit)', 11); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'CentOS 5.3 (64-bit)', 12); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'CentOS 5.4 (32-bit)', 13); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'CentOS 5.4 (64-bit)', 14); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Debian Lenny 5.0 (32-bit)', 15); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Oracle Enterprise Linux 5.0 (32-bit)', 16); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Oracle Enterprise Linux 5.0 (64-bit)', 17); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Oracle Enterprise Linux 5.1 (32-bit)', 18); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Oracle Enterprise Linux 5.1 (64-bit)', 19); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Oracle Enterprise Linux 5.2 (32-bit)', 20); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Oracle Enterprise Linux 5.2 (64-bit)', 21); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Oracle Enterprise Linux 5.3 (32-bit)', 22); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Oracle Enterprise Linux 5.3 (64-bit)', 23); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Oracle Enterprise Linux 5.4 (32-bit)', 24); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Oracle Enterprise Linux 5.4 (64-bit)', 25); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Red Hat Enterprise Linux 4.5 (32-bit)', 26); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Red Hat Enterprise Linux 4.6 (32-bit)', 27); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Red Hat Enterprise Linux 4.7 (32-bit)', 28); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Red Hat Enterprise Linux 4.8 (32-bit)', 29); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Red Hat Enterprise Linux 5.0 (32-bit)', 30); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Red Hat Enterprise Linux 5.0 (64-bit)', 31); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Red Hat Enterprise Linux 5.1 (32-bit)', 32); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Red Hat Enterprise Linux 5.1 (64-bit)', 33); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Red Hat Enterprise Linux 5.2 (32-bit)', 34); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Red Hat Enterprise Linux 5.2 (64-bit)', 35); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Red Hat Enterprise Linux 5.3 (32-bit)', 36); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Red Hat Enterprise Linux 5.3 (64-bit)', 37); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Red Hat Enterprise Linux 5.4 (32-bit)', 38); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Red Hat Enterprise Linux 5.4 (64-bit)', 39); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'SUSE Linux Enterprise Server 9 SP4 (32-bit)', 40); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'SUSE Linux Enterprise Server 10 SP1 (32-bit)', 41); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'SUSE Linux Enterprise Server 10 SP1 (64-bit)', 42); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'SUSE Linux Enterprise Server 10 SP2 (32-bit)', 43); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'SUSE Linux Enterprise Server 10 SP2 (64-bit)', 44); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'SUSE Linux Enterprise Server 10 SP3 (64-bit)', 45); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'SUSE Linux Enterprise Server 11 (32-bit)', 46); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'SUSE Linux Enterprise Server 11 (64-bit)', 47); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Windows 7 (32-bit)', 48); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Windows 7 (64-bit)', 49); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Windows Server 2003 (32-bit)', 50); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Windows Server 2003 (64-bit)', 51); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Windows Server 2008 (32-bit)', 52); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Windows Server 2008 (64-bit)', 53); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Windows Server 2008 R2 (64-bit)', 54); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Windows 2000 SP4 (32-bit)', 55); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Windows Vista (32-bit)', 56); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Windows XP SP2 (32-bit)', 57); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Windows XP SP3 (32-bit)', 58); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Other install media', 59); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Other install media', 100); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Other install media', 60); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("XenServer", 'Other install media', 103); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('XenServer', 'Other install media', 121); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('XenServer', 'Other install media', 126); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('XenServer', 'Other install media', 122); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('XenServer', 'Other install media', 127); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('XenServer', 'Other install media', 123); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('XenServer', 'Other install media', 128); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('XenServer', 'Other install media', 124); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('XenServer', 'Other install media', 129); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('XenServer', 'Other install media', 125); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('XenServer', 'Other install media', 130); + + +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Microsoft Windows 7(32-bit)', 48); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Microsoft Windows 7(64-bit)', 49); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Microsoft Windows Server 2008 R2(64-bit)', 54); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Microsoft Windows Server 2008(32-bit)', 52); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Microsoft Windows Server 2008(64-bit)', 53); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Microsoft Windows Server 2003, Enterprise Edition (32-bit)', 50); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Microsoft Windows Server 2003, Enterprise Edition (64-bit)', 51); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Microsoft Windows Server 2003, Datacenter Edition (32-bit)', 87); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Microsoft Windows Server 2003, Datacenter Edition (64-bit)', 88); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Microsoft Windows Server 2003, Standard Edition (32-bit)', 89); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Microsoft Windows Server 2003, Standard Edition (64-bit)', 90); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Microsoft Windows Server 2003, Web Edition', 91); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Microsoft Small Bussiness Server 2003', 92); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Microsoft Windows Vista (32-bit)', 56); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Microsoft Windows Vista (64-bit)', 101); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Microsoft Windows XP Professional (32-bit)', 93); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Microsoft Windows XP Professional (32-bit)', 57); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Microsoft Windows XP Professional (32-bit)', 58); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Microsoft Windows XP Professional (64-bit)', 94); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Microsoft Windows 2000 Advanced Server', 95); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Microsoft Windows 2000 Server', 61); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Microsoft Windows 2000 Professional', 105); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Microsoft Windows 2000 Server', 55); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Microsoft Windows 98', 62); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Microsoft Windows 95', 63); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Microsoft Windows NT 4', 64); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Microsoft Windows 3.1', 65); + +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Red Hat Enterprise Linux 5(32-bit)', 30); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Red Hat Enterprise Linux 5(32-bit)', 32); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Red Hat Enterprise Linux 5(32-bit)', 34); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Red Hat Enterprise Linux 5(32-bit)', 36); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Red Hat Enterprise Linux 5(32-bit)', 38); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Red Hat Enterprise Linux 5(64-bit)', 31); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Red Hat Enterprise Linux 5(64-bit)', 33); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Red Hat Enterprise Linux 5(64-bit)', 35); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Red Hat Enterprise Linux 5(64-bit)', 37); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Red Hat Enterprise Linux 5(64-bit)', 39); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Red Hat Enterprise Linux 4(32-bit)', 26); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Red Hat Enterprise Linux 4(32-bit)', 27); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Red Hat Enterprise Linux 4(32-bit)', 28); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Red Hat Enterprise Linux 4(32-bit)', 29); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Red Hat Enterprise Linux 4(64-bit)', 106); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Red Hat Enterprise Linux 3(32-bit)', 66); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Red Hat Enterprise Linux 3(64-bit)', 67); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Red Hat Enterprise Linux 2', 131); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Suse Linux Enterprise 11(32-bit)', 46); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Suse Linux Enterprise 11(64-bit)', 47); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Suse Linux Enterprise 10(32-bit)', 41); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Suse Linux Enterprise 10(32-bit)', 43); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Suse Linux Enterprise 10(64-bit)', 42); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Suse Linux Enterprise 10(64-bit)', 44); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Suse Linux Enterprise 10(64-bit)', 45); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Suse Linux Enterprise 10(32-bit)', 109); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Suse Linux Enterprise 10(64-bit)', 110); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Suse Linux Enterprise 8/9(32-bit)', 40); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Suse Linux Enterprise 8/9(32-bit)', 96); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Suse Linux Enterprise 8/9(64-bit)', 97); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Suse Linux Enterprise 8/9(32-bit)', 107); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Suse Linux Enterprise 8/9(64-bit)', 108); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Open Enterprise Server', 68); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Asianux 3(32-bit)', 69); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Asianux 3(64-bit)', 70); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Debian GNU/Linux 5(32-bit)', 15); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Debian GNU/Linux 5(64-bit)', 72); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Debian GNU/Linux 4(32-bit)', 73); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Debian GNU/Linux 4(64-bit)', 74); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Ubuntu Linux (32-bit)', 59); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Ubuntu Linux (32-bit)', 121); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Ubuntu Linux (32-bit)', 122); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Ubuntu Linux (32-bit)', 123); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Ubuntu Linux (32-bit)', 124); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Ubuntu Linux (32-bit)', 125); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Ubuntu Linux (64-bit)', 100); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Ubuntu Linux (64-bit)', 126); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Ubuntu Linux (64-bit)', 127); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Ubuntu Linux (64-bit)', 128); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Ubuntu Linux (64-bit)', 129); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Ubuntu Linux (64-bit)', 130); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Other 2.6x Linux (32-bit)', 75); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Other 2.6x Linux (64-bit)', 76); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Other Linux (32-bit)', 98); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Other Linux (64-bit)', 99); + +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Novell Netware 6.x', 77); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Novell Netware 5.1', 78); + +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Sun Solaris 10(32-bit)', 79); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Sun Solaris 10(64-bit)', 80); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Sun Solaris 9(Experimental)', 81); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Sun Solaris 8(Experimental)', 82); + +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'FreeBSD (32-bit)', 83); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'FreeBSD (64-bit)', 84); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'OS/2', 104); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'SCO OpenServer 5', 85); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'SCO UnixWare 7', 86); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'DOS', 102); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Other (32-bit)', 60); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ("VmWare", 'Other (64-bit)', 103); + + + +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'CentOS 4.5', 1); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'CentOS 4.6', 2); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'CentOS 4.7', 3); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'CentOS 4.8', 4); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'CentOS 5.0', 5); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'CentOS 5.0', 6); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'CentOS 5.1', 7); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'CentOS 5.1', 8); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'CentOS 5.2', 9); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'CentOS 5.2', 10); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'CentOS 5.3', 11); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'CentOS 5.3', 12); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'CentOS 5.4', 13); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'CentOS 5.4', 14); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'CentOS 5.5', 111); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'CentOS 5.5', 112); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Red Hat Enterprise Linux 4.5', 26); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Red Hat Enterprise Linux 4.6', 27); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Red Hat Enterprise Linux 4.7', 28); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Red Hat Enterprise Linux 4.8', 29); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Red Hat Enterprise Linux 5.0', 30); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Red Hat Enterprise Linux 5.0', 31); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Red Hat Enterprise Linux 5.1', 32); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Red Hat Enterprise Linux 5.1', 33); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Red Hat Enterprise Linux 5.2', 34); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Red Hat Enterprise Linux 5.2', 35); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Red Hat Enterprise Linux 5.3', 36); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Red Hat Enterprise Linux 5.3', 37); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Red Hat Enterprise Linux 5.4', 38); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Red Hat Enterprise Linux 5.4', 39); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Red Hat Enterprise Linux 5.5', 113); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Red Hat Enterprise Linux 5.5', 114); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Red Hat Enterprise Linux 4', 106); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Red Hat Enterprise Linux 3', 66); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Red Hat Enterprise Linux 3', 67); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Red Hat Enterprise Linux 2', 131); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Fedora 13', 115); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Fedora 12', 116); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Fedora 11', 117); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Fedora 10', 118); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Fedora 9', 119); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Fedora 8', 120); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Ubuntu 10.04', 121); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Ubuntu 10.04', 126); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Ubuntu 9.10', 122); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Ubuntu 9.10', 127); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Ubuntu 9.04', 123); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Ubuntu 9.04', 128); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Ubuntu 8.10', 124); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Ubuntu 8.10', 129); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Ubuntu 8.04', 125); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Ubuntu 8.04', 130); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Debian GNU/Linux 5', 15); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Debian GNU/Linux 5', 72); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Debian GNU/Linux 4', 73); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Debian GNU/Linux 4', 74); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Other Linux 2.6x', 75); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Other Linux 2.6x', 76); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Other Ubuntu', 59); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Other Ubuntu', 100); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Other Linux', 98); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Other Linux', 99); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Windows 7', 48); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Windows 7', 49); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Windows Server 2003', 50); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Windows Server 2003', 51); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Windows Server 2003', 87); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Windows Server 2003', 88); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Windows Server 2003', 89); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Windows Server 2003', 90); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Windows Server 2003', 91); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Windows Server 2003', 92); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Windows Server 2008', 52); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Windows Server 2008', 53); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Windows 2000', 55); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Windows 2000', 61); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Windows 2000', 95); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Windows 98', 62); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Windows Vista', 56); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Windows Vista', 101); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Windows XP SP2', 57); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Windows XP SP3', 58); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Windows XP ', 93); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Windows XP ', 94); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'DOS', 102); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Other', 60); +INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_name, guest_os_name, guest_os_id) VALUES ('KVM', 'Other', 103); +