You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by mc...@apache.org on 2013/10/26 06:18:50 UTC
[7/8] git commit: updated refs/heads/object_store_migration to 9da56fe
Merge branch 'master' into object_store_migration.
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/7a1ee002
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/7a1ee002
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/7a1ee002
Branch: refs/heads/object_store_migration
Commit: 7a1ee002756ea545a849b29268e3cc72f7fcd8b3
Parents: 81686e8 7120c1e
Author: Min Chen <mi...@citrix.com>
Authored: Wed Oct 23 16:46:28 2013 -0700
Committer: Min Chen <mi...@citrix.com>
Committed: Wed Oct 23 16:46:28 2013 -0700
----------------------------------------------------------------------
agent/pom.xml | 4 +
agent/src/com/cloud/agent/Agent.java | 1 -
agent/src/com/cloud/agent/AgentShell.java | 61 +-
agent/test/com/cloud/agent/AgentShellTest.java | 48 +
.../cloudstack/api-planner/module.properties | 18 +
.../api-planner/spring-api-planner-context.xml | 34 +
.../exception/ConcurrentOperationException.java | 3 +-
.../element/RemoteAccessVPNServiceProvider.java | 5 +-
api/src/com/cloud/offering/NetworkOffering.java | 2 +
api/src/com/cloud/vm/VmDetailConstants.java | 1 +
.../org/apache/cloudstack/api/ApiConstants.java | 7 +-
.../admin/network/CreateNetworkOfferingCmd.java | 9 +-
.../admin/network/UpdateNetworkOfferingCmd.java | 7 +
.../command/user/network/UpdateNetworkCmd.java | 4 +-
.../command/user/ssh/CreateSSHKeyPairCmd.java | 6 +-
.../api/command/user/vm/DestroyVMCmd.java | 27 +-
.../user/volume/RemoveResourceDetailCmd.java | 15 +-
.../command/user/volume/UpdateVolumeCmd.java | 6 +-
.../api/response/CreateSSHKeyPairResponse.java | 41 +
.../api/response/SSHKeyPairResponse.java | 16 -
.../api/response/SnapshotResponse.java | 25 +-
.../cloudstack/api/response/UserVmResponse.java | 9 +-
.../apache/cloudstack/context/CallContext.java | 4 +-
.../bridge/persist/dao/BucketPolicyDaoImpl.java | 6 +-
.../persist/dao/CloudStackAccountDaoImpl.java | 3 +-
.../dao/CloudStackConfigurationDaoImpl.java | 3 +-
.../dao/CloudStackSvcOfferingDaoImpl.java | 5 +-
.../persist/dao/CloudStackUserDaoImpl.java | 3 +-
.../cloud/bridge/persist/dao/MHostDaoImpl.java | 5 +-
.../bridge/persist/dao/MHostMountDaoImpl.java | 3 +-
.../persist/dao/MultiPartPartsDaoImpl.java | 9 +-
.../persist/dao/MultiPartUploadsDaoImpl.java | 15 +-
.../bridge/persist/dao/MultipartLoadDao.java | 9 +-
.../persist/dao/MultipartMetaDaoImpl.java | 3 +-
.../bridge/persist/dao/OfferingDaoImpl.java | 11 +-
.../cloud/bridge/persist/dao/SAclDaoImpl.java | 7 +-
.../bridge/persist/dao/SBucketDaoImpl.java | 5 +-
.../cloud/bridge/persist/dao/SHostDaoImpl.java | 5 +-
.../cloud/bridge/persist/dao/SMetaDaoImpl.java | 5 +-
.../bridge/persist/dao/SObjectDaoImpl.java | 7 +-
.../bridge/persist/dao/SObjectItemDaoImpl.java | 5 +-
.../persist/dao/UserCredentialsDaoImpl.java | 5 +-
.../cloud/bridge/service/EC2RestServlet.java | 13 +-
.../com/cloud/bridge/service/S3RestServlet.java | 5 +-
.../service/controller/s3/S3BucketAction.java | 3 +-
.../service/controller/s3/ServiceProvider.java | 7 +-
.../cloud/bridge/service/core/s3/S3Engine.java | 23 +-
.../classes/resources/messages.properties | 2 +
client/WEB-INF/web.xml | 6 +-
client/pom.xml | 56 +-
.../cloudstack/webApplicationContext.xml | 32 +
client/tomcatconf/applicationContext.xml.in | 956 ------
client/tomcatconf/commands.properties.in | 2 +-
client/tomcatconf/componentContext.xml.in | 324 --
client/tomcatconf/log4j-cloud.xml.in | 8 +
client/tomcatconf/nonossComponentContext.xml.in | 421 ---
.../tomcatconf/simulatorComponentContext.xml.in | 284 --
client/tomcatconf/tomcat6-nonssl.conf.in | 2 +-
client/tomcatconf/tomcat6-ssl.conf.in | 2 +-
.../cloudstack/allocator/module.properties | 18 +
.../allocator/spring-core-allocator-context.xml | 32 +
...-lifecycle-allocator-context-inheritable.xml | 42 +
.../META-INF/cloudstack/api/module.properties | 18 +
...g-core-lifecycle-api-context-inheritable.xml | 53 +
.../cloudstack/backend/module.properties | 18 +
.../cloudstack/bootstrap/module.properties | 17 +
.../spring-bootstrap-context-inheritable.xml | 39 +
.../bootstrap/spring-bootstrap-context.xml | 32 +
.../cloudstack/compute/module.properties | 18 +
...re-lifecycle-compute-context-inheritable.xml | 45 +
.../META-INF/cloudstack/core/module.properties | 18 +
.../cloudstack/core/spring-core-context.xml | 36 +
...-core-lifecycle-core-context-inheritable.xml | 41 +
.../core/spring-core-registry-core-context.xml | 197 ++
.../cloudstack/discoverer/module.properties | 18 +
...lifecycle-discoverer-context-inheritable.xml | 35 +
.../cloudstack/network/module.properties | 18 +
...re-lifecycle-network-context-inheritable.xml | 58 +
.../cloudstack/planner/module.properties | 18 +
...re-lifecycle-planner-context-inheritable.xml | 41 +
.../cloudstack/storage/module.properties | 18 +
...ng-lifecycle-storage-context-inheritable.xml | 74 +
.../cloudstack/system/module.properties | 18 +
.../spring-core-system-context-inheritable.xml | 54 +
.../system/spring-core-system-context.xml | 50 +
.../com/cloud/agent/api/ClusterSyncAnswer.java | 8 +-
.../cloud/agent/api/StartupRoutingCommand.java | 8 +-
core/src/com/cloud/agent/api/StopAnswer.java | 23 +-
.../api/routing/LoadBalancerConfigCommand.java | 4 +-
.../virtualnetwork/VirtualRoutingResource.java | 25 +-
.../com/cloud/network/HAProxyConfigurator.java | 54 +-
.../StorageSubsystemCommandHandlerBase.java | 5 +-
.../cloud/network/HAProxyConfiguratorTest.java | 97 +
.../core/spring-engine-api-core-context.xml | 44 +
.../api/storage/DataMotionStrategy.java | 4 +-
.../subsystem/api/storage/SnapshotInfo.java | 2 +
.../subsystem/api/storage/SnapshotStrategy.java | 9 +-
.../api/storage/StorageStrategyFactory.java | 45 +
.../subsystem/api/storage/StrategyPriority.java | 86 +-
.../api/storage/StrategyPriorityTest.java | 116 -
...pring-engine-components-api-core-context.xml | 30 +
.../configuration/ConfigurationManager.java | 2 +-
...spring-engine-orchestration-core-context.xml | 71 +
.../cloud/agent/manager/AgentManagerImpl.java | 5 +-
.../manager/ClusteredAgentManagerImpl.java | 4 +-
.../com/cloud/vm/VirtualMachineManagerImpl.java | 390 ++-
.../entity/api/db/dao/DcDetailsDaoImpl.java | 4 +-
.../entity/api/db/dao/EngineClusterDaoImpl.java | 6 +-
.../api/db/dao/EngineDataCenterDaoImpl.java | 6 +-
.../entity/api/db/dao/EngineHostDaoImpl.java | 14 +-
.../entity/api/db/dao/EngineHostPodDaoImpl.java | 6 +-
.../entity/api/db/dao/HostDetailsDaoImpl.java | 4 +-
.../entity/api/db/dao/HostTagsDaoImpl.java | 4 +-
.../orchestration/NetworkOrchestrator.java | 916 ++---
.../orchestration/VolumeOrchestrator.java | 88 +-
.../spring-engine-schema-core-daos-context.xml | 322 ++
...ng-engine-schema-system-checkers-context.xml | 34 +
.../src/com/cloud/alert/dao/AlertDaoImpl.java | 4 +-
.../com/cloud/capacity/dao/CapacityDaoImpl.java | 26 +-
.../configuration/dao/ResourceCountDaoImpl.java | 4 +-
.../src/com/cloud/dc/ClusterDetailsDaoImpl.java | 6 +-
.../src/com/cloud/dc/dao/ClusterDaoImpl.java | 6 +-
.../com/cloud/dc/dao/ClusterVSMMapDaoImpl.java | 4 +-
.../src/com/cloud/dc/dao/DataCenterDaoImpl.java | 6 +-
.../dc/dao/DataCenterIpAddressDaoImpl.java | 8 +-
.../DataCenterLinkLocalIpAddressDaoImpl.java | 6 +-
.../src/com/cloud/dc/dao/DataCenterVnetDao.java | 3 +-
.../com/cloud/dc/dao/DataCenterVnetDaoImpl.java | 8 +-
.../src/com/cloud/dc/dao/DcDetailsDaoImpl.java | 4 +-
.../src/com/cloud/dc/dao/HostPodDaoImpl.java | 6 +-
.../src/com/cloud/dc/dao/PodVlanDaoImpl.java | 8 +-
.../dc/dao/StorageNetworkIpAddressDaoImpl.java | 6 +-
.../src/com/cloud/dc/dao/VlanDaoImpl.java | 4 +-
.../src/com/cloud/domain/dao/DomainDaoImpl.java | 8 +-
.../src/com/cloud/event/dao/EventDaoImpl.java | 4 +-
.../com/cloud/event/dao/UsageEventDaoImpl.java | 10 +-
.../src/com/cloud/host/dao/HostDaoImpl.java | 14 +-
.../com/cloud/host/dao/HostDetailsDaoImpl.java | 4 +-
.../src/com/cloud/host/dao/HostTagsDaoImpl.java | 4 +-
.../src/com/cloud/keystore/KeystoreDaoImpl.java | 4 +-
.../network/dao/FirewallRulesCidrsDaoImpl.java | 4 +-
.../cloud/network/dao/FirewallRulesDaoImpl.java | 6 +-
.../com/cloud/network/dao/IPAddressDaoImpl.java | 6 +-
.../com/cloud/network/dao/NetworkDaoImpl.java | 10 +-
.../cloud/network/dao/PortProfileDaoImpl.java | 4 +-
.../security/dao/SecurityGroupDaoImpl.java | 6 +-
.../security/dao/SecurityGroupWorkDaoImpl.java | 8 +-
.../security/dao/VmRulesetLogDaoImpl.java | 8 +-
.../cloud/network/vpc/dao/PrivateIpDaoImpl.java | 4 +-
.../network/vpc/dao/StaticRouteDaoImpl.java | 4 +-
.../com/cloud/network/vpc/dao/VpcDaoImpl.java | 8 +-
.../network/vpc/dao/VpcOfferingDaoImpl.java | 4 +-
.../com/cloud/offerings/NetworkOfferingVO.java | 12 +
.../offerings/dao/NetworkOfferingDaoImpl.java | 6 +-
.../com/cloud/projects/dao/ProjectDaoImpl.java | 4 +-
.../dao/ServiceOfferingDetailsDaoImpl.java | 4 +-
.../storage/dao/LaunchPermissionDaoImpl.java | 6 +-
.../com/cloud/storage/dao/SnapshotDaoImpl.java | 14 +-
.../storage/dao/StoragePoolDetailsDaoImpl.java | 4 +-
.../storage/dao/StoragePoolHostDaoImpl.java | 10 +-
.../storage/dao/StoragePoolWorkDaoImpl.java | 4 +-
.../com/cloud/storage/dao/VMTemplateDao.java | 3 +
.../cloud/storage/dao/VMTemplateDaoImpl.java | 31 +-
.../cloud/storage/dao/VMTemplateDetailsDao.java | 2 +
.../storage/dao/VMTemplateDetailsDaoImpl.java | 16 +-
.../storage/dao/VMTemplateHostDaoImpl.java | 8 +-
.../storage/dao/VMTemplatePoolDaoImpl.java | 8 +-
.../storage/dao/VMTemplateZoneDaoImpl.java | 4 +-
.../com/cloud/storage/dao/VolumeDaoImpl.java | 12 +-
.../cloud/storage/dao/VolumeDetailsDaoImpl.java | 4 +-
.../src/com/cloud/upgrade/DatabaseCreator.java | 8 +-
.../cloud/upgrade/DatabaseIntegrityChecker.java | 7 +-
.../cloud/upgrade/DatabaseUpgradeChecker.java | 9 +-
.../com/cloud/upgrade/dao/Upgrade307to410.java | 1 -
.../com/cloud/upgrade/dao/VersionDaoImpl.java | 4 +-
.../src/com/cloud/usage/dao/UsageDaoImpl.java | 26 +-
.../cloud/usage/dao/UsageIPAddressDaoImpl.java | 6 +-
.../com/cloud/usage/dao/UsageJobDaoImpl.java | 8 +-
.../dao/UsageLoadBalancerPolicyDaoImpl.java | 8 +-
.../cloud/usage/dao/UsageNetworkDaoImpl.java | 8 +-
.../usage/dao/UsageNetworkOfferingDaoImpl.java | 6 +-
.../dao/UsagePortForwardingRuleDaoImpl.java | 8 +-
.../usage/dao/UsageSecurityGroupDaoImpl.java | 6 +-
.../cloud/usage/dao/UsageStorageDaoImpl.java | 8 +-
.../cloud/usage/dao/UsageVMInstanceDaoImpl.java | 8 +-
.../cloud/usage/dao/UsageVMSnapshotDaoImpl.java | 8 +-
.../cloud/usage/dao/UsageVPNUserDaoImpl.java | 6 +-
.../com/cloud/usage/dao/UsageVmDiskDaoImpl.java | 8 +-
.../com/cloud/usage/dao/UsageVolumeDaoImpl.java | 8 +-
.../com/cloud/user/AccountDetailsDaoImpl.java | 4 +-
.../src/com/cloud/user/dao/AccountDaoImpl.java | 4 +-
.../cloud/user/dao/UserStatisticsDaoImpl.java | 6 +-
.../cloud/user/dao/VmDiskStatisticsDaoImpl.java | 6 +-
.../com/cloud/vm/dao/ConsoleProxyDaoImpl.java | 16 +-
.../com/cloud/vm/dao/DomainRouterDaoImpl.java | 8 +-
.../src/com/cloud/vm/dao/NicDetailDaoImpl.java | 4 +-
.../cloud/vm/dao/SecondaryStorageVmDaoImpl.java | 8 +-
.../src/com/cloud/vm/dao/UserVmDaoImpl.java | 8 +-
.../src/com/cloud/vm/dao/UserVmDetailsDao.java | 3 +-
.../com/cloud/vm/dao/UserVmDetailsDaoImpl.java | 17 +-
.../src/com/cloud/vm/dao/VMInstanceDaoImpl.java | 12 +-
.../affinity/dao/AffinityGroupVMMapDaoImpl.java | 4 +-
.../entity/api/db/dao/VMComputeTagDaoImpl.java | 4 +-
.../entity/api/db/dao/VMEntityDaoImpl.java | 4 +-
.../entity/api/db/dao/VMNetworkMapDaoImpl.java | 4 +-
.../entity/api/db/dao/VMReservationDaoImpl.java | 4 +-
.../entity/api/db/dao/VMRootDiskTagDaoImpl.java | 4 +-
.../datastore/db/PrimaryDataStoreDaoImpl.java | 10 +-
...spring-engine-storage-cache-core-context.xml | 38 +
...g-engine-storage-datamotion-core-context.xml | 34 +
...ngine-storage-datamotion-storage-context.xml | 34 +
.../motion/AncientDataMotionStrategy.java | 10 +-
.../storage/motion/DataMotionServiceImpl.java | 42 +-
...spring-engine-storage-image-core-context.xml | 45 +
.../cloudstack/storage/test/AopTestAdvice.java | 3 +-
.../storage/test/CloudStackTestNGBase.java | 5 +-
.../test/FakePrimaryDataStoreDriver.java | 7 +-
.../storage/test/MockStorageMotionStrategy.java | 10 +-
.../cloudstack/storage/test/SnapshotTest.java | 58 +-
.../cloudstack/storage/test/TestNGAop.java | 4 +-
.../test/resources/storageContext.xml | 1 +
.../core/spring-engine-storage-core-context.xml | 68 +
.../storage-allocator/module.properties | 18 +
...engine-storage-storage-allocator-context.xml | 49 +
...ing-engine-storage-snapshot-core-context.xml | 41 +
...-engine-storage-snapshot-storage-context.xml | 33 +
.../storage/snapshot/SnapshotObject.java | 40 +-
.../snapshot/XenserverSnapshotStrategy.java | 8 +-
.../ClusterScopeStoragePoolAllocator.java | 19 +-
.../allocator/LocalStoragePoolAllocator.java | 19 +-
.../allocator/ZoneWideStoragePoolAllocator.java | 31 +-
.../provider/DataStoreProviderManagerImpl.java | 112 +-
.../endpoint/DefaultEndPointSelector.java | 3 +-
.../helper/StorageStrategyFactoryImpl.java | 139 +
.../image/db/ImageStoreDetailsDaoImpl.java | 4 +-
.../image/db/SnapshotDataStoreDaoImpl.java | 8 +-
.../image/db/TemplateDataStoreDaoImpl.java | 6 +-
.../image/db/VolumeDataStoreDaoImpl.java | 5 +-
.../datastore/PrimaryDataStoreHelper.java | 4 +-
.../db/PrimaryDataStoreDetailsDaoImpl.java | 4 +-
.../api/storage/StrategyPriorityTest.java | 122 +
...pring-engine-storage-volume-core-context.xml | 49 +
.../storage/volume/VolumeServiceImpl.java | 2 +-
.../spring-framework-cluster-core-context.xml | 36 +
.../com/cloud/cluster/ClusterManagerImpl.java | 102 +-
.../dao/ManagementServerHostDaoImpl.java | 16 +-
.../dao/ManagementServerHostPeerDaoImpl.java | 4 +-
...mework-config-system-context-inheritable.xml | 38 +
.../spring-framework-config-system-context.xml | 51 +
.../framework/config/ConfigDepotAdmin.java | 2 +
.../framework/config/dao/ConfigurationDao.java | 2 +
.../config/dao/ConfigurationDaoImpl.java | 24 +-
.../framework/config/impl/ConfigDepotImpl.java | 98 +-
.../config/impl/ConfigDepotAdminTest.java | 1 +
.../spring-framework-db-system-context.xml | 32 +
.../utils/crypt/EncryptionSecretKeyChanger.java | 3 +-
.../com/cloud/utils/db/ConnectionConcierge.java | 2 +-
framework/db/src/com/cloud/utils/db/DbUtil.java | 2 +-
.../src/com/cloud/utils/db/GenericDaoBase.java | 36 +-
.../db/src/com/cloud/utils/db/Merovingian2.java | 2 +-
.../src/com/cloud/utils/db/SequenceFetcher.java | 2 +-
.../db/src/com/cloud/utils/db/Transaction.java | 1165 +------
.../com/cloud/utils/db/TransactionCallback.java | 25 +
.../utils/db/TransactionCallbackNoReturn.java | 31 +
.../db/TransactionCallbackWithException.java | 25 +
...ransactionCallbackWithExceptionNoReturn.java | 32 +
.../utils/db/TransactionContextBuilder.java | 6 +-
.../utils/db/TransactionContextInterceptor.java | 39 +
.../utils/db/TransactionContextListener.java | 41 +
.../com/cloud/utils/db/TransactionLegacy.java | 1194 +++++++
.../cloud/utils/db/TransactionMBeanImpl.java | 18 +-
.../com/cloud/utils/db/TransactionStatus.java | 25 +
.../db/test/com/cloud/utils/db/DbTestDao.java | 4 +-
.../db/test/com/cloud/utils/db/DbTestUtils.java | 4 +-
.../com/cloud/utils/db/TestTransaction.java | 154 +
.../com/cloud/utils/db/TransactionTest.java | 26 +-
framework/db/test/db.properties | 18 +
.../core/spring-framework-ipc-core-context.xml | 59 +
.../core/spring-framework-jobs-core-context.xml | 48 +
.../framework/jobs/dao/AsyncJobDaoImpl.java | 4 +-
.../jobs/dao/AsyncJobJoinMapDaoImpl.java | 10 +-
.../framework/jobs/dao/SyncQueueDaoImpl.java | 4 +-
.../jobs/dao/SyncQueueItemDaoImpl.java | 4 +-
.../jobs/impl/AsyncJobManagerImpl.java | 286 +-
.../jobs/impl/SyncQueueManagerImpl.java | 271 +-
framework/pom.xml | 2 +
framework/spring/lifecycle/pom.xml | 34 +
.../spring/lifecycle/AbstractBeanCollector.java | 113 +
.../lifecycle/AbstractSmartLifeCycle.java | 53 +
.../lifecycle/CloudStackExtendedLifeCycle.java | 169 +
.../CloudStackExtendedLifeCycleStart.java | 49 +
.../spring/lifecycle/CloudStackLog4jSetup.java | 56 +
.../spring/lifecycle/ConfigDepotLifeCycle.java | 47 +
.../spring/lifecycle/registry/DumpRegistry.java | 77 +
.../lifecycle/registry/ExtensionRegistry.java | 245 ++
.../registry/PluggableServiceLifecycle.java | 53 +
.../lifecycle/registry/RegistryLifecycle.java | 144 +
framework/spring/module/pom.xml | 50 +
.../context/ResourceApplicationContext.java | 55 +
.../module/factory/CloudStackSpringContext.java | 137 +
.../factory/ModuleBasedContextFactory.java | 84 +
.../module/locator/ModuleDefinitionLocator.java | 36 +
.../impl/ClasspathModuleDefinitionLocator.java | 62 +
.../spring/module/model/ModuleDefinition.java | 48 +
.../module/model/ModuleDefinitionSet.java | 32 +
.../model/impl/DefaultModuleDefinition.java | 167 +
.../model/impl/DefaultModuleDefinitionSet.java | 243 ++
.../cloudstack/spring/module/util/Main.java | 58 +
.../spring/module/util/ModuleLocationUtils.java | 53 +
.../web/CloudStackContextLoaderListener.java | 75 +
.../module/model/impl/defaults-context.xml | 28 +
.../spring/module/factory/InitTest.java | 39 +
.../factory/ModuleBasedContextFactoryTest.java | 121 +
...ClasspathModuleDefinitionSetLocatorTest.java | 40 +
.../model/impl/DefaultModuleDefinitionTest.java | 131 +
.../resources/testfiles/all/defaults.properties | 18 +
.../testfiles/all/empty-context-inheritable.xml | 26 +
.../resources/testfiles/all/empty-context.xml | 26 +
.../all/empty2-context-inheritable.xml | 26 +
.../resources/testfiles/all/empty2-context.xml | 26 +
.../resources/testfiles/all/module.properties | 17 +
.../testfiles/all/test2-defaults.properties | 17 +
.../testfiles/badname/module.properties | 17 +
.../testfiles/blankname/module.properties | 18 +
.../resources/testfiles/good/empty-context.xml | 26 +
.../resources/testfiles/good/module.properties | 17 +
.../testfiles/missingname/module.properties | 17 +
.../testfiles/wrongname/module.properties | 17 +
.../testhierarchy/base/module.properties | 17 +
.../base/test-context-inheritable.xml | 28 +
.../testhierarchy/base/test-context.xml | 34 +
.../testhierarchy/child1-1/module.properties | 18 +
.../testhierarchy/child1-1/test-context.xml | 34 +
.../testhierarchy/child1/module.properties | 18 +
.../child1/test-context-override.xml | 30 +
.../testhierarchy/child1/test-context.xml | 38 +
.../testhierarchy/child2/module.properties | 18 +
.../testhierarchy/child2/test-context.xml | 33 +
.../testhierarchy/orphan1/module.properties | 18 +
.../testhierarchy/orphan1/test-context.xml | 30 +
packaging/centos63/cloud-management.rc | 4 +-
packaging/centos63/cloud.spec | 18 +-
packaging/centos63/cloudstack-sccs | 20 +
.../debian/config/opt/cloud/bin/savepassword.sh | 62 +
.../acl-static-role-based/module.properties | 18 +
.../spring-acl-static-role-based-context.xml | 34 +
.../explicit-dedication/module.properties | 18 +
.../spring-explicit-dedication-context.xml | 36 +
.../affinity/ExplicitDedicationProcessor.java | 32 +-
.../host-anti-affinity/module.properties | 18 +
.../spring-host-anti-affinity-context.xml | 37 +
.../discovery/ApiDiscoveryServiceImpl.java | 65 +-
.../cloudstack/discovery/ApiDiscoveryTest.java | 2 +-
.../cloudstack/rate-limit/module.properties | 18 +
.../rate-limit/spring-rate-limit-context.xml | 32 +
.../spring-dedicated-resources-core-context.xml | 33 +
.../dedicated/DedicatedResourceManagerImpl.java | 273 +-
.../implicit-dedication/module.properties | 18 +
.../spring-implicit-dedication-context.xml | 25 +
.../user-concentrated-pod/module.properties | 18 +
.../spring-user-concentrated-pod-context.xml | 35 +
.../src/com/cloud/netapp/NetappManagerImpl.java | 10 +-
.../host-allocator-random/module.properties | 18 +
.../spring-host-allocator-random-context.xml | 34 +
.../baremetal-compute/module.properties | 18 +
.../spring-baremetal-compute-context.xml | 35 +
.../baremetal-discoverer/module.properties | 18 +
.../spring-baremetal-discoverer-context.xml | 34 +
.../baremetal-network/module.properties | 18 +
.../spring-baremetal-network-context.xml | 46 +
.../baremetal-planner/module.properties | 18 +
.../spring-baremetal-planner-context.xml | 34 +
.../baremetal-storage/module.properties | 18 +
.../spring-baremetal-storage-context.xml | 32 +
.../core/spring-baremetal-core-context.xml | 42 +
.../BareMetalPingServiceImpl.java | 3 -
.../networkservice/BareMetalResourceBase.java | 2 +-
.../networkservice/BaremetaNetworkGuru.java | 21 +-
.../networkservice/BaremetalDhcpElement.java | 4 -
.../BaremetalDhcpManagerImpl.java | 4 -
.../BaremetalKickStartServiceImpl.java | 7 +-
.../networkservice/BaremetalPxeElement.java | 4 -
.../cloudstack/kvm-compute/module.properties | 18 +
.../kvm-compute/spring-kvm-compute-context.xml | 34 +
.../kvm/resource/LibvirtComputingResource.java | 2 +-
.../cloudstack/ovm-compute/module.properties | 18 +
.../ovm-compute/spring-ovm-compute-context.xml | 39 +
.../cloudstack/ovm-discoverer/module.properties | 18 +
.../spring-ovm-discoverer-context.xml | 34 +
.../cloud/ovm/hypervisor/OvmResourceBase.java | 4 +-
.../core/spring-simulator-core-context.xml | 45 +
.../simulator-compute/module.properties | 18 +
.../spring-simulator-compute-context.xml | 34 +
.../simulator-discoverer/module.properties | 18 +
.../spring-simulator-discover-context.xml | 36 +
.../simulator-planner/module.properties | 18 +
.../simulator-planner/spring-context.xml | 34 +
.../simulator-storage/module.properties | 18 +
.../spring-simulator-storage-context.xml | 33 +
.../agent/manager/MockAgentManagerImpl.java | 95 +-
.../agent/manager/MockStorageManagerImpl.java | 170 +-
.../cloud/agent/manager/MockVmManagerImpl.java | 48 +-
.../agent/manager/SimulatorManagerImpl.java | 10 +-
.../cloud/resource/AgentRoutingResource.java | 2 +-
.../simulator/dao/MockConfigurationDaoImpl.java | 4 +-
.../motion/SimulatorDataMotionStrategy.java | 10 +-
.../cloudstack/core/spring-ucs-core-context.xml | 35 +
.../com/cloud/ucs/manager/UcsManagerImpl.java | 3 -
.../core/spring-vmware-core-context.xml | 43 +
.../cloudstack/vmware-compute/module.properties | 18 +
.../spring-vmware-compute-context.xml | 43 +
.../vmware-compute/vmware-defaults.properties | 17 +
.../vmware-discoverer/module.properties | 18 +
.../spring-vmware-discoverer-context.xml | 35 +
.../cloudstack/vmware-network/module.properties | 18 +
.../spring-vmware-network-context.xml | 34 +
.../cloudstack/vmware-storage/module.properties | 18 +
.../spring-vmware-storage-context.xml | 33 +
.../vmware/VmwareServerDiscoverer.java | 33 +-
.../vmware/manager/VmwareManagerImpl.java | 53 +-
.../vmware/resource/VmwareResource.java | 12 +-
.../network/CiscoNexusVSMDeviceManagerImpl.java | 68 +-
.../network/element/CiscoNexusVSMElement.java | 50 +-
.../motion/VmwareStorageMotionStrategy.java | 12 +-
.../motion/VmwareStorageMotionStrategyTest.java | 10 +-
.../xenserver-compute/module.properties | 18 +
.../spring-xenserver-compute-context.xml | 28 +
.../xenserver-discoverer/module.properties | 18 +
.../spring-xenserver-discoverer-context.xml | 25 +
.../xen/resource/CitrixResourceBase.java | 117 +-
.../xen/resource/XenServer56FP1Resource.java | 26 +-
.../xen/resource/XenServer610Resource.java | 22 +
.../xen/resource/XenServerPoolVms.java | 39 +-
.../motion/XenServerStorageMotionStrategy.java | 12 +-
.../META-INF/cloudstack/vns/module.properties | 18 +
.../cloudstack/vns/spring-vns-context.xml | 36 +
.../network/element/BigSwitchVnsElement.java | 45 +-
.../cloud/network/element/CiscoVnmcElement.java | 263 +-
.../META-INF/cloudstack/elb/module.properties | 18 +
.../cloudstack/elb/spring-elb-context.xml | 34 +
.../lb/ElasticLoadBalancerManagerImpl.java | 34 +-
.../core/spring-internallb-core-context.xml | 37 +
.../lb/InternalLoadBalancerVMManagerImpl.java | 2 +-
.../JuniperSRXExternalFirewallElement.java | 38 +-
.../cloudstack/midonet/module.properties | 18 +
.../midonet/spring-midonet-context.xml | 37 +
.../network/guru/MidoNetPublicNetworkGuru.java | 19 +-
.../cloud/network/element/NetscalerElement.java | 52 +-
.../META-INF/cloudstack/nvp/module.properties | 18 +
.../cloudstack/nvp/spring-nvp-context.xml | 40 +
.../cloud/network/element/NiciraNvpElement.java | 45 +-
.../META-INF/cloudstack/ovs/module.properties | 18 +
.../cloudstack/ovs/spring-ovs-context.xml | 40 +
.../META-INF/cloudstack/ssp/module.properties | 18 +
.../cloudstack/ssp/spring-ssp-context.xml | 42 +
.../META-INF/cloudstack/vxlan/module.properties | 18 +
.../cloudstack/vxlan/spring-vxlan-context.xml | 34 +
.../storage-image-default/module.properties | 18 +
.../spring-storage-image-default-context.xml | 33 +
.../storage-image-s3/module.properties | 18 +
.../spring-storage-image-s3-context.xml | 34 +
.../storage-image-swift/module.properties | 18 +
.../spring-storage-image-swift-context.xml | 33 +
.../storage-volume-default/module.properties | 18 +
.../spring-storage-volume-default-context.xml | 35 +
.../CloudStackPrimaryDataStoreDriverImpl.java | 49 +-
.../SamplePrimaryDataStoreDriverImpl.java | 22 +-
.../storage-volume-solidfire/module.properties | 18 +
.../spring-storage-volume-solidfire-context.xml | 33 +
.../driver/SolidfirePrimaryDataStoreDriver.java | 73 +-
.../cloudstack/storage/test/AopTestAdvice.java | 4 +-
.../META-INF/cloudstack/ldap/module.properties | 18 +
.../cloudstack/ldap/spring-ldap-context.xml | 39 +
.../META-INF/cloudstack/md5/module.properties | 18 +
.../cloudstack/md5/spring-md5-context.xml | 34 +
.../cloudstack/plaintext/module.properties | 18 +
.../plaintext/spring-plaintext-context.xml | 35 +
.../cloudstack/sha256salted/module.properties | 18 +
.../spring-sha256salted-context.xml | 34 +
pom.xml | 15 +-
python/lib/cloudutils/serviceConfig.py | 2 +-
quickcloud/pom.xml | 30 +
.../spring-quickcloud-core-context-override.xml | 32 +
.../vm/hypervisor/xenserver/setupxenserver.sh | 2 +-
scripts/vm/hypervisor/xenserver/vmops | 2 +-
server/conf/cloudstack-sudoers.in | 2 +-
server/pom.xml | 15 +-
.../spring-server-core-managers-context.xml | 214 ++
.../core/spring-server-core-misc-context.xml | 68 +
.../module.properties | 18 +
...ing-server-alert-adapter-backend-context.xml | 32 +
.../module.properties | 18 +
...ing-server-alert-adapter-compute-context.xml | 32 +
.../module.properties | 18 +
...ing-server-alert-adapter-storage-context.xml | 32 +
.../server-allocator/module.properties | 18 +
.../spring-server-allocator-context.xml | 48 +
.../cloudstack/server-api/module.properties | 18 +
.../server-api/spring-server-api-context.xml | 33 +
.../cloudstack/server-compute/module.properties | 18 +
.../spring-server-compute-context.xml | 38 +
.../server-discoverer/module.properties | 18 +
.../spring-server-discoverer-context.xml | 45 +
.../cloudstack/server-fencer/module.properties | 18 +
.../spring-server-fencer-context.xml | 37 +
.../server-investigator/module.properties | 18 +
.../spring-server-investigator-context.xml | 46 +
.../cloudstack/server-network/module.properties | 18 +
.../spring-server-network-context.xml | 64 +
.../cloudstack/server-planner/module.properties | 18 +
.../spring-server-planner-context.xml | 34 +
.../cloudstack/server-storage/module.properties | 18 +
.../spring-server-storage-context.xml | 34 +
.../server-template-adapter/module.properties | 18 +
.../spring-server-template-adapter-context.xml | 32 +
server/src/com/cloud/api/ApiResponseHelper.java | 22 +-
server/src/com/cloud/api/ApiServer.java | 72 +-
.../com/cloud/api/query/QueryManagerImpl.java | 59 +-
.../cloud/api/query/dao/UserVmJoinDaoImpl.java | 13 +-
.../com/cloud/api/query/vo/UserVmJoinVO.java | 15 +
.../com/cloud/capacity/CapacityManagerImpl.java | 321 +-
server/src/com/cloud/configuration/Config.java | 4 +-
.../configuration/ConfigurationManagerImpl.java | 925 ++---
.../consoleproxy/ConsoleProxyManagerImpl.java | 34 +-
.../consoleproxy/StaticConsoleProxyManager.java | 3 +
.../cloud/dc/dao/DedicatedResourceDaoImpl.java | 3 +-
.../deploy/DeploymentPlanningManagerImpl.java | 190 +-
.../com/cloud/event/ActionEventInterceptor.java | 33 +-
.../ha/HighAvailabilityManagerExtImpl.java | 7 +-
.../cloud/ha/dao/HighAvailabilityDaoImpl.java | 3 +-
.../cloud/hypervisor/HypervisorGuruBase.java | 6 +-
.../metadata/ResourceMetaDataManagerImpl.java | 116 +-
.../network/ExternalDeviceUsageManagerImpl.java | 155 +-
.../ExternalFirewallDeviceManagerImpl.java | 46 +-
.../ExternalLoadBalancerDeviceManagerImpl.java | 171 +-
.../com/cloud/network/IpAddressManagerImpl.java | 988 +++---
.../com/cloud/network/NetworkServiceImpl.java | 605 ++--
.../cloud/network/NetworkUsageManagerImpl.java | 50 +-
.../cloud/network/PortProfileManagerImpl.java | 39 +-
.../network/StorageNetworkManagerImpl.java | 169 +-
.../cloud/network/as/AutoScaleManagerImpl.java | 191 +-
.../network/element/VirtualRouterElement.java | 8 +-
.../network/firewall/FirewallManagerImpl.java | 93 +-
.../cloud/network/guru/DirectNetworkGuru.java | 121 +-
.../network/guru/DirectPodBasedNetworkGuru.java | 113 +-
.../cloud/network/guru/GuestNetworkGuru.java | 17 +-
.../cloud/network/guru/PublicNetworkGuru.java | 20 +-
.../lb/LoadBalancingRulesManagerImpl.java | 395 ++-
.../VirtualNetworkApplianceManagerImpl.java | 456 ++-
.../cloud/network/rules/RulesManagerImpl.java | 227 +-
.../security/SecurityGroupManagerImpl.java | 526 +--
.../network/vpc/NetworkACLManagerImpl.java | 40 +-
.../com/cloud/network/vpc/VpcManagerImpl.java | 639 ++--
.../network/vpn/RemoteAccessVpnManagerImpl.java | 228 +-
.../com/cloud/projects/ProjectManagerImpl.java | 365 +-
.../com/cloud/resource/ResourceManagerImpl.java | 305 +-
.../resourcelimit/ResourceLimitManagerImpl.java | 333 +-
.../cloud/server/ConfigurationServerImpl.java | 637 ++--
.../com/cloud/server/ManagementServerImpl.java | 47 +-
server/src/com/cloud/server/StatsCollector.java | 247 +-
.../com/cloud/servlet/CloudStartupServlet.java | 3 +-
.../com/cloud/servlet/ConsoleProxyServlet.java | 3 +-
.../com/cloud/storage/StorageManagerImpl.java | 30 +-
.../com/cloud/storage/VolumeApiServiceImpl.java | 32 +-
.../storage/snapshot/SnapshotManagerImpl.java | 68 +-
.../cloud/tags/TaggedResourceManagerImpl.java | 110 +-
.../com/cloud/template/TemplateAdapterBase.java | 17 +
.../com/cloud/template/TemplateManagerImpl.java | 42 +-
server/src/com/cloud/test/DatabaseConfig.java | 67 +-
server/src/com/cloud/test/IPRangeConfig.java | 15 +-
server/src/com/cloud/test/PodZoneConfig.java | 7 +-
.../src/com/cloud/usage/UsageServiceImpl.java | 28 +-
.../src/com/cloud/user/AccountManagerImpl.java | 192 +-
.../src/com/cloud/user/DomainManagerImpl.java | 70 +-
.../cloud/uuididentity/dao/IdentityDaoImpl.java | 13 +-
server/src/com/cloud/vm/UserVmManagerImpl.java | 714 ++--
.../vm/snapshot/VMSnapshotManagerImpl.java | 45 +-
.../affinity/AffinityGroupServiceImpl.java | 107 +-
.../lb/ApplicationLoadBalancerManagerImpl.java | 52 +-
.../cloudstack/region/RegionManagerImpl.java | 2 +-
.../GlobalLoadBalancingRulesServiceImpl.java | 219 +-
.../configuration/ConfigurationManagerTest.java | 20 +-
.../cloud/network/CreatePrivateNetworkTest.java | 6 +-
.../network/DedicateGuestVlanRangesTest.java | 18 +-
.../network/UpdatePhysicalNetworkTest.java | 5 +-
.../vpn/MockRemoteAccessVPNServiceProvider.java | 5 +-
.../cloud/vpc/MockConfigurationManagerImpl.java | 2 +-
.../cloud/vpc/dao/MockConfigurationDaoImpl.java | 11 +-
.../CreateNetworkOfferingTest.java | 20 +-
.../cloudstack/region/RegionManagerTest.java | 29 +-
...GlobalLoadBalancingRulesServiceImplTest.java | 28 +-
.../module.properties | 18 +
...ing-secondary-storage-discoverer-context.xml | 36 +
setup/db/db/schema-420to421.sql | 190 +-
setup/db/db/schema-421to430.sql | 2 +
setup/dev/advanced.cfg | 6 +-
.../debian/config/etc/init.d/cloud-early-config | 1 +
.../debian/config/opt/cloud/bin/savepassword.sh | 65 +
.../redundant_router/check_heartbeat.sh.templ | 5 +-
.../config/root/redundant_router/fault.sh.templ | 4 +
.../patches/debian/config/root/savepassword.sh | 58 -
.../component/test_egress_fw_rules.py | 108 +-
.../component/test_persistent_networks.py | 290 ++
tools/appliance/definitions/devcloud/base.sh | 2 +-
.../definitions/systemvm64template/base.sh | 2 +-
.../systemvm64template/postinstall.sh | 2 +-
.../definitions/systemvmtemplate/base.sh | 2 +-
.../definitions/systemvmtemplate/postinstall.sh | 2 +-
.../src/deps/boxes/basebox-build/postinstall.sh | 2 +-
tools/marvin/marvin/cloudstackConnection.py | 120 +-
tools/marvin/marvin/cloudstackTestClient.py | 55 +-
tools/marvin/marvin/codegenerator.py | 2 +-
tools/marvin/marvin/codes.py | 35 +
tools/marvin/marvin/configGenerator.py | 9 +-
tools/marvin/marvin/deployDataCenter.py | 54 +-
ui/css/cloudstack3.css | 23 +-
ui/dictionary.jsp | 2 +
ui/index.jsp | 3229 +++++++++---------
ui/scripts/accounts.js | 30 +
ui/scripts/instanceWizard.js | 3 +
ui/scripts/instances.js | 51 +-
ui/scripts/network.js | 4 +-
ui/scripts/sharedFunctions.js | 1 +
ui/scripts/storage.js | 2 +-
ui/scripts/system.js | 38 +-
ui/scripts/templates.js | 105 +-
ui/scripts/ui-custom/instanceWizard.js | 67 +-
ui/scripts/ui/dialog.js | 10 +-
ui/scripts/ui/widgets/detailView.js | 7 +
usage/src/com/cloud/usage/UsageManagerImpl.java | 16 +-
.../src/com/cloud/usage/UsageSanityChecker.java | 4 +-
utils/pom.xml | 29 +
utils/src/com/cloud/utils/DateUtil.java | 41 +-
utils/src/com/cloud/utils/PropertiesUtil.java | 16 +
.../cloud/utils/component/ComponentContext.java | 27 +-
.../cloud/utils/exception/ExceptionUtil.java | 12 +
utils/src/com/cloud/utils/net/NetUtils.java | 12 +
utils/src/com/cloud/utils/ssh/SshHelper.java | 10 +-
.../com/cloud/utils/PropertiesUtilsTest.java | 41 +
.../utils/exception/ExceptionUtilTest.java | 48 +
640 files changed, 23160 insertions(+), 13139 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7a1ee002/client/tomcatconf/commands.properties.in
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7a1ee002/engine/storage/datamotion/src/org/apache/cloudstack/storage/motion/AncientDataMotionStrategy.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7a1ee002/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/XenserverSnapshotStrategy.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7a1ee002/engine/storage/src/org/apache/cloudstack/storage/image/db/SnapshotDataStoreDaoImpl.java
----------------------------------------------------------------------
diff --cc engine/storage/src/org/apache/cloudstack/storage/image/db/SnapshotDataStoreDaoImpl.java
index 913112c,48416a2..d566b31
--- a/engine/storage/src/org/apache/cloudstack/storage/image/db/SnapshotDataStoreDaoImpl.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/image/db/SnapshotDataStoreDaoImpl.java
@@@ -40,8 -40,8 +40,8 @@@ import com.cloud.utils.db.DB
import com.cloud.utils.db.GenericDaoBase;
import com.cloud.utils.db.SearchBuilder;
import com.cloud.utils.db.SearchCriteria;
-import com.cloud.utils.db.TransactionLegacy;
import com.cloud.utils.db.SearchCriteria.Op;
- import com.cloud.utils.db.Transaction;
++import com.cloud.utils.db.TransactionLegacy;
import com.cloud.utils.db.UpdateBuilder;
@Component
@@@ -171,16 -171,6 +171,16 @@@ public class SnapshotDataStoreDaoImpl e
}
@Override
+ public void deleteSnapshotRecordsOnPrimary() {
+ SearchCriteria<SnapshotDataStoreVO> sc = storeSearch.create();
+ sc.setParameters("store_role", DataStoreRole.Primary);
- Transaction txn = Transaction.currentTxn();
++ TransactionLegacy txn = TransactionLegacy.currentTxn();
+ txn.start();
+ remove(sc);
+ txn.commit();
+ }
+
+ @Override
public SnapshotDataStoreVO findByStoreSnapshot(DataStoreRole role, long storeId, long snapshotId) {
SearchCriteria<SnapshotDataStoreVO> sc = storeSnapshotSearch.create();
sc.setParameters("store_id", storeId);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7a1ee002/engine/storage/src/org/apache/cloudstack/storage/image/db/TemplateDataStoreDaoImpl.java
----------------------------------------------------------------------
diff --cc engine/storage/src/org/apache/cloudstack/storage/image/db/TemplateDataStoreDaoImpl.java
index 5c1ec33,4509e23..b7c70cc
--- a/engine/storage/src/org/apache/cloudstack/storage/image/db/TemplateDataStoreDaoImpl.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/image/db/TemplateDataStoreDaoImpl.java
@@@ -47,9 -43,8 +47,9 @@@ import com.cloud.utils.db.GenericDaoBas
import com.cloud.utils.db.SearchBuilder;
import com.cloud.utils.db.SearchCriteria;
import com.cloud.utils.db.SearchCriteria.Op;
- import com.cloud.utils.db.Transaction;
+ import com.cloud.utils.db.TransactionLegacy;
import com.cloud.utils.db.UpdateBuilder;
+import com.cloud.utils.exception.CloudRuntimeException;
@Component
public class TemplateDataStoreDaoImpl extends GenericDaoBase<TemplateDataStoreVO, Long> implements TemplateDataStoreDao {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7a1ee002/engine/storage/src/org/apache/cloudstack/storage/image/db/VolumeDataStoreDaoImpl.java
----------------------------------------------------------------------
diff --cc engine/storage/src/org/apache/cloudstack/storage/image/db/VolumeDataStoreDaoImpl.java
index 4118079,2bacd03..ef0a8c5
--- a/engine/storage/src/org/apache/cloudstack/storage/image/db/VolumeDataStoreDaoImpl.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/image/db/VolumeDataStoreDaoImpl.java
@@@ -34,8 -33,8 +34,8 @@@ import org.apache.cloudstack.storage.da
import com.cloud.utils.db.GenericDaoBase;
import com.cloud.utils.db.SearchBuilder;
import com.cloud.utils.db.SearchCriteria;
-import com.cloud.utils.db.TransactionLegacy;
import com.cloud.utils.db.SearchCriteria.Op;
- import com.cloud.utils.db.Transaction;
++import com.cloud.utils.db.TransactionLegacy;
import com.cloud.utils.db.UpdateBuilder;
@Component
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7a1ee002/server/src/com/cloud/server/ManagementServerImpl.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/server/ManagementServerImpl.java
index e3d4137,bce6b45..5273203
--- a/server/src/com/cloud/server/ManagementServerImpl.java
+++ b/server/src/com/cloud/server/ManagementServerImpl.java
@@@ -2214,27 -2215,26 +2217,26 @@@ public class ManagementServerImpl exten
}
}
- Transaction txn = Transaction.currentTxn();
-
- txn.start();
-
+ Transaction.execute(new TransactionCallbackNoReturn() {
+ @Override
+ public void doInTransactionWithoutResult(TransactionStatus status) {
- if (domainName != null) {
- String updatedDomainPath = getUpdatedDomainPath(domain.getPath(), domainName);
- updateDomainChildren(domain, updatedDomainPath);
- domain.setName(domainName);
- domain.setPath(updatedDomainPath);
- }
-
- if (networkDomain != null) {
- if (networkDomain.isEmpty()) {
- domain.setNetworkDomain(null);
- } else {
- domain.setNetworkDomain(networkDomain);
- }
- }
- _domainDao.update(domainId, domain);
+ if (domainName != null) {
+ String updatedDomainPath = getUpdatedDomainPath(domain.getPath(), domainName);
+ updateDomainChildren(domain, updatedDomainPath);
+ domain.setName(domainName);
+ domain.setPath(updatedDomainPath);
+ }
+
+ if (networkDomain != null) {
+ if (networkDomain.isEmpty()) {
+ domain.setNetworkDomain(null);
+ } else {
+ domain.setNetworkDomain(networkDomain);
+ }
+ }
+ _domainDao.update(domainId, domain);
-
- txn.commit();
+ }
+ });
return _domainDao.findById(domainId);
@@@ -3671,35 -3670,30 +3673,30 @@@
throw new InvalidParameterValueException("This operation is not supported for this hypervisor type");
}
// get all the hosts in this cluster
- List<HostVO> hosts = _resourceMgr.listAllHostsInCluster(cmd.getClusterId());
- Transaction txn = Transaction.currentTxn();
- try {
- txn.start();
+ final List<HostVO> hosts = _resourceMgr.listAllHostsInCluster(cmd.getClusterId());
+
+ Transaction.execute(new TransactionCallbackNoReturn() {
+ @Override
+ public void doInTransactionWithoutResult(TransactionStatus status) {
- for (HostVO h : hosts) {
- if (s_logger.isDebugEnabled()) {
- s_logger.debug("Changing password for host name = " + h.getName());
- }
- // update password for this host
- DetailVO nv = _detailsDao.findDetail(h.getId(), ApiConstants.USERNAME);
- if (nv.getValue().equals(cmd.getUsername())) {
- DetailVO nvp = _detailsDao.findDetail(h.getId(), ApiConstants.PASSWORD);
- nvp.setValue(DBEncryptionUtil.encrypt(cmd.getPassword()));
- _detailsDao.persist(nvp);
- } else {
- // if one host in the cluster has diff username then
- // rollback to maintain consistency
- throw new InvalidParameterValueException(
- "The username is not same for all hosts, please modify passwords for individual hosts.");
- }
+ for (HostVO h : hosts) {
+ if (s_logger.isDebugEnabled()) {
+ s_logger.debug("Changing password for host name = " + h.getName());
+ }
+ // update password for this host
+ DetailVO nv = _detailsDao.findDetail(h.getId(), ApiConstants.USERNAME);
+ if (nv.getValue().equals(cmd.getUsername())) {
+ DetailVO nvp = _detailsDao.findDetail(h.getId(), ApiConstants.PASSWORD);
+ nvp.setValue(DBEncryptionUtil.encrypt(cmd.getPassword()));
+ _detailsDao.persist(nvp);
+ } else {
+ // if one host in the cluster has diff username then
+ // rollback to maintain consistency
- txn.rollback();
+ throw new InvalidParameterValueException(
+ "The username is not same for all hosts, please modify passwords for individual hosts.");
}
}
- txn.commit();
- // if hypervisor is xenserver then we update it in
- // CitrixResourceBase
- } catch (Exception e) {
- txn.rollback();
- throw new CloudRuntimeException("Failed to update password " + e.getMessage());
+ }
+ });
}
return true;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7a1ee002/server/src/com/cloud/storage/StorageManagerImpl.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/storage/StorageManagerImpl.java
index eaefcb2,75cedd0..8e199ee
--- a/server/src/com/cloud/storage/StorageManagerImpl.java
+++ b/server/src/com/cloud/storage/StorageManagerImpl.java
@@@ -1810,17 -1782,20 +1814,20 @@@ public class StorageManagerImpl extend
}
// ready to delete
- Transaction txn = Transaction.currentTxn();
- txn.start();
+ Transaction.execute(new TransactionCallbackNoReturn() {
+ @Override
+ public void doInTransactionWithoutResult(TransactionStatus status) {
- // first delete from image_store_details table, we need to do that since
- // we are not actually deleting record from main
- // image_data_store table, so delete cascade will not work
- _imageStoreDetailsDao.deleteDetails(storeId);
- _snapshotStoreDao.deletePrimaryRecordsForStore(storeId, DataStoreRole.Image);
- _volumeStoreDao.deletePrimaryRecordsForStore(storeId);
- _templateStoreDao.deletePrimaryRecordsForStore(storeId);
- _imageStoreDao.remove(storeId);
+ // first delete from image_store_details table, we need to do that since
+ // we are not actually deleting record from main
+ // image_data_store table, so delete cascade will not work
+ _imageStoreDetailsDao.deleteDetails(storeId);
+ _snapshotStoreDao.deletePrimaryRecordsForStore(storeId, DataStoreRole.Image);
+ _volumeStoreDao.deletePrimaryRecordsForStore(storeId);
+ _templateStoreDao.deletePrimaryRecordsForStore(storeId);
+ _imageStoreDao.remove(storeId);
- txn.commit();
+ }
+ });
+
return true;
}
@@@ -1919,17 -1894,20 +1926,20 @@@
}
// ready to delete
- Transaction txn = Transaction.currentTxn();
- txn.start();
+ Transaction.execute(new TransactionCallbackNoReturn() {
+ @Override
+ public void doInTransactionWithoutResult(TransactionStatus status) {
- // first delete from image_store_details table, we need to do that since
- // we are not actually deleting record from main
- // image_data_store table, so delete cascade will not work
- _imageStoreDetailsDao.deleteDetails(storeId);
- _snapshotStoreDao.deletePrimaryRecordsForStore(storeId, DataStoreRole.ImageCache);
- _volumeStoreDao.deletePrimaryRecordsForStore(storeId);
- _templateStoreDao.deletePrimaryRecordsForStore(storeId);
- _imageStoreDao.remove(storeId);
+ // first delete from image_store_details table, we need to do that since
+ // we are not actually deleting record from main
+ // image_data_store table, so delete cascade will not work
+ _imageStoreDetailsDao.deleteDetails(storeId);
+ _snapshotStoreDao.deletePrimaryRecordsForStore(storeId, DataStoreRole.ImageCache);
+ _volumeStoreDao.deletePrimaryRecordsForStore(storeId);
+ _templateStoreDao.deletePrimaryRecordsForStore(storeId);
+ _imageStoreDao.remove(storeId);
- txn.commit();
+ }
+ });
+
return true;
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7a1ee002/server/src/com/cloud/storage/VolumeApiServiceImpl.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/storage/VolumeApiServiceImpl.java
index 12f0102,071281c..cfb54f0
--- a/server/src/com/cloud/storage/VolumeApiServiceImpl.java
+++ b/server/src/com/cloud/storage/VolumeApiServiceImpl.java
@@@ -404,35 -405,35 +406,35 @@@ public class VolumeApiServiceImpl exten
}
@DB
- protected VolumeVO persistVolume(Account owner, Long zoneId, String volumeName, String url, String format) {
-
- Transaction txn = Transaction.currentTxn();
- txn.start();
-
+ protected VolumeVO persistVolume(final Account owner, final Long zoneId, final String volumeName, final String url, final String format) {
+ return Transaction.execute(new TransactionCallback<VolumeVO>() {
+ @Override
+ public VolumeVO doInTransaction(TransactionStatus status) {
- VolumeVO volume = new VolumeVO(volumeName, zoneId, -1, -1, -1, new Long(-1), null, null, 0, Volume.Type.DATADISK);
- volume.setPoolId(null);
- volume.setDataCenterId(zoneId);
- volume.setPodId(null);
- volume.setAccountId(owner.getAccountId());
- volume.setDomainId(owner.getDomainId());
- long diskOfferingId = _diskOfferingDao.findByUniqueName("Cloud.com-Custom").getId();
- volume.setDiskOfferingId(diskOfferingId);
- // volume.setSize(size);
- volume.setInstanceId(null);
- volume.setUpdated(new Date());
- volume.setDomainId((owner == null) ? Domain.ROOT_DOMAIN : owner.getDomainId());
- volume.setFormat(ImageFormat.valueOf(format));
- volume = _volsDao.persist(volume);
- CallContext.current().setEventDetails("Volume Id: " + volume.getId());
-
- // Increment resource count during allocation; if actual creation fails,
- // decrement it
- _resourceLimitMgr.incrementResourceCount(volume.getAccountId(), ResourceType.volume);
- _resourceLimitMgr.incrementResourceCount(volume.getAccountId(), ResourceType.secondary_storage, UriUtils.getRemoteSize(url));
-
- return volume;
- }
+ VolumeVO volume = new VolumeVO(volumeName, zoneId, -1, -1, -1, new Long(-1), null, null, 0, Volume.Type.DATADISK);
+ volume.setPoolId(null);
+ volume.setDataCenterId(zoneId);
+ volume.setPodId(null);
+ volume.setAccountId(owner.getAccountId());
+ volume.setDomainId(owner.getDomainId());
+ long diskOfferingId = _diskOfferingDao.findByUniqueName("Cloud.com-Custom").getId();
+ volume.setDiskOfferingId(diskOfferingId);
+ // volume.setSize(size);
+ volume.setInstanceId(null);
+ volume.setUpdated(new Date());
+ volume.setDomainId((owner == null) ? Domain.ROOT_DOMAIN : owner.getDomainId());
+ volume.setFormat(ImageFormat.valueOf(format));
+ volume = _volsDao.persist(volume);
+ CallContext.current().setEventDetails("Volume Id: " + volume.getId());
+
+ // Increment resource count during allocation; if actual creation fails,
+ // decrement it
+ _resourceLimitMgr.incrementResourceCount(volume.getAccountId(), ResourceType.volume);
+ _resourceLimitMgr.incrementResourceCount(volume.getAccountId(), ResourceType.secondary_storage, UriUtils.getRemoteSize(url));
+
- txn.commit();
+ return volume;
+ }
+ });
+ }
/*
* Just allocate a volume in the database, don't send the createvolume cmd
@@@ -600,48 -601,56 +602,56 @@@
userSpecifiedName = getRandomVolumeName();
}
- Transaction txn = Transaction.currentTxn();
- txn.start();
+ VolumeVO volume = commitVolume(cmd, caller, ownerId, displayVolumeEnabled, zoneId, diskOfferingId, size,
+ minIops, maxIops, parentVolume, userSpecifiedName);
+ return volume;
+ }
+
+ private VolumeVO commitVolume(final CreateVolumeCmd cmd, final Account caller, final long ownerId, final Boolean displayVolumeEnabled,
+ final Long zoneId, final Long diskOfferingId, final Long size, final Long minIops, final Long maxIops, final VolumeVO parentVolume,
+ final String userSpecifiedName) {
+ return Transaction.execute(new TransactionCallback<VolumeVO>() {
+ @Override
+ public VolumeVO doInTransaction(TransactionStatus status) {
- VolumeVO volume = new VolumeVO(userSpecifiedName, -1, -1, -1, -1, new Long(-1), null, null, 0, Volume.Type.DATADISK);
- volume.setPoolId(null);
- volume.setDataCenterId(zoneId);
- volume.setPodId(null);
- volume.setAccountId(ownerId);
- volume.setDomainId(((caller == null) ? Domain.ROOT_DOMAIN : caller.getDomainId()));
- volume.setDiskOfferingId(diskOfferingId);
- volume.setSize(size);
- volume.setMinIops(minIops);
- volume.setMaxIops(maxIops);
- volume.setInstanceId(null);
- volume.setUpdated(new Date());
- volume.setDomainId((caller == null) ? Domain.ROOT_DOMAIN : caller.getDomainId());
- volume.setDisplayVolume(displayVolumeEnabled);
- if (parentVolume != null) {
- volume.setTemplateId(parentVolume.getTemplateId());
- volume.setFormat(parentVolume.getFormat());
- } else {
- volume.setTemplateId(null);
- }
-
- volume = _volsDao.persist(volume);
- if (cmd.getSnapshotId() == null) {
- // for volume created from snapshot, create usage event after volume creation
- UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VOLUME_CREATE, volume.getAccountId(), volume.getDataCenterId(), volume.getId(), volume.getName(), diskOfferingId,
- null, size, Volume.class.getName(), volume.getUuid());
- }
-
- CallContext.current().setEventDetails("Volume Id: " + volume.getId());
-
- // Increment resource count during allocation; if actual creation fails,
- // decrement it
- _resourceLimitMgr.incrementResourceCount(volume.getAccountId(), ResourceType.volume);
- _resourceLimitMgr.incrementResourceCount(volume.getAccountId(), ResourceType.primary_storage, new Long(volume.getSize()));
- return volume;
- }
+ VolumeVO volume = new VolumeVO(userSpecifiedName, -1, -1, -1, -1, new Long(-1), null, null, 0, Volume.Type.DATADISK);
+ volume.setPoolId(null);
+ volume.setDataCenterId(zoneId);
+ volume.setPodId(null);
+ volume.setAccountId(ownerId);
+ volume.setDomainId(((caller == null) ? Domain.ROOT_DOMAIN : caller.getDomainId()));
+ volume.setDiskOfferingId(diskOfferingId);
+ volume.setSize(size);
+ volume.setMinIops(minIops);
+ volume.setMaxIops(maxIops);
+ volume.setInstanceId(null);
+ volume.setUpdated(new Date());
+ volume.setDomainId((caller == null) ? Domain.ROOT_DOMAIN : caller.getDomainId());
+ volume.setDisplayVolume(displayVolumeEnabled);
+ if (parentVolume != null) {
+ volume.setTemplateId(parentVolume.getTemplateId());
+ volume.setFormat(parentVolume.getFormat());
+ } else {
+ volume.setTemplateId(null);
+ }
+
+ volume = _volsDao.persist(volume);
+ if (cmd.getSnapshotId() == null) {
+ // for volume created from snapshot, create usage event after volume creation
+ UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VOLUME_CREATE, volume.getAccountId(), volume.getDataCenterId(), volume.getId(), volume.getName(), diskOfferingId,
+ null, size, Volume.class.getName(), volume.getUuid());
+ }
+
+ CallContext.current().setEventDetails("Volume Id: " + volume.getId());
+
+ // Increment resource count during allocation; if actual creation fails,
+ // decrement it
+ _resourceLimitMgr.incrementResourceCount(volume.getAccountId(), ResourceType.volume);
+ _resourceLimitMgr.incrementResourceCount(volume.getAccountId(), ResourceType.primary_storage, new Long(volume.getSize()));
-
- txn.commit();
-
+ return volume;
+ }
+ });
+ }
public boolean validateVolumeSizeRange(long size) {
if (size < 0 || (size > 0 && size < (1024 * 1024 * 1024))) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7a1ee002/server/src/com/cloud/template/TemplateManagerImpl.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/template/TemplateManagerImpl.java
index 3b2ec58,fb1bb27..aa4473d
--- a/server/src/com/cloud/template/TemplateManagerImpl.java
+++ b/server/src/com/cloud/template/TemplateManagerImpl.java
@@@ -1290,28 -1284,31 +1290,31 @@@ public class TemplateManagerImpl extend
//Derive the domain id from the template owner as updateTemplatePermissions is not cross domain operation
Account owner = _accountMgr.getAccount(ownerId);
- Domain domain = _domainDao.findById(owner.getDomainId());
+ final Domain domain = _domainDao.findById(owner.getDomainId());
if ("add".equalsIgnoreCase(operation)) {
- txn.start();
- for (String accountName : accountNames) {
+ final List<String> accountNamesFinal = accountNames;
+ Transaction.execute(new TransactionCallbackNoReturn() {
+ @Override
+ public void doInTransactionWithoutResult(TransactionStatus status) {
+ for (String accountName : accountNamesFinal) {
- Account permittedAccount = _accountDao.findActiveAccount(accountName, domain.getId());
- if (permittedAccount != null) {
- if (permittedAccount.getId() == caller.getId()) {
- continue; // don't grant permission to the template
- // owner, they implicitly have permission
- }
- LaunchPermissionVO existingPermission = _launchPermissionDao.findByTemplateAndAccount(id, permittedAccount.getId());
- if (existingPermission == null) {
- LaunchPermissionVO launchPermission = new LaunchPermissionVO(id, permittedAccount.getId());
- _launchPermissionDao.persist(launchPermission);
- }
- } else {
- throw new InvalidParameterValueException("Unable to grant a launch permission to account " + accountName + " in domain id=" + domain.getUuid()
- + ", account not found. " + "No permissions updated, please verify the account names and retry.");
- }
+ Account permittedAccount = _accountDao.findActiveAccount(accountName, domain.getId());
+ if (permittedAccount != null) {
+ if (permittedAccount.getId() == caller.getId()) {
+ continue; // don't grant permission to the template
+ // owner, they implicitly have permission
}
+ LaunchPermissionVO existingPermission = _launchPermissionDao.findByTemplateAndAccount(id, permittedAccount.getId());
+ if (existingPermission == null) {
+ LaunchPermissionVO launchPermission = new LaunchPermissionVO(id, permittedAccount.getId());
+ _launchPermissionDao.persist(launchPermission);
+ }
+ } else {
- txn.rollback();
+ throw new InvalidParameterValueException("Unable to grant a launch permission to account " + accountName + " in domain id=" + domain.getUuid()
+ + ", account not found. " + "No permissions updated, please verify the account names and retry.");
+ }
+ }
- txn.commit();
+ }
+ });
} else if ("remove".equalsIgnoreCase(operation)) {
List<Long> accountIds = new ArrayList<Long>();
for (String accountName : accountNames) {
@@@ -1434,26 -1431,31 +1437,31 @@@
zoneId, accountId, volumeId);
}*/
if (privateTemplate == null) {
- Transaction txn = Transaction.currentTxn();
- txn.start();
+ final VolumeVO volumeFinal = volume;
+ final SnapshotVO snapshotFinal = snapshot;
+ Transaction.execute(new TransactionCallbackNoReturn() {
+ @Override
+ public void doInTransactionWithoutResult(TransactionStatus status) {
- // template_store_ref entries should have been removed using our
- // DataObject.processEvent command in case of failure, but clean
- // it up here to avoid
- // some leftovers which will cause removing template from
- // vm_template table fail.
- _tmplStoreDao.deletePrimaryRecordsForTemplate(templateId);
- // Remove the template_zone_ref record
- _tmpltZoneDao.deletePrimaryRecordsForTemplate(templateId);
- // Remove the template record
- _tmpltDao.expunge(templateId);
-
- // decrement resource count
- if (accountId != null) {
- _resourceLimitMgr.decrementResourceCount(accountId, ResourceType.template);
+ // template_store_ref entries should have been removed using our
+ // DataObject.processEvent command in case of failure, but clean
+ // it up here to avoid
+ // some leftovers which will cause removing template from
+ // vm_template table fail.
+ _tmplStoreDao.deletePrimaryRecordsForTemplate(templateId);
+ // Remove the template_zone_ref record
+ _tmpltZoneDao.deletePrimaryRecordsForTemplate(templateId);
+ // Remove the template record
+ _tmpltDao.expunge(templateId);
+
+ // decrement resource count
+ if (accountId != null) {
+ _resourceLimitMgr.decrementResourceCount(accountId, ResourceType.template);
- _resourceLimitMgr.decrementResourceCount(accountId, ResourceType.secondary_storage, new Long(volume != null ? volume.getSize()
- : snapshot.getSize()));
+ _resourceLimitMgr.decrementResourceCount(accountId, ResourceType.secondary_storage, new Long(volumeFinal != null ? volumeFinal.getSize()
+ : snapshotFinal.getSize()));
- }
+ }
- txn.commit();
+ }
+ });
+
}
}