diff --git a/cloud.spec b/cloud.spec index e4cb4d16367..b164ab03b7e 100644 --- a/cloud.spec +++ b/cloud.spec @@ -232,9 +232,6 @@ Requires: %{name}-daemonize Requires: /sbin/service Requires: /sbin/chkconfig Requires: kvm -%if "%{fedora}" != "" -Requires: cloud-qemu-system-x86 -%endif Requires: libcgroup Requires: /usr/bin/uuidgen Requires: augeas >= 0.7.1 diff --git a/server/src/com/cloud/api/commands/UpdateTemplateCmd.java b/server/src/com/cloud/api/commands/UpdateTemplateCmd.java index 752a43f8a14..a9095eae749 100644 --- a/server/src/com/cloud/api/commands/UpdateTemplateCmd.java +++ b/server/src/com/cloud/api/commands/UpdateTemplateCmd.java @@ -26,6 +26,7 @@ import org.apache.log4j.Logger; import com.cloud.api.BaseCmd; import com.cloud.api.ServerApiException; +import com.cloud.storage.GuestOS; import com.cloud.storage.VMTemplateVO; import com.cloud.user.Account; import com.cloud.utils.Pair; @@ -104,9 +105,25 @@ public class UpdateTemplateCmd extends BaseCmd { templateData.add(new Pair(BaseCmd.Properties.IS_PUBLIC.getName(), Boolean.valueOf(updatedTemplate.isPublicTemplate()).toString())); templateData.add(new Pair(BaseCmd.Properties.CREATED.getName(), getDateString(updatedTemplate.getCreated()))); templateData.add(new Pair(BaseCmd.Properties.FORMAT.getName(), updatedTemplate.getFormat())); - templateData.add(new Pair(BaseCmd.Properties.OS_TYPE_ID.getName(), updatedTemplate.getGuestOSId())); + GuestOS os = getManagementServer().findGuestOSById(updatedTemplate.getGuestOSId()); + if (os != null) { + templateData.add(new Pair(BaseCmd.Properties.OS_TYPE_ID.getName(), os.getId())); + templateData.add(new Pair(BaseCmd.Properties.OS_TYPE_NAME.getName(), os.getDisplayName())); + } else { + templateData.add(new Pair(BaseCmd.Properties.OS_TYPE_ID.getName(), -1)); + templateData.add(new Pair(BaseCmd.Properties.OS_TYPE_NAME.getName(), "")); + } templateData.add(new Pair(BaseCmd.Properties.PASSWORD_ENABLED.getName(), updatedTemplate.getEnablePassword())); - templateData.add(new Pair(BaseCmd.Properties.CROSS_ZONES.getName(), Boolean.valueOf(updatedTemplate.isCrossZones()).toString())); + templateData.add(new Pair(BaseCmd.Properties.CROSS_ZONES.getName(), Boolean.valueOf(updatedTemplate.isCrossZones()).toString())); + templateData.add(new Pair(BaseCmd.Properties.IS_FEATURED.getName(), Boolean.valueOf(updatedTemplate.isFeatured()).toString())); + + // add account ID and name + Account owner = getManagementServer().findAccountById(updatedTemplate.getAccountId()); + if (owner != null) { + templateData.add(new Pair(BaseCmd.Properties.ACCOUNT.getName(), owner.getAccountName())); + templateData.add(new Pair(BaseCmd.Properties.DOMAIN_ID.getName(), owner.getDomainId())); + templateData.add(new Pair(BaseCmd.Properties.DOMAIN.getName(), getManagementServer().findDomainIdById(owner.getDomainId()).getName())); + } return templateData; } else { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "internal error updating template");