From 9b0a1418ecbd69e1971210d4c6f4da1dee5884a0 Mon Sep 17 00:00:00 2001 From: sureshanaparti <12028987+sureshanaparti@users.noreply.github.com> Date: Fri, 24 Dec 2021 12:44:50 +0530 Subject: [PATCH 1/6] Provision to sort ISOs from UI, and Updated Templates/ISOs API response to return in the order of sortkey (#5800) --- .../java/com/cloud/api/query/dao/TemplateJoinDaoImpl.java | 7 +++++-- ui/src/config/section/image.js | 3 +++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/server/src/main/java/com/cloud/api/query/dao/TemplateJoinDaoImpl.java b/server/src/main/java/com/cloud/api/query/dao/TemplateJoinDaoImpl.java index 3eaaf536902..fe00ef0d11d 100644 --- a/server/src/main/java/com/cloud/api/query/dao/TemplateJoinDaoImpl.java +++ b/server/src/main/java/com/cloud/api/query/dao/TemplateJoinDaoImpl.java @@ -561,9 +561,12 @@ public class TemplateJoinDaoImpl extends GenericDaoBaseWithTagInformation(); } + + Filter searchFilter = new Filter(TemplateJoinVO.class, "sortKey", QueryService.SortKeyAscending.value(), null, null); + searchFilter.addOrderBy(TemplateJoinVO.class, "tempZonePair", true); + SearchCriteria sc = tmpltIdsSearch.create(); sc.setParameters("idsIN", ids); - return searchIncludingRemoved(sc, null, null, false); + return searchIncludingRemoved(sc, searchFilter, null, false); } - } diff --git a/ui/src/config/section/image.js b/ui/src/config/section/image.js index 13f4d0bc387..0a4667efd60 100644 --- a/ui/src/config/section/image.js +++ b/ui/src/config/section/image.js @@ -194,6 +194,9 @@ export default { if (['Admin', 'DomainAdmin'].includes(store.getters.userInfo.roletype)) { fields.push('account') } + if (['Admin'].includes(store.getters.userInfo.roletype)) { + fields.push('order') + } return fields }, details: ['name', 'id', 'displaytext', 'checksum', 'ostypename', 'size', 'bootable', 'isready', 'directdownload', 'isextractable', 'ispublic', 'isfeatured', 'crosszones', 'account', 'domain', 'created'], From 12d95a20278dd64e0960c1e74586c182027d8153 Mon Sep 17 00:00:00 2001 From: Hoang Nguyen Date: Fri, 24 Dec 2021 18:37:14 +0700 Subject: [PATCH 2/6] Remove unused gravatar fetch (#5806) --- ui/src/store/modules/user.js | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/ui/src/store/modules/user.js b/ui/src/store/modules/user.js index ba421ea02d7..924e946b70f 100644 --- a/ui/src/store/modules/user.js +++ b/ui/src/store/modules/user.js @@ -17,7 +17,6 @@ import Cookies from 'js-cookie' import Vue from 'vue' -import md5 from 'md5' import message from 'ant-design-vue/es/message' import notification from 'ant-design-vue/es/notification' import router from '@/router' @@ -198,11 +197,6 @@ const user = { const result = response.listusersresponse.user[0] commit('SET_INFO', result) commit('SET_NAME', result.firstname + ' ' + result.lastname) - if ('email' in result) { - commit('SET_AVATAR', 'https://www.gravatar.com/avatar/' + md5(result.email)) - } else { - commit('SET_AVATAR', 'https://www.gravatar.com/avatar/' + md5('dev@cloudstack.apache.org')) - } resolve(cachedApis) }).catch(error => { reject(error) @@ -242,11 +236,6 @@ const user = { const result = response.listusersresponse.user[0] commit('SET_INFO', result) commit('SET_NAME', result.firstname + ' ' + result.lastname) - if ('email' in result) { - commit('SET_AVATAR', 'https://www.gravatar.com/avatar/' + md5(result.email)) - } else { - commit('SET_AVATAR', 'https://www.gravatar.com/avatar/' + md5('dev@cloudstack.apache.org')) - } }).catch(error => { reject(error) }) From 9607ae96392d766d7f09b59f4a1dac67fcef1a08 Mon Sep 17 00:00:00 2001 From: Rakesh Date: Sat, 25 Dec 2021 15:27:18 +0100 Subject: [PATCH 3/6] server: Fix NPE while adding network to VPC (#5723) * server: Fix NPE while adding network to VPC Sometimes adding network to VPC fails because of libirt error. In that case the new network wont have any VR's associated with it and hence it will return null. * use collectionutils Co-authored-by: Rakesh Venkatesh --- .../com/cloud/network/element/VpcVirtualRouterElement.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/server/src/main/java/com/cloud/network/element/VpcVirtualRouterElement.java b/server/src/main/java/com/cloud/network/element/VpcVirtualRouterElement.java index 377f18a55d7..b67469647c2 100644 --- a/server/src/main/java/com/cloud/network/element/VpcVirtualRouterElement.java +++ b/server/src/main/java/com/cloud/network/element/VpcVirtualRouterElement.java @@ -73,6 +73,7 @@ import com.cloud.vm.VirtualMachineManager; import com.cloud.vm.VirtualMachineProfile; import org.apache.cloudstack.network.topology.NetworkTopology; +import org.apache.commons.collections.CollectionUtils; import org.apache.log4j.Logger; import org.cloud.network.router.deployment.RouterDeploymentDefinition; import org.cloud.network.router.deployment.RouterDeploymentDefinitionBuilder; @@ -348,7 +349,7 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc //1st time it runs the domain router of the VM shall be returned List routers = super.getRouters(network, dest); - if (routers.size() > 0) { + if (CollectionUtils.isNotEmpty(routers)) { return routers; } @@ -712,4 +713,4 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc } return result; } -} \ No newline at end of file +} From 8ba5b92a83aefef05a76a072f6b4961c69e51845 Mon Sep 17 00:00:00 2001 From: Rakesh Date: Mon, 27 Dec 2021 20:51:43 +0100 Subject: [PATCH 4/6] server: Fix NPE while deleting a domain (#5753) * server: Fix NPE while deleting a domain While deleting a domain, if vlan ip range cant be found then this will throw NPE. Just return false if vlan ip range cant be found * return true if vlan is not found * change output message Co-authored-by: Rakesh Venkatesh --- .../configuration/ConfigurationManagerImpl.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java index bea9cd0198d..13806210187 100755 --- a/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java +++ b/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java @@ -4922,7 +4922,10 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati public boolean releasePublicIpRange(final long vlanDbId, final long userId, final Account caller) { VlanVO vlan = _vlanDao.findById(vlanDbId); if(vlan == null) { - s_logger.warn("VLAN information for Account '" + caller + "', User '" + userId + "' VLAN '" + vlanDbId + "' is null. This is NPE situation."); + // Nothing to do if vlan can't be found + s_logger.warn(String.format("Skipping the process for releasing public IP range as could not find a VLAN with ID '%s' for Account '%s' and User '%s'." + ,vlanDbId, caller, userId)); + return true; } // Verify range is dedicated @@ -4989,13 +4992,15 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati } // decrement resource count for dedicated public ip's _resourceLimitMgr.decrementResourceCount(acctVln.get(0).getAccountId(), ResourceType.public_ip, new Long(ips.size())); - return true; + success = true; } else if (isDomainSpecific && _domainVlanMapDao.remove(domainVlan.get(0).getId())) { s_logger.debug("Remove the vlan from domain_vlan_map successfully."); - return true; + success = true; } else { - return false; + success = false; } + + return success; } @DB From 19325d02866b1216fce3ae3130c7768250444abd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Beims=20Br=C3=A4scher?= Date: Mon, 27 Dec 2021 16:53:36 -0300 Subject: [PATCH 5/6] Change UI VM deployment to show SSH keys only if user has keys (#5804) --- ui/src/views/compute/DeployVM.vue | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ui/src/views/compute/DeployVM.vue b/ui/src/views/compute/DeployVM.vue index 1608e35f328..990d2eadeca 100644 --- a/ui/src/views/compute/DeployVM.vue +++ b/ui/src/views/compute/DeployVM.vue @@ -391,6 +391,7 @@