You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bh...@apache.org on 2012/12/24 01:57:37 UTC
[3/50] [abbrv] git commit: Merge branch 'master' into test-merge-api
Merge branch 'master' into test-merge-api
Conflicts:
api/src/com/cloud/agent/api/BackupSnapshotCommand.java
api/src/com/cloud/agent/api/storage/PrimaryStorageDownloadCommand.java
api/src/com/cloud/agent/api/to/PortForwardingRuleTO.java
api/src/com/cloud/network/NetworkService.java
api/src/com/cloud/resource/ResourceService.java
api/src/org/apache/cloudstack/api/ApiConstants.java
api/src/org/apache/cloudstack/api/ResponseGenerator.java
api/src/org/apache/cloudstack/api/response/SSHKeyPairResponse.java
client/tomcatconf/commands.properties.in
core/src/com/cloud/storage/SnapshotVO.java
pom.xml
server/src/com/cloud/api/ApiDispatcher.java
server/src/com/cloud/api/ApiResponseHelper.java
server/src/com/cloud/api/ApiServer.java
server/src/com/cloud/configuration/ConfigurationManagerImpl.java
server/src/com/cloud/network/NetworkManagerImpl.java
server/src/com/cloud/network/rules/RulesManagerImpl.java
server/src/com/cloud/offerings/NetworkOfferingVO.java
server/src/com/cloud/resource/ResourceManagerImpl.java
server/src/com/cloud/upgrade/dao/Upgrade40to41.java
server/src/com/cloud/vm/UserVmManagerImpl.java
server/test/com/cloud/vpc/MockNetworkManagerImpl.java
setup/db/create-schema.sql
setup/db/db/schema-40to410.sql
Signed-off-by: Rohit Yadav <bh...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/296b49c2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/296b49c2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/296b49c2
Branch: refs/heads/api_refactoring
Commit: 296b49c2f83e0e778de9e2c80fbd2f9d36d8c71d
Parents: 38225a1 f0c3b4c
Author: Rohit Yadav <bh...@apache.org>
Authored: Sun Dec 23 13:54:46 2012 -0800
Committer: Rohit Yadav <bh...@apache.org>
Committed: Sun Dec 23 13:54:46 2012 -0800
----------------------------------------------------------------------
.gitignore | 2 +
LICENSE | 3474 +++++++--------
NOTICE | 146 +-
.../src/com/cloud/agent/MetricsCollector.java | 107 -
.../src/com/cloud/agent/MockVmMetrics.java | 205 -
.../src/com/cloud/agent/MultiCaster.java | 152 -
.../src/com/cloud/agent/MultiCasterListener.java | 22 -
.../src/com/cloud/agent/SimulatorCmd.java | 37 -
.../src/com/cloud/agent/SimulatorMigrateVmCmd.java | 83 -
.../com/cloud/agent/manager/MockAgentManager.java | 66 -
.../cloud/agent/manager/MockAgentManagerImpl.java | 468 --
.../cloud/agent/manager/MockStorageManager.java | 91 -
.../agent/manager/MockStorageManagerImpl.java | 1298 ------
.../src/com/cloud/agent/manager/MockVmManager.java | 83 -
.../com/cloud/agent/manager/MockVmManagerImpl.java | 615 ---
.../src/com/cloud/agent/manager/SimulatorInfo.java | 59 -
.../com/cloud/agent/manager/SimulatorManager.java | 66 -
.../cloud/agent/manager/SimulatorManagerImpl.java | 336 --
.../com/cloud/api/commands/ConfigureSimulator.java | 82 -
.../configuration/SimulatorComponentLibrary.java | 50 -
.../src/com/cloud/resource/AgentResourceBase.java | 284 --
.../com/cloud/resource/AgentRoutingResource.java | 363 --
.../com/cloud/resource/AgentStorageResource.java | 117 -
.../com/cloud/resource/SimulatorDiscoverer.java | 336 --
.../resource/SimulatorSecondaryDiscoverer.java | 151 -
.../server/ManagementServerSimulatorImpl.java | 32 -
.../com/cloud/simulator/MockConfigurationVO.java | 121 -
.../src/com/cloud/simulator/MockHost.java | 62 -
.../src/com/cloud/simulator/MockHostVO.java | 276 --
.../src/com/cloud/simulator/MockSecStorageVO.java | 76 -
.../com/cloud/simulator/MockSecurityRulesVO.java | 104 -
.../src/com/cloud/simulator/MockStoragePoolVO.java | 102 -
.../src/com/cloud/simulator/MockVMVO.java | 130 -
.../src/com/cloud/simulator/MockVm.java | 45 -
.../src/com/cloud/simulator/MockVolumeVO.java | 118 -
.../src/com/cloud/simulator/SimulatorGuru.java | 59 -
.../cloud/simulator/SimulatorRuntimeException.java | 41 -
.../cloud/simulator/dao/MockConfigurationDao.java | 27 -
.../simulator/dao/MockConfigurationDaoImpl.java | 142 -
.../src/com/cloud/simulator/dao/MockHostDao.java | 27 -
.../com/cloud/simulator/dao/MockHostDaoImpl.java | 55 -
.../com/cloud/simulator/dao/MockSecStorageDao.java | 24 -
.../cloud/simulator/dao/MockSecStorageDaoImpl.java | 42 -
.../cloud/simulator/dao/MockSecurityRulesDao.java | 27 -
.../simulator/dao/MockSecurityRulesDaoImpl.java | 60 -
.../cloud/simulator/dao/MockStoragePoolDao.java | 25 -
.../simulator/dao/MockStoragePoolDaoImpl.java | 57 -
.../src/com/cloud/simulator/dao/MockVMDao.java | 29 -
.../src/com/cloud/simulator/dao/MockVMDaoImpl.java | 92 -
.../src/com/cloud/simulator/dao/MockVolumeDao.java | 30 -
.../com/cloud/simulator/dao/MockVolumeDaoImpl.java | 101 -
agent/src/com/cloud/agent/AgentShell.java | 2 +
.../com/cloud/agent/api/BackupSnapshotCommand.java | 18 +-
.../CreatePrivateTemplateFromSnapshotCommand.java | 7 +-
.../CreatePrivateTemplateFromVolumeCommand.java | 13 +-
.../agent/api/CreateVolumeFromSnapshotCommand.java | 7 +-
.../agent/api/DeleteSnapshotBackupCommand.java | 8 +
.../agent/api/DeleteTemplateFromS3Command.java | 106 +
.../agent/api/DownloadSnapshotFromS3Command.java | 61 +
...oadTemplateFromS3ToSecondaryStorageCommand.java | 66 +
api/src/com/cloud/agent/api/SnapshotCommand.java | 16 +-
.../cloud/agent/api/UpgradeSnapshotCommand.java | 6 +-
...oadTemplateToS3FromSecondaryStorageCommand.java | 121 +
.../api/downloadSnapshotFromSwiftCommand.java | 2 +-
.../api/storage/PrimaryStorageDownloadCommand.java | 16 +-
.../cloud/agent/api/to/PortForwardingRuleTO.java | 4 +-
api/src/com/cloud/agent/api/to/S3TO.java | 252 ++
api/src/com/cloud/api/commands/AddS3Cmd.java | 218 +
api/src/com/cloud/api/commands/ListS3sCmd.java | 112 +
api/src/com/cloud/api/response/S3Response.java | 210 +
api/src/com/cloud/network/Network.java | 11 +-
api/src/com/cloud/network/NetworkService.java | 2 +-
api/src/com/cloud/offering/NetworkOffering.java | 2 +
api/src/com/cloud/resource/ResourceService.java | 8 +
api/src/com/cloud/storage/S3.java | 51 +
.../org/apache/cloudstack/api/ApiConstants.java | 13 +-
.../apache/cloudstack/api/ResponseGenerator.java | 5 +-
.../command/user/address/AssociateIPAddrCmd.java | 3 +-
.../agent/api/test/BackupSnapshotAnswerTest.java | 2 +-
.../agent/api/test/BackupSnapshotCommandTest.java | 6 +-
.../cloud/agent/api/test/SnapshotCommandTest.java | 96 +-
.../com/cloud/bridge/io/S3CAStorBucketAdapter.java | 56 +-
.../WEB-INF/classes/resources/messages.properties | 15 +-
.../classes/resources/messages_fr_FR.properties | 2 -
.../classes/resources/messages_ja.properties | 2 -
.../classes/resources/messages_pt_BR.properties | 2 -
.../classes/resources/messages_ru_RU.properties | 2 -
.../classes/resources/messages_zh_CN.properties | 2 -
client/tomcatconf/commands.properties.in | 6 +-
client/tomcatconf/db-enc.properties.in | 3 -
client/tomcatconf/db.properties.in | 3 -
core/pom.xml | 5 +
.../cloud/agent/api/DirectNetworkUsageCommand.java | 23 +-
.../network/resource/TrafficSentinelResource.java | 39 +-
core/src/com/cloud/storage/S3VO.java | 208 +
core/src/com/cloud/storage/SnapshotVO.java | 12 +
core/src/com/cloud/storage/VMTemplateS3VO.java | 203 +
.../resource/NfsSecondaryStorageResource.java | 435 ++-
.../src/com/xensource/xenapi/APIVersion.java | 32 +-
.../src/com/xensource/xenapi/Auth.java | 14 +-
.../src/com/xensource/xenapi/Blob.java | 67 +-
.../src/com/xensource/xenapi/Bond.java | 199 +-
.../src/com/xensource/xenapi/Connection.java | 36 +-
.../src/com/xensource/xenapi/Console.java | 19 +-
.../src/com/xensource/xenapi/Crashdump.java | 19 +-
.../src/com/xensource/xenapi/DRTask.java | 303 ++
.../src/com/xensource/xenapi/DataSource.java | 21 +-
.../src/com/xensource/xenapi/Event.java | 64 +-
.../src/com/xensource/xenapi/GPUGroup.java | 445 ++
.../src/com/xensource/xenapi/Host.java | 186 +-
.../src/com/xensource/xenapi/HostCpu.java | 19 +-
.../src/com/xensource/xenapi/HostCrashdump.java | 19 +-
.../src/com/xensource/xenapi/HostMetrics.java | 19 +-
.../src/com/xensource/xenapi/HostPatch.java | 21 +-
.../src/com/xensource/xenapi/Marshalling.java | 8 +-
.../src/com/xensource/xenapi/Message.java | 37 +-
.../src/com/xensource/xenapi/Network.java | 88 +-
.../src/com/xensource/xenapi/PBD.java | 19 +-
.../src/com/xensource/xenapi/PCI.java | 418 ++
.../src/com/xensource/xenapi/PGPU.java | 349 ++
.../src/com/xensource/xenapi/PIF.java | 271 +-
.../src/com/xensource/xenapi/PIFMetrics.java | 19 +-
.../src/com/xensource/xenapi/Pool.java | 64 +-
.../src/com/xensource/xenapi/PoolPatch.java | 91 +-
.../src/com/xensource/xenapi/Role.java | 19 +-
.../XenServerJava/src/com/xensource/xenapi/SM.java | 21 +-
.../XenServerJava/src/com/xensource/xenapi/SR.java | 230 +-
.../src/com/xensource/xenapi/Secret.java | 91 +-
.../src/com/xensource/xenapi/Session.java | 19 +-
.../src/com/xensource/xenapi/Subject.java | 19 +-
.../src/com/xensource/xenapi/Task.java | 23 +-
.../src/com/xensource/xenapi/Tunnel.java | 19 +-
.../src/com/xensource/xenapi/Types.java | 2393 +++++++++-
.../src/com/xensource/xenapi/User.java | 19 +-
.../src/com/xensource/xenapi/VBD.java | 19 +-
.../src/com/xensource/xenapi/VBDMetrics.java | 19 +-
.../src/com/xensource/xenapi/VDI.java | 343 ++-
.../src/com/xensource/xenapi/VGPU.java | 446 ++
.../src/com/xensource/xenapi/VIF.java | 358 ++-
.../src/com/xensource/xenapi/VIFMetrics.java | 19 +-
.../src/com/xensource/xenapi/VLAN.java | 19 +-
.../XenServerJava/src/com/xensource/xenapi/VM.java | 665 +++-
.../src/com/xensource/xenapi/VMAppliance.java | 655 +++
.../src/com/xensource/xenapi/VMGuestMetrics.java | 19 +-
.../src/com/xensource/xenapi/VMMetrics.java | 19 +-
.../src/com/xensource/xenapi/VMPP.java | 51 +-
.../src/com/xensource/xenapi/VTPM.java | 19 +-
.../src/com/xensource/xenapi/XenAPIObject.java | 8 +-
docs/README.txt | 2 +-
docs/en-US/API_Developers_Guide.ent | 21 -
docs/en-US/API_Developers_Guide.xml | 56 -
docs/en-US/Book_Info_Release_Notes_4-0.xml | 39 +
docs/en-US/Book_Info_Release_Notes_4.0.xml | 39 -
docs/en-US/Developers_Guide.ent | 21 +
docs/en-US/Developers_Guide.xml | 58 +
docs/en-US/Release_Notes.xml | 2 +-
docs/en-US/about-password-encryption.xml | 4 +-
docs/en-US/added-API-commands-4-0.xml | 164 +
docs/en-US/added-API-commands-4.0.xml | 164 -
docs/en-US/building-devcloud.xml | 32 +
docs/en-US/building-prerequisites.xml | 66 +
docs/en-US/building-with-maven-deploy.xml | 39 +
docs/en-US/building-with-maven-steps.xml | 33 +
docs/en-US/building-with-maven.xml | 32 +
docs/en-US/change-database-config.xml | 4 +-
docs/en-US/change-database-password.xml | 76 +
docs/en-US/changed-apicommands-4-0.xml | 268 ++
docs/en-US/changed-apicommands-4.0.xml | 268 --
docs/en-US/devcloud-usage-mode.xml | 60 +
docs/en-US/devcloud.xml | 38 +
docs/en-US/developer-introduction.xml | 2 +-
docs/en-US/images/DevCloud-hostonly.png | Bin 0 -> 39311 bytes
docs/en-US/images/DevCloud.png | Bin 0 -> 33529 bytes
.../lb-policy-pfwd-rule-usage-record-format.xml | 40 +
...cy-port-forwarding-rule-usage-record-format.xml | 40 -
docs/en-US/manage-cloud.xml | 3 +-
.../en-US/management-server-install-nfs-shares.xml | 8 +-
docs/en-US/management-server-install-systemvm.xml | 3 +-
docs/en-US/marvin.xml | 32 +
docs/en-US/nfs-shares-on-management-server.xml | 7 +-
docs/en-US/ongoing-config-of-ext-firewalls-lb.xml | 34 +
...guration-of-external-firewalls-loadbalancer.xml | 34 -
docs/en-US/primary-storage.xml | 3 +-
docs/en-US/provisioning-steps.xml.orig | 42 -
docs/en-US/secondary-storage.xml | 3 +-
docs/en-US/source-build.xml | 49 +
docs/en-US/tools.xml | 29 +
...ooting-dataloss-on-exported-primary-storage.xml | 45 -
...ing-maintenance-mode-not-working-on-vCenter.xml | 43 -
docs/en-US/troubleshooting.xml | 6 +-
.../troublesht-dataloss-on-exp-primary-storage.xml | 45 +
.../troublesht-mtn-mode-not-working-on-vCenter.xml | 43 +
docs/en-US/usage-record-format.xml | 2 +-
docs/en-US/whats-new.xml | 4 +-
docs/publican-devguide.cfg | 2 +-
.../debian/config/etc/init.d/cloud-early-config | 6 +
patches/systemvm/debian/config/etc/sysctl.conf | 2 +-
.../debian/config/opt/cloud/bin/ipassoc.sh | 4 +-
.../debian/config/opt/cloud/bin/passwd_server | 2 +-
patches/systemvm/debian/config/root/edithosts.sh | 2 +-
.../config/root/redundant_router/disable_pubip.sh | 2 -
.../root/redundant_router/enable_pubip.sh.templ | 4 +-
.../config/root/redundant_router/master.sh.templ | 6 +
.../config/root/redundant_router/services.sh | 68 +
.../systemvm/debian/config/root/savepassword.sh | 2 +-
.../user-concentrated-pod/build.xml | 128 -
.../deployment-planners/user-dispersing/build.xml | 128 -
plugins/file-systems/netapp/build.xml | 129 -
plugins/host-allocators/random/build.xml | 128 -
plugins/hypervisors/kvm/build.xml | 137 -
.../kvm/resource/LibvirtComputingResource.java | 148 +-
.../kvm/storage/KVMStoragePoolManager.java | 87 +-
.../kvm/storage/LibvirtStorageAdaptor.java | 46 +-
.../hypervisor/kvm/storage/StorageAdaptor.java | 4 -
plugins/hypervisors/ovm/build.xml | 136 -
plugins/hypervisors/simulator/pom.xml | 45 +
.../simulator/resources/components-simulator.xml | 98 +
.../src/com/cloud/agent/MetricsCollector.java | 107 +
.../src/com/cloud/agent/MockVmMetrics.java | 204 +
.../simulator/src/com/cloud/agent/MultiCaster.java | 152 +
.../src/com/cloud/agent/MultiCasterListener.java | 22 +
.../src/com/cloud/agent/SimulatorCmd.java | 37 +
.../src/com/cloud/agent/SimulatorMigrateVmCmd.java | 83 +
.../com/cloud/agent/manager/MockAgentManager.java | 64 +
.../cloud/agent/manager/MockAgentManagerImpl.java | 459 ++
.../cloud/agent/manager/MockStorageManager.java | 91 +
.../agent/manager/MockStorageManagerImpl.java | 1298 ++++++
.../src/com/cloud/agent/manager/MockVmManager.java | 84 +
.../com/cloud/agent/manager/MockVmManagerImpl.java | 642 +++
.../src/com/cloud/agent/manager/SimulatorInfo.java | 59 +
.../com/cloud/agent/manager/SimulatorManager.java | 65 +
.../cloud/agent/manager/SimulatorManagerImpl.java | 334 ++
.../com/cloud/api/commands/ConfigureSimulator.java | 82 +
.../configuration/SimulatorComponentLibrary.java | 50 +
.../src/com/cloud/resource/AgentResourceBase.java | 284 ++
.../com/cloud/resource/AgentRoutingResource.java | 363 ++
.../com/cloud/resource/AgentStorageResource.java | 117 +
.../com/cloud/resource/SimulatorDiscoverer.java | 336 ++
.../resource/SimulatorSecondaryDiscoverer.java | 151 +
.../server/ManagementServerSimulatorImpl.java | 32 +
.../com/cloud/simulator/MockConfigurationVO.java | 120 +
.../src/com/cloud/simulator/MockHost.java | 62 +
.../src/com/cloud/simulator/MockHostVO.java | 276 ++
.../src/com/cloud/simulator/MockSecStorageVO.java | 76 +
.../com/cloud/simulator/MockSecurityRulesVO.java | 104 +
.../src/com/cloud/simulator/MockStoragePoolVO.java | 102 +
.../src/com/cloud/simulator/MockVMVO.java | 140 +
.../simulator/src/com/cloud/simulator/MockVm.java | 47 +
.../src/com/cloud/simulator/MockVolumeVO.java | 118 +
.../src/com/cloud/simulator/SimulatorGuru.java | 59 +
.../cloud/simulator/SimulatorRuntimeException.java | 41 +
.../cloud/simulator/dao/MockConfigurationDao.java | 27 +
.../simulator/dao/MockConfigurationDaoImpl.java | 142 +
.../src/com/cloud/simulator/dao/MockHostDao.java | 27 +
.../com/cloud/simulator/dao/MockHostDaoImpl.java | 55 +
.../com/cloud/simulator/dao/MockSecStorageDao.java | 24 +
.../cloud/simulator/dao/MockSecStorageDaoImpl.java | 42 +
.../cloud/simulator/dao/MockSecurityRulesDao.java | 27 +
.../simulator/dao/MockSecurityRulesDaoImpl.java | 60 +
.../cloud/simulator/dao/MockStoragePoolDao.java | 25 +
.../simulator/dao/MockStoragePoolDaoImpl.java | 57 +
.../src/com/cloud/simulator/dao/MockVMDao.java | 29 +
.../src/com/cloud/simulator/dao/MockVMDaoImpl.java | 92 +
.../src/com/cloud/simulator/dao/MockVolumeDao.java | 30 +
.../com/cloud/simulator/dao/MockVolumeDaoImpl.java | 101 +
plugins/hypervisors/vmware/build.xml | 135 -
plugins/hypervisors/xen/build.xml | 135 -
.../xen/discoverer/XcpServerDiscoverer.java | 27 +-
.../hypervisor/xen/resource/CitrixHelper.java | 143 +
.../xen/resource/CitrixResourceBase.java | 108 +-
.../xen/resource/XenServer56Resource.java | 5 -
.../xen/resource/XenServer610Resource.java | 58 +
plugins/network-elements/dns-notifier/pom.xml | 50 +
.../dns-notifier/resources/components-example.xml | 220 +
.../cloudstack/network/element/DnsNotifier.java | 143 +
.../elastic-loadbalancer/build.xml | 129 -
plugins/network-elements/f5/build.xml | 129 -
.../element/F5ExternalLoadBalancerElement.java | 2 +-
plugins/network-elements/juniper-srx/build.xml | 129 -
.../element/JuniperSRXExternalFirewallElement.java | 3 +-
.../network-elements/midokura-midonet/build.xml | 17 -
plugins/network-elements/netscaler/build.xml | 129 -
.../cloud/network/element/NetscalerElement.java | 3 +-
plugins/network-elements/nicira-nvp/build.xml | 129 -
.../network/guru/NiciraNvpGuestNetworkGuru.java | 8 +-
.../cloud/network/nicira/DestinationNatRule.java | 24 -
.../src/com/cloud/network/nicira/Match.java | 122 +-
.../src/com/cloud/network/nicira/NatRule.java | 169 +
.../src/com/cloud/network/nicira/NiciraNvpApi.java | 146 +-
.../com/cloud/network/nicira/SourceNatRule.java | 27 -
.../cloud/network/resource/NiciraNvpResource.java | 350 +-
.../guru/NiciraNvpGuestNetworkGuruTest.java | 343 ++
.../test/com/cloud/network/nicira/NatRuleTest.java | 47 +
.../com/cloud/network/nicira/NiciraNvpApiTest.java | 306 ++
.../network/resource/NiciraNvpResourceTest.java | 830 ++++
plugins/network-elements/ovs/build.xml | 129 -
.../src/com/cloud/network/element/OvsElement.java | 13 +-
plugins/pom.xml | 13 +
plugins/storage-allocators/random/build.xml | 128 -
plugins/user-authenticators/ldap/build.xml | 128 -
plugins/user-authenticators/md5/build.xml | 128 -
plugins/user-authenticators/plain-text/build.xml | 128 -
pom.xml | 9 +-
scripts/storage/qcow2/create_private_template.sh | 8 +-
scripts/storage/qcow2/createtmplt.sh | 6 +
scripts/storage/qcow2/createvolume.sh | 8 +-
scripts/vm/hypervisor/xenserver/s3xen | 297 ++
scripts/vm/hypervisor/xenserver/xenserver56/patch | 2 +
.../vm/hypervisor/xenserver/xenserver56fp1/patch | 2 +
scripts/vm/hypervisor/xenserver/xenserver60/patch | 2 +
scripts/vm/network/security_group.py | 8 +-
server/pom.xml | 6 +-
server/src/com/cloud/api/ApiDBUtils.java | 8 +
server/src/com/cloud/api/ApiDispatcher.java | 16 +-
server/src/com/cloud/api/ApiResponseHelper.java | 99 +-
server/src/com/cloud/api/ApiServer.java | 23 +-
server/src/com/cloud/api/ApiServlet.java | 5 +-
.../cloud/api/commands/AddTrafficMonitorCmd.java | 14 +
server/src/com/cloud/api/doc/ApiXmlDocWriter.java | 5 +
.../cloud/cluster/ClusterServiceServletImpl.java | 20 +-
server/src/com/cloud/configuration/Config.java | 9 +-
.../configuration/ConfigurationManagerImpl.java | 112 +-
.../configuration/DefaultComponentLibrary.java | 6 +
server/src/com/cloud/maint/UpgradeManagerImpl.java | 2 +
.../src/com/cloud/network/NetworkManagerImpl.java | 350 +-
.../com/cloud/network/NetworkUsageManagerImpl.java | 28 +-
server/src/com/cloud/network/dao/NetworkDao.java | 2 +
.../src/com/cloud/network/dao/NetworkDaoImpl.java | 27 +-
.../network/element/VpcVirtualRouterElement.java | 2 +-
.../com/cloud/network/guru/GuestNetworkGuru.java | 8 +-
.../router/VirtualNetworkApplianceManagerImpl.java | 71 +-
.../com/cloud/network/rules/RulesManagerImpl.java | 21 +-
.../src/com/cloud/offerings/NetworkOfferingVO.java | 18 +-
.../com/cloud/resource/ResourceManagerImpl.java | 17 +
.../com/cloud/server/ConfigurationServerImpl.java | 134 +-
.../src/com/cloud/storage/StorageManagerImpl.java | 21 +-
server/src/com/cloud/storage/dao/S3Dao.java | 29 +
server/src/com/cloud/storage/dao/S3DaoImpl.java | 47 +
.../src/com/cloud/storage/dao/VMTemplateDao.java | 2 +
.../com/cloud/storage/dao/VMTemplateDaoImpl.java | 15 +-
.../src/com/cloud/storage/dao/VMTemplateS3Dao.java | 36 +
.../com/cloud/storage/dao/VMTemplateS3DaoImpl.java | 101 +
server/src/com/cloud/storage/s3/S3Manager.java | 63 +
server/src/com/cloud/storage/s3/S3ManagerImpl.java | 669 +++
.../cloud/storage/snapshot/SnapshotManager.java | 2 +
.../storage/snapshot/SnapshotManagerImpl.java | 110 +-
server/src/com/cloud/template/S3SyncTask.java | 94 +
.../com/cloud/template/TemplateManagerImpl.java | 90 +-
.../src/com/cloud/upgrade/dao/Upgrade40to41.java | 39 +
server/src/com/cloud/vm/UserVmManagerImpl.java | 132 +-
server/src/com/cloud/vm/dao/NicDao.java | 2 +
server/src/com/cloud/vm/dao/NicDaoImpl.java | 8 +
.../com/cloud/network/MockNetworkManagerImpl.java | 42 +-
.../test/com/cloud/vpc/MockNetworkManagerImpl.java | 35 +-
.../test/com/cloud/vpc/dao/MockNetworkDaoImpl.java | 9 +
setup/db/create-schema-premium.sql | 1 +
setup/db/create-schema-simulator.sql | 1 +
setup/db/create-schema.sql | 35 +
setup/db/db/schema-302to40.sql | 1 +
setup/db/db/schema-40to410.sql | 1 -
test/integration/component/test_snapshots.py | 24 +-
test/integration/component/test_templates.py | 37 +
test/integration/smoke/test_iso.py | 69 +-
test/integration/smoke/test_network.py | 14 +-
test/integration/smoke/test_routers.py | 4 +-
test/integration/smoke/test_templates.py | 58 +-
test/integration/smoke/test_vm_life_cycle.py | 51 +-
test/integration/smoke/test_volumes.py | 8 +-
tools/apidoc/gen_toc.py | 1 +
tools/cli/cloudmonkey/cloudmonkey.py | 84 +-
tools/cli/cloudmonkey/common.py | 1 +
tools/cli/setup.py | 4 +-
tools/devcloud/README.md | 102 +
tools/devcloud/basebuild/Vagrantfile | 51 -
.../basebuild/puppet-devcloudinitial/Modulefile | 8 -
.../basebuild/puppet-devcloudinitial/files/grub | 52 -
.../puppet-devcloudinitial/files/interfaces | 33 -
.../puppet-devcloudinitial/files/network.conf | 1 -
.../puppet-devcloudinitial/files/xen-defaults | 18 -
.../basebuild/puppet-devcloudinitial/files/xend | 188 -
.../basebuild/puppet-devcloudinitial/init.pp | 18 -
.../puppet-devcloudinitial/manifests/init.pp | 106 -
tools/devcloud/build_vagrant_basebox.sh | 99 -
tools/devcloud/devcloud.cfg | 30 -
tools/devcloud/devcloud.sql | 8 +
tools/devcloud/devcloudbox/Vagrantfile | 51 -
.../devcloudbox/puppet-devcloud/Modulefile | 8 -
.../puppet-devcloud/files/builddevcloud.sh | 28 -
.../puppet-devcloud/files/configebtables.sh | 21 -
.../puppet-devcloud/files/configlocalstorage.sh | 25 -
.../devcloudbox/puppet-devcloud/files/configvnc.sh | 25 -
.../devcloudbox/puppet-devcloud/files/exports | 18 -
.../puppet-devcloud/files/installmaven.sh | 22 -
.../puppet-devcloud/files/iptables.save | 30 -
.../puppet-devcloud/files/startdevcloud.sh | 23 -
.../puppet-devcloud/files/updatecode.sh | 27 -
tools/devcloud/devcloudbox/puppet-devcloud/init.pp | 18 -
.../devcloudbox/puppet-devcloud/manifests/init.pp | 348 --
tools/devcloud/devcloudsetup.sh | 151 -
tools/devcloud/src/.rvmrc | 24 +
tools/devcloud/src/Gemfile | 19 +
tools/devcloud/src/Vagrantfile | 58 +
tools/devcloud/src/boxit.sh | 21 +
tools/devcloud/src/deps/boxer.sh | 184 +
tools/devcloud/src/deps/boxes/basebox-build/.rvmrc | 24 +
.../devcloud/src/deps/boxes/basebox-build/Gemfile | 20 +
.../src/deps/boxes/basebox-build/Vagrantfile | 17 +
.../src/deps/boxes/basebox-build/definition.rb | 59 +
.../src/deps/boxes/basebox-build/postinstall.sh | 42 +
.../src/deps/boxes/basebox-build/preseed.cfg | 122 +
tools/devcloud/src/deps/boxes/xenbox-build/.rvmrc | 24 +
tools/devcloud/src/deps/boxes/xenbox-build/Gemfile | 19 +
.../src/deps/boxes/xenbox-build/Vagrantfile | 52 +
.../boxes/xenbox-build/puppet/manifests/site.pp | 16 +
.../puppet/manifests/vagrant-devcloudinitial.pp | 18 +
.../puppet/modules/devcloudinitial/Modulefile | 8 +
.../puppet/modules/devcloudinitial/files/grub | 52 +
.../modules/devcloudinitial/files/interfaces | 45 +
.../modules/devcloudinitial/files/iptables.save | 30 +
.../modules/devcloudinitial/files/xen-defaults | 18 +
.../puppet/modules/devcloudinitial/files/xend | 188 +
.../modules/devcloudinitial/manifests/init.pp | 119 +
.../src/puppet/manifests/vagrant-devcloud.pp | 18 +
.../src/puppet/modules/devcloud/Modulefile | 8 +
.../src/puppet/modules/devcloud/files/compare.sh | 22 +
.../modules/devcloud/files/configebtables.sh | 21 +
.../modules/devcloud/files/configlocalstorage.sh | 25 +
.../src/puppet/modules/devcloud/files/configvnc.sh | 25 +
.../src/puppet/modules/devcloud/files/exports | 19 +
.../puppet/modules/devcloud/files/installmaven.sh | 22 +
.../puppet/modules/devcloud/files/startdevcloud.sh | 23 +
.../puppet/modules/devcloud/files/updatecode.sh | 27 +
.../puppet/modules/devcloud/lib/facter/xeninfo.rb | 22 +
.../devcloud/manifests/functions/httpdownload.pp | 37 +
.../src/puppet/modules/devcloud/manifests/init.pp | 255 ++
.../puppet/modules/devcloud/manifests/params.pp | 78 +
.../devcloud/templates/buildcloudstack.sh.erb | 28 +
.../devcloud/templates/startcloudstack.sh.erb | 26 +
tools/devcloud/src/waitforxe.sh | 39 +
tools/devcloud/veewee/definition.rb | 56 -
tools/devcloud/veewee/postinstall.sh | 43 -
tools/devcloud/veewee/preseed.cfg | 122 -
tools/marvin/marvin/TestCaseExecuteEngine.py | 4 +-
tools/marvin/marvin/cloudstackConnection.py | 2 +-
tools/marvin/marvin/cloudstackTestCase.py | 2 +-
tools/marvin/marvin/cloudstackTestClient.py | 25 +-
tools/marvin/marvin/deployDataCenter.py | 34 +-
tools/marvin/marvin/integration/lib/base.py | 286 ++-
tools/marvin/marvin/integration/lib/common.py | 62 +-
tools/marvin/marvin/integration/lib/utils.py | 7 +-
tools/marvin/marvin/marvinPlugin.py | 4 +-
tools/marvin/marvin/remoteSSHClient.py | 9 +-
tools/marvin/marvin/setup.py | 8 +-
tools/marvin/setup.py | 4 -
tools/whisker/descriptor.xml | 43 +-
ui/css/cloudstack3.css | 108 +-
ui/dictionary.jsp | 13 +-
ui/images/bg-what-is-cloudplatform.png | Bin 32250 -> 0 bytes
ui/images/citrix-logo-darkbg.png | Bin 2799 -> 0 bytes
ui/images/logo-cloudplatform.png | Bin 1726 -> 0 bytes
ui/images/logo-login.png | Bin 8923 -> 0 bytes
ui/index.jsp | 4 +
ui/scripts/cloudStack.js | 55 +-
ui/scripts/configuration.js | 37 +-
ui/scripts/docs.js | 148 +
ui/scripts/installWizard.js | 7 -
ui/scripts/instances.js | 35 +
ui/scripts/network.js | 175 +-
ui/scripts/projects.js | 4 +-
ui/scripts/sharedFunctions.js | 3 +-
ui/scripts/system.js | 254 +-
ui/scripts/templates.js | 11 +-
ui/scripts/ui-custom/installWizard.js | 61 +-
ui/scripts/ui/widgets/detailView.js | 2 +
ui/scripts/zoneWizard.js | 73 +-
utils/conf/db.properties | 6 +-
utils/pom.xml | 13 +-
utils/src/com/cloud/utils/DateUtil.java | 4 +
utils/src/com/cloud/utils/S3Utils.java | 495 ++
utils/src/com/cloud/utils/StringUtils.java | 27 +-
utils/src/com/cloud/utils/db/GlobalLock.java | 40 +
utils/src/com/cloud/utils/db/Transaction.java | 3 -
utils/test/com/cloud/utils/StringUtilsTest.java | 106 +
483 files changed, 29766 insertions(+), 15764 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/296b49c2/api/src/com/cloud/agent/api/BackupSnapshotCommand.java
----------------------------------------------------------------------
diff --cc api/src/com/cloud/agent/api/BackupSnapshotCommand.java
index f6c0233,7ea7835..52d9d38
--- a/api/src/com/cloud/agent/api/BackupSnapshotCommand.java
+++ b/api/src/com/cloud/agent/api/BackupSnapshotCommand.java
@@@ -44,12 -46,11 +46,11 @@@ public class BackupSnapshotCommand exte
* @param snapshotUuid The UUID of the snapshot which is going to be backed up
* @param prevSnapshotUuid The UUID of the previous snapshot for this volume. This will be destroyed on the primary storage.
* @param prevBackupUuid This is the UUID of the vhd file which was last backed up on secondary storage.
- * @param firstBackupUuid This is the backup of the first ever snapshot taken by the volume.
+ * @param firstBackupUuid This is the backup of the first ever snapshot taken by the volume.
* @param isFirstSnapshotOfRootVolume true if this is the first snapshot of a root volume. Set the parent of the backup to null.
- * @param isVolumeInactive True if the volume belongs to a VM that is not running or is detached.
+ * @param isVolumeInactive True if the volume belongs to a VM that is not running or is detached.
*/
- public BackupSnapshotCommand(String primaryStoragePoolNameLabel,
- String secondaryStoragePoolURL,
+ public BackupSnapshotCommand(String secondaryStoragePoolURL,
Long dcId,
Long accountId,
Long volumeId,
@@@ -62,9 -63,9 +63,9 @@@
String prevBackupUuid,
boolean isVolumeInactive,
String vmName,
- int wait)
+ int wait)
{
- super(primaryStoragePoolNameLabel, secondaryStoragePoolURL, snapshotUuid, snapshotName, dcId, accountId, volumeId);
+ super(pool, secondaryStoragePoolURL, snapshotUuid, snapshotName, dcId, accountId, volumeId);
this.snapshotId = snapshotId;
this.prevSnapshotUuid = prevSnapshotUuid;
this.prevBackupUuid = prevBackupUuid;
@@@ -86,9 -86,9 +86,9 @@@
public boolean isVolumeInactive() {
return isVolumeInactive;
}
-
+
public String getVmName() {
- return vmName;
+ return vmName;
}
public SwiftTO getSwift() {
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/296b49c2/api/src/com/cloud/agent/api/CreatePrivateTemplateFromSnapshotCommand.java
----------------------------------------------------------------------
diff --cc api/src/com/cloud/agent/api/CreatePrivateTemplateFromSnapshotCommand.java
index 504198c,0140a4e..9e2680e
--- a/api/src/com/cloud/agent/api/CreatePrivateTemplateFromSnapshotCommand.java
+++ b/api/src/com/cloud/agent/api/CreatePrivateTemplateFromSnapshotCommand.java
@@@ -16,8 -16,10 +16,10 @@@
// under the License.
package com.cloud.agent.api;
+ import com.cloud.storage.StoragePool;
+
/**
- * This currently assumes that both primary and secondary storage are mounted on the XenServer.
+ * This currently assumes that both primary and secondary storage are mounted on the XenServer.
*/
public class CreatePrivateTemplateFromSnapshotCommand extends SnapshotCommand {
private String origTemplateInstallPath;
@@@ -38,9 -40,10 +40,10 @@@
* In the code, it is present as: In the vmops.host_details table, there is a field mount.parent. This is the value of that field
* If you have better ideas on how to get it, you are welcome.
* It may not be the UUID of the base copy of the snapshot, if no data was written since last snapshot.
- * @param origTemplateInstallPath The install path of the original template VHD on the secondary
+ * @param origTemplateInstallPath The install path of the original template VHD on the secondary
*/
- public CreatePrivateTemplateFromSnapshotCommand(String primaryStoragePoolNameLabel,
+
+ public CreatePrivateTemplateFromSnapshotCommand(StoragePool pool,
String secondaryStoragePoolURL,
Long dcId,
Long accountId,
@@@ -50,9 -53,9 +53,9 @@@
String origTemplateInstallPath,
Long newTemplateId,
String templateName,
- int wait)
+ int wait)
{
- super(primaryStoragePoolNameLabel, secondaryStoragePoolURL, backedUpSnapshotUuid, backedUpSnapshotName, dcId, accountId, volumeId);
+ super(pool, secondaryStoragePoolURL, backedUpSnapshotUuid, backedUpSnapshotName, dcId, accountId, volumeId);
this.origTemplateInstallPath = origTemplateInstallPath;
this.newTemplateId = newTemplateId;
this.templateName = templateName;
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/296b49c2/api/src/com/cloud/agent/api/CreateVolumeFromSnapshotCommand.java
----------------------------------------------------------------------
diff --cc api/src/com/cloud/agent/api/CreateVolumeFromSnapshotCommand.java
index 955c81a,9bc9b36..a19d344
--- a/api/src/com/cloud/agent/api/CreateVolumeFromSnapshotCommand.java
+++ b/api/src/com/cloud/agent/api/CreateVolumeFromSnapshotCommand.java
@@@ -16,15 -16,17 +16,17 @@@
// under the License.
package com.cloud.agent.api;
+ import com.cloud.storage.StoragePool;
+
/**
- * This currently assumes that both primary and secondary storage are mounted on the XenServer.
+ * This currently assumes that both primary and secondary storage are mounted on the XenServer.
*/
public class CreateVolumeFromSnapshotCommand extends SnapshotCommand {
-
+
protected CreateVolumeFromSnapshotCommand() {
-
+
}
-
+
/**
* Given the UUID of a backed up snapshot VHD file on the secondary storage, the execute of this command does
* 1) Get the parent chain of this VHD all the way up to the root, say VHDList
@@@ -37,9 -39,10 +39,10 @@@
* In the code, it is present as: In the vmops.host_details table, there is a field mount.parent. This is the value of that field
* If you have better ideas on how to get it, you are welcome.
* It may not be the UUID of the base copy of the snapshot, if no data was written since last snapshot.
- * @param templatePath The install path of the template VHD on the secondary, if this a root volume
+ * @param templatePath The install path of the template VHD on the secondary, if this a root volume
*/
- public CreateVolumeFromSnapshotCommand(String primaryStoragePoolNameLabel,
+
+ public CreateVolumeFromSnapshotCommand(StoragePool pool,
String secondaryStoragePoolURL,
Long dcId,
Long accountId,
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/296b49c2/api/src/com/cloud/agent/api/DeleteSnapshotBackupCommand.java
----------------------------------------------------------------------
diff --cc api/src/com/cloud/agent/api/DeleteSnapshotBackupCommand.java
index 6ea1945,5e55570..6114148
--- a/api/src/com/cloud/agent/api/DeleteSnapshotBackupCommand.java
+++ b/api/src/com/cloud/agent/api/DeleteSnapshotBackupCommand.java
@@@ -44,9 -46,13 +46,13 @@@ public class DeleteSnapshotBackupComman
this.swift = swift;
}
+ public S3TO getS3() {
+ return s3;
+ }
+
protected DeleteSnapshotBackupCommand() {
}
-
+
/**
* Given 2 VHD files on the secondary storage which are linked in a parent chain as follows:
* backupUUID = parent(childUUID)
@@@ -57,22 -63,23 +63,23 @@@
* 1) it coalesces backupUuid into its parent.
* 2) It deletes the VHD file corresponding to backupUuid
* 3) It sets the parent VHD of childUUID to that of previousBackupUuid
- *
+ *
* It takes care of the cases when
* 1) childUUID is null. - Step 3 is not done.
- * 2) previousBackupUUID is null
+ * 2) previousBackupUUID is null
* - Merge childUUID into its parent backupUUID
* - Set the UUID of the resultant VHD to childUUID
- * - Essentially we are deleting the oldest VHD file and setting the current oldest VHD to childUUID
- *
- * @param volumeName The name of the volume whose snapshot was taken (something like i-3-SV-ROOT)
- * @param secondaryStoragePoolURL This is what shows up in the UI when you click on Secondary storage.
+ * - Essentially we are deleting the oldest VHD file and setting the current oldest VHD to childUUID
+ *
+ * @param volumeName The name of the volume whose snapshot was taken (something like i-3-SV-ROOT)
+ * @param secondaryStoragePoolURL This is what shows up in the UI when you click on Secondary storage.
* In the code, it is present as: In the vmops.host_details table, there is a field mount.parent. This is the value of that field
- * If you have better ideas on how to get it, you are welcome.
- * @param backupUUID The VHD which has to be deleted
- * @param childUUID The child VHD file of the backup whose parent is reset to its grandparent.
+ * If you have better ideas on how to get it, you are welcome.
+ * @param backupUUID The VHD which has to be deleted
+ * @param childUUID The child VHD file of the backup whose parent is reset to its grandparent.
*/
public DeleteSnapshotBackupCommand(SwiftTO swift,
+ S3TO s3,
String secondaryStoragePoolURL,
Long dcId,
Long accountId,
@@@ -81,6 -88,7 +88,7 @@@
{
super(null, secondaryStoragePoolURL, backupUUID, null, dcId, accountId, volumeId);
setSwift(swift);
+ this.s3 = s3;
setAll(all);
}
-}
+}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/296b49c2/api/src/com/cloud/agent/api/UpgradeSnapshotCommand.java
----------------------------------------------------------------------
diff --cc api/src/com/cloud/agent/api/UpgradeSnapshotCommand.java
index 1b3ff74,703aea0..f00f490
--- a/api/src/com/cloud/agent/api/UpgradeSnapshotCommand.java
+++ b/api/src/com/cloud/agent/api/UpgradeSnapshotCommand.java
@@@ -28,9 -30,9 +30,9 @@@ public class UpgradeSnapshotCommand ext
* @param primaryStoragePoolNameLabel The UUID of the primary storage Pool
* @param secondaryStoragePoolURL This is what shows up in the UI when you click on Secondary storage.
* @param snapshotUuid The UUID of the snapshot which is going to be upgraded
- * @param _version version for this snapshot
+ * @param _version version for this snapshot
*/
- public UpgradeSnapshotCommand(String primaryStoragePoolNameLabel,
+ public UpgradeSnapshotCommand(StoragePool pool,
String secondaryStoragePoolURL,
Long dcId,
Long accountId,
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/296b49c2/api/src/com/cloud/agent/api/downloadSnapshotFromSwiftCommand.java
----------------------------------------------------------------------
diff --cc api/src/com/cloud/agent/api/downloadSnapshotFromSwiftCommand.java
index 0937dad,6021762..a2ae611
--- a/api/src/com/cloud/agent/api/downloadSnapshotFromSwiftCommand.java
+++ b/api/src/com/cloud/agent/api/downloadSnapshotFromSwiftCommand.java
@@@ -29,12 -29,12 +29,12 @@@ public class downloadSnapshotFromSwiftC
private String _parent;
protected downloadSnapshotFromSwiftCommand() {
-
+
}
-
+
public downloadSnapshotFromSwiftCommand(SwiftTO swift, String secondaryStorageUrl, Long dcId, Long accountId, Long volumeId, String parent, String BackupUuid, int wait) {
- super("", secondaryStorageUrl, BackupUuid, "", dcId, accountId, volumeId);
+ super(null, secondaryStorageUrl, BackupUuid, "", dcId, accountId, volumeId);
setParent(parent);
setSwift(swift);
setWait(wait);
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/296b49c2/api/src/com/cloud/agent/api/storage/PrimaryStorageDownloadCommand.java
----------------------------------------------------------------------
diff --cc api/src/com/cloud/agent/api/storage/PrimaryStorageDownloadCommand.java
index 565b50d,f66d00e..b450041
--- a/api/src/com/cloud/agent/api/storage/PrimaryStorageDownloadCommand.java
+++ b/api/src/com/cloud/agent/api/storage/PrimaryStorageDownloadCommand.java
@@@ -26,20 -27,22 +27,23 @@@ public class PrimaryStorageDownloadComm
String localPath;
String poolUuid;
long poolId;
- StorageFilerTO primaryPool;
-
+
++ StorageFilerTO primaryPool;
++
String secondaryStorageUrl;
String primaryStorageUrl;
protected PrimaryStorageDownloadCommand() {
}
- public PrimaryStorageDownloadCommand(String name, String url, ImageFormat format, long accountId, long poolId, String poolUuid, int wait) {
+ public PrimaryStorageDownloadCommand(String name, String url, ImageFormat format, long accountId, StoragePool pool, int wait) {
super(name, url, format, accountId);
- this.poolId = poolId;
- this.poolUuid = poolUuid;
+ this.poolId = pool.getId();
+ this.poolUuid = pool.getUuid();
+ this.primaryPool = new StorageFilerTO(pool);
setWait(wait);
}
-
+
public String getPoolUuid() {
return poolUuid;
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/296b49c2/api/src/com/cloud/agent/api/to/PortForwardingRuleTO.java
----------------------------------------------------------------------
diff --cc api/src/com/cloud/agent/api/to/PortForwardingRuleTO.java
index 9ef8d0a,19673a6..c23dce8
--- a/api/src/com/cloud/agent/api/to/PortForwardingRuleTO.java
+++ b/api/src/com/cloud/agent/api/to/PortForwardingRuleTO.java
@@@ -38,9 -38,9 +38,9 @@@ public class PortForwardingRuleTO exten
this.dstIp = rule.getDestinationIpAddress().addr();
this.dstPortRange = new int[] { rule.getDestinationPortStart(), rule.getDestinationPortEnd() };
}
-
+
- protected PortForwardingRuleTO(long id, String srcIp, int srcPortStart, int srcPortEnd, String dstIp, int dstPortStart, int dstPortEnd, String protocol, boolean revoked, boolean brandNew) {
- super(id, srcIp,null, protocol, srcPortStart, srcPortEnd, revoked, brandNew, FirewallRule.Purpose.PortForwarding, null,0,0);
+ public PortForwardingRuleTO(long id, String srcIp, int srcPortStart, int srcPortEnd, String dstIp, int dstPortStart, int dstPortEnd, String protocol, boolean revoked, boolean alreadyAdded) {
+ super(id, null, srcIp, protocol, srcPortStart, srcPortEnd, revoked, alreadyAdded, FirewallRule.Purpose.PortForwarding, null,0,0);
this.dstIp = dstIp;
this.dstPortRange = new int[] { dstPortStart, dstPortEnd };
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/296b49c2/api/src/com/cloud/api/commands/AddS3Cmd.java
----------------------------------------------------------------------
diff --cc api/src/com/cloud/api/commands/AddS3Cmd.java
index 0000000,e046ccc..8ef6c98
mode 000000,100644..100644
--- a/api/src/com/cloud/api/commands/AddS3Cmd.java
+++ b/api/src/com/cloud/api/commands/AddS3Cmd.java
@@@ -1,0 -1,218 +1,218 @@@
+ /*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+ package com.cloud.api.commands;
+
-import static com.cloud.api.ApiConstants.S3_ACCESS_KEY;
-import static com.cloud.api.ApiConstants.S3_CONNECTION_TIMEOUT;
-import static com.cloud.api.ApiConstants.S3_END_POINT;
-import static com.cloud.api.ApiConstants.S3_HTTPS_FLAG;
-import static com.cloud.api.ApiConstants.S3_MAX_ERROR_RETRY;
-import static com.cloud.api.ApiConstants.S3_SECRET_KEY;
-import static com.cloud.api.ApiConstants.S3_SOCKET_TIMEOUT;
-import static com.cloud.api.ApiConstants.S3_BUCKET_NAME;
-import static com.cloud.api.BaseCmd.CommandType.INTEGER;
-import static com.cloud.api.BaseCmd.CommandType.STRING;
-import static com.cloud.api.BaseCmd.CommandType.BOOLEAN;
++import static org.apache.cloudstack.api.ApiConstants.S3_ACCESS_KEY;
++import static org.apache.cloudstack.api.ApiConstants.S3_CONNECTION_TIMEOUT;
++import static org.apache.cloudstack.api.ApiConstants.S3_END_POINT;
++import static org.apache.cloudstack.api.ApiConstants.S3_HTTPS_FLAG;
++import static org.apache.cloudstack.api.ApiConstants.S3_MAX_ERROR_RETRY;
++import static org.apache.cloudstack.api.ApiConstants.S3_SECRET_KEY;
++import static org.apache.cloudstack.api.ApiConstants.S3_SOCKET_TIMEOUT;
++import static org.apache.cloudstack.api.ApiConstants.S3_BUCKET_NAME;
++import static org.apache.cloudstack.api.BaseCmd.CommandType.INTEGER;
++import static org.apache.cloudstack.api.BaseCmd.CommandType.STRING;
++import static org.apache.cloudstack.api.BaseCmd.CommandType.BOOLEAN;
+ import static com.cloud.user.Account.ACCOUNT_ID_SYSTEM;
+
-import com.cloud.api.BaseCmd;
-import com.cloud.api.Implementation;
-import com.cloud.api.Parameter;
-import com.cloud.api.ServerApiException;
++import org.apache.cloudstack.api.BaseCmd;
++import org.apache.cloudstack.api.Implementation;
++import org.apache.cloudstack.api.Parameter;
++import org.apache.cloudstack.api.ServerApiException;
+ import com.cloud.api.response.S3Response;
+ import com.cloud.exception.ConcurrentOperationException;
+ import com.cloud.exception.DiscoveryException;
+ import com.cloud.exception.InsufficientCapacityException;
+ import com.cloud.exception.NetworkRuleConflictException;
+ import com.cloud.exception.ResourceAllocationException;
+ import com.cloud.exception.ResourceUnavailableException;
+ import com.cloud.storage.S3;
+
+ @Implementation(description = "Adds S3", responseObject = S3Response.class, since = "4.0.0")
+ public final class AddS3Cmd extends BaseCmd {
+
+ private static String COMMAND_NAME = "adds3response";
+
+ @Parameter(name = S3_ACCESS_KEY, type = STRING, required = true,
+ description = "S3 access key")
+ private String accessKey;
+
+ @Parameter(name = S3_SECRET_KEY, type = STRING, required = true,
+ description = "S3 secret key")
+ private String secretKey;
+
+ @Parameter(name = S3_END_POINT, type = STRING, required = false,
+ description = "S3 host name")
+ private String endPoint = null;
+
+ @Parameter(name = S3_BUCKET_NAME, type = STRING, required = true,
+ description = "name of the template storage bucket")
+ private String bucketName;
+
+ @Parameter(name = S3_HTTPS_FLAG, type = BOOLEAN, required = false,
+ description = "connect to the S3 endpoint via HTTPS?")
+ private Boolean httpsFlag = null;
+
+ @Parameter(name = S3_CONNECTION_TIMEOUT, type = INTEGER, required = false,
+ description = "connection timeout (milliseconds)")
+ private Integer connectionTimeout = null;
+
+ @Parameter(name = S3_MAX_ERROR_RETRY, type = INTEGER, required = false,
+ description = "maximum number of times to retry on error")
+ private Integer maxErrorRetry = null;
+
+ @Parameter(name = S3_SOCKET_TIMEOUT, type = INTEGER, required = false,
+ description = "socket timeout (milliseconds)")
+ private Integer socketTimeout = null;
+
+ @Override
+ public void execute() throws ResourceUnavailableException, InsufficientCapacityException,
+ ServerApiException, ConcurrentOperationException, ResourceAllocationException,
+ NetworkRuleConflictException {
+
+ final S3 result;
+
+ try {
+
+ result = _resourceService.discoverS3(this);
+
+ if (result == null) {
+ throw new ServerApiException(INTERNAL_ERROR, "Failed to add S3.");
+ }
+
+ } catch (DiscoveryException e) {
+
+ throw new ServerApiException(INTERNAL_ERROR, "Failed to add S3 due to " + e.getMessage());
+
+ }
+
+ final S3Response response = _responseGenerator.createS3Response(result);
+ response.setResponseName(this.getCommandName());
+ this.setResponseObject(response);
+
+ }
+
+ @Override
+ public boolean equals(final Object thatObject) {
+
+ if (this == thatObject) {
+ return true;
+ }
+
+ if (thatObject == null || this.getClass() != thatObject.getClass()) {
+ return false;
+ }
+
+ final AddS3Cmd thatAddS3Cmd = (AddS3Cmd) thatObject;
+
+ if (this.httpsFlag != null ? !this.httpsFlag.equals(thatAddS3Cmd.httpsFlag) : thatAddS3Cmd.httpsFlag != null) {
+ return false;
+ }
+
+ if (this.accessKey != null ? !this.accessKey.equals(thatAddS3Cmd.accessKey) : thatAddS3Cmd.accessKey != null) {
+ return false;
+ }
+
+ if (this.connectionTimeout != null ? !this.connectionTimeout.equals(thatAddS3Cmd.connectionTimeout) : thatAddS3Cmd.connectionTimeout != null) {
+ return false;
+ }
+
+ if (this.endPoint != null ? !this.endPoint.equals(thatAddS3Cmd.endPoint) : thatAddS3Cmd.endPoint != null) {
+ return false;
+ }
+
+ if (this.maxErrorRetry != null ? !this.maxErrorRetry.equals(thatAddS3Cmd.maxErrorRetry) : thatAddS3Cmd.maxErrorRetry != null) {
+ return false;
+ }
+
+ if (this.secretKey != null ? !this.secretKey.equals(thatAddS3Cmd.secretKey) : thatAddS3Cmd.secretKey != null) {
+ return false;
+ }
+
+ if (this.socketTimeout != null ? !this.socketTimeout.equals(thatAddS3Cmd.socketTimeout) : thatAddS3Cmd.socketTimeout != null) {
+ return false;
+ }
+
+ if (this.bucketName != null ? !this.bucketName.equals(thatAddS3Cmd.bucketName) : thatAddS3Cmd.bucketName != null) {
+ return false;
+ }
+
+ return true;
+
+ }
+
+ @Override
+ public int hashCode() {
+
+ int result = this.accessKey != null ? this.accessKey.hashCode() : 0;
+ result = 31 * result + (this.secretKey != null ? this.secretKey.hashCode() : 0);
+ result = 31 * result + (this.endPoint != null ? this.endPoint.hashCode() : 0);
+ result = 31 * result + (this.bucketName != null ? this.bucketName.hashCode() : 0);
+ result = 31 * result + (this.httpsFlag != null && this.httpsFlag == true ? 1 : 0);
+ result = 31 * result + (this.connectionTimeout != null ? this.connectionTimeout.hashCode() : 0);
+ result = 31 * result + (this.maxErrorRetry != null ? this.maxErrorRetry.hashCode() : 0);
+ result = 31 * result + (this.socketTimeout != null ? this.socketTimeout.hashCode() : 0);
+
+ return result;
+
+ }
+
+ @Override
+ public String getCommandName() {
+ return COMMAND_NAME;
+ }
+
+ @Override
+ public long getEntityOwnerId() {
+ return ACCOUNT_ID_SYSTEM;
+ }
+
+ public String getAccessKey() {
+ return this.accessKey;
+ }
+
+ public String getSecretKey() {
+ return this.secretKey;
+ }
+
+ public String getEndPoint() {
+ return this.endPoint;
+ }
+
+ public String getBucketName() {
+ return this.bucketName;
+ }
+
+ public Boolean getHttpsFlag() {
+ return this.httpsFlag;
+ }
+
+ public Integer getConnectionTimeout() {
+ return this.connectionTimeout;
+ }
+
+ public Integer getMaxErrorRetry() {
+ return this.maxErrorRetry;
+ }
+
+ public Integer getSocketTimeout() {
+ return this.socketTimeout;
+ }
+
+ }
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/296b49c2/api/src/com/cloud/api/commands/ListS3sCmd.java
----------------------------------------------------------------------
diff --cc api/src/com/cloud/api/commands/ListS3sCmd.java
index 0000000,507053d..86c8c53
mode 000000,100644..100644
--- a/api/src/com/cloud/api/commands/ListS3sCmd.java
+++ b/api/src/com/cloud/api/commands/ListS3sCmd.java
@@@ -1,0 -1,112 +1,112 @@@
+ /*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+ package com.cloud.api.commands;
+
-import static com.cloud.api.ApiConstants.ID;
-import static com.cloud.api.BaseCmd.CommandType.LONG;
++import static org.apache.cloudstack.api.ApiConstants.ID;
++import static org.apache.cloudstack.api.BaseCmd.CommandType.LONG;
+
+ import java.util.ArrayList;
+ import java.util.List;
+
-import com.cloud.api.BaseListCmd;
-import com.cloud.api.Implementation;
-import com.cloud.api.Parameter;
-import com.cloud.api.ServerApiException;
-import com.cloud.api.response.ListResponse;
++import org.apache.cloudstack.api.BaseListCmd;
++import org.apache.cloudstack.api.Implementation;
++import org.apache.cloudstack.api.Parameter;
++import org.apache.cloudstack.api.ServerApiException;
++import org.apache.cloudstack.api.response.ListResponse;
+ import com.cloud.api.response.S3Response;
+ import com.cloud.exception.ConcurrentOperationException;
+ import com.cloud.exception.InsufficientCapacityException;
+ import com.cloud.exception.NetworkRuleConflictException;
+ import com.cloud.exception.ResourceAllocationException;
+ import com.cloud.exception.ResourceUnavailableException;
+ import com.cloud.storage.S3;
+
+ @Implementation(description = "Lists S3s", responseObject = S3Response.class, since = "4.0.0")
+ public final class ListS3sCmd extends BaseListCmd {
+
+ private static final String COMMAND_NAME = "lists3sresponse";
+
+ @Parameter(name = ID, type = LONG, required = true, description = "The ID of the S3")
+ private Long id;
+
+ @Override
+ public void execute() throws ResourceUnavailableException, InsufficientCapacityException,
+ ServerApiException, ConcurrentOperationException, ResourceAllocationException,
+ NetworkRuleConflictException {
+
+ final List<? extends S3> result = _resourceService.listS3s(this);
+ final ListResponse<S3Response> response = new ListResponse<S3Response>();
+ final List<S3Response> s3Responses = new ArrayList<S3Response>();
+
+ if (result != null) {
+
+ for (S3 s3 : result) {
+
+ S3Response s3Response = _responseGenerator.createS3Response(s3);
+ s3Response.setResponseName(this.getCommandName());
+ s3Response.setObjectName("s3");
+ s3Responses.add(s3Response);
+
+ }
+
+ }
+
+ response.setResponses(s3Responses);
+ response.setResponseName(this.getCommandName());
+
+ this.setResponseObject(response);
+
+ }
+
+ @Override
+ public boolean equals(final Object thatObject) {
+
+ if (this == thatObject) {
+ return true;
+ }
+
+ if (thatObject == null || getClass() != thatObject.getClass()) {
+ return false;
+ }
+
+ final ListS3sCmd thatListS3sCmd = (ListS3sCmd) thatObject;
+
+ if (this.id != null ? !this.id.equals(thatListS3sCmd.id) : thatListS3sCmd.id != null) {
+ return false;
+ }
+
+ return true;
+
+ }
+
+ @Override
+ public int hashCode() {
+ return this.id != null ? this.id.hashCode() : 0;
+ }
+
+ @Override
+ public String getCommandName() {
+ return COMMAND_NAME;
+ }
+
+ public Long getId() {
+ return this.id;
+ }
+
+ }
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/296b49c2/api/src/com/cloud/api/response/S3Response.java
----------------------------------------------------------------------
diff --cc api/src/com/cloud/api/response/S3Response.java
index 0000000,1efbe23..0d2cf7e
mode 000000,100644..100644
--- a/api/src/com/cloud/api/response/S3Response.java
+++ b/api/src/com/cloud/api/response/S3Response.java
@@@ -1,0 -1,209 +1,210 @@@
+ /*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+ package com.cloud.api.response;
+
+ import com.cloud.serializer.Param;
+ import com.cloud.utils.IdentityProxy;
+ import com.google.gson.annotations.SerializedName;
++import org.apache.cloudstack.api.BaseResponse;
+
-import static com.cloud.api.ApiConstants.*;
++import static org.apache.cloudstack.api.ApiConstants.*;
+
+ public class S3Response extends BaseResponse {
+
+ @SerializedName(ID)
+ @Param(description = "The ID of the S3 configuration")
+ private IdentityProxy id = new IdentityProxy("s3");
+
+ @SerializedName(S3_ACCESS_KEY)
+ @Param(description = "The S3 access key")
+ private String accessKey;
+
+ @SerializedName(S3_SECRET_KEY)
+ @Param(description = "The S3 secret key")
+ private String secretKey;
+
+ @SerializedName(S3_END_POINT)
+ @Param(description = "The S3 end point")
+ private String endPoint;
+
+ @SerializedName(S3_BUCKET_NAME)
+ @Param(description = "The name of the template storage bucket")
+ private String bucketName;
+
+ @SerializedName(S3_HTTPS_FLAG)
+ @Param(description = "Connect to S3 using HTTPS?")
+ private Integer httpsFlag;
+
+ @SerializedName(S3_CONNECTION_TIMEOUT)
+ @Param(description = "The connection timeout (milliseconds)")
+ private Integer connectionTimeout;
+
+ @SerializedName(S3_MAX_ERROR_RETRY)
+ @Param(description = "The maximum number of time to retry a connection on error.")
+ private Integer maxErrorRetry;
+
+ @SerializedName(S3_SOCKET_TIMEOUT)
+ @Param(description = "The connection socket (milliseconds)")
+ private Integer socketTimeout;
+
+ @Override
+ public boolean equals(final Object thatObject) {
+
+ if (this == thatObject) {
+ return true;
+ }
+
+ if (thatObject == null || this.getClass() != thatObject.getClass()) {
+ return false;
+ }
+
+ final S3Response thatS3Response = (S3Response) thatObject;
+
+ if (this.httpsFlag != null ? !this.httpsFlag.equals(thatS3Response.httpsFlag) : thatS3Response.httpsFlag != null) {
+ return false;
+ }
+
+ if (this.accessKey != null ? !this.accessKey.equals(thatS3Response.accessKey) : thatS3Response.accessKey != null) {
+ return false;
+ }
+
+ if (this.connectionTimeout != null ? !this.connectionTimeout.equals(thatS3Response.connectionTimeout) : thatS3Response.connectionTimeout != null) {
+ return false;
+ }
+
+ if (this.endPoint != null ? !this.endPoint.equals(thatS3Response.endPoint) : thatS3Response.endPoint != null) {
+ return false;
+ }
+
+ if (this.id != null ? !this.id.equals(thatS3Response.id) : thatS3Response.id != null) {
+ return false;
+ }
+
+ if (this.maxErrorRetry != null ? !this.maxErrorRetry.equals(thatS3Response.maxErrorRetry) : thatS3Response.maxErrorRetry != null) {
+ return false;
+ }
+
+ if (this.secretKey != null ? !this.secretKey.equals(thatS3Response.secretKey) : thatS3Response.secretKey != null) {
+ return false;
+ }
+
+ if (this.socketTimeout != null ? !this.socketTimeout.equals(thatS3Response.socketTimeout) : thatS3Response.socketTimeout != null) {
+ return false;
+ }
+
+ if (this.bucketName != null ? !this.bucketName.equals(thatS3Response.bucketName) : thatS3Response.bucketName != null) {
+ return false;
+ }
+
+ return true;
+
+ }
+
+ @Override
+ public int hashCode() {
+
+ int result = this.id != null ? this.id.hashCode() : 0;
+ result = 31 * result + (this.accessKey != null ? this.accessKey.hashCode() : 0);
+ result = 31 * result + (this.secretKey != null ? this.secretKey.hashCode() : 0);
+ result = 31 * result + (this.endPoint != null ? this.endPoint.hashCode() : 0);
+ result = 31 * result + (this.bucketName != null ? this.bucketName.hashCode() : 0);
+ result = 31 * result + (this.httpsFlag != null ? this.httpsFlag : 0);
+ result = 31 * result + (this.connectionTimeout != null ? this.connectionTimeout.hashCode() : 0);
+ result = 31 * result + (this.maxErrorRetry != null ? this.maxErrorRetry.hashCode() : 0);
+ result = 31 * result + (this.socketTimeout != null ? this.socketTimeout.hashCode() : 0);
+
+ return result;
+
+ }
+
+ @Override
- public Long getObjectId() {
- return this.id.getValue();
++ public String getObjectId() {
++ return this.id.getValue().toString();
+ }
+
+ public void setObjectId(Long id) {
+ this.id.setValue(id);
+ }
+
+ public String getAccessKey() {
+ return this.accessKey;
+ }
+
+ public void setAccessKey(final String accessKey) {
+ this.accessKey = accessKey;
+ }
+
+ public String getSecretKey() {
+ return this.secretKey;
+ }
+
+ public void setSecretKey(final String secretKey) {
+ this.secretKey = secretKey;
+ }
+
+ public String getEndPoint() {
+ return this.endPoint;
+ }
+
+ public void setEndPoint(final String endPoint) {
+ this.endPoint = endPoint;
+ }
+
+
+ public String getTemplateBucketName() {
+ return this.bucketName;
+ }
+
+ public void setTemplateBucketName(final String templateBucketName) {
+ this.bucketName = templateBucketName;
+ }
+
+ public Integer getHttpsFlag() {
+ return this.httpsFlag;
+ }
+
+ public void setHttpsFlag(final Integer httpsFlag) {
+ this.httpsFlag = httpsFlag;
+ }
+
+ public Integer getConnectionTimeout() {
+ return this.connectionTimeout;
+ }
+
+ public void setConnectionTimeout(final Integer connectionTimeout) {
+ this.connectionTimeout = connectionTimeout;
+ }
+
+ public Integer getMaxErrorRetry() {
+ return this.maxErrorRetry;
+ }
+
+ public void setMaxErrorRetry(final Integer maxErrorRetry) {
+ this.maxErrorRetry = maxErrorRetry;
+ }
+
+ public Integer getSocketTimeout() {
+ return this.socketTimeout;
+ }
+
+ public void setSocketTimeout(final Integer socketTimeout) {
+ this.socketTimeout = socketTimeout;
+ }
+
+ }
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/296b49c2/api/src/com/cloud/network/Network.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/296b49c2/api/src/com/cloud/network/NetworkService.java
----------------------------------------------------------------------
diff --cc api/src/com/cloud/network/NetworkService.java
index 140563e,e7b6def..d5841a4
--- a/api/src/com/cloud/network/NetworkService.java
+++ b/api/src/com/cloud/network/NetworkService.java
@@@ -41,7 -41,8 +41,7 @@@ public interface NetworkService
List<? extends Network> getIsolatedNetworksOwnedByAccountInZone(long zoneId, Account owner);
- IpAddress allocateIP(Account ipOwner, boolean isSystem, long zoneId) throws ResourceAllocationException,
-
+ IpAddress allocateIP(Account ipOwner, long zoneId, Long networkId) throws ResourceAllocationException,
InsufficientAddressCapacityException, ConcurrentOperationException;
boolean releaseIpAddress(long ipAddressId) throws InsufficientAddressCapacityException;
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/296b49c2/api/src/com/cloud/offering/NetworkOffering.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/296b49c2/api/src/com/cloud/resource/ResourceService.java
----------------------------------------------------------------------
diff --cc api/src/com/cloud/resource/ResourceService.java
index 4d1c0ba,4cdb31a..ade1012
--- a/api/src/com/cloud/resource/ResourceService.java
+++ b/api/src/com/cloud/resource/ResourceService.java
@@@ -18,21 -18,28 +18,24 @@@ package com.cloud.resource
import java.util.List;
-import com.cloud.api.commands.AddClusterCmd;
-import com.cloud.api.commands.AddHostCmd;
+import org.apache.cloudstack.api.command.admin.cluster.AddClusterCmd;
+import org.apache.cloudstack.api.command.admin.cluster.DeleteClusterCmd;
+import org.apache.cloudstack.api.command.admin.host.*;
+import org.apache.cloudstack.api.command.admin.swift.AddSwiftCmd;
+import org.apache.cloudstack.api.command.admin.swift.ListSwiftsCmd;
+import org.apache.cloudstack.api.command.admin.host.PrepareForMaintenanceCmd;
+ import com.cloud.api.commands.AddS3Cmd;
-import com.cloud.api.commands.AddSecondaryStorageCmd;
-import com.cloud.api.commands.AddSwiftCmd;
-import com.cloud.api.commands.CancelMaintenanceCmd;
-import com.cloud.api.commands.DeleteClusterCmd;
+ import com.cloud.api.commands.ListS3sCmd;
-import com.cloud.api.commands.ListSwiftsCmd;
-import com.cloud.api.commands.PrepareForMaintenanceCmd;
-import com.cloud.api.commands.ReconnectHostCmd;
-import com.cloud.api.commands.UpdateHostCmd;
-import com.cloud.api.commands.UpdateHostPasswordCmd;
import com.cloud.exception.DiscoveryException;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.exception.ResourceInUseException;
import com.cloud.host.Host;
import com.cloud.hypervisor.Hypervisor.HypervisorType;
import com.cloud.org.Cluster;
+ import com.cloud.storage.S3;
import com.cloud.storage.Swift;
import com.cloud.utils.fsm.NoTransitionException;
+import org.apache.cloudstack.api.command.admin.host.ReconnectHostCmd;
public interface ResourceService {
/**