This is an automated email from the ASF dual-hosted git repository.

weizhou pushed a change to branch 4.21-gha-jdk17-build
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


    from 580533fffcd Merge branch 'main' into 4.21-gha-jdk17-build
     add f52e05863e6 UI fix api in project view (#11191)
     add 84b807eeee1 [CKS] Simplify logic for scaling CKS cluster service 
offerings (#11063)
     add 3220eb442a5 PowerFlex/ScaleIO - MDM and host SDC connection 
enhancements (#11047)
     add bb75abcffa2 Usage parsers refactoring (#11097)
     add 53eb2c5b9b7 File-based disk-only VM snapshot with KVM as hypervisor 
(#10632)
     add 65d359228dc Allow populating generic templates during Zone Deployment 
(#10947)
     add 9688cbb0953 systemvm: build 4.20.2 template with 'depmod -a' (#11128)
     add c94f75c7ea7 PowerFlex/ScaleIO - Wait after SDC service 
start/restart/stop, and retry to fetch SDC id/guid (#11099)
     add 06c80cdbe91 Remove unfinished usage job entries of the host (#10848)
     add 0d65c8c4543 Merge branch '4.19' into 4.20
     add b57994eeb0d Merge branch '4.20'
     add 15c09af5cc7 UI: Fix traffic Label on Zone creation wizard for VMware 
(#11101)
     add a849b822c21 Update .asf.yaml: remove new committer Bernardo (#11231)
     add 3687032ed68 Update .asf.yaml re-add rosi
     add 1003c8034c1 Update .asf.yaml remove sudo87
     add c5da9e6188c Update .asf.yaml re-add sudo87
     add 6ad92964120 Fix KVM incremental snapshot removal when using multiple 
secondary storages (#11180)
     add e7172161dd2 Guard OS type update for iso/template with existing vms 
(#11215)
     add 9d049707d5e Fix deletion of backup schedules (#11222)
     add a710ff8c6db UI: Fix ISO Hypervisor selection (#11261)
     add 666784f4e57 ovm deprecation (#11196)
     add d63899fc8a4 Set Content-Type from the file type (#11093)
     add 6d5cefdfe94 add since parameter to BackupScheduleResponse (#11265)
     add fb3bb3fd568 pre-commit: upgrade markdownlint to the latest version 
(#11066)
     add 165ab0aabe2 Fix HTML license; standardize HTML code (#11067)
     add 1fbe1d76827 pre-commit: add gitleaks to detect hardcoded secrets 
(#11064)
     add 071e612f404 UI: Fix OS Type displayed for a VM (#11075)
     add 7da5f9002b2 misc: fix typo `sercurity` -> `security` (#10966)
     add 83bccead3db schema, refactor: rename cloud.user_vm_details to 
cloud.vm_instance_details (#10736)
     add 22b753e9302 [UI] Deploy VM: Preselect first available template (#11207)
     add 11455f6d49c UI: Add option to Login to a specific Project view via 
setting on config.json (#10935)
     add 935c568082c Merge fix for UI
     add 074f75838e4 Fix pre-commit warnings for deprecated stage names (#11276)
     add ae501037047 Config 'vm.network.nic.max.secondary.ipaddresses' - Sync 
default value (and value if not set) to 10 as per the config description and 
default value in parseInt of the config (#11256)
     add 0d4147f3f63 Netris Network Plugin Integration with CloudStack (#10458)
     add 13892e2ff06 [CKS] Create Kubernetes ISO support for ARCH optional 
parameter (#10986)
     add 407072ffd43 schema,framework/db,server: fix user_vm_details usage 
(#11292)
     add 217ff27650f ui: fix compute offering edit (#11232)
     add cca8b2fef90  Extensions Framework & Orchestrate Anything (#9752)
     add 21dde2b9a28 [DB] Add force recreate parameter to 
cloudstack-setup-databases script (#11239)
     add 1a9efe8de3c Add unit tests for getConfigResources in 
ModuleDefinitionSet and improve context readability (#11042)
     add 45edf82efaf [UI] Fix for local storage enable/disable toggle in edit 
zone (#11309)
     add 524f0d80db0 server: fix NaN values for external resource metrics 
(#11302)
     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 8429223782d missing imports from merge forward
     add 2bffabba7b1 Fix unit tests after merge forward
     add da3ba17884e Fix build and ui build errors in main (#11332)
     add 8497f70b46c ui: make events tab selected columns persistent using 
cache (#11317)
     add fd4223295a0 ui: fix advance setting behaviour in autoscale form 
(#11306)
     add 7506a547afc kvm, ui: fix interface when using vlan subnet for storage 
traffic type (#11245)
     add 96ed9d47bc1 Merge branch '4.19' into 4.20
     add 76cfcb48fbf Merge branch '4.20'
     add f73cb5621df Refactoring retention of backup schedules (#11223)
     add 4d2beea7773 logger fix
     add 2d025bd0749 kvm: fix regression 
5a52ca78ae5e165211c618525613c3d62cfd1b28 (#11342)
     add 1dc134a3ecf UI: Display NSX Provider only when NSX is the selected 
Isolation method (#11142)
     add 294aef5ecff Fix listCapacity sort by usage (#11316)
     add 7e0414354a9 Merge branch '4.19' into 4.20
     add 70468a62584 Merge branch '4.20'
     add 712492230ae Shutdown MS maintenance jobs when finished (#11330)
     add 1f1e38f3a85 Support to list templates in ready state (new API 
parameter 'isready', similar to list ISOs) (#11343)
     add f58372e97b5 [UI] Use GET request method for list API calls (#11354)
     add 6b9615b2f9e Selected type on update traffic type is based on chosen 
type in traffic types tab (#10902)
     add 2944bd1eda1 API: Set Object name when expunging VM (#11352)
     add 3850445b505 ui: fix delete traffic type (#11337)
     add 6589235b718 Merge branch '4.19' into 4.20
     add b9febe4b4fc Merge branch '4.20'
     add a87c5c2b3a5 Create new Instance from VM backup (#10140)
     add f62b85dffee fix fsvm-init.yml to detect virtio-scsi in kvm (#11070)
     add 5ea1ada59a4 Allow full clone volumes with thin provisioning in KVM 
(#11177)
     add ed0d606e983 Find system VM templates for CKS clusters and SharedFS 
honouring the preferred architecture (#10946)
     add 8ac8a221630 Merge branch '4.20'
     add 9f5828a0270 UI: Fix cpu & memory details on list view for unmanaged 
k8s clusters (CAPC) (#11353)
     add e805e45342a Show chain size in snapshot response for incremental 
snapshots (#11313)
     add bcd738caa60 Fix GPU discovery script to make it run with mdev for 
SR-IOV enabled devices (#11340)
     add 5aa15187b66 Refactoring StorPool tests (#11107)
     add adccdf2c7be UI support for deploy a VM from volume/snapshot (#11164)
     add a60c8cab144 api,server,ui: allow listing events by state (#11355)
     add b479d37b870 ui: fix api type in InfiniteScrollSelect (#11370)
     add 44f80648a9e agent: increase timeout for host arch retrieval (#11254)
     add b2ce1fb9c3c ui: fix initial pagination for images in deploy forms 
(#11349)
     add d4229d3105c Fix failing simulator vgpu test (#11374)
     add 742e131283a Update System VM template Guest OS version (#11291)
     add 1bfebd550ce ui: update project menu on projects change (#11369)
     add 14feb259f61 Merge branch '4.19' into 4.20
     add 5c1bf4a4ce8 Merge branch '4.20'
     add 9de77e1cc13 API to list console sessions (#11016)
     add db63d2428bd Netris: Fix Netris provider parameter name and response 
(#11377)
     add 58484fb44dd cloud.spec: provide option between tzdata-java and 
timezone-java (#11372)
     add a84c4cb3512 Merge branch '4.20'
     add ccd86d96d90 ceph: fix SignatureDoesNotMatch by using correct secret 
key (#11115)
     add 4a4b5a5e5fb Improve volume backup restoration log (#11181)
     add 5cac4f6c448 added online/offline copy method for Primera storage 
adapter (#11298)
     add e5f61164b34 Support of snapshot copy to primary storage in different 
zones. (#9478)
     add 9712b4d322a custom AccessLogger (#9733)
     add 626f3de69ad Handle project delete in detailsview. (#11197)
     add cda3640be15 juniper-contrail: publish events only for the module 
(#11373)
     add 3134efb971d plugin-swift: handle null cache store (#11380)
     add a0fd37f4955 ui: pass validated storagepolicy for swift store (#11315)
     add de5188e50c8 fix storage pool capacity threshold flag (#11366)
     add 7acd5a38756 Merge branch '4.19' into 4.20
     add ca8ce8c8853 Merge branch '4.20'
     add a2d35c8ac21 Fix imports
     add d601c176f16 Merge branch '4.20'
     add 80f837b5e71 remove volume size check in restoreBackupToVM (#11384)
     add 53bc435bdb1 Fix create statement for safer upgrades (#11388)
     add 15740136dc0 Merge branch '4.20'
     add d7b7bd53adf Fix infrastructure leak on exception while 
attaching/detaching volumes in VMware (#10860)
     add 4c3f29de1e1 Agent manager connection handling improvements (#11376)
     add f020b5b5df9 cleanup: remove com.cloud.user.MockAccountManagerImpl 
(#11392)
     add fe8f3c8eeb5 get forward header for proxies and apply it in Jetty 
(#11386)
     add b9864cb1e1c server: fix vm deployment without networkid in a zone with 
shared networks (#11242)
     add 56b97f8255b Merge branch '4.19' into 4.20
     add ae95be3702f Merge branch '4.20'
     add dc5e475bd2d Fix of deployment VM from a copied snapshot in another 
zone (#11351)
     add 7d59bfe2b59 [UI] Fix zone creation wizard stuck on configuring public 
traffic (#11404)
     add 26218b093ea Fix edit of compute offering in UI (#11417)
     add 53b026487fb UI: Fix duplicate edit zone button on Basic zones (#11427)
     add 78e146278b3 api: fix scale or upgrade systemvm (#11062)
     add bd252b59836 Merge branch '4.19' into 4.20
     add 99919fda7f0 Merge branch '4.20'
     add 1994511f0c9 noVNC: Show a dot cursor when the cursor is not visible 
(#11418)
     add e57e8cf4189 Network rate must be multiplied by 125 not 128 (#10645)
     add f5b4858012b ui: make vpc cidr required when not showing cidrsize 
(#11393)
     add 96728c5a17d Merge branch '4.20'
     add 9fd2b90b80d Fix ConfigurationVO load exception after schema change 
(#10485)
     add 2c493d19336 Add support for nvidia vGPU support with vendor specific 
framework (#11432)
     add 0b381d4270e Exclude External hypervisor type during upgrade for System 
VM template checks (#11435)
     add 03da8cbd3e0 server: fix conserve_mode of 
DefaultIsolatedNetworkOfferingForVpcNetworks (#11133)
     add 93d6ff3a7d0 Proxmox: fix restore snapshot with memory (#11450)
     add d4bd5872313 UI: fix addHost in zone wizard (#11401)
     add 25f93b1d6b8 linstor: fix getVolumeStats if multiple Linstor primary 
storages are used (#11397)
     add 9111bbd8da6 Merge branch '4.19' into 4.20
     add c6daeb4f78d fix snapshot physical size for primary storage (#11448)
     add 2c34f5e4954 Merge branch '4.20'
     add ba2d70ab214 [KVM] CPU Features for System VMs (#10964)
     add f671461d4c9 Fix for create template from snapshot (for snapshots on 
primary storage and storage doesn't support create snapshot to template 
directly) (#11452)
     add 5a90da32760 Fix for PowerFlex MDM configuration on host while 
preparing the SDC connection (#11458)
     add f2d635683bf Update error message when no snapshot strategy is found 
while creating snapshot (#11455)
     add df5efa5d0dc Remove non-existant network service provider from UI 
(#11463)
     add 6e59f4f4cc2 Fix deployment of CKS clusters in Basic zone (#11457)
     add e0bc8c3b1a5 Merge branch '4.20'
     add 1272b130878 Fix of create a template from a StorPool snapshot on 
another zone (#11490)
     add f9513b47bf8 Updating pom.xml version numbers for release 4.21.0.0
     add 1033be4b31f Updating pom.xml version numbers for release 
4.22.0.0-SNAPSHOT
     add e5e902a3208 tools: fix 4.22.0.0-SNAPSHOT
     add 5da7d2d01ef scripts: fix external provision to use correct power state 
& hyperv powersync (#11504)
     add cbc614d8e33 Add logs to keystore-setup and fix password regex (#10723)
     add 2105794f61d UI: Hide User Card from config.userCard.enabled option 
(#10545)
     add 0f0155c6530 Fix live migration of VM with config drive on KVM (#11516)
     add f80a9ca4823 UI: Prevent restriction of changeOfferingForVolume API to 
Admin role (#11466)
     add 05e7a257ca5 VPC VR: return UNKNOWN redundant state if no guest nics 
(#11518)
     add ba7ec886504 SG: Apply rules for both ipv4/ipv6 of VMs with associated 
account/SG (#11243)
     add 3109e0080e5 Add response object required by go SDK for parsing 
response (#10152)
     add ca62a7dd504 Merge branch '4.19' into 4.20
     add 2eb80e0361f Merge branch '4.20'
     add 889fc62b605 schema: Add upgrade path from 4.21.0.0 to 4.22.0.0 (#11469)
     add 762f75c041d kvm: fix vm deployment with direct-download iso (#11532)
     add d161dc76699 api: use single quote instead of double quote in 
StatsResponse (#11537)
     add 5837c4f29e2 Merge remote-tracking branch 'apache/4.19' into 4.20
     add 3c4f4588192 Merge remote-tracking branch 'apache/4.20'
     add 9184170b01d Remove Domain/IP from Password Reset Link to custom Global 
Setting (#11379)
     add ba42d251624 packaging: add pre-check.sh (#11135)
     add ca0c3530ad0 utils: add UuidUtils.nameUUIDFromBytes (#11136)
     add 705afaeb8bf Merge branch 'main' into 4.21-gha-jdk17-build

No new revisions were added by this update.

Summary of changes:
 .asf.yaml                                          |    3 +-
 .github/linters/.markdown-lint.yml                 |    3 +
 .github/workflows/ci.yml                           |    6 +-
 .pre-commit-config.yaml                            |   16 +-
 README.md                                          |    8 +
 agent/conf/agent.properties                        |    8 +-
 agent/pom.xml                                      |    2 +-
 agent/src/main/java/com/cloud/agent/Agent.java     |   13 +-
 .../cloud/agent/properties/AgentProperties.java    |   50 +-
 .../com/cloud/agent/resource/DummyResource.java    |    4 +-
 api/pom.xml                                        |    2 +-
 api/src/main/java/com/cloud/agent/api/Command.java |   14 +-
 .../java/com/cloud/agent/api/VgpuTypesInfo.java    |  164 +-
 .../com/cloud/agent/api/to/FirewallRuleTO.java     |    2 +-
 .../java/com/cloud/agent/api/to/GPUDeviceTO.java   |   33 +-
 .../cloud/agent/api/to/PortForwardingRuleTO.java   |    4 -
 .../com/cloud/agent/api/to/VirtualMachineTO.java   |   14 +
 api/src/main/java/com/cloud/capacity/Capacity.java |    6 +-
 .../cloud/configuration/ConfigurationService.java  |   16 +
 .../java/com/cloud/configuration/Resource.java     |    3 +-
 api/src/main/java/com/cloud/event/EventTypes.java  |   65 +-
 .../main/java/com/cloud/hypervisor/Hypervisor.java |    1 +
 api/src/main/java/com/cloud/network/IpAddress.java |    1 +
 api/src/main/java/com/cloud/network/Network.java   |    1 +
 .../main/java/com/cloud/network/NetworkModel.java  |    2 +
 .../java/com/cloud/network/NetworkService.java     |   11 +-
 api/src/main/java/com/cloud/network/Networks.java  |    3 +-
 .../com/cloud/network/SDNProviderNetworkRule.java  |  139 +-
 .../com/cloud/network/Site2SiteVpnConnection.java  |    2 +-
 .../com/cloud/network/element/NetworkElement.java  |    9 +
 .../element/PortForwardingServiceProvider.java     |   28 +
 .../com/cloud/network/element/VpcProvider.java     |    4 +
 .../java/com/cloud/network/guru/NetworkGuru.java   |    4 +
 .../com/cloud/network/netris/NetrisLbBackend.java  |   28 +-
 .../cloud/network/netris/NetrisNetworkRule.java    |  108 ++
 .../cloud/network/netris/NetrisProvider.java}      |   24 +-
 .../com/cloud/network/netris/NetrisService.java    |  310 +++
 .../java/com/cloud/network/nsx/NsxService.java     |    4 +-
 .../java/com/cloud/network/vpc/StaticRoute.java    |    5 +-
 .../com/cloud/network/vpc/StaticRouteProfile.java  |   22 +-
 .../java/com/cloud/network/vpc/VpcOffering.java    |    4 +-
 .../cloud/network/vpc/VpcProvisioningService.java  |    2 +-
 .../java/com/cloud/network/vpc/VpcService.java     |    2 +-
 .../java/com/cloud/offering/DiskOfferingInfo.java  |    7 +
 .../java/com/cloud/offering/NetworkOffering.java   |    6 +-
 .../java/com/cloud/offering/ServiceOffering.java   |    4 +
 api/src/main/java/com/cloud/storage/Storage.java   |    1 +
 .../java/com/cloud/storage/StorageService.java     |    2 +-
 .../java/com/cloud/storage/VolumeApiService.java   |    6 +-
 .../com/cloud/template/VirtualMachineTemplate.java |    2 +
 .../main/java/com/cloud/user/AccountService.java   |    2 +
 .../java/com/cloud/user/ResourceLimitService.java  |   14 +-
 api/src/main/java/com/cloud/vm/UserVmService.java  |   11 +-
 api/src/main/java/com/cloud/vm/VirtualMachine.java |    1 -
 .../main/java/com/cloud/vm/VmDetailConstants.java  |    8 +
 .../src/main/java/com/cloud/vm/VmDiskInfo.java     |   33 +-
 .../java/com/cloud/vm/snapshot/VMSnapshot.java     |    7 +-
 .../java/org/apache/cloudstack/acl/RoleType.java   |   27 +
 .../org/apache/cloudstack/alert/AlertService.java  |    3 +
 .../cloudstack/api/ApiCommandResourceType.java     |    4 +-
 .../org/apache/cloudstack/api/ApiConstants.java    |   81 +-
 .../java/org/apache/cloudstack/api/BaseCmd.java    |   14 +
 .../cloudstack/api/BaseUpdateTemplateOrIsoCmd.java |    8 +
 .../apache/cloudstack/api/ResponseGenerator.java   |    8 +-
 .../admin/acl/project/ListProjectRolesCmd.java     |    2 +-
 .../api/command/admin/cluster/AddClusterCmd.java   |   32 +-
 .../api/command/admin/cluster/ListClustersCmd.java |   39 +-
 .../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 ++
 .../api/command/admin/gpu/DeleteGpuCardCmd.java    |   75 +
 .../api/command/admin/gpu/DeleteGpuDeviceCmd.java  |   78 +
 .../command/admin/gpu/DeleteVgpuProfileCmd.java    |   76 +
 .../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 ++
 .../api/command/admin/host/AddHostCmd.java         |   12 +-
 .../api/command/admin/host/UpdateHostCmd.java      |   15 +-
 .../admin/network/CreateNetworkOfferingCmd.java    |   56 +-
 .../admin/offering/CreateServiceOfferingCmd.java   |   48 +-
 .../admin/offering/UpdateServiceOfferingCmd.java   |   11 +
 .../api/command/admin/pod/ListPodsByCmd.java       |    4 +-
 .../command/admin/resource/ListCapacityCmd.java    |    5 +-
 .../admin/storage/AddObjectStoragePoolCmd.java     |    9 +-
 .../admin/storage/UpdateObjectStoragePoolCmd.java  |    6 +
 .../command/admin/systemvm/ScaleSystemVMCmd.java   |    2 +-
 .../command/admin/systemvm/UpgradeSystemVMCmd.java |    2 +-
 .../command/admin/vlan/CreateVlanIpRangeCmd.java   |   13 +-
 .../admin/vm/CreateVMFromBackupCmdByAdmin.java     |   55 +
 .../api/command/admin/vm/MigrateVMCmd.java         |    5 +
 .../command/admin/vpc/CreateVPCOfferingCmd.java    |   56 +-
 .../user/address/ListPublicIpAddressesCmd.java     |    7 +
 .../api/command/user/backup/CreateBackupCmd.java   |   44 +-
 .../user/backup/CreateBackupScheduleCmd.java       |   19 +-
 .../user/backup/DeleteBackupScheduleCmd.java       |   16 +-
 .../api/command/user/backup/ListBackupsCmd.java    |   34 +-
 .../command/user/config/ListCapabilitiesCmd.java   |    2 +
 .../user/consoleproxy/ListConsoleSessionsCmd.java  |  182 ++
 .../api/command/user/event/ListEventsCmd.java      |    7 +
 .../api/command/user/gpu/ListGpuCardsCmd.java      |   96 +
 .../api/command/user/gpu/ListGpuDevicesCmd.java    |   65 +
 .../api/command/user/gpu/ListVgpuProfilesCmd.java  |   80 +
 .../api/command/user/iso/ListIsosCmd.java          |    2 +-
 .../user/offering/ListServiceOfferingsCmd.java     |   22 +
 .../api/command/user/snapshot/CopySnapshotCmd.java |   59 +-
 .../command/user/snapshot/CreateSnapshotCmd.java   |   33 +-
 .../snapshot/CreateSnapshotFromVMSnapshotCmd.java  |    2 +-
 .../user/snapshot/CreateSnapshotPolicyCmd.java     |   43 +-
 .../command/user/template/CreateTemplateCmd.java   |   10 +
 .../command/user/template/ListTemplatesCmd.java    |   26 +-
 .../command/user/template/RegisterTemplateCmd.java |   23 +-
 .../command/user/userdata/RegisterUserDataCmd.java |    3 +-
 .../vm/{DeployVMCmd.java => BaseDeployVMCmd.java}  |  266 ++-
 .../api/command/user/vm/CreateVMFromBackupCmd.java |  153 ++
 .../api/command/user/vm/DeployVMCmd.java           |  754 +-------
 .../api/command/user/vm/DestroyVMCmd.java          |    3 +-
 .../cloudstack/api/command/user/vm/ListVMsCmd.java |   20 +
 .../api/command/user/vpc/CreateStaticRouteCmd.java |   53 +-
 .../api/command/user/vpn/CreateVpnGatewayCmd.java  |   14 +-
 .../api/command/user/zone/ListZonesCmd.java        |    7 -
 .../cloudstack/api/response/AccountResponse.java   |   27 +
 .../cloudstack/api/response/AsyncJobResponse.java  |    9 -
 .../api/response/BackupOfferingResponse.java       |    8 +
 .../cloudstack/api/response/BackupResponse.java    |   61 +
 .../api/response/BackupScheduleResponse.java       |   21 +-
 .../api/response/CapabilitiesResponse.java         |   17 +
 .../response/ClusterDrsPlanMigrationResponse.java  |   12 +-
 .../cloudstack/api/response/ClusterResponse.java   |   34 +
 .../api/response/ConsoleSessionResponse.java       |  236 +++
 .../response/CreateConsoleEndpointResponse.java    |    2 +-
 .../cloudstack/api/response/DomainResponse.java    |   24 +
 .../ExtensionCustomActionParameterResponse.java    |   48 +-
 .../response/ExtensionCustomActionResponse.java    |  184 ++
 ...esponse.java => ExtensionResourceResponse.java} |   76 +-
 .../cloudstack/api/response/ExtensionResponse.java |  182 ++
 .../cloudstack/api/response/GpuCardResponse.java   |  109 ++
 .../cloudstack/api/response/GpuDeviceResponse.java |  227 +++
 .../cloudstack/api/response/HostResponse.java      |   59 +-
 .../cloudstack/api/response/IPAddressResponse.java |    8 +
 .../cloudstack/api/response/NetworkResponse.java   |   16 -
 .../api/response/ObjectStoreResponse.java          |   20 +-
 .../cloudstack/api/response/ProjectResponse.java   |   27 +
 .../response/ResourceLimitAndCountResponse.java    |    6 +
 .../response/RouterHealthCheckResultResponse.java  |    2 +-
 .../api/response/ServiceOfferingResponse.java      |  120 ++
 .../api/response/SnapshotPolicyResponse.java       |   18 +-
 .../cloudstack/api/response/SnapshotResponse.java  |    8 +
 .../api/response/StaticRouteResponse.java          |   24 +-
 .../cloudstack/api/response/StatsResponse.java     |    2 +-
 .../cloudstack/api/response/SystemVmResponse.java  |    8 -
 .../cloudstack/api/response/TemplateResponse.java  |   22 +
 .../api/response/UnmanageVMInstanceResponse.java   |    2 +-
 .../cloudstack/api/response/UserDataResponse.java  |   22 +-
 .../cloudstack/api/response/UserVmResponse.java    |  108 ++
 .../api/response/VgpuProfileResponse.java          |  135 ++
 .../api/response/VlanIpRangeResponse.java          |   10 +-
 .../cloudstack/api/response/ZoneResponse.java      |   37 +
 .../java/org/apache/cloudstack/backup/Backup.java  |   83 +-
 .../apache/cloudstack/backup/BackupManager.java    |   84 +-
 .../apache/cloudstack/backup/BackupProvider.java   |   48 +-
 .../apache/cloudstack/backup/BackupRepository.java |    2 +
 .../apache/cloudstack/backup/BackupSchedule.java   |    4 +-
 .../consoleproxy/ConsoleAccessManager.java         |    7 +
 .../ConsoleSession.java}                           |   33 +-
 .../extension/CustomActionResultResponse.java      |   35 +-
 .../Extension.java}                                |   34 +-
 .../extension/ExtensionCustomAction.java           |  386 ++++
 .../cloudstack/extension/ExtensionHelper.java      |   11 +-
 .../ExtensionResourceMap.java}                     |   24 +-
 .../apache/cloudstack/gpu/GpuCard.java}            |   54 +-
 .../BackupSchedule.java => gpu/GpuDevice.java}     |   32 +-
 .../java/org/apache/cloudstack/gpu/GpuService.java |  157 ++
 .../apache/cloudstack/gpu/VgpuProfile.java}        |   59 +-
 .../cloudstack/network/RoutedIpv4Manager.java      |    2 +-
 .../org/apache/cloudstack/query/QueryService.java  |   12 +-
 .../command/admin/cluster/ListClustersCmdTest.java |   83 +
 .../command/admin/gpu/CreateGpuCardCmdTest.java    |   90 +
 .../command/admin/gpu/CreateGpuDeviceCmdTest.java  |  100 +
 .../admin/gpu/CreateVgpuProfileCmdTest.java        |  108 ++
 .../command/admin/gpu/DeleteGpuCardCmdTest.java    |   37 +-
 .../command/admin/gpu/DeleteGpuDeviceCmdTest.java  |   43 +-
 .../admin/gpu/DeleteVgpuProfileCmdTest.java        |   37 +-
 .../admin/gpu/DiscoverGpuDevicesCmdTest.java       |   32 +-
 .../admin/gpu/ListGpuDevicesCmdByAdminTest.java    |   65 +
 .../command/admin/gpu/ManageGpuDeviceCmdTest.java  |   43 +-
 .../admin/gpu/UnmanageGpuDeviceCmdTest.java        |   43 +-
 .../command/admin/gpu/UpdateGpuCardCmdTest.java    |   72 +
 .../command/admin/gpu/UpdateGpuDeviceCmdTest.java  |   91 +
 .../admin/gpu/UpdateVgpuProfileCmdTest.java        |  108 ++
 .../offering/CreateServiceOfferingCmdTest.java     |   19 +
 .../admin/storage/AddObjectStoragePoolCmdTest.java |    7 +-
 .../api/command/test/CreateSnapshotCmdTest.java    |    4 +-
 .../consoleproxy/ListConsoleSessionsCmdTest.java   |  124 ++
 .../api/command/user/gpu/ListGpuCardsCmdTest.java  |   82 +
 .../command/user/gpu/ListGpuDevicesCmdTest.java    |   32 +-
 .../command/user/gpu/ListVgpuProfilesCmdTest.java  |   63 +
 .../command/user/snapshot/CopySnapshotCmdTest.java |    5 +
 .../api/command/user/vm/DeployVMCmdTest.java       |  483 +++++
 .../extension/ExtensionCustomActionTest.java       |  484 +++++
 build/replace.properties                           |    1 +
 client/conf/server.properties.in                   |    3 +
 client/pom.xml                                     |   22 +-
 .../java/org/apache/cloudstack/ACSRequestLog.java  |   84 +
 .../java/org/apache/cloudstack/ServerDaemon.java   |   22 +-
 core/pom.xml                                       |    2 +-
 .../agent/api/CheckS2SVpnConnectionsAnswer.java    |    1 -
 .../com/cloud/agent/api/CheckVolumeAnswer.java     |   15 +-
 .../cloud/agent/api/CopyRemoteVolumeAnswer.java    |   15 +-
 .../cloud/agent/api/DeleteStoragePoolCommand.java  |    4 +-
 .../com/cloud/agent/api/GetGPUStatsAnswer.java     |   17 +
 .../cloud/agent/api/ModifyStoragePoolCommand.java  |    6 +-
 ...java => PrepareExternalProvisioningAnswer.java} |   47 +-
 ...ava => PrepareExternalProvisioningCommand.java} |   24 +-
 .../java/com/cloud/agent/api/ReadyCommand.java     |   10 +-
 .../com/cloud/agent/api/RunCustomActionAnswer.java |   17 +-
 ...tatsAnswer.java => RunCustomActionCommand.java} |   40 +-
 .../cloud/agent/api/SetupGuestNetworkCommand.java  |    9 +
 .../com/cloud/agent/api/StartupRoutingCommand.java |   11 +-
 .../main/java/com/cloud/agent/api/StopCommand.java |   17 +-
 .../storage/CreateDiskOnlyVmSnapshotAnswer.java    |   31 +-
 .../storage/CreateDiskOnlyVmSnapshotCommand.java   |   31 +-
 .../storage/DeleteDiskOnlyVmSnapshotCommand.java   |   30 +-
 .../storage/MergeDiskOnlyVmSnapshotCommand.java    |   55 +
 .../storage/RevertDiskOnlyVmSnapshotAnswer.java    |   30 +-
 .../storage/RevertDiskOnlyVmSnapshotCommand.java   |   34 +-
 .../agent/api/storage/SnapshotMergeTreeTO.java     |   57 +
 .../facade/SetGuestNetworkConfigItem.java          |    1 +
 .../virtualnetwork/model/GuestNetwork.java         |    9 +
 .../cloud/agent/transport/ArrayTypeAdaptor.java    |   12 +-
 .../org/apache/cloudstack/backup/BackupAnswer.java |   12 +
 ...upAnswer.java => BackupStorageStatsAnswer.java} |   37 +-
 ...mand.java => GetBackupStorageStatsCommand.java} |   40 +-
 .../cloudstack/backup/RestoreBackupCommand.java    |   19 +-
 .../cloudstack/backup/TakeBackupCommand.java       |    9 +
 .../com/cloud/agent/transport/ResponseTest.java    |   46 +
 debian/changelog                                   |   12 +
 debian/cloudstack-common.install                   |    1 +
 debian/cloudstack-management.install               |    2 +
 debian/cloudstack-management.postinst              |    3 +
 debian/rules                                       |    3 +
 deps/install-non-oss.sh                            |    3 +
 developer/pom.xml                                  |    2 +-
 engine/api/pom.xml                                 |    2 +-
 .../main/java/com/cloud/vm/VirtualMachineGuru.java |    4 +
 .../java/com/cloud/vm/VirtualMachineManager.java   |    3 +-
 .../service/NetworkOrchestrationService.java       |    3 +
 .../engine/service/api/OrchestrationService.java   |   15 +-
 .../api/storage/DataStoreCapabilities.java         |   10 +-
 .../subsystem/api/storage/SnapshotService.java     |    2 +
 .../subsystem/api/storage/SnapshotStrategy.java    |    7 +-
 engine/components-api/pom.xml                      |    2 +-
 .../cloud/configuration/ConfigurationManager.java  |    5 +-
 .../com/cloud/hypervisor/ExternalProvisioner.java  |   61 +
 .../main/java/com/cloud/network/addr/PublicIp.java |    4 +
 .../java/com/cloud/network/rules/RulesManager.java |    2 +
 .../com/cloud/network/vpc/NetworkACLManager.java   |    2 +-
 .../java/com/cloud/network/vpc/VpcManager.java     |   16 +
 .../main/java/com/cloud/resource/Discoverer.java   |    1 -
 .../java/com/cloud/resource/ResourceManager.java   |   43 +-
 .../java/com/cloud/storage/StorageManager.java     |   10 +
 .../java/com/cloud/template/TemplateManager.java   |    3 +-
 .../com/cloud/vm/VirtualMachineProfileImpl.java    |    2 +-
 .../com/cloud/vm/VmWorkTakeVolumeSnapshot.java     |    9 +-
 .../com/cloud/vm/VmWorkTakeVolumeSnapshotTest.java |    3 +-
 engine/orchestration/pom.xml                       |    7 +-
 .../com/cloud/agent/manager/AgentManagerImpl.java  |  173 +-
 .../agent/manager/ClusteredAgentManagerImpl.java   |    9 +-
 .../cloud/agent/manager/ConnectedAgentAttache.java |    4 +-
 .../com/cloud/vm/VirtualMachineManagerImpl.java    |  320 +++-
 .../engine/orchestration/CloudOrchestrator.java    |   40 +-
 .../engine/orchestration/NetworkOrchestrator.java  |   92 +-
 .../engine/orchestration/VolumeOrchestrator.java   |   38 +-
 .../cloud/vm/VirtualMachineManagerImplTest.java    |  326 +++-
 engine/pom.xml                                     |    2 +-
 engine/schema/pom.xml                              |    2 +-
 .../main/java/com/cloud/capacity/CapacityVO.java   |    2 +
 .../com/cloud/capacity/dao/CapacityDaoImpl.java    |    6 +-
 .../cloud/configuration/dao/ResourceCountDao.java  |   14 -
 .../configuration/dao/ResourceCountDaoImpl.java    |   15 +-
 .../src/main/java/com/cloud/dc/dao/ClusterDao.java |    4 +-
 .../main/java/com/cloud/dc/dao/ClusterDaoImpl.java |   37 +-
 .../src/main/java/com/cloud/dc/dao/VlanDao.java    |    2 +
 .../main/java/com/cloud/dc/dao/VlanDaoImpl.java    |   27 +
 .../src/main/java/com/cloud/gpu/GpuCardVO.java     |  147 ++
 .../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 ++
 .../dao/GpuCardDao.java}                           |   29 +-
 .../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}                       |   19 +-
 .../java/com/cloud/gpu/dao/VgpuProfileDaoImpl.java |  110 ++
 .../java/com/cloud/host/dao/HostDetailsDao.java    |    3 +
 .../com/cloud/host/dao/HostDetailsDaoImpl.java     |   32 +
 .../network/as/dao/AutoScaleVmGroupVmMapDao.java   |    2 +
 .../as/dao/AutoScaleVmGroupVmMapDaoImpl.java       |    9 +
 .../com/cloud/network/dao/IPAddressDaoImpl.java    |    1 +
 .../java/com/cloud/network/dao/IPAddressVO.java    |   12 +
 ...teVpnGatewayDao.java => NetrisProviderDao.java} |    5 +-
 ...ewayDaoImpl.java => NetrisProviderDaoImpl.java} |   41 +-
 .../dao/PhysicalNetworkTrafficTypeDaoImpl.java     |    2 +-
 .../com/cloud/network/dao/RemoteAccessVpnDao.java  |    2 +
 .../cloud/network/dao/RemoteAccessVpnDaoImpl.java  |    7 +
 .../cloud/network/dao/Site2SiteVpnGatewayDao.java  |    2 +
 .../network/dao/Site2SiteVpnGatewayDaoImpl.java    |    8 +
 .../cloud/network/element/NetrisProviderVO.java    |  265 +++
 .../network/security/SecurityGroupVMMapVO.java     |    7 +
 .../java/com/cloud/network/vpc/StaticRouteVO.java  |   35 +-
 .../java/com/cloud/network/vpc/VpcOfferingVO.java  |   11 -
 .../network/vpc/dao/VpcOfferingServiceMapDao.java  |    5 +
 .../vpc/dao/VpcOfferingServiceMapDaoImpl.java      |   19 +
 .../network/vpc/dao/VpcServiceMapDaoImpl.java      |   11 +-
 .../com/cloud/offerings/NetworkOfferingVO.java     |   24 -
 .../java/com/cloud/service/ServiceOfferingVO.java  |   37 +
 .../com/cloud/service/dao/ServiceOfferingDao.java  |    3 +
 .../cloud/service/dao/ServiceOfferingDaoImpl.java  |   17 +-
 .../main/java/com/cloud/storage/VMTemplateVO.java  |   16 +-
 .../java/com/cloud/storage/dao/SnapshotDao.java    |    2 +
 .../com/cloud/storage/dao/SnapshotDaoImpl.java     |   23 +
 .../java/com/cloud/storage/dao/VMTemplateDao.java  |    4 +-
 .../com/cloud/storage/dao/VMTemplateDaoImpl.java   |   22 +-
 .../com/cloud/upgrade/DatabaseUpgradeChecker.java  |    5 +
 .../upgrade/SystemVmTemplateRegistration.java      |   67 +-
 .../main/java/com/cloud/upgrade/dao/DbUpgrade.java |   37 +-
 .../upgrade/dao/DbUpgradeSystemVmTemplate.java     |   16 +-
 .../com/cloud/upgrade/dao/Upgrade42010to42100.java |   13 +-
 ...temVmTemplate.java => Upgrade42100to42200.java} |   13 +-
 .../java/com/cloud/usage/dao/UsageBackupDao.java   |    4 +-
 .../com/cloud/usage/dao/UsageBackupDaoImpl.java    |    8 +-
 .../main/java/com/cloud/usage/dao/UsageJobDao.java |    2 +
 .../java/com/cloud/usage/dao/UsageJobDaoImpl.java  |   37 +-
 .../main/java/com/cloud/vm/ConsoleSessionVO.java   |   25 +-
 ...UserVmDetailVO.java => VMInstanceDetailVO.java} |    8 +-
 .../java/com/cloud/vm/dao/ConsoleSessionDao.java   |    6 +
 .../com/cloud/vm/dao/ConsoleSessionDaoImpl.java    |   84 +-
 .../src/main/java/com/cloud/vm/dao/NicDao.java     |    4 +
 .../src/main/java/com/cloud/vm/dao/NicDaoImpl.java |   20 +
 .../main/java/com/cloud/vm/dao/UserVmDaoImpl.java  |   15 +-
 .../main/java/com/cloud/vm/dao/VMInstanceDao.java  |    3 +-
 .../java/com/cloud/vm/dao/VMInstanceDaoImpl.java   |   44 +-
 ...VmDetailsDao.java => VMInstanceDetailsDao.java} |    4 +-
 ...sDaoImpl.java => VMInstanceDetailsDaoImpl.java} |    6 +-
 .../com/cloud/vm/snapshot/dao/VMSnapshotDao.java   |    4 +
 .../cloud/vm/snapshot/dao/VMSnapshotDaoImpl.java   |   27 +
 .../apache/cloudstack/backup/BackupDetailVO.java}  |   34 +-
 .../cloudstack/backup/BackupRepositoryVO.java      |   10 +
 .../apache/cloudstack/backup/BackupScheduleVO.java |   29 +-
 .../org/apache/cloudstack/backup/BackupVO.java     |   71 +-
 .../apache/cloudstack/backup/dao/BackupDao.java    |   11 +-
 .../cloudstack/backup/dao/BackupDaoImpl.java       |  165 +-
 .../cloudstack/backup/dao/BackupDetailsDao.java}   |    7 +-
 .../backup/dao/BackupDetailsDaoImpl.java}          |   13 +-
 .../backup/dao/BackupOfferingDaoImpl.java          |    1 +
 .../cloudstack/backup/dao/BackupRepositoryDao.java |    2 +
 .../backup/dao/BackupRepositoryDaoImpl.java        |    8 +
 .../backup/dao/BackupScheduleDaoImpl.java          |    6 +-
 .../resourcedetail/ResourceDetailsDao.java         |   10 +
 .../resourcedetail/ResourceDetailsDaoBase.java     |   20 +
 .../storage/datastore/db/ObjectStoreDao.java       |    2 +
 .../storage/datastore/db/ObjectStoreDaoImpl.java   |   32 +
 .../storage/datastore/db/ObjectStoreVO.java        |   23 +-
 .../storage/datastore/db/PrimaryDataStoreDao.java  |    3 +
 .../datastore/db/PrimaryDataStoreDaoImpl.java      |    8 +
 .../storage/datastore/db/SnapshotDataStoreDao.java |    5 +
 .../datastore/db/SnapshotDataStoreDaoImpl.java     |   64 +-
 ...n-daos-between-management-and-usage-context.xml |    2 +-
 .../spring-engine-schema-core-daos-context.xml     |    5 +
 .../resources/META-INF/db/schema-41910to42000.sql  |    2 +-
 .../resources/META-INF/db/schema-42010to42100.sql  |  530 +++++-
 .../META-INF/db/schema-42100to42200-cleanup.sql    |   20 +
 .../resources/META-INF/db/schema-42100to42200.sql  |   20 +
 .../META-INF/db/views/cloud.account_view.sql       |    8 +
 .../META-INF/db/views/cloud.domain_view.sql        |    8 +
 .../db/views/cloud.network_offering_view.sql       |    2 -
 .../db/views/cloud.service_offering_view.sql       |   16 +
 .../META-INF/db/views/cloud.template_view.sql      |    6 +-
 .../META-INF/db/views/cloud.user_vm_view.sql       |   29 +-
 .../META-INF/db/views/cloud.vpc_offering_view.sql  |    1 -
 .../java/com/cloud/dc/dao/ClusterDaoImplTest.java  |    4 +-
 .../java/com/cloud/gpu/dao/GpuCardDaoImplTest.java |   57 +
 .../com/cloud/gpu/dao/GpuDeviceDaoImplTest.java    |  277 +++
 .../com/cloud/gpu/dao/VgpuProfileDaoImplTest.java  |   70 +
 .../cloud/storage/dao/VMTemplateDaoImplTest.java   |   38 +
 .../upgrade/SystemVmTemplateRegistrationTest.java  |   12 +-
 .../cloudstack/backup/dao/BackupDaoImplTest.java   |   73 +
 engine/schema/templateConfig.sh                    |   12 +-
 engine/service/pom.xml                             |    2 +-
 engine/storage/cache/pom.xml                       |    2 +-
 engine/storage/configdrive/pom.xml                 |    2 +-
 engine/storage/datamotion/pom.xml                  |    2 +-
 engine/storage/image/pom.xml                       |    2 +-
 .../storage/image/TemplateServiceImpl.java         |    4 +-
 .../storage/image/store/TemplateObject.java        |    5 +
 engine/storage/integration-test/pom.xml            |    2 +-
 .../storage/test/ChildTestConfiguration.java       |    4 +-
 .../cloudstack/storage/test/SnapshotTest.java      |    3 +-
 .../cloudstack/storage/test/VolumeServiceTest.java |    5 +-
 .../cloudstack/storage/test/VolumeTestVmware.java  |    3 +-
 engine/storage/object/pom.xml                      |    2 +-
 engine/storage/pom.xml                             |    2 +-
 engine/storage/snapshot/pom.xml                    |    2 +-
 .../storage/snapshot/CephSnapshotStrategy.java     |    4 +
 .../storage/snapshot/DefaultSnapshotStrategy.java  |   49 +
 .../storage/snapshot/ScaleIOSnapshotStrategy.java  |    4 +
 .../storage/snapshot/SnapshotObject.java           |   15 +-
 .../storage/snapshot/SnapshotServiceImpl.java      |   32 +
 .../snapshot/StorageSystemSnapshotStrategy.java    |    5 +-
 .../vmsnapshot/DefaultVMSnapshotStrategy.java      |   35 +-
 .../KvmFileBasedStorageVmSnapshotStrategy.java     |  689 +++++++
 .../vmsnapshot/StorageVMSnapshotStrategy.java      |   23 +-
 ...ing-engine-storage-snapshot-storage-context.xml |    3 +
 .../storage/vmsnapshot/VMSnapshotStrategyTest.java |    6 +
 .../object/datastore/ObjectStoreHelper.java        |    2 +
 engine/storage/volume/pom.xml                      |    2 +-
 .../storage/volume/VolumeServiceImpl.java          |    2 +
 engine/userdata/cloud-init/pom.xml                 |    2 +-
 engine/userdata/pom.xml                            |    2 +-
 extensions/HyperV/hyperv.py                        |  304 +++
 extensions/Proxmox/proxmox.sh                      |  417 ++++
 framework/agent-lb/pom.xml                         |    2 +-
 .../cloudstack/agent/lb/IndirectAgentLB.java       |    7 +-
 framework/ca/pom.xml                               |    2 +-
 framework/cluster/pom.xml                          |    2 +-
 framework/config/pom.xml                           |    2 +-
 .../framework/config/impl/ConfigDepotImplTest.java |    1 -
 framework/db/pom.xml                               |    2 +-
 .../utils/crypt/EncryptionSecretKeyChanger.java    |    2 +-
 .../java/com/cloud/utils/db/TransactionLegacy.java |    9 +
 framework/direct-download/pom.xml                  |    2 +-
 framework/events/pom.xml                           |    2 +-
 {engine/userdata => framework/extensions}/pom.xml  |   22 +-
 .../extensions/api/AddCustomActionCmd.java         |  175 ++
 .../extensions/api/CreateExtensionCmd.java         |  140 ++
 .../extensions/api/DeleteCustomActionCmd.java      |   87 +-
 .../extensions/api/DeleteExtensionCmd.java         |   95 +-
 .../extensions/api/ListCustomActionCmd.java        |  110 ++
 .../extensions/api/ListExtensionsCmd.java          |  114 ++
 .../extensions/api/RegisterExtensionCmd.java       |  118 ++
 .../extensions/api/RunCustomActionCmd.java         |  121 ++
 .../extensions/api/UnregisterExtensionCmd.java     |  109 ++
 .../extensions/api/UpdateCustomActionCmd.java      |  197 ++
 .../extensions/api/UpdateExtensionCmd.java         |  136 ++
 .../command/CleanupExtensionFilesCommand.java}     |   12 +-
 .../extensions/command/ExtensionBaseCommand.java   |   63 +
 .../command/ExtensionRoutingUpdateCommand.java     |   23 +-
 .../command/ExtensionServerActionBaseCommand.java  |   23 +-
 .../command/GetExtensionPathChecksumCommand.java}  |   12 +-
 .../command/PrepareExtensionPathCommand.java}      |   12 +-
 .../extensions/dao/ExtensionCustomActionDao.java   |   13 +-
 .../dao/ExtensionCustomActionDaoImpl.java          |   59 +
 .../dao/ExtensionCustomActionDetailsDao.java       |    9 +-
 .../dao/ExtensionCustomActionDetailsDaoImpl.java   |   14 +-
 .../framework/extensions/dao/ExtensionDao.java     |    9 +-
 .../framework/extensions/dao/ExtensionDaoImpl.java |   30 +-
 .../extensions/dao/ExtensionDetailsDao.java        |    9 +-
 .../extensions/dao/ExtensionDetailsDaoImpl.java    |   14 +-
 .../extensions/dao/ExtensionResourceMapDao.java    |   19 +-
 .../dao/ExtensionResourceMapDaoImpl.java           |   70 +
 .../dao/ExtensionResourceMapDetailsDao.java        |    9 +-
 .../dao/ExtensionResourceMapDetailsDaoImpl.java    |   14 +-
 .../extensions/manager/ExtensionsManager.java      |   96 +
 .../extensions/manager/ExtensionsManagerImpl.java  | 1632 ++++++++++++++++
 .../vo/ExtensionCustomActionDetailsVO.java         |   47 +-
 .../extensions/vo/ExtensionCustomActionVO.java     |  215 +++
 .../extensions/vo/ExtensionDetailsVO.java          |   47 +-
 .../vo/ExtensionResourceMapDetailsVO.java          |   47 +-
 .../extensions/vo/ExtensionResourceMapVO.java      |  122 ++
 .../framework/extensions/vo/ExtensionVO.java       |  179 ++
 .../spring-framework-extensions-core-context.xml   |   31 +-
 .../extensions/api/AddCustomActionCmdTest.java     |  224 +++
 .../extensions/api/CreateExtensionCmdTest.java     |   97 +
 .../extensions/api/DeleteCustomActionCmdTest.java  |   81 +
 .../extensions/api/DeleteExtensionCmdTest.java     |   90 +
 .../extensions/api/ListCustomActionCmdTest.java    |  153 ++
 .../extensions/api/ListExtensionsCmdTest.java      |   92 +
 .../extensions/api/RegisterExtensionCmdTest.java   |  133 ++
 .../extensions/api/RunCustomActionCmdTest.java     |  127 ++
 .../extensions/api/UnregisterExtensionCmdTest.java |  124 ++
 .../extensions/api/UpdateCustomActionCmdTest.java  |  240 +++
 .../extensions/api/UpdateExtensionCmdTest.java     |  168 ++
 .../command/ExtensionBaseCommandTest.java          |   78 +
 .../dao/ExtensionCustomActionDaoImplTest.java      |   68 +
 .../extensions/dao/ExtensionDaoImplTest.java       |   34 +-
 .../dao/ExtensionResourceMapDaoImplTest.java       |   86 +
 .../manager/ExtensionsManagerImplTest.java         | 1885 ++++++++++++++++++
 framework/ipc/pom.xml                              |    2 +-
 framework/jobs/pom.xml                             |    2 +-
 framework/managed-context/pom.xml                  |    2 +-
 framework/pom.xml                                  |    3 +-
 framework/quota/pom.xml                            |    2 +-
 .../presetvariables/PresetVariableHelper.java      |   14 +-
 ...VmDetailsDao.java => VMInstanceDetailsDao.java} |    4 +-
 ...sDaoImpl.java => VMInstanceDetailsDaoImpl.java} |   14 +-
 ...UserVmDetailVO.java => VMInstanceDetailVO.java} |    8 +-
 .../quota/spring-framework-quota-context.xml       |    2 +-
 .../presetvariables/PresetVariableHelperTest.java  |   20 +-
 framework/rest/pom.xml                             |    2 +-
 framework/security/pom.xml                         |    2 +-
 framework/spring/lifecycle/pom.xml                 |    2 +-
 framework/spring/module/pom.xml                    |    2 +-
 .../factory/ModuleBasedContextFactoryTest.java     |   79 +-
 ...nheritable.xml => base-context-inheritable.xml} |    0
 .../base/{test-context.xml => base-context.xml}    |    0
 .../{test-context.xml => child1-1-context.xml}     |    0
 ...override.xml => child1-context-inheritable.xml} |   12 +-
 ...xt-override.xml => child1-context-override.xml} |    0
 .../{test-context.xml => child1-context.xml}       |    0
 .../{test-context.xml => child2-context.xml}       |    0
 packaging/debian/replace.properties                |    1 +
 packaging/el8/cloud.spec                           |   12 +-
 packaging/el8/replace.properties                   |    1 +
 packaging/systemd/cloudstack-agent.service         |    1 +
 packaging/systemd/cloudstack-management.service    |    1 +
 packaging/systemd/cloudstack-usage.service         |    1 +
 plugins/acl/dynamic-role-based/pom.xml             |    2 +-
 plugins/acl/project-role-based/pom.xml             |    2 +-
 plugins/acl/static-role-based/pom.xml              |    2 +-
 .../explicit-dedication/pom.xml                    |    2 +-
 .../host-affinity/pom.xml                          |    2 +-
 .../host-anti-affinity/pom.xml                     |    2 +-
 .../non-strict-host-affinity/pom.xml               |    2 +-
 .../non-strict-host-anti-affinity/pom.xml          |    2 +-
 plugins/alert-handlers/snmp-alerts/pom.xml         |    2 +-
 plugins/alert-handlers/syslog-alerts/pom.xml       |    2 +-
 plugins/api/discovery/pom.xml                      |    2 +-
 plugins/api/rate-limit/pom.xml                     |    2 +-
 plugins/api/solidfire-intg-test/pom.xml            |    2 +-
 plugins/api/vmware-sioc/pom.xml                    |    2 +-
 plugins/backup/dummy/pom.xml                       |    2 +-
 .../cloudstack/backup/DummyBackupProvider.java     |  108 +-
 plugins/backup/nas/pom.xml                         |    2 +-
 .../cloudstack/backup/NASBackupProvider.java       |  225 ++-
 .../cloudstack/backup/NASBackupProviderTest.java   |  230 +++
 plugins/backup/networker/pom.xml                   |    2 +-
 .../cloudstack/backup/NetworkerBackupProvider.java |  108 +-
 .../backup/networker/NetworkerClient.java          |    7 +
 .../backup/networker/NetworkerClientTest.java      |    7 +
 plugins/backup/veeam/pom.xml                       |    2 +-
 .../cloudstack/backup/VeeamBackupProvider.java     |   83 +-
 .../cloudstack/backup/veeam/VeeamClient.java       |  137 +-
 .../cloudstack/backup/VeeamBackupProviderTest.java |    9 +-
 .../cloudstack/backup/veeam/VeeamClientTest.java   |  203 +-
 plugins/ca/root-ca/pom.xml                         |    2 +-
 plugins/database/mysql-ha/pom.xml                  |    2 +-
 plugins/database/quota/pom.xml                     |    2 +-
 plugins/dedicated-resources/pom.xml                |    2 +-
 .../implicit-dedication/pom.xml                    |    2 +-
 .../implicitplanner/ImplicitPlannerTest.java       |    8 +-
 .../user-concentrated-pod/pom.xml                  |    2 +-
 .../deployment-planners/user-dispersing/pom.xml    |    2 +-
 plugins/drs/cluster/balanced/pom.xml               |    2 +-
 plugins/drs/cluster/condensed/pom.xml              |    2 +-
 plugins/event-bus/inmemory/pom.xml                 |    2 +-
 plugins/event-bus/kafka/pom.xml                    |    2 +-
 plugins/event-bus/rabbitmq/pom.xml                 |    2 +-
 .../cloudstack/mom/rabbitmq/RabbitMQEventBus.java  |    3 +-
 plugins/event-bus/webhook/pom.xml                  |    2 +-
 plugins/ha-planners/skip-heurestics/pom.xml        |    2 +-
 plugins/host-allocators/random/pom.xml             |    2 +-
 plugins/hypervisors/baremetal/pom.xml              |    2 +-
 .../baremetal/manager/BareMetalDiscoverer.java     |    3 +-
 .../main/resources/security_group_agent/cs-sgagent |    2 +-
 .../dns-notifier => hypervisors/external}/pom.xml  |   19 +-
 .../agent/manager/ExternalAgentManager.java        |    7 +-
 .../agent/manager/ExternalAgentManagerImpl.java    |   55 +
 .../agent/manager/ExternalServerPlanner.java       |  183 ++
 .../agent/manager/ExternalTemplateAdapter.java     |  279 +++
 .../cloudstack/guru/ExternalHypervisorGuru.java    |  114 ++
 .../discoverer/ExternalServerDiscoverer.java       |  295 +++
 .../ExternalPathPayloadProvisioner.java            |  832 ++++++++
 .../external/resource/ExternalResource.java        |  376 ++++
 .../core/spring-external-core-context.xml          |   24 +-
 .../cloudstack/external-compute/module.properties  |    9 +-
 .../spring-external-compute-context.xml            |   19 +-
 .../external-discoverer/module.properties          |    9 +-
 .../spring-external-discoverer-context.xml         |   18 +-
 .../cloudstack/external-planner/module.properties  |    9 +-
 .../spring-external-planner-context.xml            |   14 +-
 .../cloudstack/external-storage/module.properties  |    9 +-
 .../spring-external-storage-context.xml            |   18 +-
 .../agent/manager/ExternalTemplateAdapterTest.java |  173 ++
 .../discoverer/ExternalServerDiscovererTest.java   |  182 ++
 .../ExternalPathPayloadProvisionerTest.java        |  750 ++++++++
 .../external/resource/ExternalResourceTest.java    |   93 +
 plugins/hypervisors/hyperv/pom.xml                 |    2 +-
 .../hyperv/discoverer/HypervServerDiscoverer.java  |    8 +-
 plugins/hypervisors/kvm/pom.xml                    |    2 +-
 .../kvm/resource/BlockCommitListener.java          |   77 +
 .../hypervisor/kvm/resource/BridgeVifDriver.java   |   23 +-
 .../hypervisor/kvm/resource/DirectVifDriver.java   |    4 +-
 .../hypervisor/kvm/resource/IvsVifDriver.java      |    2 +-
 .../kvm/resource/LibvirtComputingResource.java     |  514 ++++-
 .../hypervisor/kvm/resource/LibvirtGpuDef.java     |  107 ++
 .../kvm/resource/LibvirtKvmAgentHook.java          |   89 +-
 .../hypervisor/kvm/resource/LibvirtVMDef.java      |    4 +-
 .../hypervisor/kvm/resource/OvsVifDriver.java      |    4 +-
 .../hypervisor/kvm/resource/VifDriverBase.java     |    9 +
 .../LibvirtCheckConvertInstanceCommandWrapper.java |    2 +-
 .../wrapper/LibvirtCheckVolumeCommandWrapper.java  |   80 +-
 .../LibvirtConvertInstanceCommandWrapper.java      |    2 +-
 .../LibvirtCopyRemoteVolumeCommandWrapper.java     |   76 +-
 ...virtCreateDiskOnlyVMSnapshotCommandWrapper.java |  198 ++
 ...virtDeleteDiskOnlyVMSnapshotCommandWrapper.java |   58 +
 ...va => LibvirtGetBackupStatsCommandWrapper.java} |   57 +-
 .../wrapper/LibvirtGetGPUStatsCommandWrapper.java  |   25 +-
 .../LibvirtGetVolumesOnStorageCommandWrapper.java  |   66 +-
 ...bvirtMergeDiskOnlyVMSnapshotCommandWrapper.java |  150 ++
 .../wrapper/LibvirtMigrateCommandWrapper.java      |  119 +-
 .../LibvirtModifyStoragePoolCommandWrapper.java    |   16 +-
 .../wrapper/LibvirtReadyCommandWrapper.java        |    6 +-
 .../wrapper/LibvirtResizeVolumeCommandWrapper.java |   19 +-
 .../LibvirtRestoreBackupCommandWrapper.java        |   78 +-
 ...virtRevertDiskOnlyVMSnapshotCommandWrapper.java |  111 ++
 .../wrapper/LibvirtTakeBackupCommandWrapper.java   |    9 +-
 .../resource/wrapper/LibvirtUtilitiesHelper.java   |   10 +
 .../hypervisor/kvm/storage/KVMPhysicalDisk.java    |   32 +
 .../kvm/storage/KVMStoragePoolManager.java         |   20 +-
 .../kvm/storage/KVMStorageProcessor.java           |   86 +-
 .../kvm/storage/LibvirtStorageAdaptor.java         |   23 +-
 .../kvm/storage/ScaleIOStorageAdaptor.java         |  174 +-
 .../apache/cloudstack/utils/linux/KVMHostInfo.java |    4 +-
 .../org/apache/cloudstack/utils/qemu/QemuImg.java  |   40 +
 .../apache/cloudstack/utils/qemu/QemuImgFile.java  |    6 +
 .../kvm/resource/LibvirtComputingResourceTest.java |  526 ++++-
 .../hypervisor/kvm/resource/LibvirtGpuDefTest.java |  141 ++
 .../kvm/resource/LibvirtKvmAgentHookTest.java      |   43 +
 .../wrapper/LibvirtMigrateCommandWrapperTest.java  |  219 +++
 .../kvm/storage/KVMStorageProcessorTest.java       |   57 +-
 .../kvm/storage/ScaleIOStorageAdaptorTest.java     |    4 +
 plugins/hypervisors/ovm/pom.xml                    |    2 +-
 .../com/cloud/ovm/hypervisor/OvmDiscoverer.java    |    3 +-
 .../com/cloud/ovm/hypervisor/OvmResourceBase.java  |    4 +-
 plugins/hypervisors/ovm3/pom.xml                   |    2 +-
 .../cloud/hypervisor/ovm3/objects/OvmObject.java   |    3 +-
 .../hypervisor/ovm3/resources/Ovm3Discoverer.java  |    3 +-
 .../ovm3/resources/Ovm3HypervisorResource.java     |    4 +-
 .../com/cloud/hypervisor/ovm3/objects/XenTest.java |    5 +-
 plugins/hypervisors/simulator/pom.xml              |    2 +-
 .../com/cloud/agent/manager/MockAgentManager.java  |    7 +
 .../cloud/agent/manager/MockAgentManagerImpl.java  |  194 +-
 .../agent/manager/MockStorageManagerImpl.java      |    3 +-
 .../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    |   27 +-
 .../java/com/cloud/simulator/MockGpuDeviceVO.java  |  313 +++
 .../java/com/cloud/simulator/SimulatorGuru.java    |   33 +-
 .../com/cloud/simulator/dao/MockGpuDeviceDao.java  |   30 +-
 .../cloud/simulator/dao/MockGpuDeviceDaoImpl.java  |   67 +
 .../core/spring-simulator-core-context.xml         |    1 +
 plugins/hypervisors/ucs/pom.xml                    |    2 +-
 plugins/hypervisors/vmware/pom.xml                 |    2 +-
 .../java/com/cloud/hypervisor/guru/VMwareGuru.java |    6 +-
 .../hypervisor/vmware/VmwareServerDiscoverer.java  |    4 +-
 .../vmware/manager/VmwareStorageManagerImpl.java   |    3 +-
 .../hypervisor/vmware/resource/VmwareResource.java |    7 +-
 .../network/element/CiscoNexusVSMElement.java      |    1 -
 .../storage/resource/VmwareStorageProcessor.java   |    7 +-
 .../com/cloud/hypervisor/guru/VMwareGuruTest.java  |   16 +-
 plugins/hypervisors/xenserver/pom.xml              |    2 +-
 .../xenserver/resource/CitrixResourceBase.java     |    9 +-
 .../resource/XenServerStorageProcessor.java        |    3 +-
 .../resource/Xenserver625StorageProcessor.java     |   17 +-
 .../resource/Xenserver625StorageProcessorTest.java |    8 +-
 plugins/integrations/cloudian/pom.xml              |    2 +-
 plugins/integrations/kubernetes-service/pom.xml    |    2 +-
 .../cluster/KubernetesClusterManagerImpl.java      |   81 +-
 .../KubernetesClusterActionWorker.java             |   14 +-
 ...ernetesClusterResourceModifierActionWorker.java |    6 +-
 .../KubernetesClusterScaleWorker.java              |   85 +-
 .../KubernetesClusterStartWorker.java              |   12 +-
 .../cluster/KubernetesClusterManagerImplTest.java  |   19 +
 plugins/integrations/prometheus/pom.xml            |    2 +-
 .../cloudstack/metrics/PrometheusExporterImpl.java |   11 +
 plugins/maintenance/pom.xml                        |    2 +-
 .../ManagementServerMaintenanceManagerImpl.java    |    3 +
 plugins/metrics/pom.xml                            |    2 +-
 .../cloudstack/metrics/MetricsServiceImpl.java     |    4 +-
 .../cloudstack/response/HostMetricsResponse.java   |   10 -
 .../response/ManagementServerMetricsResponse.java  |   17 -
 .../response/VmMetricsStatsResponse.java           |    2 +-
 plugins/network-elements/bigswitch/pom.xml         |    2 +-
 .../cloud/network/element/BigSwitchBcfElement.java |   54 +-
 plugins/network-elements/brocade-vcs/pom.xml       |    2 +-
 plugins/network-elements/cisco-vnmc/pom.xml        |    2 +-
 plugins/network-elements/dns-notifier/pom.xml      |    2 +-
 .../network-elements/elastic-loadbalancer/pom.xml  |    2 +-
 plugins/network-elements/globodns/pom.xml          |    2 +-
 .../network-elements/internal-loadbalancer/pom.xml |    2 +-
 plugins/network-elements/juniper-contrail/pom.xml  |    2 +-
 .../contrail/management/ContrailManagerImpl.java   |    6 +-
 .../network/contrail/management/EventUtils.java    |   11 +
 .../management/IntegrationTestConfiguration.java   |    4 +-
 .../contrail/management/MockAccountManager.java    |    6 +
 .../netris}/pom.xml                                |   22 +-
 .../apache/cloudstack/StartupNetrisCommand.java    |   13 +-
 .../api/AddOrUpdateNetrisStaticRouteCommand.java   |   48 +
 .../agent/api/CreateNetrisACLCommand.java          |  119 ++
 .../agent/api/CreateNetrisVnetCommand.java         |   84 +
 .../agent/api/CreateNetrisVpcCommand.java          |   24 +-
 .../agent/api/CreateOrUpdateNetrisACLCommand.java  |  119 ++
 ...reateOrUpdateNetrisLoadBalancerRuleCommand.java |   90 +
 .../agent/api/CreateOrUpdateNetrisNatCommand.java  |  148 ++
 .../agent/api/DeleteNetrisACLCommand.java          |   36 +-
 .../api/DeleteNetrisLoadBalancerRuleCommand.java   |   47 +-
 .../agent/api/DeleteNetrisNatRuleCommand.java      |   72 +
 .../agent/api/DeleteNetrisStaticRouteCommand.java  |   12 +-
 .../agent/api/DeleteNetrisVnetCommand.java         |   51 +
 .../agent/api/DeleteNetrisVpcCommand.java          |   25 +-
 .../agent/api/ListNetrisStaticRoutesAnswer.java    |   27 +-
 .../agent/api/ListNetrisStaticRoutesCommand.java   |   12 +-
 .../apache/cloudstack/agent/api/NetrisAnswer.java  |   15 +-
 .../apache/cloudstack/agent/api/NetrisCommand.java |   70 +
 .../cloudstack/agent/api/ReleaseNatIpCommand.java  |   15 +-
 .../agent/api/SetupNetrisPublicRangeCommand.java   |   26 +-
 .../agent/api/UpdateNetrisVnetCommand.java         |   46 +-
 .../agent/api/UpdateNetrisVpcCommand.java          |   25 +-
 .../api/command/AddNetrisProviderCmd.java          |  126 ++
 .../api/command/DeleteNetrisProviderCmd.java}      |   47 +-
 .../api/command/ListNetrisProvidersCmd.java        |   73 +
 .../api/response/NetrisProviderResponse.java       |  123 ++
 .../cloudstack/resource/NetrisPortGroup.java       |   13 +-
 .../apache/cloudstack/resource/NetrisResource.java |  441 +++++
 .../resource/NetrisResourceObjectUtils.java        |  103 +
 .../apache/cloudstack/service/NetrisApiClient.java |  100 +
 .../cloudstack/service/NetrisApiClientImpl.java    | 2000 ++++++++++++++++++++
 .../apache/cloudstack/service/NetrisElement.java}  |  876 ++++-----
 .../service/NetrisGuestNetworkGuru.java}           |  188 +-
 .../cloudstack/service/NetrisProviderService.java  |   20 +-
 .../service/NetrisProviderServiceImpl.java         |  217 +++
 .../service/NetrisPublicNetworkGuru.java}          |   66 +-
 .../cloudstack/service/NetrisServiceImpl.java      |  556 ++++++
 .../core/spring-netris-core-managers-context.xml   |    9 +-
 .../META-INF/cloudstack/netris/module.properties   |   10 +-
 .../cloudstack/netris/spring-netris-context.xml    |   36 +-
 .../AddOrUpdateNetrisStaticRouteCommandTest.java   |   91 +
 .../agent/api/CreateNetrisACLCommandTest.java      |  144 ++
 .../agent/api/CreateNetrisVnetCommandTest.java     |   95 +
 .../agent/api/CreateNetrisVpcCommandTest.java      |   63 +
 ...eOrUpdateNetrisLoadBalancerRuleCommandTest.java |  139 ++
 .../api/CreateOrUpdateNetrisNatCommandTest.java    |  145 ++
 .../agent/api/DeleteNetrisACLCommandTest.java      |  103 +
 .../DeleteNetrisLoadBalancerRuleCommandTest.java   |   98 +
 .../agent/api/DeleteNetrisNatRuleCommandTest.java  |   94 +
 .../agent/api/DeleteNetrisVnetCommandTest.java     |   83 +
 .../agent/api/DeleteNetrisVpcCommandTest.java      |   64 +
 .../agent/api/ReleaseNatIpCommandTest.java         |   80 +
 .../api/SetupNetrisPublicRangeCommandTest.java     |   63 +
 .../agent/api/UpdateNetrisVnetCommandTest.java     |  105 +
 .../agent/api/UpdateNetrisVpcCommandTest.java      |   93 +
 .../api/command/AddNetrisProviderCmdTest.java      |  122 ++
 .../api/command/DeleteNetrisProviderCmdTest.java   |  101 +
 .../api/command/ListNetrisProvidersCmdTest.java    |  104 +
 .../resource/NetrisResourceObjectUtilsTest.java    |  109 ++
 .../cloudstack/resource/NetrisResourceTest.java    |  141 ++
 .../service/NetrisApiClientImplTest.java           |  103 +
 .../cloudstack/service/NetrisElementTest.java      |  141 ++
 .../service/NetrisGuestNetworkGuruTest.java        |  230 +++
 .../service/NetrisProviderServiceImplTest.java     |  220 +++
 .../service/NetrisPublicNetworkGuruTest.java       |  225 +++
 .../cloudstack/service/NetrisServiceImplTest.java  |   28 +-
 plugins/network-elements/netscaler/pom.xml         |    2 +-
 plugins/network-elements/nicira-nvp/pom.xml        |    2 +-
 plugins/network-elements/nsx/pom.xml               |    2 +-
 .../api/command/DeleteNsxControllerCmd.java        |    3 +-
 .../apache/cloudstack/resource/NsxNetworkRule.java |  353 +---
 .../apache/cloudstack/service/NsxApiClient.java    |   13 +-
 .../org/apache/cloudstack/service/NsxElement.java  |  138 +-
 .../cloudstack/service/NsxGuestNetworkGuru.java    |    9 -
 .../cloudstack/service/NsxPublicNetworkGuru.java   |   18 +-
 .../apache/cloudstack/service/NsxServiceImpl.java  |   48 +-
 .../cloudstack/service/NsxApiClientTest.java       |    6 +-
 .../apache/cloudstack/service/NsxElementTest.java  |   42 +-
 .../service/NsxPublicNetworkGuruTest.java          |   10 +-
 plugins/network-elements/opendaylight/pom.xml      |    2 +-
 plugins/network-elements/ovs/pom.xml               |    2 +-
 plugins/network-elements/palo-alto/pom.xml         |    2 +-
 plugins/network-elements/stratosphere-ssp/pom.xml  |    2 +-
 plugins/network-elements/tungsten/pom.xml          |    2 +-
 .../command/ConfigTungstenFabricServiceCmd.java    |    1 -
 plugins/network-elements/vxlan/pom.xml             |    2 +-
 .../outofbandmanagement-drivers/ipmitool/pom.xml   |    2 +-
 .../nested-cloudstack/pom.xml                      |    2 +-
 .../outofbandmanagement-drivers/redfish/pom.xml    |    2 +-
 plugins/pom.xml                                    |    6 +-
 plugins/storage-allocators/random/pom.xml          |    2 +-
 plugins/storage/image/default/pom.xml              |    2 +-
 plugins/storage/image/s3/pom.xml                   |    2 +-
 plugins/storage/image/sample/pom.xml               |    2 +-
 plugins/storage/image/swift/pom.xml                |    2 +-
 .../driver/SwiftImageStoreDriverImpl.java          |   15 +-
 plugins/storage/object/ceph/pom.xml                |    2 +-
 .../driver/CephObjectStoreDriverImpl.java          |   10 +-
 .../lifecycle/CephObjectStoreLifeCycleImpl.java    |    2 +
 plugins/storage/object/cloudian/pom.xml            |    2 +-
 plugins/storage/object/minio/pom.xml               |    2 +-
 .../lifecycle/MinIOObjectStoreLifeCycleImpl.java   |    2 +
 plugins/storage/object/simulator/pom.xml           |    2 +-
 .../SimulatorObjectStoreLifeCycleImpl.java         |    2 +
 plugins/storage/sharedfs/storagevm/pom.xml         |    2 +-
 .../lifecycle/StorageVmSharedFSLifeCycle.java      |   30 +-
 .../src/main/resources/conf/fsvm-init.yml          |   11 +-
 .../lifecycle/StorageVmSharedFSLifeCycleTest.java  |   16 +-
 plugins/storage/volume/adaptive/pom.xml            |    2 +-
 .../storage/datastore/adapter/ProviderAdapter.java |    3 +-
 .../driver/AdaptiveDataStoreDriverImpl.java        |    3 +-
 plugins/storage/volume/cloudbyte/pom.xml           |    2 +-
 plugins/storage/volume/datera/pom.xml              |    2 +-
 plugins/storage/volume/default/pom.xml             |    2 +-
 .../CloudStackPrimaryDataStoreLifeCycleImpl.java   |    3 +-
 plugins/storage/volume/flasharray/pom.xml          |    2 +-
 .../adapter/flasharray/FlashArrayAdapter.java      |    3 +-
 plugins/storage/volume/linstor/CHANGELOG.md        |   12 +
 plugins/storage/volume/linstor/pom.xml             |    2 +-
 .../kvm/storage/LinstorStorageAdaptor.java         |    2 +-
 .../driver/LinstorPrimaryDataStoreDriverImpl.java  |   42 +-
 plugins/storage/volume/nexenta/pom.xml             |    2 +-
 plugins/storage/volume/primera/pom.xml             |    2 +-
 .../datastore/adapter/primera/PrimeraAdapter.java  |   69 +-
 plugins/storage/volume/sample/pom.xml              |    2 +-
 plugins/storage/volume/scaleio/pom.xml             |    2 +-
 .../datastore/client/ScaleIOGatewayClient.java     |    3 +
 .../driver/ScaleIOPrimaryDataStoreDriver.java      |   16 +-
 .../ScaleIOPrimaryDataStoreLifeCycle.java          |   39 +-
 .../datastore/manager/ScaleIOSDCManager.java       |   37 +
 .../datastore/manager/ScaleIOSDCManagerImpl.java   |   58 +-
 .../datastore/provider/ScaleIOHostListener.java    |   12 +-
 .../storage/datastore/util/ScaleIOUtil.java        |  351 +++-
 .../driver/ScaleIOPrimaryDataStoreDriverTest.java  |   12 +
 plugins/storage/volume/solidfire/pom.xml           |    2 +-
 plugins/storage/volume/storpool/pom.xml            |    2 +-
 .../storage/StorPoolModifyStoragePoolAnswer.java   |   12 +-
 .../StorPoolDownloadTemplateCommandWrapper.java    |    3 +-
 .../StorPoolModifyStorageCommandWrapper.java       |   30 +-
 .../kvm/storage/StorPoolStorageAdaptor.java        |    6 +
 .../collector/StorPoolAbandonObjectsCollector.java |  145 +-
 .../driver/StorPoolPrimaryDataStoreDriver.java     |  105 +-
 .../datastore/provider/StorPoolHostListener.java   |    1 +
 .../storage/datastore/util/StorPoolHelper.java     |   72 +-
 .../storage/datastore/util/StorPoolUtil.java       |   47 +
 .../storage/motion/StorPoolDataMotionStrategy.java |  115 +-
 .../snapshot/StorPoolConfigurationManager.java     |    6 +-
 .../storage/snapshot/StorPoolSnapshotStrategy.java |  296 ++-
 plugins/user-authenticators/ldap/pom.xml           |    2 +-
 .../cloudstack/api/command/LdapListUsersCmd.java   |    5 +-
 .../apache/cloudstack/ldap/LdapAuthenticator.java  |   58 +-
 .../apache/cloudstack/ldap/LdapManagerImpl.java    |   22 +-
 plugins/user-authenticators/md5/pom.xml            |    2 +-
 plugins/user-authenticators/oauth2/pom.xml         |    2 +-
 plugins/user-authenticators/pbkdf2/pom.xml         |    2 +-
 plugins/user-authenticators/plain-text/pom.xml     |    2 +-
 plugins/user-authenticators/saml2/pom.xml          |    2 +-
 plugins/user-authenticators/sha256salted/pom.xml   |    2 +-
 .../static-pin/pom.xml                             |    2 +-
 .../user-two-factor-authenticators/totp/pom.xml    |    2 +-
 pom.xml                                            |    6 +-
 quickcloud/pom.xml                                 |    2 +-
 requirements.txt => requirements-dev.txt           |    5 -
 requirements.txt                                   |    2 -
 .../installer/pre-check.sh                         |   37 +-
 scripts/util/create-kubernetes-binaries-iso.sh     |   36 +-
 scripts/util/keystore-setup                        |   68 +-
 .../hypervisor/external/provisioner/provisioner.sh |  147 ++
 scripts/vm/hypervisor/kvm/gpudiscovery.sh          |  903 +++++++++
 scripts/vm/hypervisor/kvm/nasbackup.sh             |   88 +-
 server/pom.xml                                     |    8 +-
 .../manager/allocator/impl/FirstFitAllocator.java  |   47 +-
 .../java/com/cloud/alert/AlertManagerImpl.java     |   53 +-
 server/src/main/java/com/cloud/api/ApiDBUtils.java |   53 +-
 .../main/java/com/cloud/api/ApiResponseHelper.java |  215 ++-
 server/src/main/java/com/cloud/api/ApiServer.java  |    4 +-
 .../api/dispatch/ParamGenericValidationWorker.java |    1 +
 .../java/com/cloud/api/query/QueryManagerImpl.java |  642 ++++---
 .../com/cloud/api/query/ViewResponseHelper.java    |    7 +
 .../cloud/api/query/dao/AccountJoinDaoImpl.java    |   13 +
 .../cloud/api/query/dao/DataCenterJoinDaoImpl.java |   34 +-
 .../com/cloud/api/query/dao/DomainJoinDaoImpl.java |   13 +
 .../com/cloud/api/query/dao/HostJoinDaoImpl.java   |   21 +-
 .../api/query/dao/ServiceOfferingJoinDaoImpl.java  |   10 +
 .../com/cloud/api/query/dao/SnapshotJoinDao.java   |    8 +-
 .../cloud/api/query/dao/SnapshotJoinDaoImpl.java   |   62 +-
 .../cloud/api/query/dao/TemplateJoinDaoImpl.java   |   15 +-
 .../com/cloud/api/query/dao/UserVmJoinDaoImpl.java |  120 +-
 .../api/query/dao/VpcOfferingJoinDaoImpl.java      |    9 +-
 .../java/com/cloud/api/query/vo/AccountJoinVO.java |   14 +
 .../java/com/cloud/api/query/vo/DomainJoinVO.java  |   21 +
 .../cloud/api/query/vo/NetworkOfferingJoinVO.java  |   20 -
 .../cloud/api/query/vo/ServiceOfferingJoinVO.java  |   84 +
 .../com/cloud/api/query/vo/TemplateJoinVO.java     |   21 +
 .../java/com/cloud/api/query/vo/UserVmJoinVO.java  |   78 +
 .../com/cloud/api/query/vo/VpcOfferingJoinVO.java  |    8 -
 .../cloud/api/response/ApiResponseSerializer.java  |    4 +-
 .../com/cloud/capacity/CapacityManagerImpl.java    |   27 +-
 .../main/java/com/cloud/configuration/Config.java  |    4 +-
 .../configuration/ConfigurationManagerImpl.java    |  255 ++-
 .../consoleproxy/ConsoleProxyManagerImpl.java      |   12 +-
 .../deploy/DeploymentPlanningManagerImpl.java      |   25 +-
 .../java/com/cloud/deploy/FirstFitPlanner.java     |   15 +-
 .../com/cloud/hypervisor/HypervisorGuruBase.java   |   31 +-
 .../kvm/discoverer/LibvirtServerDiscoverer.java    |    6 +-
 .../cloud/hypervisor/kvm/dpdk/DpdkHelperImpl.java  |   13 +-
 .../metadata/ResourceMetaDataManagerImpl.java      |    4 +-
 .../com/cloud/network/IpAddressManagerImpl.java    |   88 +
 .../java/com/cloud/network/NetworkModelImpl.java   |   37 +-
 .../java/com/cloud/network/NetworkServiceImpl.java |  101 +-
 .../com/cloud/network/SDNProviderOpObject.java     |    8 +-
 .../com/cloud/network/as/AutoScaleManager.java     |    6 +
 .../com/cloud/network/as/AutoScaleManagerImpl.java |   32 +-
 .../network/element/ConfigDriveNetworkElement.java |   24 +-
 .../network/element/VirtualRouterElement.java      |    1 -
 .../network/guru/ExternalGuestNetworkGuru.java     |    5 +-
 .../com/cloud/network/guru/GuestNetworkGuru.java   |   20 +-
 .../com/cloud/network/guru/PublicNetworkGuru.java  |   14 +-
 .../network/lb/LoadBalancingRulesManagerImpl.java  |   15 +
 .../cloud/network/router/CommandSetupHelper.java   |   11 +-
 .../cloud/network/router/NetworkHelperImpl.java    |   26 +-
 .../cloud/network/router/NicProfileHelperImpl.java |    4 +-
 .../router/VirtualNetworkApplianceManagerImpl.java |   12 +-
 .../VpcVirtualNetworkApplianceManagerImpl.java     |   20 +-
 .../com/cloud/network/rules/RulesManagerImpl.java  |   35 +-
 .../network/security/SecurityGroupManagerImpl.java |    3 +
 .../security/SecurityGroupManagerImpl2.java        |    3 +
 .../cloud/network/vpc/NetworkACLManagerImpl.java   |   11 +-
 .../cloud/network/vpc/NetworkACLServiceImpl.java   |   11 +-
 .../java/com/cloud/network/vpc/VpcManagerImpl.java |  560 +++++-
 .../network/vpn/RemoteAccessVpnManagerImpl.java    |   72 +-
 .../cloud/network/vpn/Site2SiteVpnManagerImpl.java |   76 +-
 .../java/com/cloud/resource/DiscovererBase.java    |   20 +-
 .../com/cloud/resource/ResourceManagerImpl.java    |  327 +++-
 .../resource/RollingMaintenanceManagerImpl.java    |   10 +-
 .../resourcelimit/ResourceLimitManagerImpl.java    |  235 ++-
 .../com/cloud/server/ConfigurationServerImpl.java  |   73 +-
 .../com/cloud/server/ManagementServerImpl.java     |  140 +-
 .../com/cloud/storage/CreateSnapshotPayload.java   |   10 +
 .../java/com/cloud/storage/StorageManagerImpl.java |   34 +-
 .../java/com/cloud/storage/TemplateProfile.java    |   11 +-
 .../com/cloud/storage/VolumeApiServiceImpl.java    |  200 +-
 .../cloud/storage/listener/StoragePoolMonitor.java |    4 +-
 .../cloud/storage/snapshot/SnapshotManager.java    |    6 +
 .../storage/snapshot/SnapshotManagerImpl.java      |  300 ++-
 .../cloud/template/HypervisorTemplateAdapter.java  |  136 +-
 .../java/com/cloud/template/TemplateAdapter.java   |    5 +-
 .../com/cloud/template/TemplateAdapterBase.java    |  206 +-
 .../com/cloud/template/TemplateManagerImpl.java    |   82 +-
 .../main/java/com/cloud/test/DatabaseConfig.java   |    3 +-
 .../java/com/cloud/user/AccountManagerImpl.java    |    4 +-
 .../main/java/com/cloud/vm/UserVmManagerImpl.java  |  722 +++++--
 .../cloud/vm/snapshot/VMSnapshotManagerImpl.java   |   46 +-
 .../affinity/AffinityGroupServiceImpl.java         |    7 +
 .../agent/lb/IndirectAgentLBServiceImpl.java       |    2 +-
 .../cloudstack/backup/BackupManagerImpl.java       | 1072 ++++++++---
 .../consoleproxy/ConsoleAccessManagerImpl.java     |  118 +-
 .../org/apache/cloudstack/gpu/GpuServiceImpl.java  | 1392 ++++++++++++++
 .../cloudstack/network/RoutedIpv4ManagerImpl.java  |    5 +-
 .../deployment/RouterDeploymentDefinition.java     |   19 +-
 .../RouterDeploymentDefinitionBuilder.java         |    4 +
 .../deployment/VpcRouterDeploymentDefinition.java  |    6 +-
 .../resource/ResourceCleanupServiceImpl.java       |   35 +-
 .../apache/cloudstack/snapshot/SnapshotHelper.java |  160 +-
 .../storage/object/BucketApiServiceImpl.java       |   23 +-
 .../cloudstack/user/UserPasswordResetManager.java  |    5 +
 .../user/UserPasswordResetManagerImpl.java         |    9 +-
 .../cloudstack/vm/UnmanagedVMsManagerImpl.java     |   49 +-
 .../cloudstack/vm/lease/VMLeaseManagerImpl.java    |   69 +-
 .../core/spring-server-core-managers-context.xml   |    7 +
 .../allocator/impl/FirstFitAllocatorTest.java      |   18 +-
 .../java/com/cloud/alert/AlertManagerImplTest.java |   49 +
 .../java/com/cloud/api/ApiResponseHelperTest.java  |  128 ++
 .../com/cloud/api/query/QueryManagerImplTest.java  |  256 ++-
 .../cloud/api/query/dao/UserVmJoinDaoImplTest.java |    4 +-
 .../ConfigurationManagerImplTest.java              |   55 +
 .../deploy/DeploymentPlanningManagerImplTest.java  |   14 +-
 .../hypervisor/kvm/dpdk/DpdkHelperImplTest.java    |   23 +-
 .../com/cloud/network/MockNetworkModelImpl.java    |    5 +
 .../com/cloud/network/NetworkModelImplTest.java    |  143 +-
 .../com/cloud/network/NetworkServiceImplTest.java  |   82 +
 .../cloud/network/as/AutoScaleManagerImplTest.java |   28 +-
 .../element/ConfigDriveNetworkElementTest.java     |   12 +-
 .../network/element/VirtualRouterElementTest.java  |    5 +-
 .../cloud/network/lb/UpdateLoadBalancerTest.java   |   44 +-
 .../VirtualNetworkApplianceManagerImplTest.java    |    4 +-
 .../SecurityGroupManagerTestConfiguration.java     |    4 +-
 .../com/cloud/network/vpc/VpcManagerImplTest.java  |    2 +-
 .../cloud/resource/MockResourceManagerImpl.java    |   21 +-
 .../cloud/resource/ResourceManagerImplTest.java    |   12 +-
 .../RollingMaintenanceManagerImplTest.java         |   16 +-
 .../ResourceLimitManagerImplTest.java              |   88 +
 .../com/cloud/server/ManagementServerImplTest.java |   12 +-
 .../com/cloud/storage/StorageManagerImplTest.java  |  197 +-
 .../cloud/storage/VolumeApiServiceImplTest.java    |  110 +-
 .../storage/snapshot/SnapshotManagerImplTest.java  |   92 +-
 .../storage/snapshot/SnapshotManagerTest.java      |  116 +-
 .../cloud/template/TemplateManagerImplTest.java    |   36 +-
 .../com/cloud/user/MockAccountManagerImpl.java     |  510 -----
 .../java/com/cloud/vm/FirstFitPlannerTest.java     |    9 +-
 .../java/com/cloud/vm/UserVmManagerImplTest.java   |  539 +++++-
 .../cloud/vm/snapshot/VMSnapshotManagerTest.java   |   24 +-
 .../cloud/vpc/MockConfigurationManagerImpl.java    |    4 +-
 .../java/com/cloud/vpc/MockNetworkManagerImpl.java |   21 +-
 .../java/com/cloud/vpc/MockNetworkModelImpl.java   |    5 +
 .../cloud/vpc/MockResourceLimitManagerImpl.java    |   15 +
 .../java/com/cloud/vpc/NetworkACLServiceTest.java  |    6 +
 .../java/com/cloud/vpc/VpcTestConfiguration.java   |    4 +-
 .../vpc/dao/MockVpcOfferingServiceMapDaoImpl.java  |   11 +
 .../cloudstack/backup/BackupManagerTest.java       | 1422 ++++++++++++--
 .../consoleproxy/ConsoleAccessManagerImplTest.java |  209 +-
 .../apache/cloudstack/gpu/GpuServiceImplTest.java  | 1495 +++++++++++++++
 .../deployment/RouterDeploymentDefinitionTest.java |    3 +
 .../VpcRouterDeploymentDefinitionTest.java         |    3 +
 .../networkoffering/CreateNetworkOfferingTest.java |   24 +-
 .../resource/ResourceCleanupServiceImplTest.java   |   57 +-
 .../cloudstack/service/NetrisServiceMockTest.java  |  134 ++
 .../cloudstack/snapshot/SnapshotHelperTest.java    |   54 +-
 .../storage/object/BucketApiServiceImplTest.java   |    1 +
 .../vm/lease/VMLeaseManagerImplTest.java           |   74 +-
 .../src/test/resources/createNetworkOffering.xml   |    4 +-
 services/console-proxy/pom.xml                     |    2 +-
 services/console-proxy/rdpconsole/pom.xml          |    2 +-
 services/console-proxy/server/pom.xml              |    2 +-
 .../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 +-
 services/pom.xml                                   |    2 +-
 services/secondary-storage/controller/pom.xml      |    2 +-
 .../SecondaryStorageManagerImpl.java               |    9 +-
 services/secondary-storage/pom.xml                 |    2 +-
 services/secondary-storage/server/pom.xml          |    2 +-
 .../storage/resource/HttpUploadServerHandler.java  |   12 +-
 .../resource/NfsSecondaryStorageResource.java      |    7 +-
 .../storage/template/DownloadManagerImpl.java      |    3 +-
 setup/bindir/cloud-setup-databases.in              |   15 +-
 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/agent/ui/viewer.ftl                       |   10 +-
 systemvm/debian/opt/cloud/bin/checkrouter.sh       |   22 +-
 systemvm/debian/opt/cloud/bin/configure.py         |   38 +-
 systemvm/debian/opt/cloud/bin/cs/CsAddress.py      |  110 +-
 systemvm/debian/opt/cloud/bin/cs/CsConfig.py       |    3 +
 systemvm/debian/opt/cloud/bin/cs/CsDatabag.py      |    7 +
 systemvm/debian/opt/cloud/bin/cs/CsDhcp.py         |    4 +-
 systemvm/debian/opt/cloud/bin/cs/CsGuestNetwork.py |   10 +-
 systemvm/debian/opt/cloud/bin/cs/CsRoute.py        |   21 +
 .../debian/opt/cloud/bin/cs/CsVpcGuestNetwork.py   |   15 +-
 systemvm/debian/opt/cloud/bin/passwd_server_ip.py  |   13 +-
 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 +
 systemvm/pom.xml                                   |    2 +-
 .../maint/test_egress_rules_host_maintenance.py    |    6 +-
 test/integration/component/test_egress_rules.py    |   60 +-
 .../component/test_project_resources.py            |    6 +-
 test/integration/component/test_project_usage.py   |   25 +-
 .../component/test_rootvolume_resize.py            |    2 +-
 test/integration/component/test_security_groups.py |   72 +-
 test/integration/component/test_update_vm.py       |    4 +-
 test/integration/component/test_vpn_users.py       |  118 +-
 .../plugins/linstor/test_linstor_volumes.py        |   73 +-
 .../plugins/storpool/MigrateVolumeToStorPool.py    |   19 +-
 .../plugins/storpool/TestEncryptedVolumes.py       |  135 +-
 .../plugins/storpool/TestStorPoolVolumes.py        |  155 +-
 .../plugins/storpool/TestTagsOnStorPool.py         |   51 +-
 .../plugins/storpool/TestVmSnapshots.py            |   20 +-
 test/integration/plugins/storpool/sp_util.py       |  134 ++
 test/integration/plugins/storpool/storpool.cfg     |  154 ++
 .../test_snapshot_copy_on_primary_storage.py       |  255 +++
 .../plugins/storpool/test_storpool_tiers.py        |   38 +-
 .../smoke/test_attach_multiple_volumes.py          |    4 +
 .../smoke/test_backup_recovery_dummy.py            |   92 +-
 test/integration/smoke/test_backup_recovery_nas.py |  219 +++
 .../smoke/test_deploy_vgpu_enabled_vm.py           |  234 ++-
 test/integration/smoke/test_extension_custom.py    |  619 ++++++
 .../test_extension_custom_action_lifecycle.py      |  281 +++
 test/integration/smoke/test_extension_lifecycle.py |  480 +++++
 test/integration/smoke/test_network_acl.py         |   26 +
 test/integration/smoke/test_usage.py               |   12 +-
 test/pom.xml                                       |    2 +-
 tools/apidoc/gen_toc.py                            |   12 +-
 tools/apidoc/generatecommands.xsl                  |    2 +-
 tools/apidoc/pom.xml                               |    2 +-
 .../appliance/systemvmtemplate/scripts/finalize.sh |    1 +
 tools/checkstyle/pom.xml                           |    2 +-
 tools/devcloud-kvm/pom.xml                         |    2 +-
 tools/devcloud4/pom.xml                            |    2 +-
 tools/docker/Dockerfile                            |    2 +-
 tools/docker/Dockerfile.marvin                     |    4 +-
 tools/marvin/marvin/lib/base.py                    |  384 +++-
 tools/marvin/pom.xml                               |    2 +-
 tools/marvin/setup.py                              |    2 +-
 tools/ngui/templates/index.html                    |  106 +-
 tools/pom.xml                                      |    2 +-
 ui/public/cloud-image-templates.json               |  110 ++
 ui/public/config.json                              |    2 +
 ui/public/example.html                             |    2 +-
 ui/public/index.html                               |    2 +-
 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                          |  998 ++++++----
 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/api/index.js                                |   21 +-
 ui/src/components/CheckBoxSelectPair.vue           |    8 +-
 ui/src/components/header/ProjectMenu.vue           |   10 +-
 ui/src/components/view/ActionButton.vue            |    4 +-
 ui/src/components/view/BackupMetadata.vue          |  133 ++
 .../view/DeployVMFromBackup.vue}                   | 1229 ++++--------
 ui/src/components/view/DetailsTab.vue              |   57 +-
 ui/src/components/view/EventsTab.vue               |   15 +-
 ui/src/components/view/GPUDevicesTab.vue           |  902 +++++++++
 ui/src/components/view/GPUSummaryTab.vue           |  294 +++
 ui/src/components/view/GPUTab.vue                  |  440 +++++
 .../components/view/ImageDeployInstanceButton.vue  |    6 +-
 ui/src/components/view/InfoCard.vue                |  103 +-
 ui/src/components/view/ListView.vue                |  662 +++++--
 ui/src/components/view/ObjectListTable.vue         |   89 +
 ui/src/components/view/ObjectStoreBrowser.vue      |    7 +-
 ui/src/components/view/ResourceCountUsage.vue      |    3 +-
 ui/src/components/view/SearchView.vue              |  186 +-
 ui/src/components/view/TreeView.vue                |    8 +-
 ui/src/components/view/VgpuProfilesTab.vue         |  405 ++++
 ui/src/components/widgets/Console.vue              |    2 +-
 ui/src/components/widgets/DetailsInput.vue         |  186 ++
 ui/src/components/widgets/InfiniteScrollSelect.vue |    4 +-
 ui/src/components/widgets/Status.vue               |   14 +
 ui/src/config/router.js                            |    4 +
 ui/src/config/section/account.js                   |    2 +-
 ui/src/config/section/compute.js                   |   69 +-
 ui/src/config/section/config.js                    |   93 +-
 ui/src/config/section/domain.js                    |    5 +
 ui/src/config/section/event.js                     |    2 +-
 ui/src/config/section/extension.js                 |  147 ++
 ui/src/config/section/extension/customaction.js    |   94 +
 ui/src/config/section/image.js                     |    4 +-
 ui/src/config/section/infra.js                     |   21 +
 ui/src/config/section/infra/clusters.js            |   18 +-
 ui/src/config/section/infra/hosts.js               |   20 +-
 ui/src/config/section/infra/objectStorages.js      |    4 +-
 ui/src/config/section/infra/phynetworks.js         |    7 +-
 ui/src/config/section/infra/zones.js               |    3 +-
 ui/src/config/section/network.js                   |   24 +-
 ui/src/config/section/offering.js                  |   14 +-
 ui/src/config/section/storage.js                   |   44 +-
 ui/src/core/ext.js                                 |    4 +-
 ui/src/core/lazy_lib/icons_use.js                  |    6 +
 ui/src/main.js                                     |    8 +-
 .../src/utils/extension.js                         |   19 +-
 ui/src/utils/guiTheme.js                           |    7 +-
 ui/src/utils/plugins.js                            |   55 +-
 ui/src/utils/request.js                            |   34 +-
 ui/src/views/AutogenView.vue                       |  305 ++-
 ui/src/views/auth/Login.vue                        |   44 +-
 ui/src/views/compute/AttachIso.vue                 |    4 +-
 ui/src/views/compute/AutoScaleVmProfile.vue        |   15 +-
 ui/src/views/compute/CreateAutoScaleVmGroup.vue    |   27 +-
 ui/src/views/compute/CreateKubernetesCluster.vue   |    7 +-
 ui/src/views/compute/DeployVM.vue                  |  432 ++++-
 ui/src/views/compute/DeployVnfAppliance.vue        |  107 +-
 ui/src/views/compute/EditVM.vue                    |    8 +-
 ui/src/views/compute/InstanceTab.vue               |   17 +-
 ui/src/views/compute/KubernetesAddNodes.vue        |    6 +-
 ui/src/views/compute/KubernetesRemoveNodes.vue     |    4 +-
 ui/src/views/compute/MigrateWizard.vue             |    3 +-
 ui/src/views/compute/RegisterUserData.vue          |    8 +-
 ui/src/views/compute/ReinstallVm.vue               |    5 +-
 ui/src/views/compute/ResetUserData.vue             |   15 +-
 ui/src/views/compute/ScaleVM.vue                   |    2 +
 ui/src/views/compute/StartBackup.vue               |  166 ++
 ui/src/views/compute/backup/BackupSchedule.vue     |   25 +-
 ui/src/views/compute/backup/FormSchedule.vue       |   34 +-
 .../compute/wizard/ComputeOfferingSelection.vue    |  105 +-
 .../views/compute/wizard/NetworkConfiguration.vue  |   96 +-
 ui/src/views/compute/wizard/NetworkSelection.vue   |    7 +-
 .../compute/wizard/OsBasedImageRadioGroup.vue      |    5 +
 .../views/compute/wizard/OsBasedImageSelection.vue |    8 +-
 .../views/compute/wizard/TemplateIsoSelection.vue  |   13 +-
 ui/src/views/compute/wizard/UserDataSelection.vue  |    5 +-
 .../wizard/VolumeDiskOfferingSelectView.vue        |  280 +++
 ui/src/views/dashboard/CapacityDashboard.vue       |   15 +-
 ui/src/views/dashboard/UsageDashboard.vue          |   22 +-
 ui/src/views/extension/AddCustomAction.vue         |  247 +++
 ui/src/views/extension/CreateExtension.vue         |  256 +++
 .../views/extension/ExtensionCustomActionsTab.vue  |  274 +++
 ui/src/views/extension/ExtensionResourcesTab.vue   |  135 ++
 .../extension/ExternalConfigurationDetails.vue     |  116 ++
 ui/src/views/extension/ParametersInput.vue         |  328 ++++
 ui/src/views/extension/RegisterExtension.vue       |  200 ++
 ui/src/views/extension/RunCustomAction.vue         |  386 ++++
 ui/src/views/extension/UpdateCustomAction.vue      |  232 +++
 ui/src/views/extension/UpdateExtension.vue         |  160 ++
 ui/src/views/iam/CreateRole.vue                    |    2 +-
 ui/src/views/iam/DomainView.vue                    |    4 +-
 ui/src/views/image/RegisterOrUploadIso.vue         |    4 +-
 ui/src/views/image/RegisterOrUploadTemplate.vue    |   83 +-
 ui/src/views/image/UpdateISO.vue                   |   24 +-
 ui/src/views/image/UpdateTemplate.vue              |   30 +-
 ui/src/views/infra/AddObjectStorage.vue            |   34 +-
 ui/src/views/infra/AddSecondaryStorage.vue         |    6 +-
 ui/src/views/infra/ClusterAdd.vue                  |  421 ++--
 ui/src/views/infra/ClusterUpdate.vue               |   41 +-
 ui/src/views/infra/HostAdd.vue                     |  509 ++---
 ui/src/views/infra/HostUpdate.vue                  |   34 +-
 ui/src/views/infra/ZoneUpdate.vue                  |    2 +-
 ui/src/views/infra/network/EditTrafficLabel.vue    |    7 +-
 ui/src/views/infra/network/IpRangesTabPublic.vue   |   21 +
 ui/src/views/infra/network/IpRangesTabStorage.vue  |    2 +-
 ui/src/views/infra/network/ServiceProvidersTab.vue |  106 +-
 ui/src/views/infra/network/TrafficTypesTab.vue     |    8 +-
 .../views/infra/network/providers/ProviderItem.vue |    4 +-
 ui/src/views/infra/zone/IpAddressRangeForm.vue     |   20 +-
 ui/src/views/infra/zone/PhysicalNetworksTab.vue    |    2 +-
 ui/src/views/infra/zone/ZoneWizard.vue             |   42 +-
 ui/src/views/infra/zone/ZoneWizardLaunchZone.vue   |  124 +-
 .../infra/zone/ZoneWizardNetworkSetupStep.vue      |   90 +-
 .../zone/ZoneWizardPhysicalNetworkSetupStep.vue    |    7 +-
 .../infra/zone/ZoneWizardRegisterTemplate.vue      |  298 +++
 .../views/infra/zone/ZoneWizardZoneDetailsStep.vue |   32 +-
 .../{AclListRulesTab.vue => AclRulesTab.vue}       |    2 +-
 ui/src/views/network/CreateVpc.vue                 |   16 +-
 ui/src/views/network/IpAddressesTab.vue            |   22 +-
 ui/src/views/network/LoadBalancing.vue             |   41 +-
 ui/src/views/network/NicsTab.vue                   |   10 +-
 ui/src/views/network/PublicIpResource.vue          |   31 +-
 ui/src/views/network/StaticRoutesTab.vue           |  130 +-
 ui/src/views/network/VpcTab.vue                    |  141 +-
 ui/src/views/network/VpcTiersTab.vue               |    6 +-
 ui/src/views/network/VpnDetails.vue                |  164 +-
 .../network/tungsten/TungstenFabricTableView.vue   |    6 +-
 ui/src/views/offering/AddComputeOffering.vue       |  233 ++-
 ui/src/views/offering/AddDiskOffering.vue          |    4 +
 ui/src/views/offering/AddNetworkOffering.vue       |  161 +-
 ui/src/views/offering/AddVpcOffering.vue           |  103 +-
 ui/src/views/project/AccountsTab.vue               |   12 +-
 ui/src/views/project/iam/ProjectRoleTab.vue        |   12 +-
 ui/src/views/storage/CreateTemplate.vue            |   25 +-
 ui/src/views/storage/CreateVMFromBackup.vue        |  263 +++
 ui/src/views/storage/FormSchedule.vue              |   60 +-
 ui/src/views/storage/SnapshotZones.vue             |   79 +-
 ui/src/views/storage/TakeSnapshot.vue              |   67 +-
 ui/src/views/tools/ImportUnmanagedInstance.vue     |    1 +
 ui/src/views/tools/ManageInstances.vue             |    4 +-
 ui/src/views/tools/ManageVolumes.vue               |    2 +-
 ui/tests/unit/views/AutogenView.spec.js            |   24 +-
 ui/tests/unit/views/compute/MigrateWizard.spec.js  |   10 +-
 usage/pom.xml                                      |    2 +-
 .../java/com/cloud/usage/UsageManagerImpl.java     |  165 +-
 .../com/cloud/usage/parser/BackupUsageParser.java  |   32 +-
 .../com/cloud/usage/parser/BucketUsageParser.java  |   33 +-
 .../cloud/usage/parser/IPAddressUsageParser.java   |   45 +-
 .../usage/parser/LoadBalancerUsageParser.java      |   46 +-
 .../usage/parser/NetworkOfferingUsageParser.java   |   46 +-
 .../com/cloud/usage/parser/NetworkUsageParser.java |   41 +-
 .../cloud/usage/parser/NetworksUsageParser.java    |   34 +-
 .../usage/parser/PortForwardingUsageParser.java    |   44 +-
 .../usage/parser/SecurityGroupUsageParser.java     |   44 +-
 .../com/cloud/usage/parser/StorageUsageParser.java |   44 +-
 .../java/com/cloud/usage/parser/UsageParser.java   |   31 +-
 .../cloud/usage/parser/VMInstanceUsageParser.java  |   42 +-
 .../usage/parser/VMSnapshotOnPrimaryParser.java    |   48 +-
 .../cloud/usage/parser/VMSnapshotUsageParser.java  |   48 +-
 .../com/cloud/usage/parser/VPNUserUsageParser.java |   44 +-
 .../com/cloud/usage/parser/VmDiskUsageParser.java  |   41 +-
 .../com/cloud/usage/parser/VolumeUsageParser.java  |   44 +-
 .../com/cloud/usage/parser/VpcUsageParser.java     |   33 +-
 utils/pom.xml                                      |    2 +-
 .../com/cloud/utils/ConstantTimeComparator.java    |    5 +-
 utils/src/main/java/com/cloud/utils/FileUtil.java  |   15 +
 .../src/main/java/com/cloud/utils/StringUtils.java |  133 +-
 utils/src/main/java/com/cloud/utils/UuidUtils.java |    7 +
 .../java/com/cloud/utils/json/JsonMergeUtil.java   |  108 ++
 .../main/java/com/cloud/utils/net/NetUtils.java    |   34 +
 .../main/java/com/cloud/utils/script/Script.java   |   21 +-
 .../test/java/com/cloud/utils/LogUtilsTest.java    |    2 +-
 .../test/java/com/cloud/utils/StringUtilsTest.java |   15 +
 .../com/cloud/utils/json/JsonMergeUtilTest.java    |  108 ++
 .../java/com/cloud/utils/net/NetUtilsTest.java     |   19 +
 vmware-base/pom.xml                                |    2 +-
 .../com/cloud/hypervisor/vmware/mo/HostMO.java     |  152 +-
 .../hypervisor/vmware/mo/HypervisorHostHelper.java |    3 +-
 1377 files changed, 74440 insertions(+), 15821 deletions(-)
 copy 
plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/resource/NsxNetworkRule.java
 => api/src/main/java/com/cloud/network/SDNProviderNetworkRule.java (74%)
 copy core/src/main/java/com/cloud/agent/api/CheckVolumeAnswer.java => 
api/src/main/java/com/cloud/network/netris/NetrisLbBackend.java (66%)
 create mode 100644 
api/src/main/java/com/cloud/network/netris/NetrisNetworkRule.java
 copy api/src/main/java/{org/apache/cloudstack/backup/BackupSchedule.java => 
com/cloud/network/netris/NetrisProvider.java} (70%)
 create mode 100644 
api/src/main/java/com/cloud/network/netris/NetrisService.java
 copy 
engine/schema/src/main/java/org/apache/cloudstack/storage/datastore/db/ObjectStoreDao.java
 => api/src/main/java/com/cloud/vm/VmDiskInfo.java (53%)
 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
 create mode 100644 
api/src/main/java/org/apache/cloudstack/api/command/admin/gpu/DeleteGpuCardCmd.java
 create mode 100644 
api/src/main/java/org/apache/cloudstack/api/command/admin/gpu/DeleteGpuDeviceCmd.java
 create mode 100644 
api/src/main/java/org/apache/cloudstack/api/command/admin/gpu/DeleteVgpuProfileCmd.java
 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/admin/vm/CreateVMFromBackupCmdByAdmin.java
 create mode 100644 
api/src/main/java/org/apache/cloudstack/api/command/user/consoleproxy/ListConsoleSessionsCmd.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
 copy 
api/src/main/java/org/apache/cloudstack/api/command/user/vm/{DeployVMCmd.java 
=> BaseDeployVMCmd.java} (85%)
 create mode 100644 
api/src/main/java/org/apache/cloudstack/api/command/user/vm/CreateVMFromBackupCmd.java
 create mode 100644 
api/src/main/java/org/apache/cloudstack/api/response/ConsoleSessionResponse.java
 copy 
plugins/metrics/src/main/java/org/apache/cloudstack/response/VmMetricsStatsResponse.java
 => 
api/src/main/java/org/apache/cloudstack/api/response/ExtensionCustomActionParameterResponse.java
 (50%)
 create mode 100644 
api/src/main/java/org/apache/cloudstack/api/response/ExtensionCustomActionResponse.java
 copy 
api/src/main/java/org/apache/cloudstack/api/response/{BackupOfferingResponse.java
 => ExtensionResourceResponse.java} (51%)
 create mode 100644 
api/src/main/java/org/apache/cloudstack/api/response/ExtensionResponse.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/org/apache/cloudstack/{backup/BackupSchedule.java => 
consoleproxy/ConsoleSession.java} (67%)
 copy 
plugins/metrics/src/main/java/org/apache/cloudstack/response/VmMetricsStatsResponse.java
 => 
api/src/main/java/org/apache/cloudstack/extension/CustomActionResultResponse.java
 (62%)
 copy api/src/main/java/org/apache/cloudstack/{backup/BackupRepository.java => 
extension/Extension.java} (62%)
 create mode 100644 
api/src/main/java/org/apache/cloudstack/extension/ExtensionCustomAction.java
 copy 
engine/schema/src/main/java/com/cloud/upgrade/dao/DbUpgradeSystemVmTemplate.java
 => api/src/main/java/org/apache/cloudstack/extension/ExtensionHelper.java (78%)
 copy api/src/main/java/org/apache/cloudstack/{backup/BackupRepository.java => 
extension/ExtensionResourceMap.java} (70%)
 copy api/src/main/java/{com/cloud/network/vpc/StaticRoute.java => 
org/apache/cloudstack/gpu/GpuCard.java} (51%)
 copy api/src/main/java/org/apache/cloudstack/{backup/BackupSchedule.java => 
gpu/GpuDevice.java} (65%)
 create mode 100644 api/src/main/java/org/apache/cloudstack/gpu/GpuService.java
 copy api/src/main/java/{com/cloud/network/vpc/StaticRoute.java => 
org/apache/cloudstack/gpu/VgpuProfile.java} (50%)
 create mode 100644 
api/src/test/java/org/apache/cloudstack/api/command/admin/cluster/ListClustersCmdTest.java
 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 
engine/schema/src/main/java/org/apache/cloudstack/storage/datastore/db/ObjectStoreDao.java
 => 
api/src/test/java/org/apache/cloudstack/api/command/admin/gpu/DeleteGpuCardCmdTest.java
 (53%)
 copy 
engine/schema/src/main/java/org/apache/cloudstack/storage/datastore/db/ObjectStoreDao.java
 => 
api/src/test/java/org/apache/cloudstack/api/command/admin/gpu/DeleteGpuDeviceCmdTest.java
 (52%)
 copy 
engine/schema/src/main/java/org/apache/cloudstack/storage/datastore/db/ObjectStoreDao.java
 => 
api/src/test/java/org/apache/cloudstack/api/command/admin/gpu/DeleteVgpuProfileCmdTest.java
 (52%)
 copy 
engine/schema/src/main/java/org/apache/cloudstack/storage/datastore/db/ObjectStoreDao.java
 => 
api/src/test/java/org/apache/cloudstack/api/command/admin/gpu/DiscoverGpuDevicesCmdTest.java
 (54%)
 create mode 100644 
api/src/test/java/org/apache/cloudstack/api/command/admin/gpu/ListGpuDevicesCmdByAdminTest.java
 copy 
engine/schema/src/main/java/org/apache/cloudstack/storage/datastore/db/ObjectStoreDao.java
 => 
api/src/test/java/org/apache/cloudstack/api/command/admin/gpu/ManageGpuDeviceCmdTest.java
 (52%)
 copy 
engine/schema/src/main/java/org/apache/cloudstack/storage/datastore/db/ObjectStoreDao.java
 => 
api/src/test/java/org/apache/cloudstack/api/command/admin/gpu/UnmanageGpuDeviceCmdTest.java
 (52%)
 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/consoleproxy/ListConsoleSessionsCmdTest.java
 create mode 100644 
api/src/test/java/org/apache/cloudstack/api/command/user/gpu/ListGpuCardsCmdTest.java
 copy 
engine/schema/src/main/java/org/apache/cloudstack/storage/datastore/db/ObjectStoreDao.java
 => 
api/src/test/java/org/apache/cloudstack/api/command/user/gpu/ListGpuDevicesCmdTest.java
 (53%)
 create mode 100644 
api/src/test/java/org/apache/cloudstack/api/command/user/gpu/ListVgpuProfilesCmdTest.java
 create mode 100644 
api/src/test/java/org/apache/cloudstack/api/command/user/vm/DeployVMCmdTest.java
 create mode 100644 
api/src/test/java/org/apache/cloudstack/extension/ExtensionCustomActionTest.java
 create mode 100644 
client/src/main/java/org/apache/cloudstack/ACSRequestLog.java
 copy core/src/main/java/com/cloud/agent/api/{CopyRemoteVolumeAnswer.java => 
PrepareExternalProvisioningAnswer.java} (50%)
 copy core/src/main/java/com/cloud/agent/api/{CheckVolumeAnswer.java => 
PrepareExternalProvisioningCommand.java} (66%)
 copy 
framework/quota/src/main/java/org/apache/cloudstack/quota/dao/UserVmDetailsDao.java
 => core/src/main/java/com/cloud/agent/api/RunCustomActionAnswer.java (72%)
 copy core/src/main/java/com/cloud/agent/api/{GetGPUStatsAnswer.java => 
RunCustomActionCommand.java} (54%)
 copy 
engine/schema/src/main/java/org/apache/cloudstack/storage/datastore/db/ObjectStoreDao.java
 => 
core/src/main/java/com/cloud/agent/api/storage/CreateDiskOnlyVmSnapshotAnswer.java
 (51%)
 copy 
engine/schema/src/main/java/org/apache/cloudstack/storage/datastore/db/ObjectStoreDao.java
 => 
core/src/main/java/com/cloud/agent/api/storage/CreateDiskOnlyVmSnapshotCommand.java
 (55%)
 copy 
engine/schema/src/main/java/org/apache/cloudstack/storage/datastore/db/ObjectStoreDao.java
 => 
core/src/main/java/com/cloud/agent/api/storage/DeleteDiskOnlyVmSnapshotCommand.java
 (55%)
 create mode 100644 
core/src/main/java/com/cloud/agent/api/storage/MergeDiskOnlyVmSnapshotCommand.java
 copy 
engine/schema/src/main/java/org/apache/cloudstack/storage/datastore/db/ObjectStoreDao.java
 => 
core/src/main/java/com/cloud/agent/api/storage/RevertDiskOnlyVmSnapshotAnswer.java
 (55%)
 copy 
engine/schema/src/main/java/org/apache/cloudstack/storage/datastore/db/ObjectStoreDao.java
 => 
core/src/main/java/com/cloud/agent/api/storage/RevertDiskOnlyVmSnapshotCommand.java
 (53%)
 create mode 100644 
core/src/main/java/com/cloud/agent/api/storage/SnapshotMergeTreeTO.java
 copy core/src/main/java/org/apache/cloudstack/backup/{BackupAnswer.java => 
BackupStorageStatsAnswer.java} (58%)
 copy core/src/main/java/org/apache/cloudstack/backup/{TakeBackupCommand.java 
=> GetBackupStorageStatsCommand.java} (67%)
 create mode 100644 
core/src/test/java/com/cloud/agent/transport/ResponseTest.java
 create mode 100644 
engine/components-api/src/main/java/com/cloud/hypervisor/ExternalProvisioner.java
 create mode 100644 engine/schema/src/main/java/com/cloud/gpu/GpuCardVO.java
 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 
engine/schema/src/main/java/com/cloud/{network/vpc/dao/VpcOfferingServiceMapDao.java
 => gpu/dao/GpuCardDao.java} (58%)
 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/{usage/dao/UsageBackupDao.java => 
gpu/dao/VgpuProfileDao.java} (66%)
 create mode 100644 
engine/schema/src/main/java/com/cloud/gpu/dao/VgpuProfileDaoImpl.java
 copy 
engine/schema/src/main/java/com/cloud/network/dao/{Site2SiteVpnGatewayDao.java 
=> NetrisProviderDao.java} (83%)
 copy 
engine/schema/src/main/java/com/cloud/network/dao/{Site2SiteVpnGatewayDaoImpl.java
 => NetrisProviderDaoImpl.java} (51%)
 create mode 100644 
engine/schema/src/main/java/com/cloud/network/element/NetrisProviderVO.java
 copy 
engine/schema/src/main/java/com/cloud/upgrade/dao/{DbUpgradeSystemVmTemplate.java
 => Upgrade42100to42200.java} (72%)
 copy engine/schema/src/main/java/com/cloud/vm/{UserVmDetailVO.java => 
VMInstanceDetailVO.java} (90%)
 copy engine/schema/src/main/java/com/cloud/vm/dao/{UserVmDetailsDao.java => 
VMInstanceDetailsDao.java} (84%)
 copy engine/schema/src/main/java/com/cloud/vm/dao/{UserVmDetailsDaoImpl.java 
=> VMInstanceDetailsDaoImpl.java} (81%)
 copy engine/schema/src/main/java/{com/cloud/vm/UserVmDetailVO.java => 
org/apache/cloudstack/backup/BackupDetailVO.java} (79%)
 mode change 100755 => 100644
 copy engine/schema/src/main/java/{com/cloud/vm/dao/UserVmDetailsDao.java => 
org/apache/cloudstack/backup/dao/BackupDetailsDao.java} (81%)
 copy engine/schema/src/main/java/{com/cloud/vm/dao/UserVmDetailsDaoImpl.java 
=> org/apache/cloudstack/backup/dao/BackupDetailsDaoImpl.java} (79%)
 create mode 100644 
engine/schema/src/main/resources/META-INF/db/schema-42100to42200-cleanup.sql
 create mode 100644 
engine/schema/src/main/resources/META-INF/db/schema-42100to42200.sql
 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 
engine/schema/src/test/java/org/apache/cloudstack/backup/dao/BackupDaoImplTest.java
 create mode 100644 
engine/storage/snapshot/src/main/java/org/apache/cloudstack/storage/vmsnapshot/KvmFileBasedStorageVmSnapshotStrategy.java
 create mode 100755 extensions/HyperV/hyperv.py
 create mode 100755 extensions/Proxmox/proxmox.sh
 copy {engine/userdata => framework/extensions}/pom.xml (78%)
 create mode 100644 
framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/api/AddCustomActionCmd.java
 create mode 100644 
framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/api/CreateExtensionCmd.java
 copy 
plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/api/command/DeleteNsxControllerCmd.java
 => 
framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/api/DeleteCustomActionCmd.java
 (52%)
 copy 
plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/api/command/DeleteNsxControllerCmd.java
 => 
framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/api/DeleteExtensionCmd.java
 (50%)
 create mode 100644 
framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/api/ListCustomActionCmd.java
 create mode 100644 
framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/api/ListExtensionsCmd.java
 create mode 100644 
framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/api/RegisterExtensionCmd.java
 create mode 100644 
framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/api/RunCustomActionCmd.java
 create mode 100644 
framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/api/UnregisterExtensionCmd.java
 create mode 100644 
framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/api/UpdateCustomActionCmd.java
 create mode 100644 
framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/api/UpdateExtensionCmd.java
 copy 
framework/{quota/src/main/java/org/apache/cloudstack/quota/dao/UserVmDetailsDao.java
 => 
extensions/src/main/java/org/apache/cloudstack/framework/extensions/command/CleanupExtensionFilesCommand.java}
 (72%)
 create mode 100644 
framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/command/ExtensionBaseCommand.java
 copy core/src/main/java/com/cloud/agent/api/CheckVolumeAnswer.java => 
framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/command/ExtensionRoutingUpdateCommand.java
 (66%)
 copy api/src/main/java/org/apache/cloudstack/backup/BackupSchedule.java => 
framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/command/ExtensionServerActionBaseCommand.java
 (66%)
 copy 
framework/{quota/src/main/java/org/apache/cloudstack/quota/dao/UserVmDetailsDao.java
 => 
extensions/src/main/java/org/apache/cloudstack/framework/extensions/command/GetExtensionPathChecksumCommand.java}
 (72%)
 copy 
framework/{quota/src/main/java/org/apache/cloudstack/quota/dao/UserVmDetailsDao.java
 => 
extensions/src/main/java/org/apache/cloudstack/framework/extensions/command/PrepareExtensionPathCommand.java}
 (72%)
 copy engine/schema/src/main/java/com/cloud/usage/dao/UsageBackupDao.java => 
framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/dao/ExtensionCustomActionDao.java
 (69%)
 create mode 100644 
framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/dao/ExtensionCustomActionDaoImpl.java
 copy engine/schema/src/main/java/com/cloud/vm/dao/UserVmDetailsDao.java => 
framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/dao/ExtensionCustomActionDetailsDao.java
 (75%)
 copy engine/schema/src/main/java/com/cloud/vm/dao/UserVmDetailsDaoImpl.java => 
framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/dao/ExtensionCustomActionDetailsDaoImpl.java
 (71%)
 copy 
engine/schema/src/main/java/com/cloud/network/dao/Site2SiteVpnGatewayDao.java 
=> 
framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/dao/ExtensionDao.java
 (78%)
 copy 
engine/schema/src/main/java/com/cloud/network/dao/Site2SiteVpnGatewayDaoImpl.java
 => 
framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/dao/ExtensionDaoImpl.java
 (54%)
 copy engine/schema/src/main/java/com/cloud/vm/dao/UserVmDetailsDao.java => 
framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/dao/ExtensionDetailsDao.java
 (78%)
 copy engine/schema/src/main/java/com/cloud/vm/dao/UserVmDetailsDaoImpl.java => 
framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/dao/ExtensionDetailsDaoImpl.java
 (74%)
 copy engine/schema/src/main/java/com/cloud/host/dao/HostDetailsDao.java => 
framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/dao/ExtensionResourceMapDao.java
 (59%)
 create mode 100644 
framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/dao/ExtensionResourceMapDaoImpl.java
 copy engine/schema/src/main/java/com/cloud/vm/dao/UserVmDetailsDao.java => 
framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/dao/ExtensionResourceMapDetailsDao.java
 (75%)
 copy engine/schema/src/main/java/com/cloud/vm/dao/UserVmDetailsDaoImpl.java => 
framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/dao/ExtensionResourceMapDetailsDaoImpl.java
 (71%)
 create mode 100644 
framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/manager/ExtensionsManager.java
 create mode 100644 
framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/manager/ExtensionsManagerImpl.java
 copy engine/schema/src/main/java/com/cloud/vm/UserVmDetailVO.java => 
framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/vo/ExtensionCustomActionDetailsVO.java
 (72%)
 mode change 100755 => 100644
 create mode 100644 
framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/vo/ExtensionCustomActionVO.java
 copy engine/schema/src/main/java/com/cloud/vm/UserVmDetailVO.java => 
framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/vo/ExtensionDetailsVO.java
 (75%)
 mode change 100755 => 100644
 rename engine/schema/src/main/java/com/cloud/vm/UserVmDetailVO.java => 
framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/vo/ExtensionResourceMapDetailsVO.java
 (73%)
 mode change 100755 => 100644
 create mode 100644 
framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/vo/ExtensionResourceMapVO.java
 create mode 100644 
framework/extensions/src/main/java/org/apache/cloudstack/framework/extensions/vo/ExtensionVO.java
 copy 
engine/storage/snapshot/src/main/resources/META-INF/cloudstack/storage/spring-engine-storage-snapshot-storage-context.xml
 => 
framework/extensions/src/main/resources/META-INF/cloudstack/core/spring-framework-extensions-core-context.xml
 (61%)
 create mode 100644 
framework/extensions/src/test/java/org/apache/cloudstack/framework/extensions/api/AddCustomActionCmdTest.java
 create mode 100644 
framework/extensions/src/test/java/org/apache/cloudstack/framework/extensions/api/CreateExtensionCmdTest.java
 create mode 100644 
framework/extensions/src/test/java/org/apache/cloudstack/framework/extensions/api/DeleteCustomActionCmdTest.java
 create mode 100644 
framework/extensions/src/test/java/org/apache/cloudstack/framework/extensions/api/DeleteExtensionCmdTest.java
 create mode 100644 
framework/extensions/src/test/java/org/apache/cloudstack/framework/extensions/api/ListCustomActionCmdTest.java
 create mode 100644 
framework/extensions/src/test/java/org/apache/cloudstack/framework/extensions/api/ListExtensionsCmdTest.java
 create mode 100644 
framework/extensions/src/test/java/org/apache/cloudstack/framework/extensions/api/RegisterExtensionCmdTest.java
 create mode 100644 
framework/extensions/src/test/java/org/apache/cloudstack/framework/extensions/api/RunCustomActionCmdTest.java
 create mode 100644 
framework/extensions/src/test/java/org/apache/cloudstack/framework/extensions/api/UnregisterExtensionCmdTest.java
 create mode 100644 
framework/extensions/src/test/java/org/apache/cloudstack/framework/extensions/api/UpdateCustomActionCmdTest.java
 create mode 100644 
framework/extensions/src/test/java/org/apache/cloudstack/framework/extensions/api/UpdateExtensionCmdTest.java
 create mode 100644 
framework/extensions/src/test/java/org/apache/cloudstack/framework/extensions/command/ExtensionBaseCommandTest.java
 create mode 100644 
framework/extensions/src/test/java/org/apache/cloudstack/framework/extensions/dao/ExtensionCustomActionDaoImplTest.java
 copy utils/src/test/java/com/cloud/utils/LogUtilsTest.java => 
framework/extensions/src/test/java/org/apache/cloudstack/framework/extensions/dao/ExtensionDaoImplTest.java
 (50%)
 create mode 100644 
framework/extensions/src/test/java/org/apache/cloudstack/framework/extensions/dao/ExtensionResourceMapDaoImplTest.java
 create mode 100644 
framework/extensions/src/test/java/org/apache/cloudstack/framework/extensions/manager/ExtensionsManagerImplTest.java
 copy 
framework/quota/src/main/java/org/apache/cloudstack/quota/dao/{UserVmDetailsDao.java
 => VMInstanceDetailsDao.java} (87%)
 rename 
framework/quota/src/main/java/org/apache/cloudstack/quota/dao/{UserVmDetailsDaoImpl.java
 => VMInstanceDetailsDaoImpl.java} (80%)
 rename 
framework/quota/src/main/java/org/apache/cloudstack/quota/vo/{UserVmDetailVO.java
 => VMInstanceDetailVO.java} (89%)
 copy 
framework/spring/module/src/test/resources/testhierarchy/base/{test-context-inheritable.xml
 => base-context-inheritable.xml} (100%)
 rename 
framework/spring/module/src/test/resources/testhierarchy/base/{test-context.xml 
=> base-context.xml} (100%)
 copy 
framework/spring/module/src/test/resources/testhierarchy/child1-1/{test-context.xml
 => child1-1-context.xml} (100%)
 copy 
framework/spring/module/src/test/resources/testhierarchy/child1/{test-context-override.xml
 => child1-context-inheritable.xml} (66%)
 copy 
framework/spring/module/src/test/resources/testhierarchy/child1/{test-context-override.xml
 => child1-context-override.xml} (100%)
 copy 
framework/spring/module/src/test/resources/testhierarchy/child1/{test-context.xml
 => child1-context.xml} (100%)
 rename 
framework/spring/module/src/test/resources/testhierarchy/child2/{test-context.xml
 => child2-context.xml} (100%)
 create mode 100644 
plugins/backup/nas/src/test/java/org/apache/cloudstack/backup/NASBackupProviderTest.java
 copy plugins/{network-elements/dns-notifier => hypervisors/external}/pom.xml 
(69%)
 copy 
engine/schema/src/main/java/com/cloud/upgrade/dao/DbUpgradeSystemVmTemplate.java
 => 
plugins/hypervisors/external/src/main/java/org/apache/cloudstack/agent/manager/ExternalAgentManager.java
 (83%)
 create mode 100644 
plugins/hypervisors/external/src/main/java/org/apache/cloudstack/agent/manager/ExternalAgentManagerImpl.java
 create mode 100644 
plugins/hypervisors/external/src/main/java/org/apache/cloudstack/agent/manager/ExternalServerPlanner.java
 create mode 100644 
plugins/hypervisors/external/src/main/java/org/apache/cloudstack/agent/manager/ExternalTemplateAdapter.java
 create mode 100644 
plugins/hypervisors/external/src/main/java/org/apache/cloudstack/guru/ExternalHypervisorGuru.java
 create mode 100644 
plugins/hypervisors/external/src/main/java/org/apache/cloudstack/hypervisor/external/discoverer/ExternalServerDiscoverer.java
 create mode 100644 
plugins/hypervisors/external/src/main/java/org/apache/cloudstack/hypervisor/external/provisioner/ExternalPathPayloadProvisioner.java
 create mode 100644 
plugins/hypervisors/external/src/main/java/org/apache/cloudstack/hypervisor/external/resource/ExternalResource.java
 copy 
engine/storage/snapshot/src/main/resources/META-INF/cloudstack/storage/spring-engine-storage-snapshot-storage-context.xml
 => 
plugins/hypervisors/external/src/main/resources/META-INF/cloudstack/core/spring-external-core-context.xml
 (63%)
 copy requirements.txt => 
plugins/hypervisors/external/src/main/resources/META-INF/cloudstack/external-compute/module.properties
 (86%)
 rename 
framework/spring/module/src/test/resources/testhierarchy/child1/test-context.xml
 => 
plugins/hypervisors/external/src/main/resources/META-INF/cloudstack/external-compute/spring-external-compute-context.xml
 (67%)
 copy requirements.txt => 
plugins/hypervisors/external/src/main/resources/META-INF/cloudstack/external-discoverer/module.properties
 (86%)
 copy 
framework/spring/module/src/test/resources/testhierarchy/child1-1/test-context.xml
 => 
plugins/hypervisors/external/src/main/resources/META-INF/cloudstack/external-discoverer/spring-external-discoverer-context.xml
 (64%)
 copy requirements.txt => 
plugins/hypervisors/external/src/main/resources/META-INF/cloudstack/external-planner/module.properties
 (86%)
 rename 
framework/spring/module/src/test/resources/testhierarchy/child1/test-context-override.xml
 => 
plugins/hypervisors/external/src/main/resources/META-INF/cloudstack/external-planner/spring-external-planner-context.xml
 (64%)
 copy requirements.txt => 
plugins/hypervisors/external/src/main/resources/META-INF/cloudstack/external-storage/module.properties
 (86%)
 rename 
framework/spring/module/src/test/resources/testhierarchy/child1-1/test-context.xml
 => 
plugins/hypervisors/external/src/main/resources/META-INF/cloudstack/external-storage/spring-external-storage-context.xml
 (67%)
 create mode 100644 
plugins/hypervisors/external/src/test/java/org/apache/cloudstack/agent/manager/ExternalTemplateAdapterTest.java
 create mode 100644 
plugins/hypervisors/external/src/test/java/org/apache/cloudstack/hypervisor/external/discoverer/ExternalServerDiscovererTest.java
 create mode 100644 
plugins/hypervisors/external/src/test/java/org/apache/cloudstack/hypervisor/external/provisioner/ExternalPathPayloadProvisionerTest.java
 create mode 100644 
plugins/hypervisors/external/src/test/java/org/apache/cloudstack/hypervisor/external/resource/ExternalResourceTest.java
 create mode 100644 
plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/BlockCommitListener.java
 create mode 100644 
plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtGpuDef.java
 create mode 100644 
plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtCreateDiskOnlyVMSnapshotCommandWrapper.java
 create mode 100644 
plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtDeleteDiskOnlyVMSnapshotCommandWrapper.java
 copy 
plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/{LibvirtTakeBackupCommandWrapper.java
 => LibvirtGetBackupStatsCommandWrapper.java} (50%)
 rename engine/schema/src/main/java/com/cloud/vm/dao/UserVmDetailsDaoImpl.java 
=> 
plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtGetGPUStatsCommandWrapper.java
 (52%)
 create mode 100644 
plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtMergeDiskOnlyVMSnapshotCommandWrapper.java
 create mode 100644 
plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtRevertDiskOnlyVMSnapshotCommandWrapper.java
 create mode 100644 
plugins/hypervisors/kvm/src/test/java/com/cloud/hypervisor/kvm/resource/LibvirtGpuDefTest.java
 rename 
framework/quota/src/main/java/org/apache/cloudstack/quota/dao/UserVmDetailsDao.java
 => 
plugins/hypervisors/simulator/src/main/java/com/cloud/simulator/MockGpuDevice.java
 (70%)
 create mode 100644 
plugins/hypervisors/simulator/src/main/java/com/cloud/simulator/MockGpuDeviceVO.java
 copy engine/schema/src/main/java/com/cloud/host/dao/HostDetailsDao.java => 
plugins/hypervisors/simulator/src/main/java/com/cloud/simulator/dao/MockGpuDeviceDao.java
 (58%)
 create mode 100644 
plugins/hypervisors/simulator/src/main/java/com/cloud/simulator/dao/MockGpuDeviceDaoImpl.java
 copy plugins/{maintenance => network-elements/netris}/pom.xml (71%)
 copy 
engine/schema/src/main/java/com/cloud/upgrade/dao/DbUpgradeSystemVmTemplate.java
 => 
plugins/network-elements/netris/src/main/java/org/apache/cloudstack/StartupNetrisCommand.java
 (76%)
 create mode 100644 
plugins/network-elements/netris/src/main/java/org/apache/cloudstack/agent/api/AddOrUpdateNetrisStaticRouteCommand.java
 create mode 100644 
plugins/network-elements/netris/src/main/java/org/apache/cloudstack/agent/api/CreateNetrisACLCommand.java
 create mode 100644 
plugins/network-elements/netris/src/main/java/org/apache/cloudstack/agent/api/CreateNetrisVnetCommand.java
 copy core/src/main/java/com/cloud/agent/api/CheckVolumeAnswer.java => 
plugins/network-elements/netris/src/main/java/org/apache/cloudstack/agent/api/CreateNetrisVpcCommand.java
 (66%)
 create mode 100644 
plugins/network-elements/netris/src/main/java/org/apache/cloudstack/agent/api/CreateOrUpdateNetrisACLCommand.java
 create mode 100644 
plugins/network-elements/netris/src/main/java/org/apache/cloudstack/agent/api/CreateOrUpdateNetrisLoadBalancerRuleCommand.java
 create mode 100644 
plugins/network-elements/netris/src/main/java/org/apache/cloudstack/agent/api/CreateOrUpdateNetrisNatCommand.java
 copy 
engine/components-api/src/test/java/com/cloud/vm/VmWorkTakeVolumeSnapshotTest.java
 => 
plugins/network-elements/netris/src/main/java/org/apache/cloudstack/agent/api/DeleteNetrisACLCommand.java
 (52%)
 copy core/src/main/java/org/apache/cloudstack/backup/BackupAnswer.java => 
plugins/network-elements/netris/src/main/java/org/apache/cloudstack/agent/api/DeleteNetrisLoadBalancerRuleCommand.java
 (50%)
 create mode 100644 
plugins/network-elements/netris/src/main/java/org/apache/cloudstack/agent/api/DeleteNetrisNatRuleCommand.java
 copy engine/schema/src/main/java/com/cloud/vm/dao/UserVmDetailsDao.java => 
plugins/network-elements/netris/src/main/java/org/apache/cloudstack/agent/api/DeleteNetrisStaticRouteCommand.java
 (66%)
 create mode 100644 
plugins/network-elements/netris/src/main/java/org/apache/cloudstack/agent/api/DeleteNetrisVnetCommand.java
 copy core/src/main/java/com/cloud/agent/api/CheckVolumeAnswer.java => 
plugins/network-elements/netris/src/main/java/org/apache/cloudstack/agent/api/DeleteNetrisVpcCommand.java
 (65%)
 copy engine/schema/src/main/java/com/cloud/vm/dao/ConsoleSessionDao.java => 
plugins/network-elements/netris/src/main/java/org/apache/cloudstack/agent/api/ListNetrisStaticRoutesAnswer.java
 (62%)
 copy engine/schema/src/main/java/com/cloud/vm/dao/UserVmDetailsDao.java => 
plugins/network-elements/netris/src/main/java/org/apache/cloudstack/agent/api/ListNetrisStaticRoutesCommand.java
 (66%)
 copy engine/schema/src/main/java/com/cloud/vm/dao/UserVmDetailsDao.java => 
plugins/network-elements/netris/src/main/java/org/apache/cloudstack/agent/api/NetrisAnswer.java
 (66%)
 create mode 100644 
plugins/network-elements/netris/src/main/java/org/apache/cloudstack/agent/api/NetrisCommand.java
 copy engine/schema/src/main/java/com/cloud/vm/dao/UserVmDetailsDao.java => 
plugins/network-elements/netris/src/main/java/org/apache/cloudstack/agent/api/ReleaseNatIpCommand.java
 (66%)
 copy core/src/main/java/com/cloud/agent/api/CheckVolumeAnswer.java => 
plugins/network-elements/netris/src/main/java/org/apache/cloudstack/agent/api/SetupNetrisPublicRangeCommand.java
 (61%)
 copy core/src/main/java/org/apache/cloudstack/backup/BackupAnswer.java => 
plugins/network-elements/netris/src/main/java/org/apache/cloudstack/agent/api/UpdateNetrisVnetCommand.java
 (50%)
 copy core/src/main/java/com/cloud/agent/api/CheckVolumeAnswer.java => 
plugins/network-elements/netris/src/main/java/org/apache/cloudstack/agent/api/UpdateNetrisVpcCommand.java
 (62%)
 create mode 100644 
plugins/network-elements/netris/src/main/java/org/apache/cloudstack/api/command/AddNetrisProviderCmd.java
 copy 
plugins/network-elements/{nsx/src/main/java/org/apache/cloudstack/api/command/DeleteNsxControllerCmd.java
 => 
netris/src/main/java/org/apache/cloudstack/api/command/DeleteNetrisProviderCmd.java}
 (70%)
 create mode 100644 
plugins/network-elements/netris/src/main/java/org/apache/cloudstack/api/command/ListNetrisProvidersCmd.java
 create mode 100644 
plugins/network-elements/netris/src/main/java/org/apache/cloudstack/api/response/NetrisProviderResponse.java
 copy 
engine/schema/src/main/java/com/cloud/upgrade/dao/DbUpgradeSystemVmTemplate.java
 => 
plugins/network-elements/netris/src/main/java/org/apache/cloudstack/resource/NetrisPortGroup.java
 (75%)
 create mode 100644 
plugins/network-elements/netris/src/main/java/org/apache/cloudstack/resource/NetrisResource.java
 create mode 100644 
plugins/network-elements/netris/src/main/java/org/apache/cloudstack/resource/NetrisResourceObjectUtils.java
 create mode 100644 
plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisApiClient.java
 create mode 100644 
plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisApiClientImpl.java
 copy 
plugins/network-elements/{nsx/src/main/java/org/apache/cloudstack/service/NsxElement.java
 => netris/src/main/java/org/apache/cloudstack/service/NetrisElement.java} (54%)
 copy 
plugins/network-elements/{nsx/src/main/java/org/apache/cloudstack/service/NsxGuestNetworkGuru.java
 => 
netris/src/main/java/org/apache/cloudstack/service/NetrisGuestNetworkGuru.java} 
(65%)
 copy engine/schema/src/main/java/com/cloud/usage/dao/UsageBackupDao.java => 
plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisProviderService.java
 (56%)
 create mode 100644 
plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisProviderServiceImpl.java
 copy 
plugins/network-elements/{nsx/src/main/java/org/apache/cloudstack/service/NsxPublicNetworkGuru.java
 => 
netris/src/main/java/org/apache/cloudstack/service/NetrisPublicNetworkGuru.java}
 (66%)
 create mode 100644 
plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisServiceImpl.java
 rename 
framework/spring/module/src/test/resources/testhierarchy/base/test-context-inheritable.xml
 => 
plugins/network-elements/netris/src/main/resources/META-INF/cloudstack/core/spring-netris-core-managers-context.xml
 (69%)
 copy requirements.txt => 
plugins/network-elements/netris/src/main/resources/META-INF/cloudstack/netris/module.properties
 (86%)
 copy 
engine/storage/snapshot/src/main/resources/META-INF/cloudstack/storage/spring-engine-storage-snapshot-storage-context.xml
 => 
plugins/network-elements/netris/src/main/resources/META-INF/cloudstack/netris/spring-netris-context.xml
 (62%)
 create mode 100644 
plugins/network-elements/netris/src/test/java/org/apache/cloudstack/agent/api/AddOrUpdateNetrisStaticRouteCommandTest.java
 create mode 100644 
plugins/network-elements/netris/src/test/java/org/apache/cloudstack/agent/api/CreateNetrisACLCommandTest.java
 create mode 100644 
plugins/network-elements/netris/src/test/java/org/apache/cloudstack/agent/api/CreateNetrisVnetCommandTest.java
 create mode 100644 
plugins/network-elements/netris/src/test/java/org/apache/cloudstack/agent/api/CreateNetrisVpcCommandTest.java
 create mode 100644 
plugins/network-elements/netris/src/test/java/org/apache/cloudstack/agent/api/CreateOrUpdateNetrisLoadBalancerRuleCommandTest.java
 create mode 100644 
plugins/network-elements/netris/src/test/java/org/apache/cloudstack/agent/api/CreateOrUpdateNetrisNatCommandTest.java
 create mode 100644 
plugins/network-elements/netris/src/test/java/org/apache/cloudstack/agent/api/DeleteNetrisACLCommandTest.java
 create mode 100644 
plugins/network-elements/netris/src/test/java/org/apache/cloudstack/agent/api/DeleteNetrisLoadBalancerRuleCommandTest.java
 create mode 100644 
plugins/network-elements/netris/src/test/java/org/apache/cloudstack/agent/api/DeleteNetrisNatRuleCommandTest.java
 create mode 100644 
plugins/network-elements/netris/src/test/java/org/apache/cloudstack/agent/api/DeleteNetrisVnetCommandTest.java
 create mode 100644 
plugins/network-elements/netris/src/test/java/org/apache/cloudstack/agent/api/DeleteNetrisVpcCommandTest.java
 create mode 100644 
plugins/network-elements/netris/src/test/java/org/apache/cloudstack/agent/api/ReleaseNatIpCommandTest.java
 create mode 100644 
plugins/network-elements/netris/src/test/java/org/apache/cloudstack/agent/api/SetupNetrisPublicRangeCommandTest.java
 create mode 100644 
plugins/network-elements/netris/src/test/java/org/apache/cloudstack/agent/api/UpdateNetrisVnetCommandTest.java
 create mode 100644 
plugins/network-elements/netris/src/test/java/org/apache/cloudstack/agent/api/UpdateNetrisVpcCommandTest.java
 create mode 100644 
plugins/network-elements/netris/src/test/java/org/apache/cloudstack/api/command/AddNetrisProviderCmdTest.java
 create mode 100644 
plugins/network-elements/netris/src/test/java/org/apache/cloudstack/api/command/DeleteNetrisProviderCmdTest.java
 create mode 100644 
plugins/network-elements/netris/src/test/java/org/apache/cloudstack/api/command/ListNetrisProvidersCmdTest.java
 create mode 100644 
plugins/network-elements/netris/src/test/java/org/apache/cloudstack/resource/NetrisResourceObjectUtilsTest.java
 create mode 100644 
plugins/network-elements/netris/src/test/java/org/apache/cloudstack/resource/NetrisResourceTest.java
 create mode 100644 
plugins/network-elements/netris/src/test/java/org/apache/cloudstack/service/NetrisApiClientImplTest.java
 create mode 100644 
plugins/network-elements/netris/src/test/java/org/apache/cloudstack/service/NetrisElementTest.java
 create mode 100644 
plugins/network-elements/netris/src/test/java/org/apache/cloudstack/service/NetrisGuestNetworkGuruTest.java
 create mode 100644 
plugins/network-elements/netris/src/test/java/org/apache/cloudstack/service/NetrisProviderServiceImplTest.java
 create mode 100644 
plugins/network-elements/netris/src/test/java/org/apache/cloudstack/service/NetrisPublicNetworkGuruTest.java
 copy core/src/main/java/com/cloud/agent/api/CheckVolumeAnswer.java => 
plugins/network-elements/netris/src/test/java/org/apache/cloudstack/service/NetrisServiceImplTest.java
 (62%)
 copy requirements.txt => requirements-dev.txt (87%)
 copy systemvm/debian/opt/cloud/bin/checkrouter.sh => 
scripts/installer/pre-check.sh (54%)
 create mode 100755 scripts/vm/hypervisor/external/provisioner/provisioner.sh
 create mode 100755 scripts/vm/hypervisor/kvm/gpudiscovery.sh
 rename 
plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/resource/NsxOpObject.java
 => server/src/main/java/com/cloud/network/SDNProviderOpObject.java (94%)
 create mode 100644 
server/src/main/java/org/apache/cloudstack/gpu/GpuServiceImpl.java
 delete mode 100644 
server/src/test/java/com/cloud/user/MockAccountManagerImpl.java
 create mode 100644 
server/src/test/java/org/apache/cloudstack/gpu/GpuServiceImplTest.java
 create mode 100644 
server/src/test/java/org/apache/cloudstack/service/NetrisServiceMockTest.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 test/integration/plugins/storpool/storpool.cfg
 create mode 100644 
test/integration/plugins/storpool/test_snapshot_copy_on_primary_storage.py
 create mode 100644 test/integration/smoke/test_backup_recovery_nas.py
 create mode 100644 test/integration/smoke/test_extension_custom.py
 create mode 100644 
test/integration/smoke/test_extension_custom_action_lifecycle.py
 create mode 100644 test/integration/smoke/test_extension_lifecycle.py
 create mode 100644 ui/public/cloud-image-templates.json
 create mode 100644 ui/src/components/view/BackupMetadata.vue
 copy ui/src/{views/compute/DeployVM.vue => 
components/view/DeployVMFromBackup.vue} (72%)
 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/ObjectListTable.vue
 create mode 100644 ui/src/components/view/VgpuProfilesTab.vue
 create mode 100644 ui/src/components/widgets/DetailsInput.vue
 create mode 100644 ui/src/config/section/extension.js
 create mode 100644 ui/src/config/section/extension/customaction.js
 rename engine/schema/src/main/java/com/cloud/vm/dao/UserVmDetailsDao.java => 
ui/src/utils/extension.js (68%)
 create mode 100644 ui/src/views/compute/StartBackup.vue
 create mode 100644 ui/src/views/compute/wizard/VolumeDiskOfferingSelectView.vue
 create mode 100644 ui/src/views/extension/AddCustomAction.vue
 create mode 100644 ui/src/views/extension/CreateExtension.vue
 create mode 100644 ui/src/views/extension/ExtensionCustomActionsTab.vue
 create mode 100644 ui/src/views/extension/ExtensionResourcesTab.vue
 create mode 100644 ui/src/views/extension/ExternalConfigurationDetails.vue
 create mode 100644 ui/src/views/extension/ParametersInput.vue
 create mode 100644 ui/src/views/extension/RegisterExtension.vue
 create mode 100644 ui/src/views/extension/RunCustomAction.vue
 create mode 100644 ui/src/views/extension/UpdateCustomAction.vue
 create mode 100644 ui/src/views/extension/UpdateExtension.vue
 create mode 100644 ui/src/views/infra/zone/ZoneWizardRegisterTemplate.vue
 rename ui/src/views/network/{AclListRulesTab.vue => AclRulesTab.vue} (99%)
 create mode 100644 ui/src/views/storage/CreateVMFromBackup.vue
 create mode 100644 utils/src/main/java/com/cloud/utils/json/JsonMergeUtil.java
 create mode 100644 
utils/src/test/java/com/cloud/utils/json/JsonMergeUtilTest.java


Reply via email to