You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by re...@apache.org on 2015/11/20 22:28:08 UTC

[3/3] git commit: updated refs/heads/master to 7665bdc

Merge pull request #1083 from borisroman/CLOUDSTACK-9062

CLOUDSTACK-9062: Improve S3 implementation.The S3 implementation is far from finished, this commit focuses on the bases.

 - Upgrade AWS SDK to latest version.
 - Rewrite S3 Template downloader.
 - Rewrite S3Utils utility class.
 - Improve addImageStoreS3 API command.
 - Split various classes for convenience.
 - Various minor improvements and code optimizations.

A side effect of the new AWS SDK is that it, by default, uses the V4 signature. Therefore I added an option to specify the Signer, so it stays compatible with previous versions.

Please review thoroughly, both code inspection and (automated) integration tests. Currently no integration tests are available specifically for S3. Therefore the implementation is needed to be tested manually, for now...

What I tested:
 - Greenfield install -> will download latest systemvm template automatically to S3.
 - Upload a template/iso
 - Download a template/iso
 - Restart of management server -> list available templates -> doesn't download them again if available.

* pr/1083:
  CLOUDSTACK-9062: Improve S3 implementation.

Signed-off-by: Remi Bergsma <gi...@remi.nl>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/7665bdc8
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/7665bdc8
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/7665bdc8

Branch: refs/heads/master
Commit: 7665bdc8156dd0dd6d849add82d713935b96330d
Parents: b3b56e2 5c0366c
Author: Remi Bergsma <gi...@remi.nl>
Authored: Fri Nov 20 22:27:16 2015 +0100
Committer: Remi Bergsma <gi...@remi.nl>
Committed: Fri Nov 20 22:27:17 2015 +0100

----------------------------------------------------------------------
 agent/conf/log4j-cloud.xml.in                   |  12 +-
 api/src/com/cloud/agent/api/storage/Proxy.java  |  72 ---
 api/src/com/cloud/agent/api/to/S3TO.java        | 215 +++----
 api/src/com/cloud/storage/StorageService.java   |  24 +-
 .../org/apache/cloudstack/api/ApiConstants.java |   3 +
 .../admin/storage/AddImageStoreS3CMD.java       | 276 +++++++++
 .../api/command/admin/storage/AddS3Cmd.java     | 264 --------
 .../api/command/admin/storage/ListS3sCmd.java   |  55 --
 .../template/RegisterTemplateCmdByAdmin.java    |   2 +-
 client/tomcatconf/commands.properties.in        |   5 +-
 client/tomcatconf/log4j-cloud.xml.in            |  10 +
 core/src/com/cloud/resource/ServerResource.java |   2 +-
 .../template/HttpTemplateDownloader.java        |   2 +-
 .../storage/template/S3TemplateDownloader.java  | 483 ++++++---------
 .../storage/template/TemplateDownloader.java    |  33 +-
 .../storage/command/DownloadCommand.java        |   2 +-
 .../api/storage/DataStoreProvider.java          |  16 +-
 .../storage/image/TemplateServiceImpl.java      |   2 +-
 .../datastore/ObjectInDataStoreManager.java     |  10 +-
 .../storage/image/BaseImageStoreDriverImpl.java |   2 +-
 framework/rest/pom.xml                          |  10 +-
 packaging/centos7/tomcat7/log4j-cloud.xml       |  10 +
 .../kvm/storage/KVMStorageProcessor.java        |  18 +-
 .../resource/XenServerStorageProcessor.java     |   4 +-
 plugins/storage/image/s3/pom.xml                |   2 +-
 .../driver/S3ImageStoreDriverImpl.java          |  31 +-
 .../lifecycle/S3ImageStoreLifeCycleImpl.java    |   6 +-
 .../provider/S3ImageStoreProviderImpl.java      |   7 +-
 pom.xml                                         |   3 +-
 scripts/vm/hypervisor/xenserver/s3xenserver     |   2 +-
 server/conf/log4j-cloud.xml.in                  |  10 +
 .../com/cloud/server/ManagementServerImpl.java  |   6 +-
 .../com/cloud/storage/StorageManagerImpl.java   |  25 +-
 .../storage/download/DownloadMonitorImpl.java   |   2 +-
 .../resource/NfsSecondaryStorageResource.java   |  30 +-
 .../resource/SecondaryStorageResource.java      |   3 +-
 .../SecondaryStorageResourceHandler.java        |   2 +
 .../storage/template/DownloadManager.java       |   2 +-
 .../storage/template/DownloadManagerImpl.java   |   2 +-
 systemvm/conf.dom0/log4j-cloud.xml.in           |  10 +
 systemvm/conf/log4j-cloud.xml                   |  10 +
 utils/pom.xml                                   |   5 +
 .../src/main/java/com/cloud/utils/S3Utils.java  | 619 -------------------
 .../java/com/cloud/utils/net/HTTPUtils.java     | 143 +++++
 .../main/java/com/cloud/utils/net/Proxy.java    |  69 +++
 .../cloud/utils/storage/S3/ClientOptions.java   |  42 ++
 .../utils/storage/S3/FileNamingStrategy.java    |  25 +
 .../utils/storage/S3/ObjectNamingStrategy.java  |  27 +
 .../com/cloud/utils/storage/S3/S3Utils.java     | 216 +++++++
 .../utils/rest/RESTServiceConnectorTest.java    |   4 +-
 50 files changed, 1300 insertions(+), 1535 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7665bdc8/pom.xml
----------------------------------------------------------------------