This is an automated email from the ASF dual-hosted git repository. nvazquez pushed a change to branch nsx-integration-fixes in repository https://gitbox.apache.org/repos/asf/cloudstack.git
from 738f934d868 Address comments add 3399abddb0c NSX: add back removed code for NSX (#9435) add 01c721fcda5 Improvements to quota tariffs APIs and UI (#9225) add 8ca1843efae Allow deletion of system VM templates (#8556) add 2ba64f2521a fix removeSecondaryStorageSelector response for docs (#9264) add 27f23f4f75a linstor: Improve copyPhysicalDisk performance (#9417) add 3d8d4875fe3 Merge release branch 4.18 to 4.19 add 5bf81cf0023 Merge release branch 4.19 to main add f84e04372c9 Fix being able to expunge a VM through destroyVirtualMachine even when role rule does not allow (#8689) add 7fb8d77eb84 UI: Improve router listing page (#9551) add 296a44e932e Fix main branch issues (#9553) add 1ef0833e7a3 UI: Add filter to list encrypted volumes (#9548) add 7a9bb835bc7 Fix Template and ISO upload events (#9545) add eaab991a44a Merge branch '4.18' into 4.19 add b1057166aee Merge branch '4.19' add f5c7729871a Fix to allow actions on the network if it belongs to a project (#9550) add 9b22cd590d2 Download Volume Snapshots (#8878) add b215abc30a2 server: do not check affinity groups if no vm group mappings (#9542) add 1e12a802104 orchestration,hypervisor: allow custom manufacture, product for vm (#9163) add c9f1c5790d1 Fix snapshot scheduling with expired jobs (#8832) add bc286656796 Add support for network data in Config Drive (#9329) add 1a403f1a9d2 open up extra-config to all users (#9422) add 0597def630e test: fix component tests test_acl_isolatednetwork and test_acl_isolatednetwork_delete (#9571) add de3537c98a3 Added domain path to all entities (#9540) add 22097027410 Fix usage volume size after resizing (#9459) add 9148701285f [UI] Add project toggle for buckets (#9589) add f5efe56fb53 Merge remote-tracking branch 'apache/4.19' add b61c3b81022 add domainpath to WebhookResponse add d7ca05e5ba9 Build: drop EL7 support, support JRE17 for packages and sonar check (#8609) add d32ace6731d New Feature: Enable/Disable Roles (#9549) add ede39d8edc4 Configuration to disable URL validation when registering templates/ISOs (#8751) add 70131be8c22 Fix `deleteAccount` API to prevent deletion of the caller (#8743) add c05edc40f4c Updated invalid parameter/value to com.cloud.exception.InvalidParameterValueException (#9455) add 7692b745e8a Fix NPE when sending copy command to least busy SSVM (#9125) add 11497c601fd [VMware] Update data disk controller same as the root disk controller type when it is not set in the VM detail (#9433) add 6c0492366c0 [VMware] Disconnect/Detach config drive ISO (if exists) on stop VM (#9468) add 674129cd588 Update project account for all the events with project account owner, except for create project event (#9572) add 48e745cad28 Add certificate validation to check headers (#9255) add 5a496e725b9 Merge remote-tracking branch 'apache/4.19' add e6cb7f26ac2 systemvm: have flags to check x86_64 to install specifics for amd64 arch (#9600) add 2a1db67eeb6 Improve logs in primary storage removal process (#8649) add 12d9c26747d Added support for storpool_qos service (#8755) add b4325eccfb4 Fix userdata append header restrictions (#9575) add 0204cb75e37 ui: show guest networks for guest vlans list (#9554) add 6e988b8953f Merge remote-tracking branch 'apache/4.19' add a5f55602fc3 LOGGER -> logger in CloudInitUserDataProvider.java add 8c301b16ff3 fixed incorrect label in vrs and svms (#9617) add abaf4b52ad1 Fix VGPU available devices listing (#9573) add af607b9c4e7 Merge branch '4.19' add 929cfbc3e26 Update to Debian 12 (#9627) add 0692a296ce9 engine-orchestration: fix issue for empty product in vm metadata (#9610) add f9c4edc66fa SystemVM template changes - updated debian version & other changes (#9625) add 628aba618b5 add min details to search view (#9616) add 882dea21c1f Update .asf.yaml (#9629) add f2a1ee57cac Update en.json (#8958) add 24dc3178a39 Testcases Added (#9116) add a0e16c55dac updated install-non-oss with vmware v7.0 and v8.0 (#9205) add 39152323e3b kvm: Present the UUID of the VM as serial through smbios information (#9236) add b78aede2b70 Updated listStoragePools response - added new managed parameter (#9588) add 21435590201 server: fix volume migration check for local volume attach on a stopped (#9578) add 1ca9a10912d VR: remove vpn user info when apply vpn users list (#9568) add 0ba9a292d50 Add validation for secstorage.allowed.internal.sites (#9567) add e06f80e8991 storage: fix private templates are not copied to new image store (#9206) add 601e9b67ead Fix snapshot deletion on template creation failure (#9239) add 537c0a1e8d2 linstor: set/unset allow-two-primaries and protocol on rc level (#9560) add a851ee375c1 Merge remote-tracking branch 'origin/4.18' into 4.19 add 60c9c9adb67 Merge remote-tracking branch 'origin/4.19' add f9451fce3a3 Notify users when upgrades are available or restart is required for network or VPC (#7610) add bc393923515 Fix PR lint error caused by deps/install-non-oss.sh (#9631) add b155e3d2090 Merge remote-tracking branch 'origin/main' add 5ff0b999da2 Bump org.apache.commons:commons-compress from 1.21 to 1.26.0 (#8683) add 787acfd1725 vmware: Add support for VMware 8.0u2 (8.0.2.x) and 8.0u3 (8.0.3.x) (#9591) add 31b0ed0a18c framework/config,server: configkey caching (#9628) add 7e085d5e1df framework/db: use HikariCP as default and improvements (#9518) add 36d37f70a82 Display associated resource name on storage pools objects (#9449) add b7a2b0419cc server: Global setting to allow/disallow users to force stop a vm (#9569) add 97c1a86b646 linstor: update java-linstor dependency to 0.5.2 (#9632) add dda9ef2dc83 UI: list vms with details=min when attach a volume to vm (#9634) add 2245d985986 Merge remote-tracking branch 'origin/4.19' add 716ab205ea4 Added update, enable, disable events to the updateStoragePool API (#9543) add 6a559f46e3c Go back to default timestamp on logging (#8925) add 72d0546d8b0 Shared Network Firewall (Security groups) in Advanced zone without security groups (#9415) add 605534b4173 feature: Shared Storage Filesystem as a First Class Feature (#9208) add c3f0d14d315 storage/object: Add support for Ceph RGW Object Store (#8389) add 85765c3125f backup: simple NAS backup plugin for KVM (#9451) add 66ee5da5774 Merge branch 'main' into nsx-integration-fixes No new revisions were added by this update. Summary of changes: .asf.yaml | 1 + .github/workflows/build.yml | 2 +- .github/workflows/ci.yml | 4 +- .github/workflows/codecov.yml | 4 +- .github/workflows/main-sonar-check.yml | 4 +- .github/workflows/rat.yml | 4 +- .github/workflows/sonar-check.yml | 4 +- .github/workflows/ui.yml | 2 +- INSTALL.md | 2 +- agent/conf/log4j-cloud.xml.in | 2 +- .../main/java/com/cloud/agent/api/to/BucketTO.java | 37 +- .../com/cloud/agent/api/to/VirtualMachineTO.java | 18 + api/src/main/java/com/cloud/event/EventTypes.java | 33 + .../main/java/com/cloud/network/NetworkModel.java | 4 + .../java/com/cloud/storage/StorageService.java | 4 + api/src/main/java/com/cloud/storage/Upload.java | 2 +- .../java/com/cloud/storage/VolumeApiService.java | 4 + .../cloud/storage/snapshot/SnapshotApiService.java | 11 + api/src/main/java/com/cloud/vm/VirtualMachine.java | 2 + .../main/java/org/apache/cloudstack/acl/Role.java | 11 + .../org/apache/cloudstack/acl/RoleService.java | 10 +- .../cloudstack/affinity/AffinityGroupResponse.java | 9 + .../cloudstack/api/ApiCommandResourceType.java | 3 +- .../org/apache/cloudstack/api/ApiConstants.java | 14 + .../apache/cloudstack/api/ResponseGenerator.java | 14 +- .../command/admin/account/DeleteAccountCmd.java | 7 +- .../api/command/admin/acl/DisableRoleCmd.java | 69 ++ .../api/command/admin/acl/EnableRoleCmd.java | 69 ++ .../api/command/admin/acl/ListRolesCmd.java | 24 +- .../cloudstack/api/command/admin/acl/RoleCmd.java | 1 + .../admin/storage/UpdateStoragePoolCmd.java | 14 +- .../RemoveSecondaryStorageSelectorCmd.java | 2 +- .../api/command/admin/usage/ListUsageTypesCmd.java | 5 +- .../command/user/account/AddUserToProjectCmd.java | 2 +- .../user/account/DeleteUserFromProjectCmd.java | 1 - .../command/user/backup/ListBackupScheduleCmd.java | 16 +- .../backup/repository/AddBackupRepositoryCmd.java | 137 ++++ .../repository/DeleteBackupRepositoryCmd.java | 76 +++ .../repository/ListBackupRepositoriesCmd.java | 110 ++++ .../command/user/config/ListCapabilitiesCmd.java | 3 + .../api/command/user/iso/ExtractIsoCmd.java | 2 +- .../ExtractSnapshotCmd.java} | 82 ++- .../sharedfs/ChangeSharedFSDiskOfferingCmd.java | 145 +++++ .../sharedfs/ChangeSharedFSServiceOfferingCmd.java | 147 +++++ .../user/storage/sharedfs/CreateSharedFSCmd.java | 304 +++++++++ .../storage/sharedfs/DestroySharedFSCmd.java} | 95 +-- .../storage/sharedfs/ExpungeSharedFSCmd.java} | 77 +-- .../user/storage/sharedfs/ListSharedFSCmd.java | 114 ++++ .../storage/sharedfs/ListSharedFSProvidersCmd.java | 60 ++ .../sharedfs/RecoverSharedFSCmd.java} | 71 +- .../user/storage/sharedfs/RestartSharedFSCmd.java | 145 +++++ .../user/storage/sharedfs/StartSharedFSCmd.java | 135 ++++ .../user/storage/sharedfs/StopSharedFSCmd.java | 115 ++++ .../user/storage/sharedfs/UpdateSharedFSCmd.java | 113 ++++ .../command/user/template/DeleteTemplateCmd.java | 8 + .../command/user/template/ExtractTemplateCmd.java | 3 +- .../api/command/user/vm/AddIpToVmNicCmd.java | 2 +- .../api/command/user/vm/GetVMPasswordCmd.java | 6 +- .../api/command/user/vm/RemoveIpFromVmNicCmd.java | 2 +- .../api/command/user/vm/UpdateVMCmd.java | 2 +- .../api/command/user/volume/ExtractVolumeCmd.java | 16 +- .../api/command/user/vpn/AddVpnUserCmd.java | 1 + .../api/response/AcquireIPAddressResponse.java | 9 + .../response/ApplicationLoadBalancerResponse.java | 9 + .../api/response/AutoScalePolicyResponse.java | 9 + .../api/response/AutoScaleVmGroupResponse.java | 9 + .../api/response/AutoScaleVmProfileResponse.java | 8 + .../api/response/BackupRepositoryResponse.java | 154 +++++ .../cloudstack/api/response/BucketResponse.java | 9 + .../api/response/CapabilitiesResponse.java | 24 + .../cloudstack/api/response/ConditionResponse.java | 9 + .../api/response/ControlledEntityResponse.java | 2 + .../api/response/ControlledViewEntityResponse.java | 2 + .../api/response/DomainRouterResponse.java | 8 + .../cloudstack/api/response/EventResponse.java | 9 + .../api/response/GlobalLoadBalancerResponse.java | 9 + .../api/response/GuestVlanRangeResponse.java | 8 + .../cloudstack/api/response/GuestVlanResponse.java | 8 + .../cloudstack/api/response/IPAddressResponse.java | 8 + .../api/response/InstanceGroupResponse.java | 9 + .../api/response/LoadBalancerResponse.java | 9 + .../cloudstack/api/response/NetworkResponse.java | 1 + .../api/response/OvsProviderResponse.java | 8 + .../api/response/PrivateGatewayResponse.java | 8 + .../api/response/ProjectAccountResponse.java | 9 + .../api/response/ProjectInvitationResponse.java | 9 + .../api/response/RemoteAccessVpnResponse.java | 8 + .../api/response/ResourceCountResponse.java | 9 + .../api/response/ResourceLimitResponse.java | 8 + .../api/response/ResourceTagResponse.java | 9 + .../cloudstack/api/response/RoleResponse.java | 8 + .../api/response/SecurityGroupResponse.java | 9 + ...Response.java => SharedFSProviderResponse.java} | 22 +- .../cloudstack/api/response/SharedFSResponse.java | 369 +++++++++++ .../response/Site2SiteCustomerGatewayResponse.java | 9 + .../response/Site2SiteVpnConnectionResponse.java | 9 + .../api/response/Site2SiteVpnGatewayResponse.java | 8 + .../cloudstack/api/response/SnapshotResponse.java | 9 + .../api/response/StaticRouteResponse.java | 8 + .../api/response/StoragePoolResponse.java | 12 + .../cloudstack/api/response/TemplateResponse.java | 9 + .../api/response/UsageRecordResponse.java | 8 + .../cloudstack/api/response/UsageTypeResponse.java | 14 +- .../cloudstack/api/response/UserDataResponse.java | 9 + .../cloudstack/api/response/UserVmResponse.java | 20 + .../api/response/VMSnapshotResponse.java | 9 + .../response/VirtualRouterProviderResponse.java | 8 + .../api/response/VlanIpRangeResponse.java | 9 + .../cloudstack/api/response/VolumeResponse.java | 15 +- .../cloudstack/api/response/VpcResponse.java | 9 + .../cloudstack/api/response/VpnUsersResponse.java | 9 + .../cloudstack/api/response/ZoneResponse.java | 20 +- .../java/org/apache/cloudstack/backup/Backup.java | 2 + .../apache/cloudstack/backup/BackupManager.java | 2 +- .../apache/cloudstack/backup/BackupProvider.java | 2 +- .../apache/cloudstack/backup/BackupRepository.java | 34 + .../cloudstack/backup/BackupRepositoryService.java | 25 +- .../storage/browser/DataStoreObjectResponse.java | 36 + .../cloudstack/storage/sharedfs/SharedFS.java | 189 ++++++ .../storage/sharedfs/SharedFSLifeCycle.java | 43 ++ .../sharedfs/SharedFSProvider.java} | 17 +- .../storage/sharedfs/SharedFSService.java | 72 ++ .../org/apache/cloudstack/usage/UsageService.java | 3 - .../org/apache/cloudstack/usage/UsageTypes.java | 50 +- .../api/command/test/CreateRoleCmdTest.java | 2 + .../api/command/test/ImportRoleCmdTest.java | 7 +- .../api/command/test/UpdateRoleCmdTest.java | 1 + .../command/user/vm/CreateVMScheduleCmdTest.java | 12 +- .../command/user/vm/DeleteVMScheduleCmdTest.java | 12 +- .../api/command/user/vm/ListVMScheduleCmdTest.java | 10 +- .../command/user/vm/UpdateVMScheduleCmdTest.java | 12 +- client/conf/db.properties.in | 20 +- client/conf/log4j-cloud.xml.in | 8 +- client/pom.xml | 15 + .../org/apache/cloudstack/backup/BackupAnswer.java | 59 ++ .../cloudstack/backup/DeleteBackupCommand.java | 76 +++ .../cloudstack/backup/RestoreBackupCommand.java | 130 ++++ .../cloudstack/backup/TakeBackupCommand.java | 94 +++ .../core/spring-core-registry-core-context.xml | 3 + ...pring-lifecycle-storage-context-inheritable.xml | 6 +- .../java/com/cloud/serializer/GsonHelperTest.java | 81 +++ .../cloud/storage/template/OVAProcessorTest.java | 20 + debian/control | 4 +- deps/install-non-oss.sh | 41 ++ developer/pom.xml | 65 +- .../java/com/cloud/vm/VirtualMachineManager.java | 14 + .../service/NetworkOrchestrationService.java | 3 + .../api/storage/PrimaryDataStoreDriver.java | 6 + .../storage/object/ObjectStoreEntity.java | 15 +- .../java/com/cloud/template/TemplateManager.java | 9 + .../com/cloud/vm/VirtualMachineManagerImpl.java | 34 +- .../engine/orchestration/NetworkOrchestrator.java | 32 +- .../cloud/vm/VirtualMachineManagerImplTest.java | 92 ++- engine/schema/pom.xml | 69 +- .../java/com/cloud/dc/ClusterDetailsDaoImpl.java | 5 +- .../com/cloud/dc/dao/DataCenterDetailsDaoImpl.java | 4 +- .../com/cloud/domain/dao/DomainDetailsDaoImpl.java | 16 +- .../src/main/java/com/cloud/host/dao/HostDao.java | 2 + .../main/java/com/cloud/host/dao/HostDaoImpl.java | 25 + .../src/main/java/com/cloud/storage/BucketVO.java | 14 +- .../java/com/cloud/storage/SnapshotScheduleVO.java | 9 + .../com/cloud/storage/dao/SnapshotScheduleDao.java | 6 +- .../cloud/storage/dao/SnapshotScheduleDaoImpl.java | 35 +- .../storage/dao/StoragePoolDetailsDaoImpl.java | 11 +- .../java/com/cloud/upgrade/DatabaseCreator.java | 10 +- .../java/com/cloud/user/AccountDetailsDaoImpl.java | 15 +- .../java/org/apache/cloudstack/acl/RoleVO.java | 13 + .../org/apache/cloudstack/acl/dao/RoleDao.java | 6 +- .../org/apache/cloudstack/acl/dao/RoleDaoImpl.java | 22 +- .../cloudstack/backup/BackupRepositoryVO.java | 155 +++++ .../org/apache/cloudstack/backup/BackupVO.java | 19 + .../apache/cloudstack/backup/dao/BackupDao.java | 3 +- .../cloudstack/backup/dao/BackupDaoImpl.java | 30 +- ...upScheduleDao.java => BackupRepositoryDao.java} | 14 +- .../backup/dao/BackupRepositoryDaoImpl.java | 67 ++ .../cloudstack/backup/dao/BackupScheduleDao.java | 5 + .../backup/dao/BackupScheduleDaoImpl.java | 17 + .../datastore/db/ImageStoreDetailsDaoImpl.java | 15 +- .../storage/datastore/db/SnapshotDataStoreVO.java | 23 + .../cloudstack/storage/sharedfs/SharedFSVO.java | 238 +++++++ .../sharedfs/dao/SharedFSDao.java} | 21 +- .../storage/sharedfs/dao/SharedFSDaoImpl.java | 117 ++++ .../spring-engine-schema-core-daos-context.xml | 3 + .../resources/META-INF/db/schema-41910to42000.sql | 267 ++++++++ .../db/views/cloud.shared_filesystem_view.sql | 83 +++ .../META-INF/db/views/cloud.user_vm_view.sql | 1 + engine/service/pom.xml | 5 + .../storage/configdrive/ConfigDriveBuilder.java | 178 ++++- .../storage/configdrive/ConfigDriveUtils.java | 54 ++ .../configdrive/ConfigDriveBuilderTest.java | 190 +++++- .../storage/configdrive/ConfigDriveUtilsTest.java | 108 +++ .../motion/AncientDataMotionStrategyTest.java | 19 +- .../storage/image/TemplateServiceImpl.java | 5 - .../storage/object/store/ObjectStoreImpl.java | 29 +- engine/storage/snapshot/pom.xml | 5 + .../storage/image/BaseImageStoreDriverImpl.java | 26 +- .../storage/object/ObjectStoreDriver.java | 23 +- .../userdata/CloudInitUserDataProvider.java | 28 +- .../userdata/CloudInitUserDataProviderTest.java | 39 +- .../cloudstack/framework/config/ConfigDepot.java | 2 + .../cloudstack/framework/config/ConfigKey.java | 31 +- .../framework/config/ScopedConfigStorage.java | 6 +- .../framework/config/impl/ConfigDepotImpl.java | 53 +- .../framework/config/impl/ConfigDepotImplTest.java | 50 ++ framework/db/pom.xml | 8 + .../com/cloud/utils/db/ConnectionConcierge.java | 2 +- .../src/main/java/com/cloud/utils/db/Filter.java | 14 +- .../java/com/cloud/utils/db/TransactionLegacy.java | 191 +++++- .../cloudstack/quota/dao/QuotaTariffDao.java | 12 +- .../cloudstack/quota/dao/QuotaTariffDaoImpl.java | 150 +---- .../security/keystore/KeystoreManager.java | 3 +- .../security/keystore/KeystoreManagerImpl.java | 23 +- packaging/README.md | 8 +- packaging/centos7/cloud.spec | 725 --------------------- packaging/centos7/replace.properties | 59 -- packaging/centos8 | 1 + packaging/centos8/cloud-ipallocator.rc | 95 --- packaging/centos8/cloudstack-agent.te | 33 - packaging/{centos7 => el8}/cloud-ipallocator.rc | 0 packaging/{centos7 => el8}/cloud.limits | 0 packaging/{centos8 => el8}/cloud.spec | 11 +- packaging/{centos7 => el8}/cloudstack-agent.te | 0 packaging/{centos7 => el8}/cloudstack-sccs | 0 packaging/{centos8 => el8}/replace.properties | 0 packaging/el9 | 2 +- packaging/package.sh | 16 +- packaging/suse15 | 2 +- .../affinity/HostAntiAffinityProcessor.java | 3 + plugins/api/rate-limit/pom.xml | 2 +- .../cloudstack/backup/DummyBackupProvider.java | 6 +- plugins/backup/nas/pom.xml | 54 ++ .../cloudstack/backup/NASBackupProvider.java | 442 +++++++++++++ .../cloudstack/backup/NasBackupOffering.java | 75 +++ .../META-INF/cloudstack/nas/module.properties | 5 +- .../cloudstack/nas/spring-backup-nas-context.xml | 26 + .../cloudstack/backup/NetworkerBackupProvider.java | 3 +- .../cloudstack/backup/VeeamBackupProvider.java | 2 +- plugins/database/quota/pom.xml | 5 + .../api/command/QuotaTariffCreateCmd.java | 7 +- .../cloudstack/api/command/QuotaTariffListCmd.java | 33 +- .../api/command/QuotaTariffUpdateCmd.java | 8 +- .../api/response/QuotaResponseBuilder.java | 5 +- .../api/response/QuotaResponseBuilderImpl.java | 24 +- .../api/command/QuotaTariffListCmdTest.java | 26 +- .../api/command/QuotaTariffUpdateCmdTest.java | 4 +- .../api/response/QuotaResponseBuilderImplTest.java | 78 ++- .../mom/webhook/api/response/WebhookResponse.java | 9 + plugins/hypervisors/hyperv/conf/log4j-cloud.xml.in | 4 +- plugins/hypervisors/hyperv/pom.xml | 3 +- .../kvm/resource/LibvirtComputingResource.java | 12 + .../hypervisor/kvm/resource/LibvirtVMDef.java | 29 +- .../wrapper/LibvirtDeleteBackupCommandWrapper.java | 63 ++ .../LibvirtRestoreBackupCommandWrapper.java | 203 ++++++ .../wrapper/LibvirtStartCommandWrapper.java | 2 +- .../wrapper/LibvirtTakeBackupCommandWrapper.java | 84 +++ .../apache/cloudstack/kvm/ha/KVMHAProvider.java | 4 +- .../apache/cloudstack/ha/SimulatorHAProvider.java | 4 +- .../hypervisor/vmware/resource/VmwareResource.java | 30 +- .../xenserver/discoverer/XcpServerDiscoverer.java | 4 +- .../cluster/KubernetesClusterManagerImpl.java | 1 + ...ernetesClusterResourceModifierActionWorker.java | 2 +- .../KubernetesClusterStartWorker.java | 7 +- .../cluster/CreateKubernetesClusterCmd.java | 4 +- .../api/response/KubernetesClusterResponse.java | 8 + .../cloudstack/response/VolumeMetricsResponse.java | 2 +- plugins/network-elements/brocade-vcs/pom.xml | 2 +- plugins/network-elements/globodns/pom.xml | 5 + .../api/response/ServiceInstanceResponse.java | 8 + .../contrail/management/MockAccountManager.java | 5 + .../agent/OpenDaylightControllerResource.java | 6 +- plugins/network-elements/tungsten/pom.xml | 5 + .../tungsten/service/TungstenServiceImpl.java | 4 +- plugins/pom.xml | 3 + .../quota => storage/object/ceph}/pom.xml | 32 +- .../driver/CephObjectStoreDriverImpl.java | 362 ++++++++++ .../lifecycle/CephObjectStoreLifeCycleImpl.java | 133 ++++ .../provider/CephObjectStoreProviderImpl.java | 85 +++ .../storage-object-ceph/module.properties | 6 +- .../spring-storage-object-ceph-context.xml | 31 + .../driver/CephObjectStoreDriverImplTest.java | 112 ++++ .../provider/CephObjectStoreProviderImplTest.java | 50 ++ .../driver/MinIOObjectStoreDriverImpl.java | 35 +- .../driver/MinIOObjectStoreDriverImplTest.java | 4 +- .../driver/SimulatorObjectStoreDriverImpl.java | 23 +- .../sharedfs/storagevm}/pom.xml | 14 +- .../lifecycle/StorageVmSharedFSLifeCycle.java | 303 +++++++++ .../provider/StorageVmSharedFSProvider.java | 79 +++ .../sharedfs-provider-storagevm/module.properties | 5 +- .../spring-sharedfs-provider-storagevm-context.xml | 35 + .../src/main/resources/conf/fsvm-init.yml | 220 +++++++ .../lifecycle/StorageVmSharedFSLifeCycleTest.java | 335 ++++++++++ .../storage/datastore/util/ElastistorUtil.java | 20 +- plugins/storage/volume/linstor/CHANGELOG.md | 12 + .../kvm/storage/LinstorStorageAdaptor.java | 96 ++- .../storage/datastore/util/LinstorUtil.java | 11 +- plugins/storage/volume/storpool/README.md | 40 ++ plugins/storage/volume/storpool/pom.xml | 32 +- .../storage/datastore/api/StorPoolVolumeDef.java | 109 ++++ .../driver/StorPoolPrimaryDataStoreDriver.java | 271 ++++++-- .../storage/datastore/util/StorPoolHelper.java | 3 +- .../storage/datastore/util/StorPoolUtil.java | 34 +- plugins/user-authenticators/ldap/pom.xml | 39 +- .../apache/cloudstack/ldap/LdapTestConfigTool.java | 7 - .../ldap/src/test/resources/log4j.xml | 2 +- pom.xml | 42 +- scripts/vm/hypervisor/kvm/nasbackup.sh | 169 +++++ server/conf/log4j-cloud.xml.in | 6 +- server/pom.xml | 7 +- server/src/main/java/com/cloud/api/ApiDBUtils.java | 17 + .../main/java/com/cloud/api/ApiResponseHelper.java | 99 ++- .../api/query/dao/DomainRouterJoinDaoImpl.java | 1 + .../api/query/dao/ProjectAccountJoinDaoImpl.java | 1 + .../query/dao/ProjectInvitationJoinDaoImpl.java | 1 + .../api/query/dao/ResourceTagJoinDaoImpl.java | 1 + .../api/query/dao/StoragePoolJoinDaoImpl.java | 13 + .../cloud/api/query/dao/TemplateJoinDaoImpl.java | 3 + .../com/cloud/api/query/dao/UserVmJoinDaoImpl.java | 2 + .../java/com/cloud/api/query/vo/UserVmJoinVO.java | 7 + .../main/java/com/cloud/configuration/Config.java | 2 +- .../configuration/ConfigurationManagerImpl.java | 45 +- .../com/cloud/event/ActionEventInterceptor.java | 4 +- .../java/com/cloud/event/ActionEventUtils.java | 11 +- .../main/java/com/cloud/hypervisor/KVMGuru.java | 5 +- .../java/com/cloud/network/NetworkModelImpl.java | 60 +- .../java/com/cloud/network/NetworkServiceImpl.java | 15 +- .../com/cloud/network/as/AutoScaleManagerImpl.java | 7 +- .../network/element/ConfigDriveNetworkElement.java | 102 ++- .../network/lb/LoadBalancingRulesManagerImpl.java | 27 +- .../com/cloud/projects/ProjectManagerImpl.java | 16 +- .../com/cloud/resource/ResourceManagerImpl.java | 3 +- .../com/cloud/server/ManagementServerImpl.java | 37 +- .../com/cloud/storage/ResizeVolumePayload.java | 8 + .../java/com/cloud/storage/StorageManagerImpl.java | 63 +- .../com/cloud/storage/VolumeApiServiceImpl.java | 77 ++- .../storage/snapshot/SnapshotManagerImpl.java | 74 ++- .../storage/snapshot/SnapshotSchedulerImpl.java | 94 +-- .../cloud/template/HypervisorTemplateAdapter.java | 20 +- .../com/cloud/template/TemplateManagerImpl.java | 13 +- .../java/com/cloud/usage/UsageServiceImpl.java | 7 - .../main/java/com/cloud/user/AccountManager.java | 2 + .../java/com/cloud/user/AccountManagerImpl.java | 17 +- .../src/main/java/com/cloud/vm/UserVmManager.java | 4 + .../main/java/com/cloud/vm/UserVmManagerImpl.java | 118 +++- .../cloud/vm/snapshot/VMSnapshotManagerImpl.java | 3 + .../org/apache/cloudstack/acl/RoleManagerImpl.java | 50 +- .../affinity/AffinityGroupServiceImpl.java | 4 + .../cloudstack/backup/BackupManagerImpl.java | 110 +++- .../backup/BackupRepositoryServiceImpl.java | 114 ++++ .../apache/cloudstack/snapshot/SnapshotHelper.java | 22 +- .../storage/browser/StorageBrowserImpl.java | 14 +- .../storage/object/BucketApiServiceImpl.java | 30 +- .../storage/sharedfs/SharedFSServiceImpl.java | 720 ++++++++++++++++++++ .../sharedfs/query/dao/SharedFSJoinDao.java | 26 +- .../sharedfs/query/dao/SharedFSJoinDaoImpl.java | 187 ++++++ .../storage/sharedfs/query/vo/SharedFSJoinVO.java | 320 +++++++++ .../storage/template/VnfTemplateManagerImpl.java | 2 +- .../cloudstack/vm/UnmanagedVMsManagerImpl.java | 7 + .../core/spring-server-core-managers-context.xml | 6 + .../com/cloud/network/MockNetworkModelImpl.java | 10 + .../cloud/network/as/AutoScaleManagerImplTest.java | 8 +- .../element/ConfigDriveNetworkElementTest.java | 29 +- .../com/cloud/storage/StorageManagerImplTest.java | 30 + .../cloud/storage/VolumeApiServiceImplTest.java | 25 +- .../storage/snapshot/SnapshotManagerTest.java | 130 ++++ .../snapshot/SnapshotSchedulerImplTest.java | 59 ++ .../com/cloud/user/AccountManagerImplTest.java | 33 + .../com/cloud/user/MockAccountManagerImpl.java | 4 + .../com/cloud/user/PasswordPolicyImplTest.java | 18 + .../java/com/cloud/vm/FirstFitPlannerTest.java | 90 +-- .../java/com/cloud/vm/UserVmManagerImplTest.java | 36 + .../java/com/cloud/vpc/MockNetworkManagerImpl.java | 6 + .../java/com/cloud/vpc/MockNetworkModelImpl.java | 10 + .../java/com/cloud/vpc/dao/MockNetworkDaoImpl.java | 1 + .../apache/cloudstack/acl/RoleManagerImplTest.java | 6 +- .../cloudstack/backup/BackupManagerTest.java | 50 +- .../storage/sharedfs/SharedFSServiceImplTest.java | 665 +++++++++++++++++++ .../query/dao/SharedFSJoinDaoImplTest.java | 152 +++++ .../SecondaryStorageManagerImpl.java | 5 + .../SecondaryStorageManagerTest.java | 6 + services/secondary-storage/server/pom.xml | 2 +- systemvm/debian/opt/cloud/bin/cs/CsFile.py | 1 - systemvm/debian/opt/cloud/bin/cs_vpnusers.py | 2 - .../debian/opt/cloud/bin/setup/cloud-early-config | 2 +- systemvm/debian/opt/cloud/bin/setup/common.sh | 5 +- systemvm/debian/opt/cloud/bin/setup/init.sh | 8 +- systemvm/debian/opt/cloud/bin/setup/postinit.sh | 2 +- systemvm/debian/opt/cloud/bin/setup/sharedfsvm.sh | 64 ++ systemvm/pom.xml | 2 +- .../component/test_acl_isolatednetwork.py | 12 +- .../component/test_acl_isolatednetwork_delete.py | 6 +- .../component/test_advancedsg_networks.py | 186 ++++-- test/integration/component/test_security_groups.py | 48 +- test/integration/plugins/storpool/sp_util.py | 45 ++ .../plugins/storpool/test_storpool_tiers.py | 544 ++++++++++++++++ test/integration/smoke/test_network.py | 320 ++++++++- test/integration/smoke/test_sharedfs_lifecycle.py | 277 ++++++++ test/integration/smoke/test_vm_life_cycle.py | 114 +++- tools/apidoc/gen_toc.py | 2 + tools/apidoc/pom.xml | 2 +- tools/appliance/build.sh | 2 +- .../systemvmtemplate/scripts/configure_grub.sh | 2 +- .../scripts/configure_systemvm_services.sh | 3 +- .../scripts/install_systemvm_packages.sh | 8 +- .../template-base_aarch64-target_aarch64.json | 4 +- .../template-base_x86_64-target_aarch64.json | 4 +- .../template-base_x86_64-target_x86_64.json | 4 +- tools/devcloud-kvm/pom.xml | 2 +- tools/marvin/marvin/config/test_data.py | 50 ++ tools/marvin/marvin/lib/base.py | 110 +++- tools/marvin/pom.xml | 54 +- ui/package.json | 1 + ui/public/locales/en.json | 111 +++- ui/public/locales/pt_BR.json | 55 +- ui/src/components/header/HeaderNotice.vue | 8 +- ui/src/components/page/GlobalFooter.vue | 22 + ui/src/components/view/DetailsTab.vue | 37 +- ui/src/components/view/InfoCard.vue | 3 +- ui/src/components/view/ListResourceTable.vue | 4 + ui/src/components/view/ListView.vue | 47 +- ui/src/components/view/SearchView.vue | 115 +++- ui/src/components/view/SettingsTab.vue | 10 +- ui/src/config/router.js | 3 +- ui/src/config/section/compute.js | 42 +- ui/src/config/section/config.js | 37 ++ ui/src/config/section/infra/routers.js | 2 +- ui/src/config/section/network.js | 23 +- ui/src/config/section/plugin/quota.js | 101 ++- ui/src/config/section/role.js | 34 +- ui/src/config/section/storage.js | 167 ++++- ui/src/core/lazy_lib/icons_use.js | 2 + ui/src/store/getters.js | 2 + ui/src/store/modules/user.js | 92 ++- ui/src/store/mutation-types.js | 2 + .../Role.java => ui/src/style/objects/form.scss | 15 +- ui/src/utils/date.js | 104 +++ ui/src/utils/plugins.js | 29 +- ui/src/utils/quota.js | 124 ++++ ui/src/utils/util.js | 10 + ui/src/views/AutogenView.vue | 17 +- ui/src/views/compute/DeployVM.vue | 14 +- ui/src/views/compute/DestroyVM.vue | 2 +- ui/src/views/compute/InstanceTab.vue | 545 ++-------------- ui/src/views/compute/backup/BackupSchedule.vue | 9 +- .../compute/wizard/SecurityGroupSelection.vue | 2 +- ui/src/views/iam/AddAccount.vue | 4 +- ui/src/views/infra/AddObjectStorage.vue | 2 +- ui/src/views/infra/StorageBrowser.vue | 8 +- ui/src/views/infra/UsageRecords.vue | 2 +- ui/src/views/infra/network/ServiceProvidersTab.vue | 36 +- .../InstanceTab.vue => network/NicsTab.vue} | 439 +++---------- ui/src/views/plugins/quota/CreateQuotaTariff.vue | 201 ++++++ ui/src/views/plugins/quota/EditQuotaTariff.vue | 188 ++++++ ui/src/views/plugins/quota/QuotaTariff.vue | 63 -- ui/src/views/setting/ConfigurationValue.vue | 14 +- ui/src/views/storage/AttachVolume.vue | 3 +- .../views/storage/ChangeSharedFSDiskOffering.vue | 236 +++++++ .../storage/ChangeSharedFSServiceOffering.vue | 204 ++++++ ui/src/views/storage/CreateSharedFS.vue | 459 +++++++++++++ ui/src/views/storage/SharedFSTab.vue | 202 ++++++ ui/src/views/storage/UpdateSharedFS.vue | 147 +++++ usage/conf/db.properties.in | 4 + usage/conf/log4j-cloud_usage.xml.in | 2 +- usage/pom.xml | 2 +- utils/src/main/java/com/cloud/utils/FileUtil.java | 6 + utils/src/main/java/com/cloud/utils/UriUtils.java | 47 +- .../main/java/com/cloud/utils/net/NetUtils.java | 12 + .../utils/jsinterpreter/JsInterpreter.java | 6 + .../test/java/com/cloud/utils/UriUtilsTest.java | 9 + .../java/com/cloud/utils/net/NetUtilsTest.java | 11 + .../utils/jsinterpreter/JsInterpreterTest.java | 4 +- utils/src/test/resources/log4j.xml | 2 +- .../hypervisor/vmware/mo/HypervisorHostHelper.java | 12 +- .../hypervisor/vmware/mo/VirtualMachineMO.java | 8 + 473 files changed, 18645 insertions(+), 3688 deletions(-) copy engine/schema/src/main/java/org/apache/cloudstack/backup/dao/BackupScheduleDao.java => api/src/main/java/com/cloud/agent/api/to/BucketTO.java (55%) create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/admin/acl/DisableRoleCmd.java create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/admin/acl/EnableRoleCmd.java create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/user/backup/repository/AddBackupRepositoryCmd.java create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/user/backup/repository/DeleteBackupRepositoryCmd.java create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/user/backup/repository/ListBackupRepositoriesCmd.java copy api/src/main/java/org/apache/cloudstack/api/command/user/{template/DeleteTemplateCmd.java => snapshot/ExtractSnapshotCmd.java} (57%) mode change 100755 => 100644 create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/user/storage/sharedfs/ChangeSharedFSDiskOfferingCmd.java create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/user/storage/sharedfs/ChangeSharedFSServiceOfferingCmd.java create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/user/storage/sharedfs/CreateSharedFSCmd.java copy api/src/main/java/org/apache/cloudstack/api/command/{admin/account/DeleteAccountCmd.java => user/storage/sharedfs/DestroySharedFSCmd.java} (52%) copy api/src/main/java/org/apache/cloudstack/api/command/{admin/account/DeleteAccountCmd.java => user/storage/sharedfs/ExpungeSharedFSCmd.java} (52%) create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/user/storage/sharedfs/ListSharedFSCmd.java create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/user/storage/sharedfs/ListSharedFSProvidersCmd.java copy api/src/main/java/org/apache/cloudstack/api/command/user/{backup/ListBackupScheduleCmd.java => storage/sharedfs/RecoverSharedFSCmd.java} (52%) create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/user/storage/sharedfs/RestartSharedFSCmd.java create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/user/storage/sharedfs/StartSharedFSCmd.java create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/user/storage/sharedfs/StopSharedFSCmd.java create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/user/storage/sharedfs/UpdateSharedFSCmd.java create mode 100644 api/src/main/java/org/apache/cloudstack/api/response/BackupRepositoryResponse.java copy api/src/main/java/org/apache/cloudstack/api/response/{ControlledEntityResponse.java => SharedFSProviderResponse.java} (62%) create mode 100644 api/src/main/java/org/apache/cloudstack/api/response/SharedFSResponse.java create mode 100644 api/src/main/java/org/apache/cloudstack/backup/BackupRepository.java copy engine/schema/src/main/java/org/apache/cloudstack/backup/dao/BackupScheduleDao.java => api/src/main/java/org/apache/cloudstack/backup/BackupRepositoryService.java (57%) create mode 100644 api/src/main/java/org/apache/cloudstack/storage/sharedfs/SharedFS.java create mode 100644 api/src/main/java/org/apache/cloudstack/storage/sharedfs/SharedFSLifeCycle.java copy api/src/main/java/org/apache/cloudstack/{acl/Role.java => storage/sharedfs/SharedFSProvider.java} (74%) create mode 100644 api/src/main/java/org/apache/cloudstack/storage/sharedfs/SharedFSService.java create mode 100644 core/src/main/java/org/apache/cloudstack/backup/BackupAnswer.java create mode 100644 core/src/main/java/org/apache/cloudstack/backup/DeleteBackupCommand.java create mode 100644 core/src/main/java/org/apache/cloudstack/backup/RestoreBackupCommand.java create mode 100644 core/src/main/java/org/apache/cloudstack/backup/TakeBackupCommand.java create mode 100644 core/src/test/java/com/cloud/serializer/GsonHelperTest.java create mode 100644 engine/schema/src/main/java/org/apache/cloudstack/backup/BackupRepositoryVO.java copy engine/schema/src/main/java/org/apache/cloudstack/backup/dao/{BackupScheduleDao.java => BackupRepositoryDao.java} (65%) create mode 100644 engine/schema/src/main/java/org/apache/cloudstack/backup/dao/BackupRepositoryDaoImpl.java create mode 100644 engine/schema/src/main/java/org/apache/cloudstack/storage/sharedfs/SharedFSVO.java copy engine/schema/src/main/java/org/apache/cloudstack/{backup/dao/BackupScheduleDao.java => storage/sharedfs/dao/SharedFSDao.java} (64%) create mode 100644 engine/schema/src/main/java/org/apache/cloudstack/storage/sharedfs/dao/SharedFSDaoImpl.java create mode 100644 engine/schema/src/main/resources/META-INF/db/views/cloud.shared_filesystem_view.sql create mode 100644 engine/storage/configdrive/src/main/java/org/apache/cloudstack/storage/configdrive/ConfigDriveUtils.java create mode 100644 engine/storage/configdrive/src/test/java/org/apache/cloudstack/storage/configdrive/ConfigDriveUtilsTest.java delete mode 100644 packaging/centos7/cloud.spec delete mode 100644 packaging/centos7/replace.properties create mode 120000 packaging/centos8 delete mode 100755 packaging/centos8/cloud-ipallocator.rc delete mode 100644 packaging/centos8/cloudstack-agent.te rename packaging/{centos7 => el8}/cloud-ipallocator.rc (100%) copy packaging/{centos7 => el8}/cloud.limits (100%) rename packaging/{centos8 => el8}/cloud.spec (98%) rename packaging/{centos7 => el8}/cloudstack-agent.te (100%) rename packaging/{centos7 => el8}/cloudstack-sccs (100%) rename packaging/{centos8 => el8}/replace.properties (100%) create mode 100644 plugins/backup/nas/pom.xml create mode 100644 plugins/backup/nas/src/main/java/org/apache/cloudstack/backup/NASBackupProvider.java create mode 100644 plugins/backup/nas/src/main/java/org/apache/cloudstack/backup/NasBackupOffering.java rename packaging/centos8/cloud.limits => plugins/backup/nas/src/main/resources/META-INF/cloudstack/nas/module.properties (94%) create mode 100644 plugins/backup/nas/src/main/resources/META-INF/cloudstack/nas/spring-backup-nas-context.xml create mode 100644 plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtDeleteBackupCommandWrapper.java create mode 100644 plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtRestoreBackupCommandWrapper.java create mode 100644 plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtTakeBackupCommandWrapper.java copy plugins/{database/quota => storage/object/ceph}/pom.xml (65%) create mode 100644 plugins/storage/object/ceph/src/main/java/org/apache/cloudstack/storage/datastore/driver/CephObjectStoreDriverImpl.java create mode 100644 plugins/storage/object/ceph/src/main/java/org/apache/cloudstack/storage/datastore/lifecycle/CephObjectStoreLifeCycleImpl.java create mode 100644 plugins/storage/object/ceph/src/main/java/org/apache/cloudstack/storage/datastore/provider/CephObjectStoreProviderImpl.java rename packaging/centos8/cloudstack-sccs => plugins/storage/object/ceph/src/main/resources/META-INF/cloudstack/storage-object-ceph/module.properties (92%) create mode 100644 plugins/storage/object/ceph/src/main/resources/META-INF/cloudstack/storage-object-ceph/spring-storage-object-ceph-context.xml create mode 100644 plugins/storage/object/ceph/src/test/java/org/apache/cloudstack/storage/datastore/driver/CephObjectStoreDriverImplTest.java create mode 100644 plugins/storage/object/ceph/src/test/java/org/apache/cloudstack/storage/datastore/provider/CephObjectStoreProviderImplTest.java copy plugins/{network-elements/globodns => storage/sharedfs/storagevm}/pom.xml (71%) create mode 100644 plugins/storage/sharedfs/storagevm/src/main/java/org/apache/cloudstack/storage/sharedfs/lifecycle/StorageVmSharedFSLifeCycle.java create mode 100644 plugins/storage/sharedfs/storagevm/src/main/java/org/apache/cloudstack/storage/sharedfs/provider/StorageVmSharedFSProvider.java rename packaging/centos7/cloud.limits => plugins/storage/sharedfs/storagevm/src/main/resources/META-INF/cloudstack/sharedfs-provider-storagevm/module.properties (94%) create mode 100644 plugins/storage/sharedfs/storagevm/src/main/resources/META-INF/cloudstack/sharedfs-provider-storagevm/spring-sharedfs-provider-storagevm-context.xml create mode 100644 plugins/storage/sharedfs/storagevm/src/main/resources/conf/fsvm-init.yml create mode 100644 plugins/storage/sharedfs/storagevm/src/test/java/org/apache/cloudstack/storage/sharedfs/lifecycle/StorageVmSharedFSLifeCycleTest.java create mode 100644 plugins/storage/volume/linstor/CHANGELOG.md create mode 100644 plugins/storage/volume/storpool/src/main/java/org/apache/cloudstack/storage/datastore/api/StorPoolVolumeDef.java create mode 100755 scripts/vm/hypervisor/kvm/nasbackup.sh create mode 100644 server/src/main/java/org/apache/cloudstack/backup/BackupRepositoryServiceImpl.java create mode 100644 server/src/main/java/org/apache/cloudstack/storage/sharedfs/SharedFSServiceImpl.java copy engine/schema/src/main/java/com/cloud/storage/dao/SnapshotScheduleDao.java => server/src/main/java/org/apache/cloudstack/storage/sharedfs/query/dao/SharedFSJoinDao.java (55%) create mode 100644 server/src/main/java/org/apache/cloudstack/storage/sharedfs/query/dao/SharedFSJoinDaoImpl.java create mode 100644 server/src/main/java/org/apache/cloudstack/storage/sharedfs/query/vo/SharedFSJoinVO.java create mode 100644 server/src/test/java/org/apache/cloudstack/storage/sharedfs/SharedFSServiceImplTest.java create mode 100644 server/src/test/java/org/apache/cloudstack/storage/sharedfs/query/dao/SharedFSJoinDaoImplTest.java create mode 100644 systemvm/debian/opt/cloud/bin/setup/sharedfsvm.sh create mode 100644 test/integration/plugins/storpool/test_storpool_tiers.py create mode 100644 test/integration/smoke/test_sharedfs_lifecycle.py copy api/src/main/java/org/apache/cloudstack/acl/Role.java => ui/src/style/objects/form.scss (74%) create mode 100644 ui/src/utils/date.js create mode 100644 ui/src/utils/quota.js copy ui/src/views/{compute/InstanceTab.vue => network/NicsTab.vue} (60%) create mode 100644 ui/src/views/plugins/quota/CreateQuotaTariff.vue create mode 100644 ui/src/views/plugins/quota/EditQuotaTariff.vue delete mode 100644 ui/src/views/plugins/quota/QuotaTariff.vue create mode 100644 ui/src/views/storage/ChangeSharedFSDiskOffering.vue create mode 100644 ui/src/views/storage/ChangeSharedFSServiceOffering.vue create mode 100644 ui/src/views/storage/CreateSharedFS.vue create mode 100644 ui/src/views/storage/SharedFSTab.vue create mode 100644 ui/src/views/storage/UpdateSharedFS.vue