This is an automated email from the ASF dual-hosted git repository. dahn pushed a change to branch healthcheck-main in repository https://gitbox.apache.org/repos/asf/cloudstack.git
discard 7dec79af743 4.21/main Health Check, please don't merge this! add d693736ee82 ui: fix NAN% used memory for vm (#11307) add 9fee6dae34c Fix local storage pool disconnect issue (#11200) add 4aed972e78c api,server,extensions: allow updating extension resource map details (#11303) add b92c1965b97 README: add `Contributors Avatars` and `Star History` (#11311) add f6ad184ea2d Feature: Add support for GPU with KVM hosts (#11143) add 86827f871d2 Update CIDR/Gateway of the Shared Networks from Guest IP ranges (#11249) add f2bda464193 Upgrade noVNC from 1.4.0 to 1.6.0 (#11119) add 30deec89e6b kvm: consider Debian same as Ubuntu (#10917) add 23de6c7db4d Fix update resource count failure for domains (#11138) add d5f6b7cd1d1 Fix to create instances with smaller templates (< 1 GB) on PowerFlex/ScaleIO storage (#11211) add d72a05aa5ad Add special Icon to Shared FileSystem Instances (#10857) add 0ebf72df0f1 Handle nas backup and restore on Shared mount point. (#11204) add 1b74c2dd3f9 Fix restore from NAS backup when datadisk is older than the root disk. (#11258) add 4111061d295 list only own zones for resource admin (#11087) add 948ecda785e UI: Fix missing labels (#11102) add 111d87b845a console: optimise buffer sizes for faster console performance (#11221) add eeb4d55e890 polish: Fix some inconsistencies in object names and messages (#10856) add a51a04efc2b [Vmware to KVM Migration] Preserve boot type and boot mode of instances to be migrated (#10975) add 890386e9499 Allow custom NTP servers for CPVM (#11210) add ed6ee6b704f Mark LDAP user query timeout as incorrect login instead of disabling user immediately (#11220) add bf464585785 List templates and ISOs by domain (#11179) add 714b04e3a5f npe guard for get host info on vmware (#11054) add 9c6dfd2b264 Handle IllegalReferenceCountException for decoder, while uploading ISO from local (#10879) add 3fc02ddd45e Add format and physicalsize in listIsoOs api response (#11214) add 264e404108a Fix for dynamic scaling toggle for instance (#11086) add 75a2b3cc54c Validate qcow2 file during import operation (#11264) add a4263da8aea linstor: Use template's uuid if pool's downloadPath is null as resource-name (#11053) add 609efcc231a Merge branch '4.19' into 4.20 add 40035f54d0f [UI] Add dedicated account field dropdown on zone creation (#11195) add 82396b621ed appliance: bump systemvmtemplate version to 4.20.2 add 8756be5c187 [Multi-Arch] Select Template Arch when creating template from volume (#11068) add e9918ba15de ui: fix volume size not showing (#11328) add ca6d2dc57ec Prevent multi-select dropdown menu from floating on scrolling through the form (#11237) add a32738c52ed Prevent infinite autoscaling (#11244) add 1961aea7706 Merge branch '4.19' into 4.20 add 4b1a605e597 server: fix IllegalMonitorStateException on cluster managedstate change (#11310) add be08fff32b7 Merge branch '4.19' into 4.20 add 0b3959221b5 Merge branch '4.20' add a81a12c761c 4.21/main Health Check, please don't merge this! This update added new revisions after undoing existing revisions. That is to say, some revisions that were in the old version of the branch are not in the new version. This situation occurs when a user --force pushes a change and generates a repository containing something like this: * -- * -- B -- O -- O -- O (7dec79af743) \ N -- N -- N refs/heads/healthcheck-main (a81a12c761c) You should already have received notification emails for all of the O revisions, and so the following emails describe only the N revisions from the common base, B. Any revisions marked "omit" are not gone; other references still refer to them. Any revisions marked "discard" are gone forever. No new revisions were added by this update. Summary of changes: .github/workflows/ci.yml | 1 + .pre-commit-config.yaml | 2 +- README.md | 8 + .../cloud/agent/properties/AgentProperties.java | 27 + .../java/com/cloud/agent/api/VgpuTypesInfo.java | 164 ++- .../java/com/cloud/agent/api/to/GPUDeviceTO.java | 33 +- .../java/com/cloud/configuration/Resource.java | 3 +- api/src/main/java/com/cloud/event/EventTypes.java | 33 + .../java/com/cloud/offering/ServiceOffering.java | 4 + .../main/java/com/cloud/user/AccountService.java | 2 + .../java/com/cloud/user/ResourceLimitService.java | 14 +- .../org/apache/cloudstack/api/ApiConstants.java | 16 + .../java/org/apache/cloudstack/api/BaseCmd.java | 3 + .../api/command/admin/cluster/ListClustersCmd.java | 2 +- .../command/admin/cluster/UpdateClusterCmd.java | 12 + .../api/command/admin/gpu/CreateGpuCardCmd.java | 122 ++ .../api/command/admin/gpu/CreateGpuDeviceCmd.java | 123 ++ .../command/admin/gpu/CreateVgpuProfileCmd.java | 131 ++ .../DeleteGpuCardCmd.java} | 62 +- .../api/command/admin/gpu/DeleteGpuDeviceCmd.java | 78 + .../DeleteVgpuProfileCmd.java} | 63 +- .../command/admin/gpu/DiscoverGpuDevicesCmd.java | 63 + .../admin/gpu/ListGpuDevicesCmdByAdmin.java | 74 + .../api/command/admin/gpu/ManageGpuDeviceCmd.java | 78 + .../command/admin/gpu/UnmanageGpuDeviceCmd.java | 79 ++ .../api/command/admin/gpu/UpdateGpuCardCmd.java | 99 ++ .../api/command/admin/gpu/UpdateGpuDeviceCmd.java | 109 ++ .../command/admin/gpu/UpdateVgpuProfileCmd.java | 129 ++ .../admin/offering/CreateServiceOfferingCmd.java | 32 + .../api/command/admin/pod/ListPodsByCmd.java | 4 +- .../command/user/config/ListCapabilitiesCmd.java | 1 + .../api/command/user/gpu/ListGpuCardsCmd.java | 96 ++ .../api/command/user/gpu/ListGpuDevicesCmd.java | 65 + .../api/command/user/gpu/ListVgpuProfilesCmd.java | 80 ++ .../user/offering/ListServiceOfferingsCmd.java | 22 + .../command/user/template/CreateTemplateCmd.java | 10 + .../command/user/userdata/RegisterUserDataCmd.java | 52 +- .../cloudstack/api/command/user/vm/ListVMsCmd.java | 10 + .../api/command/user/zone/ListZonesCmd.java | 7 - .../cloudstack/api/response/AccountResponse.java | 27 + .../api/response/CapabilitiesResponse.java | 8 + .../cloudstack/api/response/DomainResponse.java | 24 + .../cloudstack/api/response/GpuCardResponse.java | 109 ++ .../cloudstack/api/response/GpuDeviceResponse.java | 227 +++ .../cloudstack/api/response/HostResponse.java | 24 + .../cloudstack/api/response/ProjectResponse.java | 27 + .../response/ResourceLimitAndCountResponse.java | 6 + .../api/response/ServiceOfferingResponse.java | 120 ++ .../cloudstack/api/response/UserDataResponse.java | 22 +- .../cloudstack/api/response/UserVmResponse.java | 108 ++ .../api/response/VgpuProfileResponse.java | 135 ++ .../cloudstack/api/response/ZoneResponse.java | 24 + .../apache/cloudstack/gpu/GpuCard.java} | 61 +- .../apache/cloudstack/gpu/GpuDevice.java} | 23 +- .../java/org/apache/cloudstack/gpu/GpuService.java | 157 ++ .../apache/cloudstack/gpu/VgpuProfile.java} | 62 +- .../org/apache/cloudstack/query/QueryService.java | 12 +- .../command/admin/gpu/CreateGpuCardCmdTest.java | 90 ++ .../command/admin/gpu/CreateGpuDeviceCmdTest.java | 100 ++ .../admin/gpu/CreateVgpuProfileCmdTest.java | 108 ++ .../command/admin/gpu/DeleteGpuCardCmdTest.java | 30 +- .../command/admin/gpu/DeleteGpuDeviceCmdTest.java | 31 +- .../admin/gpu/DeleteVgpuProfileCmdTest.java | 30 +- .../admin/gpu/DiscoverGpuDevicesCmdTest.java | 25 +- .../admin/gpu/ListGpuDevicesCmdByAdminTest.java | 65 + .../command/admin/gpu/ManageGpuDeviceCmdTest.java | 31 +- .../admin/gpu/UnmanageGpuDeviceCmdTest.java | 31 +- .../command/admin/gpu/UpdateGpuCardCmdTest.java | 72 + .../command/admin/gpu/UpdateGpuDeviceCmdTest.java | 91 ++ .../admin/gpu/UpdateVgpuProfileCmdTest.java | 108 ++ .../offering/CreateServiceOfferingCmdTest.java | 19 + .../api/command/user/gpu/ListGpuCardsCmdTest.java | 82 ++ .../command/user/gpu/ListGpuDevicesCmdTest.java | 24 +- .../command/user/gpu/ListVgpuProfilesCmdTest.java | 63 + .../com/cloud/agent/api/CheckVolumeAnswer.java | 15 +- .../cloud/agent/api/CopyRemoteVolumeAnswer.java | 15 +- .../com/cloud/agent/api/GetGPUStatsAnswer.java | 17 + .../com/cloud/agent/api/StartupRoutingCommand.java | 11 +- .../main/java/com/cloud/vm/VirtualMachineGuru.java | 4 + .../main/java/com/cloud/resource/Discoverer.java | 1 - .../java/com/cloud/resource/ResourceManager.java | 43 +- .../com/cloud/vm/VirtualMachineManagerImpl.java | 23 +- .../cloud/vm/VirtualMachineManagerImplTest.java | 3 + .../cloud/configuration/dao/ResourceCountDao.java | 14 - .../configuration/dao/ResourceCountDaoImpl.java | 13 - .../InstanceGroupVO.java => gpu/GpuCardVO.java} | 122 +- .../src/main/java/com/cloud/gpu/GpuDeviceVO.java | 200 +++ .../src/main/java/com/cloud/gpu/VGPUTypesVO.java | 32 +- .../src/main/java/com/cloud/gpu/VgpuProfileVO.java | 191 +++ .../main/java/com/cloud/gpu/dao/GpuCardDao.java | 26 +- .../java/com/cloud/gpu/dao/GpuCardDaoImpl.java | 122 ++ .../main/java/com/cloud/gpu/dao/GpuDeviceDao.java | 71 + .../java/com/cloud/gpu/dao/GpuDeviceDaoImpl.java | 260 ++++ .../java/com/cloud/gpu/dao/HostGpuGroupsDao.java | 12 + .../com/cloud/gpu/dao/HostGpuGroupsDaoImpl.java | 78 + .../java/com/cloud/gpu/dao/VGPUTypesDaoImpl.java | 59 +- .../dao/VgpuProfileDao.java} | 16 +- .../java/com/cloud/gpu/dao/VgpuProfileDaoImpl.java | 110 ++ .../network/as/dao/AutoScaleVmGroupVmMapDao.java | 2 + .../as/dao/AutoScaleVmGroupVmMapDaoImpl.java | 9 + .../java/com/cloud/service/ServiceOfferingVO.java | 37 + .../com/cloud/service/dao/ServiceOfferingDao.java | 3 + .../cloud/service/dao/ServiceOfferingDaoImpl.java | 9 + .../main/java/com/cloud/vm/dao/UserVmDaoImpl.java | 1 + .../java/com/cloud/vm/dao/VMInstanceDaoImpl.java | 32 +- .../spring-engine-schema-core-daos-context.xml | 3 + .../resources/META-INF/db/schema-42010to42100.sql | 67 + .../META-INF/db/views/cloud.account_view.sql | 8 + .../META-INF/db/views/cloud.domain_view.sql | 8 + .../db/views/cloud.service_offering_view.sql | 16 + .../META-INF/db/views/cloud.user_vm_view.sql | 15 +- .../java/com/cloud/gpu/dao/GpuCardDaoImplTest.java | 57 + .../com/cloud/gpu/dao/GpuDeviceDaoImplTest.java | 277 ++++ .../com/cloud/gpu/dao/VgpuProfileDaoImplTest.java | 70 + .../extensions/manager/ExtensionsManager.java | 6 + .../extensions/manager/ExtensionsManagerImpl.java | 39 + .../manager/ExtensionsManagerImplTest.java | 76 + .../cloudstack/backup/NASBackupProvider.java | 13 +- .../kvm/resource/LibvirtComputingResource.java | 233 ++- .../hypervisor/kvm/resource/LibvirtGpuDef.java | 102 ++ .../kvm/resource/LibvirtKvmAgentHook.java | 89 +- .../LibvirtCheckConvertInstanceCommandWrapper.java | 2 +- .../wrapper/LibvirtCheckVolumeCommandWrapper.java | 80 +- .../LibvirtConvertInstanceCommandWrapper.java | 2 +- .../LibvirtCopyRemoteVolumeCommandWrapper.java | 76 +- ....java => LibvirtGetGPUStatsCommandWrapper.java} | 13 +- .../LibvirtGetVolumesOnStorageCommandWrapper.java | 66 +- .../wrapper/LibvirtMigrateCommandWrapper.java | 117 ++ .../wrapper/LibvirtReadyCommandWrapper.java | 6 +- .../wrapper/LibvirtResizeVolumeCommandWrapper.java | 19 +- .../LibvirtRestoreBackupCommandWrapper.java | 60 +- .../hypervisor/kvm/storage/KVMPhysicalDisk.java | 32 + .../kvm/resource/LibvirtComputingResourceTest.java | 351 ++++- .../hypervisor/kvm/resource/LibvirtGpuDefTest.java | 142 ++ .../kvm/resource/LibvirtKvmAgentHookTest.java | 43 + .../wrapper/LibvirtMigrateCommandWrapperTest.java | 219 +++ .../com/cloud/agent/manager/MockAgentManager.java | 7 + .../cloud/agent/manager/MockAgentManagerImpl.java | 194 ++- .../com/cloud/agent/manager/MockVmManagerImpl.java | 60 +- .../cloud/agent/manager/SimulatorManagerImpl.java | 5 +- .../com/cloud/resource/SimulatorDiscoverer.java | 2 + .../java/com/cloud/simulator/MockGpuDevice.java | 26 +- .../java/com/cloud/simulator/MockGpuDeviceVO.java | 313 ++++ .../com/cloud/simulator/dao/MockGpuDeviceDao.java | 24 +- .../cloud/simulator/dao/MockGpuDeviceDaoImpl.java | 67 + .../core/spring-simulator-core-context.xml | 1 + .../cloudstack/metrics/PrometheusExporterImpl.java | 11 + .../cloud/network/element/BigSwitchBcfElement.java | 54 +- .../contrail/management/MockAccountManager.java | 6 + .../lifecycle/StorageVmSharedFSLifeCycle.java | 25 +- .../lifecycle/StorageVmSharedFSLifeCycleTest.java | 11 +- plugins/storage/volume/linstor/CHANGELOG.md | 6 + .../kvm/storage/LinstorStorageAdaptor.java | 2 +- .../driver/LinstorPrimaryDataStoreDriverImpl.java | 12 +- .../driver/ScaleIOPrimaryDataStoreDriver.java | 16 +- .../driver/ScaleIOPrimaryDataStoreDriverTest.java | 12 + .../kvm/storage/StorPoolStorageAdaptor.java | 3 + .../cloudstack/api/command/LdapListUsersCmd.java | 5 +- .../apache/cloudstack/ldap/LdapAuthenticator.java | 58 +- .../apache/cloudstack/ldap/LdapManagerImpl.java | 22 +- scripts/vm/hypervisor/kvm/gpudiscovery.sh | 734 ++++++++++ .../manager/allocator/impl/FirstFitAllocator.java | 35 +- .../main/java/com/cloud/api/ApiResponseHelper.java | 31 +- .../java/com/cloud/api/query/QueryManagerImpl.java | 561 ++++---- .../com/cloud/api/query/ViewResponseHelper.java | 7 + .../cloud/api/query/dao/AccountJoinDaoImpl.java | 13 + .../cloud/api/query/dao/DataCenterJoinDaoImpl.java | 11 + .../com/cloud/api/query/dao/DomainJoinDaoImpl.java | 13 + .../com/cloud/api/query/dao/HostJoinDaoImpl.java | 6 + .../api/query/dao/ServiceOfferingJoinDaoImpl.java | 10 + .../cloud/api/query/dao/TemplateJoinDaoImpl.java | 7 +- .../com/cloud/api/query/dao/UserVmJoinDaoImpl.java | 30 +- .../java/com/cloud/api/query/vo/AccountJoinVO.java | 14 + .../java/com/cloud/api/query/vo/DomainJoinVO.java | 21 + .../cloud/api/query/vo/ServiceOfferingJoinVO.java | 84 ++ .../java/com/cloud/api/query/vo/UserVmJoinVO.java | 78 + .../configuration/ConfigurationManagerImpl.java | 107 +- .../consoleproxy/ConsoleProxyManagerImpl.java | 6 +- .../deploy/DeploymentPlanningManagerImpl.java | 11 +- .../java/com/cloud/deploy/FirstFitPlanner.java | 9 +- .../com/cloud/hypervisor/HypervisorGuruBase.java | 25 +- .../com/cloud/network/as/AutoScaleManager.java | 6 + .../com/cloud/network/as/AutoScaleManagerImpl.java | 8 +- .../com/cloud/resource/ResourceManagerImpl.java | 180 ++- .../resourcelimit/ResourceLimitManagerImpl.java | 235 ++- .../com/cloud/server/ManagementServerImpl.java | 49 +- .../java/com/cloud/storage/StorageManagerImpl.java | 2 +- .../com/cloud/storage/VolumeApiServiceImpl.java | 16 +- .../cloud/storage/listener/StoragePoolMonitor.java | 4 +- .../com/cloud/template/TemplateManagerImpl.java | 2 +- .../java/com/cloud/user/AccountManagerImpl.java | 1 + .../main/java/com/cloud/vm/UserVmManagerImpl.java | 42 +- .../cloudstack/backup/BackupManagerImpl.java | 2 + .../org/apache/cloudstack/gpu/GpuServiceImpl.java | 1385 ++++++++++++++++++ .../cloudstack/vm/UnmanagedVMsManagerImpl.java | 45 +- .../core/spring-server-core-managers-context.xml | 2 + .../allocator/impl/FirstFitAllocatorTest.java | 18 +- .../deploy/DeploymentPlanningManagerImplTest.java | 6 + .../cloud/resource/MockResourceManagerImpl.java | 21 +- .../ResourceLimitManagerImplTest.java | 88 ++ .../cloud/storage/VolumeApiServiceImplTest.java | 7 +- .../com/cloud/user/MockAccountManagerImpl.java | 5 + .../java/com/cloud/vm/FirstFitPlannerTest.java | 1 + .../cloud/vpc/MockResourceLimitManagerImpl.java | 15 + .../apache/cloudstack/gpu/GpuServiceImplTest.java | 1495 ++++++++++++++++++++ .../java/com/cloud/consoleproxy/ConsoleProxy.java | 7 + .../consoleproxy/ConsoleProxyNoVncClient.java | 84 +- .../com/cloud/consoleproxy/vnc/NoVncClient.java | 8 +- .../cloud/consoleproxy/vnc/network/NioSocket.java | 3 +- .../consoleproxy/vnc/network/NioSocketHandler.java | 3 +- .../vnc/network/NioSocketHandlerImpl.java | 16 +- .../vnc/network/NioSocketInputStream.java | 46 +- .../vnc/network/NioSocketSSLEngineManager.java | 40 +- .../vnc/network/NioSocketTLSInputStream.java | 3 +- .../vnc/network/NioSocketTLSOutputStream.java | 5 +- .../SecondaryStorageManagerImpl.java | 5 +- .../storage/resource/HttpUploadServerHandler.java | 12 +- setup/db/create-schema-simulator.sql | 28 + systemvm/agent/conf/consoleproxy.properties | 1 + systemvm/agent/noVNC/app/error-handler.js | 2 +- systemvm/agent/noVNC/app/locale/cs.json | 24 +- systemvm/agent/noVNC/app/locale/de.json | 29 +- systemvm/agent/noVNC/app/locale/el.json | 51 +- systemvm/agent/noVNC/app/locale/es.json | 16 +- systemvm/agent/noVNC/app/locale/fr.json | 56 +- systemvm/agent/noVNC/app/locale/it.json | 10 +- systemvm/agent/noVNC/app/locale/ja.json | 47 +- systemvm/agent/noVNC/app/locale/ko.json | 22 +- systemvm/agent/noVNC/app/locale/nl.json | 78 +- systemvm/agent/noVNC/app/locale/pl.json | 25 +- systemvm/agent/noVNC/app/locale/pt_BR.json | 26 +- systemvm/agent/noVNC/app/locale/ru.json | 26 +- systemvm/agent/noVNC/app/locale/sv.json | 37 +- systemvm/agent/noVNC/app/locale/tr.json | 2 +- systemvm/agent/noVNC/app/locale/zh_CN.json | 90 +- systemvm/agent/noVNC/app/locale/zh_TW.json | 22 +- systemvm/agent/noVNC/app/localization.js | 53 +- systemvm/agent/noVNC/app/styles/base.css | 951 ++++++------- systemvm/agent/noVNC/app/styles/constants.css | 30 + systemvm/agent/noVNC/app/styles/input.css | 785 +++++++--- systemvm/agent/noVNC/app/ui.js | 195 +-- systemvm/agent/noVNC/app/webutil.js | 98 +- systemvm/agent/noVNC/core/crypto/aes.js | 178 +++ systemvm/agent/noVNC/core/crypto/bigint.js | 34 + systemvm/agent/noVNC/core/crypto/crypto.js | 90 ++ systemvm/agent/noVNC/core/{ => crypto}/des.js | 72 +- systemvm/agent/noVNC/core/crypto/dh.js | 55 + systemvm/agent/noVNC/core/{util => crypto}/md5.js | 13 +- systemvm/agent/noVNC/core/crypto/rsa.js | 132 ++ systemvm/agent/noVNC/core/decoders/copyrect.js | 2 +- systemvm/agent/noVNC/core/decoders/h264.js | 321 +++++ systemvm/agent/noVNC/core/decoders/hextile.js | 36 +- systemvm/agent/noVNC/core/decoders/jpeg.js | 219 +-- systemvm/agent/noVNC/core/decoders/raw.js | 53 +- systemvm/agent/noVNC/core/decoders/rre.js | 2 +- systemvm/agent/noVNC/core/decoders/tight.js | 80 +- systemvm/agent/noVNC/core/decoders/tightpng.js | 2 +- systemvm/agent/noVNC/core/decoders/zlib.js | 51 + systemvm/agent/noVNC/core/decoders/zrle.js | 4 +- systemvm/agent/noVNC/core/deflator.js | 7 +- systemvm/agent/noVNC/core/display.js | 78 +- systemvm/agent/noVNC/core/encodings.js | 8 +- systemvm/agent/noVNC/core/inflator.js | 5 +- systemvm/agent/noVNC/core/input/domkeytable.js | 2 +- systemvm/agent/noVNC/core/input/fixedkeys.js | 2 +- systemvm/agent/noVNC/core/input/gesturehandler.js | 2 +- systemvm/agent/noVNC/core/input/keyboard.js | 59 +- systemvm/agent/noVNC/core/input/util.js | 2 +- systemvm/agent/noVNC/core/input/vkeys.js | 2 +- systemvm/agent/noVNC/core/ra2.js | 345 +---- systemvm/agent/noVNC/core/rfb.js | 1003 ++++++------- systemvm/agent/noVNC/core/util/browser.js | 85 +- systemvm/agent/noVNC/core/util/cursor.js | 6 +- systemvm/agent/noVNC/core/util/element.js | 2 +- systemvm/agent/noVNC/core/util/events.js | 2 +- systemvm/agent/noVNC/core/util/eventtarget.js | 2 +- systemvm/agent/noVNC/core/util/int.js | 2 +- systemvm/agent/noVNC/core/util/logging.js | 2 +- systemvm/agent/noVNC/core/util/strings.js | 2 +- systemvm/agent/noVNC/core/websock.js | 140 +- systemvm/agent/noVNC/defaults.json | 1 + systemvm/agent/noVNC/docs/novnc_proxy.1 | 8 +- systemvm/agent/noVNC/mandatory.json | 1 + systemvm/agent/noVNC/package.json | 17 +- systemvm/agent/noVNC/po/fr.po | 243 ++-- systemvm/agent/noVNC/po/it.po | 12 +- systemvm/agent/noVNC/po/pt_BR.po | 28 +- systemvm/agent/noVNC/utils/convert.js | 2 +- systemvm/agent/noVNC/vnc.html | 97 +- systemvm/agent/noVNC/vnc_lite.html | 16 +- systemvm/debian/opt/cloud/bin/setup/common.sh | 6 +- .../debian/opt/cloud/bin/setup/consoleproxy.sh | 4 + systemvm/debian/opt/cloud/bin/setup/secstorage.sh | 1 + .../plugins/linstor/test_linstor_volumes.py | 73 +- .../smoke/test_deploy_vgpu_enabled_vm.py | 231 ++- tools/apidoc/gen_toc.py | 2 + tools/marvin/marvin/lib/base.py | 95 ++ ui/public/locales/ar.json | 24 +- ui/public/locales/ca.json | 22 +- ui/public/locales/de_DE.json | 26 +- ui/public/locales/el_GR.json | 51 +- ui/public/locales/en.json | 864 +++++------ ui/public/locales/es.json | 24 +- ui/public/locales/fr_FR.json | 24 +- ui/public/locales/hi.json | 4 +- ui/public/locales/hu.json | 26 +- ui/public/locales/it_IT.json | 24 +- ui/public/locales/ja_JP.json | 24 +- ui/public/locales/ko_KR.json | 24 +- ui/public/locales/nb_NO.json | 24 +- ui/public/locales/nl_NL.json | 24 +- ui/public/locales/pl.json | 24 +- ui/public/locales/pt_BR.json | 24 +- ui/public/locales/ru_RU.json | 24 +- ui/public/locales/zh_CN.json | 24 +- ui/src/components/view/GPUDevicesTab.vue | 902 ++++++++++++ ui/src/components/view/GPUSummaryTab.vue | 301 ++++ ui/src/components/view/GPUTab.vue | 440 ++++++ ui/src/components/view/InfoCard.vue | 76 +- ui/src/components/view/ListView.vue | 623 ++++++-- ui/src/components/view/ResourceCountUsage.vue | 3 +- ui/src/components/view/SearchView.vue | 104 +- ui/src/components/view/VgpuProfilesTab.vue | 405 ++++++ ui/src/components/widgets/Status.vue | 6 + ui/src/config/section/account.js | 2 +- ui/src/config/section/compute.js | 14 +- ui/src/config/section/config.js | 91 ++ ui/src/config/section/domain.js | 5 + ui/src/config/section/infra.js | 21 + ui/src/config/section/infra/hosts.js | 6 +- ui/src/config/section/infra/zones.js | 2 +- ui/src/config/section/network.js | 21 +- ui/src/config/section/offering.js | 6 +- ui/src/config/section/storage.js | 2 +- ui/src/core/ext.js | 4 +- ui/src/core/lazy_lib/icons_use.js | 2 + ui/src/views/AutogenView.vue | 239 +++- ui/src/views/compute/AutoScaleVmProfile.vue | 14 +- ui/src/views/compute/CreateAutoScaleVmGroup.vue | 15 +- ui/src/views/compute/DeployVM.vue | 73 +- ui/src/views/compute/DeployVnfAppliance.vue | 74 +- ui/src/views/compute/EditVM.vue | 7 +- ui/src/views/compute/InstanceTab.vue | 11 + ui/src/views/compute/MigrateWizard.vue | 3 +- ui/src/views/compute/RegisterUserData.vue | 8 +- ui/src/views/compute/ResetUserData.vue | 14 +- ui/src/views/compute/ScaleVM.vue | 1 + .../compute/wizard/ComputeOfferingSelection.vue | 105 +- ui/src/views/compute/wizard/UserDataSelection.vue | 5 +- ui/src/views/dashboard/UsageDashboard.vue | 13 +- .../extension/ExternalConfigurationDetails.vue | 3 +- ui/src/views/image/RegisterOrUploadIso.vue | 4 +- ui/src/views/image/RegisterOrUploadTemplate.vue | 4 +- ui/src/views/image/UpdateISO.vue | 4 +- ui/src/views/image/UpdateTemplate.vue | 4 +- ui/src/views/infra/ClusterUpdate.vue | 41 +- ui/src/views/infra/network/ServiceProvidersTab.vue | 2 +- .../views/infra/zone/ZoneWizardZoneDetailsStep.vue | 32 +- .../{AclListRulesTab.vue => AclRulesTab.vue} | 2 +- ui/src/views/network/VpcTab.vue | 8 +- ui/src/views/offering/AddComputeOffering.vue | 202 ++- ui/src/views/offering/AddDiskOffering.vue | 4 + ui/src/views/offering/AddNetworkOffering.vue | 5 +- ui/src/views/offering/AddVpcOffering.vue | 3 + ui/src/views/storage/CreateTemplate.vue | 25 +- ui/tests/unit/views/compute/MigrateWizard.spec.js | 10 +- .../src/main/java/com/cloud/utils/StringUtils.java | 52 + .../main/java/com/cloud/utils/script/Script.java | 1 - .../com/cloud/hypervisor/vmware/mo/HostMO.java | 152 +- 369 files changed, 21881 insertions(+), 4788 deletions(-) create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/admin/gpu/CreateGpuCardCmd.java create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/admin/gpu/CreateGpuDeviceCmd.java create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/admin/gpu/CreateVgpuProfileCmd.java copy api/src/main/java/org/apache/cloudstack/api/command/admin/{usage/DeleteTrafficMonitorCmd.java => gpu/DeleteGpuCardCmd.java} (53%) create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/admin/gpu/DeleteGpuDeviceCmd.java copy api/src/main/java/org/apache/cloudstack/api/command/admin/{usage/DeleteTrafficMonitorCmd.java => gpu/DeleteVgpuProfileCmd.java} (52%) create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/admin/gpu/DiscoverGpuDevicesCmd.java create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/admin/gpu/ListGpuDevicesCmdByAdmin.java create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/admin/gpu/ManageGpuDeviceCmd.java create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/admin/gpu/UnmanageGpuDeviceCmd.java create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/admin/gpu/UpdateGpuCardCmd.java create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/admin/gpu/UpdateGpuDeviceCmd.java create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/admin/gpu/UpdateVgpuProfileCmd.java create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/user/gpu/ListGpuCardsCmd.java create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/user/gpu/ListGpuDevicesCmd.java create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/user/gpu/ListVgpuProfilesCmd.java create mode 100644 api/src/main/java/org/apache/cloudstack/api/response/GpuCardResponse.java create mode 100644 api/src/main/java/org/apache/cloudstack/api/response/GpuDeviceResponse.java create mode 100644 api/src/main/java/org/apache/cloudstack/api/response/VgpuProfileResponse.java copy api/src/main/java/{com/cloud/network/vpc/VpcGateway.java => org/apache/cloudstack/gpu/GpuCard.java} (56%) copy api/src/main/java/{com/cloud/network/Ipv6GuestPrefixSubnetNetworkMap.java => org/apache/cloudstack/gpu/GpuDevice.java} (72%) create mode 100644 api/src/main/java/org/apache/cloudstack/gpu/GpuService.java copy api/src/main/java/{com/cloud/network/vpc/VpcGateway.java => org/apache/cloudstack/gpu/VgpuProfile.java} (54%) create mode 100644 api/src/test/java/org/apache/cloudstack/api/command/admin/gpu/CreateGpuCardCmdTest.java create mode 100644 api/src/test/java/org/apache/cloudstack/api/command/admin/gpu/CreateGpuDeviceCmdTest.java create mode 100644 api/src/test/java/org/apache/cloudstack/api/command/admin/gpu/CreateVgpuProfileCmdTest.java copy framework/spring/module/src/test/java/org/apache/cloudstack/spring/module/locator/impl/ClasspathModuleDefinitionSetLocatorTest.java => api/src/test/java/org/apache/cloudstack/api/command/admin/gpu/DeleteGpuCardCmdTest.java (58%) copy core/src/test/java/org/apache/cloudstack/storage/command/browser/ListDataStoreObjectsCommandTest.java => api/src/test/java/org/apache/cloudstack/api/command/admin/gpu/DeleteGpuDeviceCmdTest.java (56%) copy framework/spring/module/src/test/java/org/apache/cloudstack/spring/module/locator/impl/ClasspathModuleDefinitionSetLocatorTest.java => api/src/test/java/org/apache/cloudstack/api/command/admin/gpu/DeleteVgpuProfileCmdTest.java (58%) copy framework/spring/module/src/test/java/org/apache/cloudstack/spring/module/locator/impl/ClasspathModuleDefinitionSetLocatorTest.java => api/src/test/java/org/apache/cloudstack/api/command/admin/gpu/DiscoverGpuDevicesCmdTest.java (63%) create mode 100644 api/src/test/java/org/apache/cloudstack/api/command/admin/gpu/ListGpuDevicesCmdByAdminTest.java copy core/src/test/java/org/apache/cloudstack/storage/command/browser/ListDataStoreObjectsCommandTest.java => api/src/test/java/org/apache/cloudstack/api/command/admin/gpu/ManageGpuDeviceCmdTest.java (56%) copy core/src/test/java/org/apache/cloudstack/storage/command/browser/ListDataStoreObjectsCommandTest.java => api/src/test/java/org/apache/cloudstack/api/command/admin/gpu/UnmanageGpuDeviceCmdTest.java (56%) create mode 100644 api/src/test/java/org/apache/cloudstack/api/command/admin/gpu/UpdateGpuCardCmdTest.java create mode 100644 api/src/test/java/org/apache/cloudstack/api/command/admin/gpu/UpdateGpuDeviceCmdTest.java create mode 100644 api/src/test/java/org/apache/cloudstack/api/command/admin/gpu/UpdateVgpuProfileCmdTest.java create mode 100644 api/src/test/java/org/apache/cloudstack/api/command/user/gpu/ListGpuCardsCmdTest.java copy core/src/main/java/com/cloud/agent/api/ConvertSnapshotAnswer.java => api/src/test/java/org/apache/cloudstack/api/command/user/gpu/ListGpuDevicesCmdTest.java (63%) create mode 100644 api/src/test/java/org/apache/cloudstack/api/command/user/gpu/ListVgpuProfilesCmdTest.java copy engine/schema/src/main/java/com/cloud/{vm/InstanceGroupVO.java => gpu/GpuCardVO.java} (53%) create mode 100644 engine/schema/src/main/java/com/cloud/gpu/GpuDeviceVO.java create mode 100644 engine/schema/src/main/java/com/cloud/gpu/VgpuProfileVO.java copy plugins/event-bus/webhook/src/main/java/org/apache/cloudstack/mom/webhook/dao/WebhookDeliveryJoinDao.java => engine/schema/src/main/java/com/cloud/gpu/dao/GpuCardDao.java (59%) create mode 100644 engine/schema/src/main/java/com/cloud/gpu/dao/GpuCardDaoImpl.java create mode 100644 engine/schema/src/main/java/com/cloud/gpu/dao/GpuDeviceDao.java create mode 100644 engine/schema/src/main/java/com/cloud/gpu/dao/GpuDeviceDaoImpl.java copy engine/schema/src/main/java/com/cloud/{network/as/dao/AutoScaleVmProfileDao.java => gpu/dao/VgpuProfileDao.java} (66%) create mode 100644 engine/schema/src/main/java/com/cloud/gpu/dao/VgpuProfileDaoImpl.java create mode 100644 engine/schema/src/test/java/com/cloud/gpu/dao/GpuCardDaoImplTest.java create mode 100644 engine/schema/src/test/java/com/cloud/gpu/dao/GpuDeviceDaoImplTest.java create mode 100644 engine/schema/src/test/java/com/cloud/gpu/dao/VgpuProfileDaoImplTest.java create mode 100644 plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtGpuDef.java copy plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/{LibvirtCheckHealthCommandWrapper.java => LibvirtGetGPUStatsCommandWrapper.java} (71%) create mode 100644 plugins/hypervisors/kvm/src/test/java/com/cloud/hypervisor/kvm/resource/LibvirtGpuDefTest.java copy api/src/main/java/org/apache/cloudstack/storage/ImageStoreObjectDownload.java => plugins/hypervisors/simulator/src/main/java/com/cloud/simulator/MockGpuDevice.java (72%) create mode 100644 plugins/hypervisors/simulator/src/main/java/com/cloud/simulator/MockGpuDeviceVO.java copy framework/cluster/src/main/java/com/cloud/cluster/dao/ManagementServerHostPeerJoinDao.java => plugins/hypervisors/simulator/src/main/java/com/cloud/simulator/dao/MockGpuDeviceDao.java (61%) create mode 100644 plugins/hypervisors/simulator/src/main/java/com/cloud/simulator/dao/MockGpuDeviceDaoImpl.java create mode 100755 scripts/vm/hypervisor/kvm/gpudiscovery.sh create mode 100644 server/src/main/java/org/apache/cloudstack/gpu/GpuServiceImpl.java create mode 100644 server/src/test/java/org/apache/cloudstack/gpu/GpuServiceImplTest.java create mode 100644 systemvm/agent/noVNC/app/styles/constants.css create mode 100644 systemvm/agent/noVNC/core/crypto/aes.js create mode 100644 systemvm/agent/noVNC/core/crypto/bigint.js create mode 100644 systemvm/agent/noVNC/core/crypto/crypto.js rename systemvm/agent/noVNC/core/{ => crypto}/des.js (87%) create mode 100644 systemvm/agent/noVNC/core/crypto/dh.js rename systemvm/agent/noVNC/core/{util => crypto}/md5.js (93%) create mode 100644 systemvm/agent/noVNC/core/crypto/rsa.js create mode 100644 systemvm/agent/noVNC/core/decoders/h264.js create mode 100644 systemvm/agent/noVNC/core/decoders/zlib.js create mode 100644 systemvm/agent/noVNC/defaults.json create mode 100644 systemvm/agent/noVNC/mandatory.json create mode 100644 ui/src/components/view/GPUDevicesTab.vue create mode 100644 ui/src/components/view/GPUSummaryTab.vue create mode 100644 ui/src/components/view/GPUTab.vue create mode 100644 ui/src/components/view/VgpuProfilesTab.vue rename ui/src/views/network/{AclListRulesTab.vue => AclRulesTab.vue} (99%)