----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/17790/ -----------------------------------------------------------
(Updated Feb. 10, 2014, 7:06 p.m.) Review request for cloudstack. Changes ------- Updates for Daan's request. Repository: cloudstack-git Description ------- Currently, under the environment of cloudstack with multiple regions, each region has its own management server running with a separate database, which will cause data discrepancies when users create/update/delete domain/account/user data independently in each management server. So to support multiple regions and provide one point of entry for each customer, this implementation duplicates domain/account/user information of customers in one region to all of the regions independently whenever there is any change. https://issues.apache.org/jira/browse/CLOUDSTACK-4992 https://cwiki.apache.org/confluence/display/CLOUDSTACK/Domain-Account-User+Sync+Up+Among+Multiple+Regions Diffs (updated) ----- api/src/com/cloud/domain/Domain.java befed07 api/src/com/cloud/event/EventTypes.java 77d2fab api/src/com/cloud/user/Account.java 940a0eb api/src/com/cloud/user/AccountService.java 8153a3f api/src/com/cloud/user/User.java dcf27a0 api/src/com/cloud/user/UserAccount.java 0cb0f69 api/src/org/apache/cloudstack/api/ApiConstants.java 68abf8d api/src/org/apache/cloudstack/api/BaseCmd.java acc1568 api/src/org/apache/cloudstack/api/response/AccountResponse.java 957936b api/src/org/apache/cloudstack/api/response/DomainResponse.java 736a96c api/src/org/apache/cloudstack/api/response/UserResponse.java e70a310 api/src/org/apache/cloudstack/region/Region.java c696fb2 engine/schema/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml ea0bad9 engine/schema/src/com/cloud/domain/DomainVO.java a87bedc engine/schema/src/com/cloud/rmap/RmapVO.java PRE-CREATION engine/schema/src/com/cloud/rmap/dao/RmapDao.java PRE-CREATION engine/schema/src/com/cloud/rmap/dao/RmapDaoImpl.java PRE-CREATION engine/schema/src/com/cloud/user/AccountVO.java 4a7e73b engine/schema/src/com/cloud/user/UserAccountVO.java cfad617 engine/schema/src/com/cloud/user/UserVO.java 2a85758 engine/schema/src/org/apache/cloudstack/region/RegionVO.java 36db8dd framework/db/src/com/cloud/utils/db/Attribute.java 22fd969 framework/db/src/com/cloud/utils/db/GenericDao.java ef25d7f framework/db/src/com/cloud/utils/db/GenericDaoBase.java 177cd5b framework/db/src/com/cloud/utils/db/SqlGenerator.java 473e839 plugins/event-bus/rabbitmq/src/org/apache/cloudstack/mom/rabbitmq/AccountSubscriber.java PRE-CREATION plugins/event-bus/rabbitmq/src/org/apache/cloudstack/mom/rabbitmq/DomainSubscriber.java PRE-CREATION plugins/event-bus/rabbitmq/src/org/apache/cloudstack/mom/rabbitmq/MultiRegionEventBus.java PRE-CREATION plugins/event-bus/rabbitmq/src/org/apache/cloudstack/mom/rabbitmq/MultiRegionSubscriber.java PRE-CREATION plugins/event-bus/rabbitmq/src/org/apache/cloudstack/mom/rabbitmq/UserSubscriber.java PRE-CREATION plugins/network-elements/juniper-contrail/test/org/apache/cloudstack/network/contrail/management/MockAccountManager.java 195e932 server/resources/META-INF/cloudstack/core/spring-event-bus-context.xml PRE-CREATION server/src/com/cloud/api/ApiDispatcher.java 9624c61 server/src/com/cloud/api/ApiResponseHelper.java 5bd8241 server/src/com/cloud/api/query/dao/AccountJoinDaoImpl.java edbd3ae server/src/com/cloud/api/query/dao/UserAccountJoinDaoImpl.java 4ad8a8f server/src/com/cloud/api/query/vo/AccountJoinVO.java 2ec45d3 server/src/com/cloud/api/query/vo/UserAccountJoinVO.java c020c01 server/src/com/cloud/event/ActionEventUtils.java 00122de server/src/com/cloud/projects/ProjectManagerImpl.java 22e2020 server/src/com/cloud/region/api_interface/AccountInterface.java PRE-CREATION server/src/com/cloud/region/api_interface/BaseInterface.java PRE-CREATION server/src/com/cloud/region/api_interface/DomainInterface.java PRE-CREATION server/src/com/cloud/region/api_interface/UserInterface.java PRE-CREATION server/src/com/cloud/region/service/AccountFullSyncProcessor.java PRE-CREATION server/src/com/cloud/region/service/AccountService.java PRE-CREATION server/src/com/cloud/region/service/BaseService.java PRE-CREATION server/src/com/cloud/region/service/DomainFullSyncProcessor.java PRE-CREATION server/src/com/cloud/region/service/DomainService.java PRE-CREATION server/src/com/cloud/region/service/FullScanner.java PRE-CREATION server/src/com/cloud/region/service/FullSyncProcessor.java PRE-CREATION server/src/com/cloud/region/service/LocalAccountManager.java PRE-CREATION server/src/com/cloud/region/service/LocalDomainManager.java PRE-CREATION server/src/com/cloud/region/service/LocalUserManager.java PRE-CREATION server/src/com/cloud/region/service/RemoteAccountEventProcessor.java PRE-CREATION server/src/com/cloud/region/service/RemoteDomainEventProcessor.java PRE-CREATION server/src/com/cloud/region/service/RemoteEventProcessor.java PRE-CREATION server/src/com/cloud/region/service/RemoteUserEventProcessor.java PRE-CREATION server/src/com/cloud/region/service/UserFullSyncProcessor.java PRE-CREATION server/src/com/cloud/region/service/UserService.java PRE-CREATION server/src/com/cloud/region/simulator/AccountLocalGenerator.java PRE-CREATION server/src/com/cloud/region/simulator/AccountLocalGeneratorEvent.java PRE-CREATION server/src/com/cloud/region/simulator/AutoGenerator.java PRE-CREATION server/src/com/cloud/region/simulator/DomainLocalGenerator.java PRE-CREATION server/src/com/cloud/region/simulator/DomainLocalGeneratorEvent.java PRE-CREATION server/src/com/cloud/region/simulator/LocalGenerator.java PRE-CREATION server/src/com/cloud/region/simulator/UserLocalGenerator.java PRE-CREATION server/src/com/cloud/region/simulator/UserLocalGeneratorEvent.java PRE-CREATION server/src/com/cloud/server/StatsCollector.java 45fc43e server/src/com/cloud/user/AccountManager.java 2e909c8 server/src/com/cloud/user/AccountManagerImpl.java d367653 server/src/com/cloud/user/DomainManager.java 7bc2abb server/src/com/cloud/user/DomainManagerImpl.java 036110b server/test/com/cloud/user/MockAccountManagerImpl.java 38cc1a84 server/test/com/cloud/user/MockDomainManagerImpl.java aab8001 setup/db/db/schema-421to430.sql 316cbe9 tools/devcloud/devcloud-advanced.cfg fb25d03 Diff: https://reviews.apache.org/r/17790/diff/ Testing ------- 1. Successfully tested real time synchronization as soon as resources are created/deleted/modified in one region. 2. Successfully tested full scans to synchronize resources that were missed during real time synchronization because of any reasons like network connection issues. 3. The tests were done manually and also automatically by randomly generating changes each region. Thanks, Alex Ough