You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by da...@apache.org on 2023/12/04 13:15:53 UTC

(cloudstack) branch dummy updated (2fb59b86c20 -> 012f1366e26)

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

dahn pushed a change to branch dummy
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


    omit 2fb59b86c20 do not merge
     add 3c7c75bacfd Clear pool id if volume allocation fails (#8202)
     add 8f390873772 Fix typo in ssvm check script (#8191)
     add 956efb27d93 allow filtering of listDiskOffering and listServiceOffering APIs by account or project (#7082)
     add a31f2116282 Merge remote-tracking branch 'remote/4.18'
     add 26b01f6f3be Flexible tags for hosts and storage pools (#7489)
     add cb62ce67671 Global ACL for VPCs (#7150)
     add 37a2350159d Fix upload of volumes, templates and ISOs through HTTP (#8264)
     add 5651eab49cf ObjectStore Framework with MinIO and Simulator plugins (#7752)
     add 108651ad403 api: make displaytext form upload template/iso optional (#8289)
     add b0910fc61d7 Add dynamic secondary storage selection (#7659)
     add cb2b6aca45c server: check if there are active nics before network GC (#8204)
     add 98cd3b9a243 UI: Removed ICMP input fields for protocol number from ACL List rules modal (#8253)
     add 7d6dc41f99b UI: Removed redundant IP Address Column when create Port forwarding rules (#8275)
     add 724394682c7 server: Initial new vpnuser state (#8268)
     add d3cad4266af Merge release branch 4.18 to main
     add 012f1366e26 do not merge

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (2fb59b86c20)
            \
             N -- N -- N   refs/heads/dummy (012f1366e26)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 .github/workflows/ci.yml                           |   4 +-
 api/src/main/java/com/cloud/event/EventTypes.java  |  22 +
 .../main/java/com/cloud/server/ResourceTag.java    |   3 +-
 .../main/java/com/cloud/storage/DataStoreRole.java |   4 +-
 .../java/com/cloud/storage/StorageService.java     |  18 +
 .../cloudstack/annotation/AnnotationService.java   |   3 +-
 .../cloudstack/api/ApiCommandResourceType.java     |   4 +-
 .../org/apache/cloudstack/api/ApiConstants.java    |  14 +
 .../java/org/apache/cloudstack/api/BaseCmd.java    |   4 +
 .../apache/cloudstack/api/ResponseGenerator.java   |  12 +
 .../api/command/admin/host/UpdateHostCmd.java      |   7 +
 .../admin/storage/AddObjectStoragePoolCmd.java     | 132 ++++
 .../admin/storage/CreateStoragePoolCmd.java        |   7 +
 .../admin/storage/DeleteObjectStoragePoolCmd.java  |  69 ++
 .../admin/storage/ListObjectStoragePoolsCmd.java   |  79 +++
 .../admin/storage/UpdateObjectStoragePoolCmd.java  |  93 +++
 .../admin/storage/UpdateStoragePoolCmd.java        |   7 +
 .../CreateSecondaryStorageSelectorCmd.java         |  93 +++
 .../ListSecondaryStorageSelectorsCmd.java          |  63 ++
 .../RemoveSecondaryStorageSelectorCmd.java         |  54 ++
 .../UpdateSecondaryStorageSelectorCmd.java         |  67 ++
 .../api/command/user/bucket/CreateBucketCmd.java   | 202 ++++++
 .../api/command/user/bucket/DeleteBucketCmd.java   |  94 +++
 .../api/command/user/bucket/ListBucketsCmd.java    | 100 +++
 .../api/command/user/bucket/UpdateBucketCmd.java   | 132 ++++
 .../command/user/iso/GetUploadParamsForIsoCmd.java |   4 +-
 .../user/network/CreateNetworkACLListCmd.java      |  36 +-
 .../user/offering/ListDiskOfferingsCmd.java        |   4 +-
 .../user/offering/ListServiceOfferingsCmd.java     |   4 +-
 .../template/GetUploadParamsForTemplateCmd.java    |   5 +-
 .../api/command/user/vpn/AddVpnUserCmd.java        |   3 +
 .../cloudstack/api/response/BucketResponse.java    | 293 ++++++++
 .../cloudstack/api/response/HostResponse.java      |  12 +
 .../api/response/ObjectStoreResponse.java          | 106 +++
 .../SecondaryStorageHeuristicsResponse.java        | 141 ++++
 .../api/response/StoragePoolResponse.java          |  12 +
 .../cloudstack/api/response/VpnUsersResponse.java  |   2 +-
 .../org/apache/cloudstack/query/QueryService.java  |  12 +
 .../secstorage/heuristics/Heuristic.java           |  28 +-
 .../secstorage/heuristics/HeuristicType.java       |  23 +-
 .../apache/cloudstack/storage/object/Bucket.java   |  64 ++
 .../storage/object/BucketApiService.java           |  54 ++
 .../cloudstack/storage/object/ObjectStore.java     |  28 +-
 .../org/apache/cloudstack/usage/UsageTypes.java    |   2 +
 .../admin/storage/AddObjectStoragePoolCmdTest.java |  97 +++
 .../storage/DeleteObjectStoragePoolCmdTest.java    |  59 ++
 .../storage/UpdateObjectStoragePoolCmdTest.java    |  85 +++
 client/pom.xml                                     |  15 +
 ...taStoreProviderManager.java => BucketInfo.java} |  16 +-
 .../subsystem/api/storage/DataStoreManager.java    |   4 +
 .../subsystem/api/storage/DataStoreProvider.java   |   2 +-
 .../api/storage/DataStoreProviderManager.java      |   2 +
 .../api/storage/ObjectStorageService.java          |  16 +-
 ...oviderManager.java => ObjectStoreProvider.java} |  15 +-
 .../api/storage/PrimaryDataStoreParameters.java    |  10 +
 .../object/ObjectStoreEntity.java}                 |  30 +-
 .../java/com/cloud/storage/StorageManager.java     |   3 +
 .../java/com/cloud/template/TemplateManager.java   |   3 +-
 engine/pom.xml                                     |   1 +
 .../src/main/java/com/cloud/host/HostTagVO.java    |  16 +
 .../src/main/java/com/cloud/host/HostVO.java       |  24 +-
 .../src/main/java/com/cloud/host/dao/HostDao.java  |   6 +
 .../main/java/com/cloud/host/dao/HostDaoImpl.java  | 103 ++-
 .../main/java/com/cloud/host/dao/HostTagsDao.java  |  10 +-
 .../java/com/cloud/host/dao/HostTagsDaoImpl.java   |  39 +-
 .../java/com/cloud/network/vpc/NetworkACLVO.java   |   7 +
 .../src/main/java/com/cloud/storage/BucketVO.java  | 257 +++++++
 .../java/com/cloud/storage/StoragePoolTagVO.java   |  28 +
 .../dao/BucketDao.java}                            |  18 +-
 .../java/com/cloud/storage/dao/BucketDaoImpl.java  |  84 +++
 .../com/cloud/storage/dao/StoragePoolTagsDao.java  |   6 +-
 .../cloud/storage/dao/StoragePoolTagsDaoImpl.java  |  25 +-
 .../BucketStatisticsVO.java}                       |  50 +-
 .../dao/BucketStatisticsDao.java}                  |  18 +-
 .../cloud/usage/dao/BucketStatisticsDaoImpl.java   |  67 ++
 .../main/java/com/cloud/usage/dao/UsageDao.java    |   7 +
 .../java/com/cloud/usage/dao/UsageDaoImpl.java     |  71 ++
 .../src/main/java/com/cloud/vm/dao/NicDao.java     |   4 +-
 .../src/main/java/com/cloud/vm/dao/NicDaoImpl.java |  35 +-
 .../apache/cloudstack/secstorage/HeuristicVO.java  | 125 ++++
 .../dao/SecondaryStorageHeuristicDao.java}         |  18 +-
 .../dao/SecondaryStorageHeuristicDaoImpl.java      |  50 ++
 .../storage/datastore/db/ImageStoreDao.java        |   2 +
 .../storage/datastore/db/ImageStoreDaoImpl.java    |  15 +
 .../storage/datastore/db/ObjectStoreDao.java}      |  24 +-
 .../storage/datastore/db/ObjectStoreDaoImpl.java   | 162 +++++
 .../storage/datastore/db/ObjectStoreDetailVO.java} |  57 +-
 .../datastore/db/ObjectStoreDetailsDao.java}       |  17 +-
 .../datastore/db/ObjectStoreDetailsDaoImpl.java    | 104 +++
 .../storage/datastore/db/ObjectStoreVO.java        | 143 ++++
 .../storage/datastore/db/PrimaryDataStoreDao.java  |   8 +-
 .../datastore/db/PrimaryDataStoreDaoImpl.java      |  46 +-
 .../spring-engine-schema-core-daos-context.xml     |   4 +
 .../resources/META-INF/db/schema-41810to41900.sql  |  90 +++
 .../META-INF/db/views/cloud.host_view.sql          | 111 +++
 .../META-INF/db/views/cloud.storage_pool_view.sql  |  68 ++
 .../src/test/java/com/cloud/host/HostVOTest.java   | 145 ++--
 .../manager/ImageStoreProviderManagerImpl.java     |  12 +-
 .../src/test/resources/storageContext.xml          |   4 +
 engine/storage/object/pom.xml                      |  37 +
 .../cloudstack/storage/object/BucketObject.java    | 196 +++++
 .../storage/object/ObjectStorageServiceImpl.java   |  16 +-
 .../manager/ObjectStoreProviderManagerImpl.java    | 111 +++
 .../storage/object/store/ObjectStoreImpl.java      | 184 +++++
 .../store/lifecycle/ObjectStoreLifeCycle.java}     |  18 +-
 .../spring-engine-storage-object-core-context.xml  |  36 +
 .../ObjectStoreProviderManagerImplTest.java        | 117 +++
 .../src/test/resource/testContext.xml              |   0
 .../org.mockito.plugins.MockMaker                  |   0
 .../storage/snapshot/SnapshotServiceImpl.java      |  22 +-
 .../storage/snapshot/SnapshotServiceImplTest.java  |  57 +-
 .../allocator/AbstractStoragePoolAllocator.java    |   4 +
 .../ClusterScopeStoragePoolAllocator.java          |   6 +-
 .../allocator/LocalStoragePoolAllocator.java       |   5 +-
 .../allocator/ZoneWideStoragePoolAllocator.java    |   8 +-
 .../storage/datastore/DataStoreManagerImpl.java    |  17 +
 .../provider/DataStoreProviderManagerImpl.java     |  27 +-
 .../image/datastore/ImageStoreProviderManager.java |   3 +
 .../storage/object/BaseObjectStoreDriverImpl.java  |  81 +++
 .../storage/object/ObjectStoreDriver.java          |  59 ++
 .../object/datastore/ObjectStoreHelper.java        |  72 ++
 .../datastore/ObjectStoreProviderManager.java}     |  20 +-
 .../volume/datastore/PrimaryDataStoreHelper.java   |   2 +-
 .../quota/activationrule/presetvariables/Host.java |  10 +
 .../presetvariables/PresetVariableHelper.java      |  26 +-
 .../activationrule/presetvariables/Storage.java    |  11 +
 .../cloudstack/quota/constant/QuotaTypes.java      |   1 +
 .../presetvariables/PresetVariableHelperTest.java  |  83 ++-
 .../manager/allocator/impl/RandomAllocator.java    |  15 +-
 .../cloudstack/metrics/PrometheusExporterImpl.java |   9 +-
 .../cloudstack/metrics/MetricsServiceImpl.java     |   5 +
 .../response/InfrastructureResponse.java           |   8 +
 plugins/pom.xml                                    |  26 +
 .../shutdown/ShutdownManagerImplTest.java          |  14 +
 plugins/storage/object/minio/pom.xml               |  57 ++
 .../driver/MinIOObjectStoreDriverImpl.java         | 404 +++++++++++
 .../lifecycle/MinIOObjectStoreLifeCycleImpl.java   | 129 ++++
 .../provider/MinIOObjectStoreProviderImpl.java     |  85 +++
 .../storage-object-minio/module.properties         |  18 +
 .../spring-storage-object-minio-context.xml        |  31 +
 .../driver/MinIOObjectStoreDriverImplTest.java     | 122 ++++
 .../provider/MinIOObjectStoreProviderImplTest.java |  50 ++
 plugins/storage/object/simulator/pom.xml           |  57 ++
 .../driver/SimulatorObjectStoreDriverImpl.java     | 139 ++++
 .../SimulatorObjectStoreLifeCycleImpl.java         | 120 ++++
 .../provider/SimulatorObjectStoreProviderImpl.java |  85 +++
 .../storage-object-simulator/module.properties     |  18 +
 .../spring-storage-object-simulator-context.xml    |  31 +
 .../SimulatorObjectStoreProviderImplTest.java      |  50 ++
 .../ElastistorPrimaryDataStoreLifeCycle.java       |   2 +
 .../lifecycle/DateraPrimaryDataStoreLifeCycle.java |   2 +
 .../CloudStackPrimaryDataStoreLifeCycleImpl.java   |   1 +
 .../LinstorPrimaryDataStoreLifeCycleImpl.java      |   2 +
 .../NexentaPrimaryDataStoreLifeCycle.java          |   2 +
 .../ScaleIOPrimaryDataStoreLifeCycle.java          |   2 +
 .../SolidFirePrimaryDataStoreLifeCycle.java        |   2 +
 .../SolidFireSharedPrimaryDataStoreLifeCycle.java  |   2 +
 .../manager/allocator/impl/FirstFitAllocator.java  |  11 +-
 server/src/main/java/com/cloud/api/ApiDBUtils.java |  23 +
 .../main/java/com/cloud/api/ApiResponseHelper.java |  64 +-
 .../java/com/cloud/api/query/QueryManagerImpl.java | 232 +++++-
 .../com/cloud/api/query/ViewResponseHelper.java    |  19 +
 .../com/cloud/api/query/dao/HostJoinDaoImpl.java   |   1 +
 .../cloud/api/query/dao/StoragePoolJoinDao.java    |   3 +
 .../api/query/dao/StoragePoolJoinDaoImpl.java      |  58 ++
 .../java/com/cloud/api/query/vo/HostJoinVO.java    |   7 +
 .../com/cloud/api/query/vo/StoragePoolJoinVO.java  |   7 +
 .../configuration/ConfigurationManagerImpl.java    |  45 +-
 .../deploy/DeploymentPlanningManagerImpl.java      |  14 +-
 .../java/com/cloud/deploy/FirstFitPlanner.java     |   7 +
 .../java/com/cloud/network/NetworkModelImpl.java   |   9 +-
 .../java/com/cloud/network/NetworkServiceImpl.java |  17 +-
 .../cloud/network/vpc/NetworkACLServiceImpl.java   | 131 ++--
 .../java/com/cloud/network/vpc/VpcManagerImpl.java |  14 +-
 .../com/cloud/resource/ResourceManagerImpl.java    |  22 +-
 .../resource/RollingMaintenanceManagerImpl.java    |   7 +-
 .../com/cloud/server/ManagementServerImpl.java     |  27 +
 .../java/com/cloud/storage/StorageManagerImpl.java | 237 ++++++-
 .../com/cloud/storage/VolumeApiServiceImpl.java    |  50 +-
 .../cloud/storage/listener/StoragePoolMonitor.java |   2 +-
 .../cloud/template/HypervisorTemplateAdapter.java  | 264 ++++---
 .../com/cloud/template/TemplateManagerImpl.java    |  19 +-
 .../src/main/java/com/cloud/test/TestAppender.java |   2 +
 .../annotation/AnnotationManagerImpl.java          |   1 +
 .../storage/heuristics/HeuristicRuleHelper.java    | 278 ++++++++
 .../heuristics/presetvariables/Account.java        |  25 +-
 .../storage/heuristics/presetvariables/Domain.java |  20 +-
 .../GenericHeuristicPresetVariable.java            |  33 +-
 .../presetvariables/PresetVariables.java           |  72 ++
 .../presetvariables/SecondaryStorage.java          |  64 ++
 .../heuristics/presetvariables/Snapshot.java       |  32 +-
 .../heuristics/presetvariables/Template.java       |  56 ++
 .../storage/heuristics/presetvariables/Volume.java |  32 +-
 .../storage/object/BucketApiServiceImpl.java       | 304 ++++++++
 .../core/spring-server-core-managers-context.xml   |   1 +
 .../com/cloud/api/query/QueryManagerImplTest.java  |  52 ++
 .../configuration/ConfigurationManagerTest.java    |  10 +-
 .../deploy/DeploymentPlanningManagerImplTest.java  | 211 ++++--
 .../network/vpc/NetworkACLServiceImplTest.java     | 145 ++--
 .../com/cloud/storage/StorageManagerImplTest.java  |  30 +
 .../cloud/storage/VolumeApiServiceImplTest.java    |  89 ++-
 .../storage/listener/StoragePoolMonitorTest.java   |   4 +-
 .../template/HypervisorTemplateAdapterTest.java    | 303 +++++++-
 .../cloud/template/TemplateManagerImplTest.java    | 203 ++++--
 .../heuristics/HeuristicRuleHelperTest.java        | 205 ++++++
 .../resource/NfsSecondaryStorageResource.java      |  56 +-
 .../resource/NfsSecondaryStorageResourceTest.java  | 101 +++
 systemvm/agent/scripts/ssvm-check.sh               |   6 +-
 test/integration/smoke/test_bucket.py              | 111 +++
 test/integration/smoke/test_global_acls.py         | 245 +++++++
 test/integration/smoke/test_object_stores.py       | 108 +++
 tools/apidoc/gen_toc.py                            |  10 +-
 tools/marvin/marvin/lib/base.py                    |  79 +++
 ui/package-lock.json                               | 790 ++++++++++++++++-----
 ui/package.json                                    |   1 +
 ui/public/locales/en.json                          |  39 +
 ui/public/locales/pt_BR.json                       |   1 +
 ui/src/components/KeyValuePairInput.vue            |  91 +++
 ui/src/components/view/AnnotationsTab.vue          |   1 +
 ui/src/components/view/ListView.vue                |   7 +-
 ui/src/components/view/ObjectStoreBrowser.vue      | 541 ++++++++++++++
 ui/src/config/section/infra.js                     |   2 +
 ui/src/config/section/infra/hosts.js               |   2 +-
 ui/src/config/section/infra/objectStorages.js      |  74 ++
 ui/src/config/section/infra/primaryStorages.js     |   2 +-
 ui/src/config/section/storage.js                   | 129 +++-
 ui/src/core/lazy_lib/icons_use.js                  |   2 +
 ui/src/views/infra/AddObjectStorage.vue            | 171 +++++
 ui/src/views/infra/InfraSummary.vue                |   2 +-
 ui/src/views/network/AclListRulesTab.vue           |   2 +-
 ui/src/views/network/PortForwarding.vue            |   5 -
 ui/src/views/storage/CreateBucket.vue              | 196 +++++
 ui/src/views/storage/UpdateBucket.vue              | 180 +++++
 .../java/com/cloud/usage/UsageManagerImpl.java     | 112 ++-
 .../com/cloud/usage/parser/BucketUsageParser.java  |  78 ++
 .../main/java/com/cloud/utils/net/NetUtils.java    |   1 +
 .../utils/jsinterpreter/TagAsRuleHelper.java       |  51 ++
 237 files changed, 12783 insertions(+), 1150 deletions(-)
 create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/admin/storage/AddObjectStoragePoolCmd.java
 create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/admin/storage/DeleteObjectStoragePoolCmd.java
 create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/admin/storage/ListObjectStoragePoolsCmd.java
 create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/admin/storage/UpdateObjectStoragePoolCmd.java
 create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/admin/storage/heuristics/CreateSecondaryStorageSelectorCmd.java
 create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/admin/storage/heuristics/ListSecondaryStorageSelectorsCmd.java
 create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/admin/storage/heuristics/RemoveSecondaryStorageSelectorCmd.java
 create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/admin/storage/heuristics/UpdateSecondaryStorageSelectorCmd.java
 create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/user/bucket/CreateBucketCmd.java
 create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/user/bucket/DeleteBucketCmd.java
 create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/user/bucket/ListBucketsCmd.java
 create mode 100644 api/src/main/java/org/apache/cloudstack/api/command/user/bucket/UpdateBucketCmd.java
 create mode 100644 api/src/main/java/org/apache/cloudstack/api/response/BucketResponse.java
 create mode 100644 api/src/main/java/org/apache/cloudstack/api/response/ObjectStoreResponse.java
 create mode 100644 api/src/main/java/org/apache/cloudstack/api/response/SecondaryStorageHeuristicsResponse.java
 copy framework/quota/src/main/java/org/apache/cloudstack/quota/activationrule/presetvariables/Host.java => api/src/main/java/org/apache/cloudstack/secstorage/heuristics/Heuristic.java (66%)
 copy framework/quota/src/main/java/org/apache/cloudstack/quota/activationrule/presetvariables/Host.java => api/src/main/java/org/apache/cloudstack/secstorage/heuristics/HeuristicType.java (68%)
 create mode 100644 api/src/main/java/org/apache/cloudstack/storage/object/Bucket.java
 create mode 100644 api/src/main/java/org/apache/cloudstack/storage/object/BucketApiService.java
 copy framework/quota/src/main/java/org/apache/cloudstack/quota/activationrule/presetvariables/Host.java => api/src/main/java/org/apache/cloudstack/storage/object/ObjectStore.java (64%)
 create mode 100644 api/src/test/java/org/apache/cloudstack/api/command/admin/storage/AddObjectStoragePoolCmdTest.java
 create mode 100644 api/src/test/java/org/apache/cloudstack/api/command/admin/storage/DeleteObjectStoragePoolCmdTest.java
 create mode 100644 api/src/test/java/org/apache/cloudstack/api/command/admin/storage/UpdateObjectStoragePoolCmdTest.java
 copy engine/api/src/main/java/org/apache/cloudstack/engine/subsystem/api/storage/{DataStoreProviderManager.java => BucketInfo.java} (64%)
 copy framework/quota/src/main/java/org/apache/cloudstack/quota/activationrule/presetvariables/Host.java => engine/api/src/main/java/org/apache/cloudstack/engine/subsystem/api/storage/ObjectStorageService.java (68%)
 copy engine/api/src/main/java/org/apache/cloudstack/engine/subsystem/api/storage/{DataStoreProviderManager.java => ObjectStoreProvider.java} (64%)
 copy engine/api/src/main/java/org/apache/cloudstack/{engine/subsystem/api/storage/DataStoreProviderManager.java => storage/object/ObjectStoreEntity.java} (57%)
 create mode 100644 engine/schema/src/main/java/com/cloud/storage/BucketVO.java
 copy engine/schema/src/main/java/com/cloud/{host/dao/HostTagsDao.java => storage/dao/BucketDao.java} (70%)
 create mode 100644 engine/schema/src/main/java/com/cloud/storage/dao/BucketDaoImpl.java
 copy engine/schema/src/main/java/com/cloud/{host/HostTagVO.java => usage/BucketStatisticsVO.java} (62%)
 copy engine/schema/src/main/java/com/cloud/{host/dao/HostTagsDao.java => usage/dao/BucketStatisticsDao.java} (70%)
 create mode 100644 engine/schema/src/main/java/com/cloud/usage/dao/BucketStatisticsDaoImpl.java
 create mode 100644 engine/schema/src/main/java/org/apache/cloudstack/secstorage/HeuristicVO.java
 copy engine/schema/src/main/java/{com/cloud/host/dao/HostTagsDao.java => org/apache/cloudstack/secstorage/dao/SecondaryStorageHeuristicDao.java} (68%)
 create mode 100644 engine/schema/src/main/java/org/apache/cloudstack/secstorage/dao/SecondaryStorageHeuristicDaoImpl.java
 copy engine/{api/src/main/java/org/apache/cloudstack/engine/subsystem/api/storage/DataStoreProviderManager.java => schema/src/main/java/org/apache/cloudstack/storage/datastore/db/ObjectStoreDao.java} (55%)
 create mode 100644 engine/schema/src/main/java/org/apache/cloudstack/storage/datastore/db/ObjectStoreDaoImpl.java
 copy engine/schema/src/main/java/{com/cloud/host/HostTagVO.java => org/apache/cloudstack/storage/datastore/db/ObjectStoreDetailVO.java} (59%)
 copy engine/schema/src/main/java/{com/cloud/host/dao/HostTagsDao.java => org/apache/cloudstack/storage/datastore/db/ObjectStoreDetailsDao.java} (67%)
 create mode 100644 engine/schema/src/main/java/org/apache/cloudstack/storage/datastore/db/ObjectStoreDetailsDaoImpl.java
 create mode 100644 engine/schema/src/main/java/org/apache/cloudstack/storage/datastore/db/ObjectStoreVO.java
 create mode 100644 engine/schema/src/main/resources/META-INF/db/views/cloud.host_view.sql
 create mode 100644 engine/schema/src/main/resources/META-INF/db/views/cloud.storage_pool_view.sql
 create mode 100644 engine/storage/object/pom.xml
 create mode 100644 engine/storage/object/src/main/java/org/apache/cloudstack/storage/object/BucketObject.java
 copy framework/quota/src/main/java/org/apache/cloudstack/quota/activationrule/presetvariables/Host.java => engine/storage/object/src/main/java/org/apache/cloudstack/storage/object/ObjectStorageServiceImpl.java (69%)
 create mode 100644 engine/storage/object/src/main/java/org/apache/cloudstack/storage/object/manager/ObjectStoreProviderManagerImpl.java
 create mode 100644 engine/storage/object/src/main/java/org/apache/cloudstack/storage/object/store/ObjectStoreImpl.java
 copy engine/{api/src/main/java/org/apache/cloudstack/engine/subsystem/api/storage/DataStoreProviderManager.java => storage/object/src/main/java/org/apache/cloudstack/storage/object/store/lifecycle/ObjectStoreLifeCycle.java} (59%)
 create mode 100644 engine/storage/object/src/main/resources/META-INF/cloudstack/core/spring-engine-storage-object-core-context.xml
 create mode 100644 engine/storage/object/src/test/java/org/apache/cloudstack/storage/object/manager/ObjectStoreProviderManagerImplTest.java
 copy engine/storage/{volume => object}/src/test/resource/testContext.xml (100%)
 copy {agent => engine/storage/object}/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker (100%)
 create mode 100644 engine/storage/src/main/java/org/apache/cloudstack/storage/object/BaseObjectStoreDriverImpl.java
 create mode 100644 engine/storage/src/main/java/org/apache/cloudstack/storage/object/ObjectStoreDriver.java
 create mode 100644 engine/storage/src/main/java/org/apache/cloudstack/storage/object/datastore/ObjectStoreHelper.java
 copy engine/{api/src/main/java/org/apache/cloudstack/engine/subsystem/api/storage/DataStoreProviderManager.java => storage/src/main/java/org/apache/cloudstack/storage/object/datastore/ObjectStoreProviderManager.java} (59%)
 create mode 100644 plugins/storage/object/minio/pom.xml
 create mode 100644 plugins/storage/object/minio/src/main/java/org/apache/cloudstack/storage/datastore/driver/MinIOObjectStoreDriverImpl.java
 create mode 100644 plugins/storage/object/minio/src/main/java/org/apache/cloudstack/storage/datastore/lifecycle/MinIOObjectStoreLifeCycleImpl.java
 create mode 100644 plugins/storage/object/minio/src/main/java/org/apache/cloudstack/storage/datastore/provider/MinIOObjectStoreProviderImpl.java
 create mode 100644 plugins/storage/object/minio/src/main/resources/META-INF/cloudstack/storage-object-minio/module.properties
 create mode 100644 plugins/storage/object/minio/src/main/resources/META-INF/cloudstack/storage-object-minio/spring-storage-object-minio-context.xml
 create mode 100644 plugins/storage/object/minio/src/test/java/org/apache/cloudstack/storage/datastore/driver/MinIOObjectStoreDriverImplTest.java
 create mode 100644 plugins/storage/object/minio/src/test/java/org/apache/cloudstack/storage/datastore/provider/MinIOObjectStoreProviderImplTest.java
 create mode 100644 plugins/storage/object/simulator/pom.xml
 create mode 100644 plugins/storage/object/simulator/src/main/java/org/apache/cloudstack/storage/datastore/driver/SimulatorObjectStoreDriverImpl.java
 create mode 100644 plugins/storage/object/simulator/src/main/java/org/apache/cloudstack/storage/datastore/lifecycle/SimulatorObjectStoreLifeCycleImpl.java
 create mode 100644 plugins/storage/object/simulator/src/main/java/org/apache/cloudstack/storage/datastore/provider/SimulatorObjectStoreProviderImpl.java
 create mode 100644 plugins/storage/object/simulator/src/main/resources/META-INF/cloudstack/storage-object-simulator/module.properties
 create mode 100644 plugins/storage/object/simulator/src/main/resources/META-INF/cloudstack/storage-object-simulator/spring-storage-object-simulator-context.xml
 create mode 100644 plugins/storage/object/simulator/src/test/java/org/apache/cloudstack/storage/datastore/provider/SimulatorObjectStoreProviderImplTest.java
 create mode 100644 server/src/main/java/org/apache/cloudstack/storage/heuristics/HeuristicRuleHelper.java
 copy framework/quota/src/main/java/org/apache/cloudstack/quota/activationrule/presetvariables/Host.java => server/src/main/java/org/apache/cloudstack/storage/heuristics/presetvariables/Account.java (61%)
 copy framework/quota/src/main/java/org/apache/cloudstack/quota/activationrule/presetvariables/Host.java => server/src/main/java/org/apache/cloudstack/storage/heuristics/presetvariables/Domain.java (69%)
 copy framework/quota/src/main/java/org/apache/cloudstack/quota/activationrule/presetvariables/Storage.java => server/src/main/java/org/apache/cloudstack/storage/heuristics/presetvariables/GenericHeuristicPresetVariable.java (53%)
 create mode 100644 server/src/main/java/org/apache/cloudstack/storage/heuristics/presetvariables/PresetVariables.java
 create mode 100644 server/src/main/java/org/apache/cloudstack/storage/heuristics/presetvariables/SecondaryStorage.java
 copy framework/quota/src/main/java/org/apache/cloudstack/quota/activationrule/presetvariables/Storage.java => server/src/main/java/org/apache/cloudstack/storage/heuristics/presetvariables/Snapshot.java (54%)
 create mode 100644 server/src/main/java/org/apache/cloudstack/storage/heuristics/presetvariables/Template.java
 copy framework/quota/src/main/java/org/apache/cloudstack/quota/activationrule/presetvariables/Storage.java => server/src/main/java/org/apache/cloudstack/storage/heuristics/presetvariables/Volume.java (58%)
 create mode 100644 server/src/main/java/org/apache/cloudstack/storage/object/BucketApiServiceImpl.java
 create mode 100644 server/src/test/java/org/apache/cloudstack/storage/heuristics/HeuristicRuleHelperTest.java
 create mode 100644 test/integration/smoke/test_bucket.py
 create mode 100644 test/integration/smoke/test_global_acls.py
 create mode 100644 test/integration/smoke/test_object_stores.py
 create mode 100644 ui/src/components/KeyValuePairInput.vue
 create mode 100644 ui/src/components/view/ObjectStoreBrowser.vue
 create mode 100644 ui/src/config/section/infra/objectStorages.js
 create mode 100644 ui/src/views/infra/AddObjectStorage.vue
 create mode 100644 ui/src/views/storage/CreateBucket.vue
 create mode 100644 ui/src/views/storage/UpdateBucket.vue
 create mode 100644 usage/src/main/java/com/cloud/usage/parser/BucketUsageParser.java
 create mode 100644 utils/src/main/java/org/apache/cloudstack/utils/jsinterpreter/TagAsRuleHelper.java