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
This commit is contained in:
anthony 2011-08-02 18:29:28 -07:00
parent 64eeb8d79b
commit 66d07c5d27
5 changed files with 42 additions and 15 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
*
@ -420,35 +422,60 @@ 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;
}
public static String getXenServer60GuestOsType(String stdType) {
return _xenServer60GuestOsMap.get(stdType);
public static String getXenServer60GuestOsType(String stdType, boolean bootFromCD) {
String guestOS = _xenServer60GuestOsMap.get(stdType);
if (guestOS == null) {
if ( !bootFromCD ) {
s_logger.debug("Can't find the guest os: " + stdType + " mapping into XenServer 6.0 guestOS type, start it as HVM guest");
guestOS = "Other install media";
} else {
String msg = "XenServer 6.0 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

View File

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