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 <harikrishna.patn...@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 }