You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ha...@apache.org on 2022/12/30 07:46:35 UTC
[cloudstack] 05/07: Guest OS list
This is an automated email from the ASF dual-hosted git repository.
harikrishna pushed a commit to branch guest-os-mappings-improvements
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
commit 8b6578e53344bfc18c50df9378ebd1c4e2107c51
Author: Harikrishna Patnala <ha...@gmail.com>
AuthorDate: Wed Dec 28 17:48:02 2022 +0530
Guest OS list
---
.../cloudstack/api/response/GuestOSResponse.java | 18 +++++++++++++++---
.../main/java/com/cloud/api/ApiResponseHelper.java | 3 ++-
ui/public/locales/en.json | 2 ++
ui/src/components/view/ListView.vue | 3 +++
ui/src/config/section/config.js | 20 +++++++++++++++++++-
ui/src/views/AutogenView.vue | 4 +++-
6 files changed, 44 insertions(+), 6 deletions(-)
diff --git a/api/src/main/java/org/apache/cloudstack/api/response/GuestOSResponse.java b/api/src/main/java/org/apache/cloudstack/api/response/GuestOSResponse.java
index c1a57c3e0e1..784a5297cc6 100644
--- a/api/src/main/java/org/apache/cloudstack/api/response/GuestOSResponse.java
+++ b/api/src/main/java/org/apache/cloudstack/api/response/GuestOSResponse.java
@@ -35,13 +35,17 @@ public class GuestOSResponse extends BaseResponse {
@Param(description = "the ID of the OS category")
private String osCategoryId;
+ @SerializedName(ApiConstants.OS_CATEGORY_NAME)
+ @Param(description = "the name of the OS category")
+ private String osCategoryName;
+
@SerializedName(ApiConstants.DESCRIPTION)
@Param(description = "the name/description of the OS type")
private String description;
@SerializedName(ApiConstants.IS_USER_DEFINED)
@Param(description = "is the guest OS user defined")
- private Boolean isUserDefined;
+ private String isUserDefined;
public String getId() {
return id;
@@ -59,6 +63,14 @@ public class GuestOSResponse extends BaseResponse {
this.osCategoryId = osCategoryId;
}
+ public String getOsCategoryName() {
+ return osCategoryName;
+ }
+
+ public void setOsCategoryName(String osCategoryName) {
+ this.osCategoryName = osCategoryName;
+ }
+
public String getDescription() {
return description;
}
@@ -67,11 +79,11 @@ public class GuestOSResponse extends BaseResponse {
this.description = description;
}
- public Boolean getIsUserDefined() {
+ public String getIsUserDefined() {
return isUserDefined;
}
- public void setIsUserDefined(Boolean isUserDefined) {
+ public void setIsUserDefined(String isUserDefined) {
this.isUserDefined = isUserDefined;
}
diff --git a/server/src/main/java/com/cloud/api/ApiResponseHelper.java b/server/src/main/java/com/cloud/api/ApiResponseHelper.java
index 3e71a416c61..8fb5e3dc2d6 100644
--- a/server/src/main/java/com/cloud/api/ApiResponseHelper.java
+++ b/server/src/main/java/com/cloud/api/ApiResponseHelper.java
@@ -3585,10 +3585,11 @@ public class ApiResponseHelper implements ResponseGenerator {
GuestOSResponse response = new GuestOSResponse();
response.setDescription(guestOS.getDisplayName());
response.setId(guestOS.getUuid());
- response.setIsUserDefined(guestOS.getIsUserDefined());
+ response.setIsUserDefined(String.valueOf(guestOS.getIsUserDefined()));
GuestOSCategoryVO category = ApiDBUtils.findGuestOsCategoryById(guestOS.getCategoryId());
if (category != null) {
response.setOsCategoryId(category.getUuid());
+ response.setOsCategoryName(category.getName());
}
response.setObjectName("ostype");
diff --git a/ui/public/locales/en.json b/ui/public/locales/en.json
index cf9661ad174..b36fb54c8e5 100644
--- a/ui/public/locales/en.json
+++ b/ui/public/locales/en.json
@@ -785,6 +785,7 @@
"label.guest.ip.range": "Guest IP range",
"label.guest.netmask": "Guest netmask",
"label.guest.networks": "Guest networks",
+"label.guest.os": "Guest OS",
"label.guest.os.mappings": "Guest OS mappings",
"label.guest.start.ip": "Guest start IP",
"label.guest.traffic": "Guest traffic",
@@ -1246,6 +1247,7 @@
"label.optional": "Optional",
"label.order": "Order",
"label.oscategoryid": "OS preference",
+"label.oscategoryname": "OS category name",
"label.osdisplayname": "OS name",
"label.osnameforhypervisor": "Hypervisor mapping name",
"label.ostypeid": "OS type",
diff --git a/ui/src/components/view/ListView.vue b/ui/src/components/view/ListView.vue
index 521cdbdc7bf..a7f0be697c7 100644
--- a/ui/src/components/view/ListView.vue
+++ b/ui/src/components/view/ListView.vue
@@ -178,6 +178,9 @@
<span v-if="$route.name === 'hypervisorcapability'">
<router-link :to="{ path: $route.path + '/' + record.id }">{{ text }}</router-link>
</span>
+ <span v-else-if="$route.name === 'guestos'">
+ <router-link :to="{ path: $route.path + '/' + record.id }">{{ text }}</router-link>
+ </span>
<span v-else-if="$route.name === 'guestoshypervisormapping'">
<router-link :to="{ path: $route.path + '/' + record.id }">{{ text }}</router-link>
</span>
diff --git a/ui/src/config/section/config.js b/ui/src/config/section/config.js
index da9a1ea3f10..fdb9ad99fef 100644
--- a/ui/src/config/section/config.js
+++ b/ui/src/config/section/config.js
@@ -83,6 +83,24 @@ export default {
}
]
},
+ {
+ name: 'guestos',
+ title: 'label.guest.os',
+ icon: 'database-outlined',
+ permission: ['listOsTypes'],
+ columns: ['description', 'oscategoryname', 'isuserdefined'],
+ details: ['description', 'oscategoryname', 'isuserdefined'],
+ searchFilters: ['description'],
+ actions: [
+ {
+ api: 'updateGuestOs',
+ icon: 'edit-outlined',
+ label: 'label.edit',
+ dataView: true,
+ args: ['osdisplayname']
+ }
+ ]
+ },
{
name: 'guestoshypervisormapping',
title: 'label.guest.os.mappings',
@@ -91,7 +109,7 @@ export default {
columns: ['hypervisor', 'hypervisorversion', 'osdisplayname', 'osnameforhypervisor'],
details: ['hypervisor', 'hypervisorversion', 'osdisplayname', 'osnameforhypervisor', 'isuserdefined'],
filters: ['all', 'kvm', 'vmware', 'xenserver', 'lxc', 'ovm3'],
- searchFilters: ['hypervisor', 'hypervisorversion'],
+ searchFilters: ['osdisplayname', 'hypervisor', 'hypervisorversion'],
actions: [
{
api: 'updateGuestOsMapping',
diff --git a/ui/src/views/AutogenView.vue b/ui/src/views/AutogenView.vue
index c707cabae6b..59f2c63165c 100644
--- a/ui/src/views/AutogenView.vue
+++ b/ui/src/views/AutogenView.vue
@@ -56,7 +56,7 @@
:value="$route.query.filter || (projectView && $route.name === 'vm' ||
['Admin', 'DomainAdmin'].includes($store.getters.userInfo.roletype) && ['vm', 'iso', 'template'].includes($route.name)
? 'all' : ['publicip'].includes($route.name)
- ? 'allocated' : ['guestnetwork', 'guestvlans', 'guestoshypervisormapping'].includes($route.name) ? 'all' : 'self')"
+ ? 'allocated' : ['guestnetwork', 'guestvlans'].includes($route.name) ? 'all' : 'self')"
style="min-width: 120px; margin-left: 10px"
@change="changeFilter"
showSearch
@@ -1595,6 +1595,8 @@ export default {
query.name = value
} else if (this.$route.name === 'guestoshypervisormapping') {
query.hypervisor = value
+ } else if (this.$route.name === 'guestos') {
+ query.description = value
} else {
query.keyword = value
}