diff --git a/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java b/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java index dfca5cd70d3..0adeb836c7c 100644 --- a/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java +++ b/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java @@ -2232,6 +2232,12 @@ public class VolumeApiServiceImpl extends ManagerBase implements VolumeApiServic if (capabilities != null) { liveMigrateVolume = capabilities.isStorageMotionSupported(); } + + if (liveMigrateVolume && HypervisorType.KVM.equals(host.getHypervisorType())) { + throw new InvalidParameterValueException("KVM does not support volume live migration due to the limited possibility to refresh VM XML domain. " + + "Therefore, to live migrate a volume between storage pools, one must migrate the VM to a different host as well to force the VM XML domain update. " + + "Use 'migrateVirtualMachineWithVolumes' instead."); + } } // If vm is running, and hypervisor doesn't support live migration, then return error diff --git a/ui/nginx.conf b/ui/nginx.conf deleted file mode 100644 index 9ba96cfbb20..00000000000 --- a/ui/nginx.conf +++ /dev/null @@ -1,30 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - -server { - listen 80; - server_name localhost; - location / { - root /usr/share/nginx/html; - index index.html; - } - location /client/ { - # http://127.0.0.1:8080 should be replaced your CloudStack management - # Server's actual URI - proxy_pass http://127.0.0.1:8080; - } -} diff --git a/ui/package-lock.json b/ui/package-lock.json index 160be8c2040..3c3d825735d 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -4766,9 +4766,9 @@ "dev": true }, "ant-design-vue": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/ant-design-vue/-/ant-design-vue-1.7.2.tgz", - "integrity": "sha512-iVskTSG62OSiptyGQkvyhoeLlLMiqKtAOTcWZ7MmsMrj38h0TCpGtqSYS4/fwq4yYgyzloYSteBo8U8TrV99RA==", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/ant-design-vue/-/ant-design-vue-1.7.3.tgz", + "integrity": "sha512-OuJBZmpcy32OvdvP7iW1EqdqU6l/dta1zcQ/U0fep7EGksPviVK7ssifI5QMZFQDDsti0dYQhCEOZWUG0Y/xxQ==", "requires": { "@ant-design/icons": "^2.1.1", "@ant-design/icons-vue": "^2.0.0", @@ -5402,11 +5402,23 @@ } }, "antd-theme-webpack-plugin": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/antd-theme-webpack-plugin/-/antd-theme-webpack-plugin-1.3.7.tgz", - "integrity": "sha512-FB101smtUHtEW/SdLm88BiR0MKIKhoIGqiQdmrIwQ46zuwJ7MHxAKEUVXg+IWV3F8b71jKaQlFCPnLCe9RqL2A==", + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/antd-theme-webpack-plugin/-/antd-theme-webpack-plugin-1.3.9.tgz", + "integrity": "sha512-J/xYPqW8oZrk/UZslRODdKSLmhFlpLKuqL6GMHPoKib9u0RoIeVCUAD+IT4yRwIkFBYVIX0vlahnLvGHNEeMxA==", "requires": { - "antd-theme-generator": "^1.2.7" + "antd-theme-generator": "^1.2.8", + "webpack-sources": "^2.2.0" + }, + "dependencies": { + "webpack-sources": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.2.0.tgz", + "integrity": "sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w==", + "requires": { + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" + } + } } }, "any-observable": { @@ -22641,8 +22653,7 @@ "source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" }, "source-map": { "version": "0.6.1", @@ -25239,9 +25250,9 @@ "integrity": "sha512-uKNKpFOVeWNqS2mrBZqnpLyXJo5Q+vnkex6JvpENvhXHFNBW/SJTP8vJywLuVT3DpxwXcF9N0dyIiZ4/NpTexQ==" }, "vue-router": { - "version": "3.4.9", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.4.9.tgz", - "integrity": "sha512-CGAKWN44RqXW06oC+u4mPgHLQQi2t6vLD/JbGRDAXm0YpMv0bgpKuU5bBd7AvMgfTz9kXVRIWKHqRwGEb8xFkA==" + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.5.1.tgz", + "integrity": "sha512-RRQNLT8Mzr8z7eL4p7BtKvRaTSGdCbTy2+Mm5HTJvLGYSSeG9gDzNasJPP/yOYKLy+/cLG/ftrqq5fvkFwBJEw==" }, "vue-sfc-descriptor-to-string": { "version": "1.0.0", @@ -25363,9 +25374,9 @@ } }, "vuex": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.6.0.tgz", - "integrity": "sha512-W74OO2vCJPs9/YjNjW8lLbj+jzT24waTo2KShI8jLvJW8OaIkgb3wuAMA7D+ZiUxDOx3ubwSZTaJBip9G8a3aQ==" + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.6.2.tgz", + "integrity": "sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw==" }, "w3c-hr-time": { "version": "1.0.2", diff --git a/ui/package.json b/ui/package.json index eb92ac570c9..fcc561fb6e3 100644 --- a/ui/package.json +++ b/ui/package.json @@ -36,8 +36,8 @@ "@fortawesome/free-brands-svg-icons": "^5.15.2", "@fortawesome/free-solid-svg-icons": "^5.15.2", "@fortawesome/vue-fontawesome": "^2.0.2", - "ant-design-vue": "~1.7.2", - "antd-theme-webpack-plugin": "^1.3.7", + "ant-design-vue": "~1.7.3", + "antd-theme-webpack-plugin": "^1.3.9", "axios": "^0.21.1", "babel-plugin-require-context-hook": "^1.0.0", "core-js": "^3.6.5", @@ -54,10 +54,10 @@ "vue-cropper": "0.5.6", "vue-i18n": "^8.22.4", "vue-ls": "^3.2.2", - "vue-router": "^3.4.9", + "vue-router": "^3.5.1", "vue-svg-component-runtime": "^1.0.1", "vuedraggable": "^2.24.3", - "vuex": "^3.6.0" + "vuex": "^3.6.2" }, "devDependencies": { "@vue/cli": "^4.4.1",