bug 10483: if hypervisor doesn't support a guest OS type, boot from ISO of this guest OS type fails,

deployed VM is not impacted, if the guest OS type is not supported, run it as HVM

status 10483: resolved fixed

Conflicts:

	core/src/com/cloud/hypervisor/xen/resource/CitrixHelper.java
	core/src/com/cloud/hypervisor/xen/resource/XenServer60Resource.java
This commit is contained in:
anthony 2011-08-02 18:34:41 -07:00
parent 8d47c53735
commit 8a5a057231
4 changed files with 29 additions and 12 deletions

View File

@ -22,6 +22,8 @@ import java.util.HashMap;
import org.apache.log4j.Logger;
import com.cloud.utils.exception.CloudRuntimeException;
/**
* Reduce bloat inside CitrixResourceBase
*
@ -326,29 +328,44 @@ public class CitrixHelper {
return guestOS;
}
public static String getXenServerGuestOsType(String stdType) {
public static String getXenServerGuestOsType(String stdType, boolean bootFromCD) {
String guestOS = _xenServerGuestOsMap.get(stdType);
if (guestOS == null) {
s_logger.debug("Can't find the guest os: " + stdType + " mapping into XenServer 5.6 guestOS type, start it as HVM guest");
guestOS = "Other install media";
if ( !bootFromCD ) {
s_logger.debug("Can't find the guest os: " + stdType + " mapping into XenServer 5.6 guestOS type, start it as HVM guest");
guestOS = "Other install media";
} else {
String msg = "XenServer 5.6 doesn't support Guest OS type " + stdType;
s_logger.warn(msg);
}
}
return guestOS;
}
public static String getXenServer56FP1GuestOsType(String stdType) {
public static String getXenServer56FP1GuestOsType(String stdType, boolean bootFromCD) {
String guestOS = _xenServer56FP1GuestOsMap.get(stdType);
if (guestOS == null) {
s_logger.debug("Can't find the guest os: " + stdType + " mapping into XenServer 5.6 FP1 guestOS type, start it as HVM guest");
guestOS = "Other install media";
if ( !bootFromCD ) {
s_logger.debug("Can't find the guest os: " + stdType + " mapping into XenServer 5.6 FP1 guestOS type, start it as HVM guest");
guestOS = "Other install media";
} else {
String msg = "XenServer 5.6 FP1 DOES NOT support Guest OS type " + stdType;
s_logger.warn(msg);
}
}
return guestOS;
}
public static String getXenServer56FP2GuestOsType(String stdType) {
public static String getXenServer56SP2GuestOsType(String stdType, boolean bootFromCD) {
String guestOS = _xenServer56FP2GuestOsMap.get(stdType);
if (guestOS == null) {
s_logger.debug("Can't find the guest os: " + stdType + " mapping into XenServer 5.6 FP2 guestOS type, start it as HVM guest");
guestOS = "Other install media";
if ( !bootFromCD ) {
s_logger.debug("Can't find the guest os: " + stdType + " mapping into XenServer 5.6 SP2 guestOS type, start it as HVM guest");
guestOS = "Other install media";
} else {
String msg = "XenServer 5.6 SP2 DOES NOT support Guest OS type " + stdType;
s_logger.warn(msg);
}
}
return guestOS;
}

View File

@ -38,7 +38,7 @@ public class XenServer56FP1Resource extends XenServer56Resource {
@Override
protected String getGuestOsType(String stdType, boolean bootFromCD) {
return CitrixHelper.getXenServer56FP1GuestOsType(stdType);
return CitrixHelper.getXenServer56FP1GuestOsType(stdType, bootFromCD);
}
@Override

View File

@ -84,7 +84,7 @@ public class XenServer56Resource extends CitrixResourceBase {
@Override
protected String getGuestOsType(String stdType, boolean bootFromCD) {
return CitrixHelper.getXenServerGuestOsType(stdType);
return CitrixHelper.getXenServerGuestOsType(stdType, bootFromCD);
}

View File

@ -39,7 +39,7 @@ public class XenServer56SP2Resource extends XenServer56Resource {
@Override
protected String getGuestOsType(String stdType, boolean bootFromCD) {
return CitrixHelper.getXenServer56FP2GuestOsType(stdType);
return CitrixHelper.getXenServer56SP2GuestOsType(stdType, bootFromCD);
}
@Override