mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
api,ui: vm template format, fix vm info link (#9094)
This commit is contained in:
parent
c6762f1a41
commit
daf6b9d103
@ -448,6 +448,7 @@ public class ApiConstants {
|
||||
public static final String TEMPLATE_IDS = "templateids";
|
||||
public static final String TEMPLATE_NAME = "templatename";
|
||||
public static final String TEMPLATE_TYPE = "templatetype";
|
||||
public static final String TEMPLATE_FORMAT = "templateformat";
|
||||
public static final String TIMEOUT = "timeout";
|
||||
public static final String TIMEZONE = "timezone";
|
||||
public static final String TIMEZONEOFFSET = "timezoneoffset";
|
||||
|
||||
@ -137,6 +137,10 @@ public class UserVmResponse extends BaseResponseWithTagInformation implements Co
|
||||
@Param(description = "the type of the template for the virtual machine", since = "4.19.0")
|
||||
private String templateType;
|
||||
|
||||
@SerializedName(ApiConstants.TEMPLATE_FORMAT)
|
||||
@Param(description = "the format of the template for the virtual machine", since = "4.19.1")
|
||||
private String templateFormat;
|
||||
|
||||
@SerializedName("templatedisplaytext")
|
||||
@Param(description = " an alternate display text of the template for the virtual machine")
|
||||
private String templateDisplayText;
|
||||
@ -1076,6 +1080,14 @@ public class UserVmResponse extends BaseResponseWithTagInformation implements Co
|
||||
this.templateType = templateType;
|
||||
}
|
||||
|
||||
public String getTemplateFormat() {
|
||||
return templateFormat;
|
||||
}
|
||||
|
||||
public void setTemplateFormat(String templateFormat) {
|
||||
this.templateFormat = templateFormat;
|
||||
}
|
||||
|
||||
public List<VnfNicResponse> getVnfNics() {
|
||||
return vnfNics;
|
||||
}
|
||||
|
||||
@ -74,6 +74,7 @@ SELECT
|
||||
`vm_template`.`uuid` AS `template_uuid`,
|
||||
`vm_template`.`name` AS `template_name`,
|
||||
`vm_template`.`type` AS `template_type`,
|
||||
`vm_template`.`format` AS `template_format`,
|
||||
`vm_template`.`display_text` AS `template_display_text`,
|
||||
`vm_template`.`enable_password` AS `password_enabled`,
|
||||
`iso`.`id` AS `iso_id`,
|
||||
|
||||
@ -198,6 +198,7 @@ public class UserVmJoinDaoImpl extends GenericDaoBaseWithTagInformation<UserVmJo
|
||||
userVmResponse.setTemplateDisplayText(userVm.getTemplateDisplayText());
|
||||
userVmResponse.setPasswordEnabled(userVm.isPasswordEnabled());
|
||||
userVmResponse.setTemplateType(userVm.getTemplateType().toString());
|
||||
userVmResponse.setTemplateFormat(userVm.getTemplateFormat().toString());
|
||||
}
|
||||
if (details.contains(VMDetails.all) || details.contains(VMDetails.iso)) {
|
||||
userVmResponse.setIsoId(userVm.getIsoUuid());
|
||||
|
||||
@ -34,6 +34,7 @@ import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
||||
import com.cloud.network.Network.GuestType;
|
||||
import com.cloud.network.Networks.TrafficType;
|
||||
import com.cloud.resource.ResourceState;
|
||||
import com.cloud.storage.Storage;
|
||||
import com.cloud.storage.Storage.TemplateType;
|
||||
import com.cloud.storage.Storage.StoragePoolType;
|
||||
import com.cloud.storage.Volume;
|
||||
@ -198,6 +199,9 @@ public class UserVmJoinVO extends BaseViewWithTagInformationVO implements Contro
|
||||
@Column(name = "template_display_text", length = 4096)
|
||||
private String templateDisplayText;
|
||||
|
||||
@Column(name = "template_format")
|
||||
private Storage.ImageFormat templateFormat;
|
||||
|
||||
@Column(name = "password_enabled")
|
||||
private boolean passwordEnabled;
|
||||
|
||||
@ -644,6 +648,10 @@ public class UserVmJoinVO extends BaseViewWithTagInformationVO implements Contro
|
||||
return templateDisplayText;
|
||||
}
|
||||
|
||||
public Storage.ImageFormat getTemplateFormat() {
|
||||
return templateFormat;
|
||||
}
|
||||
|
||||
public boolean isPasswordEnabled() {
|
||||
return passwordEnabled;
|
||||
}
|
||||
|
||||
@ -16,20 +16,11 @@
|
||||
// under the License.
|
||||
package com.cloud.api.query.dao;
|
||||
|
||||
import com.cloud.api.query.vo.UserVmJoinVO;
|
||||
import com.cloud.storage.Storage;
|
||||
import com.cloud.storage.VnfTemplateDetailVO;
|
||||
import com.cloud.storage.VnfTemplateNicVO;
|
||||
import com.cloud.storage.dao.VnfTemplateDetailsDao;
|
||||
import com.cloud.storage.dao.VnfTemplateNicDao;
|
||||
import com.cloud.user.Account;
|
||||
import com.cloud.user.AccountManager;
|
||||
import com.cloud.user.UserStatisticsVO;
|
||||
import com.cloud.user.dao.UserDao;
|
||||
import com.cloud.user.dao.UserStatisticsDao;
|
||||
import com.cloud.utils.db.SearchBuilder;
|
||||
import com.cloud.utils.db.SearchCriteria;
|
||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
||||
import static org.mockito.ArgumentMatchers.nullable;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.EnumSet;
|
||||
|
||||
import org.apache.cloudstack.annotation.dao.AnnotationDao;
|
||||
import org.apache.cloudstack.api.ApiConstants;
|
||||
import org.apache.cloudstack.api.ResponseObject;
|
||||
@ -44,10 +35,20 @@ import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.EnumSet;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.nullable;
|
||||
import com.cloud.api.query.vo.UserVmJoinVO;
|
||||
import com.cloud.storage.Storage;
|
||||
import com.cloud.storage.VnfTemplateDetailVO;
|
||||
import com.cloud.storage.VnfTemplateNicVO;
|
||||
import com.cloud.storage.dao.VnfTemplateDetailsDao;
|
||||
import com.cloud.storage.dao.VnfTemplateNicDao;
|
||||
import com.cloud.user.Account;
|
||||
import com.cloud.user.AccountManager;
|
||||
import com.cloud.user.UserStatisticsVO;
|
||||
import com.cloud.user.dao.UserDao;
|
||||
import com.cloud.user.dao.UserStatisticsDao;
|
||||
import com.cloud.utils.db.SearchBuilder;
|
||||
import com.cloud.utils.db.SearchCriteria;
|
||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
||||
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class UserVmJoinDaoImplTest extends GenericDaoBaseWithTagInformationBaseTest<UserVmJoinVO, UserVmResponse> {
|
||||
@ -109,6 +110,7 @@ public class UserVmJoinDaoImplTest extends GenericDaoBaseWithTagInformationBaseT
|
||||
Mockito.when(userVmMock.getId()).thenReturn(vmId);
|
||||
Mockito.when(userVmMock.getTemplateId()).thenReturn(templateId);
|
||||
Mockito.when(userVmMock.getTemplateType()).thenReturn(Storage.TemplateType.VNF);
|
||||
Mockito.when(userVmMock.getTemplateFormat()).thenReturn(Storage.ImageFormat.OVA);
|
||||
|
||||
Mockito.when(caller.getId()).thenReturn(2L);
|
||||
Mockito.when(accountMgr.isRootAdmin(nullable(Long.class))).thenReturn(true);
|
||||
|
||||
@ -524,7 +524,7 @@
|
||||
<div class="resource-detail-item__details">
|
||||
<resource-icon v-if="resource.icon" :image="getImage(resource.icon.base64image)" size="1x" style="margin-right: 5px"/>
|
||||
<SaveOutlined v-else />
|
||||
<router-link :to="{ path: '/template/' + resource.templateid }">{{ resource.templatedisplaytext || resource.templatename || resource.templateid }} </router-link>
|
||||
<router-link :to="{ path: (resource.templateformat === 'ISO' ? '/iso/' : '/template/') + resource.templateid }">{{ resource.templatedisplaytext || resource.templatename || resource.templateid }} </router-link>
|
||||
</div>
|
||||
</div>
|
||||
<div class="resource-detail-item" v-if="resource.isoid">
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user