You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cloudstack.apache.org by Alex Ough <al...@sungard.com> on 2014/04/03 17:52:10 UTC

Re: Review Request 17790: Domain-Account-User Sync Up Among Multiple Regions

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17790/
-----------------------------------------------------------

(Updated April 3, 2014, 3:52 p.m.)


Review request for cloudstack.


Changes
-------

This is the patch for the core changes.

As per Alena's request,
1) Done
2) Done
3) Done
4) Done
5) Done
6) Done
7) Yes
8) One of the key features is to assign the created/modified datetimes of newly being created/modifyed resources with them of corresponding remote resources in order to maintain the original datetimes of the resources. Otherwise, the datetime comparison will not be correct.
9) Done
10) Done
11) Done
12) Done
13) Done

Please let me know if there is anything incorrect/missing. 


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 365a705 
  api/src/com/cloud/event/EventTypes.java 39ef710 
  api/src/com/cloud/user/Account.java b912e51 
  api/src/com/cloud/user/AccountService.java 7e37b38 
  api/src/com/cloud/user/User.java 36e9028 
  api/src/com/cloud/user/UserAccount.java c5a0637 
  api/src/org/apache/cloudstack/api/ApiConstants.java fdb4558 
  api/src/org/apache/cloudstack/api/BaseCmd.java f6f21ae 
  api/src/org/apache/cloudstack/api/command/admin/region/AddRegionCmd.java f6743ba 
  api/src/org/apache/cloudstack/api/command/admin/region/UpdateRegionCmd.java b08cbbb 
  api/src/org/apache/cloudstack/api/response/AccountResponse.java 2e50c51 
  api/src/org/apache/cloudstack/api/response/DomainResponse.java 0c0281e 
  api/src/org/apache/cloudstack/api/response/RegionResponse.java 6c74fa6 
  api/src/org/apache/cloudstack/api/response/UserResponse.java 40e1561 
  api/src/org/apache/cloudstack/region/Region.java df64e44 
  api/src/org/apache/cloudstack/region/RegionService.java afefcc7 
  api/test/org/apache/cloudstack/api/command/test/RegionCmdTest.java 10c3d85 
  client/pom.xml d8dbde7 
  engine/schema/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml 489b37d 
  engine/schema/src/com/cloud/domain/DomainVO.java f6494b3 
  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 0f5a044 
  engine/schema/src/com/cloud/user/UserAccountVO.java cef9239 
  engine/schema/src/com/cloud/user/UserVO.java 68879f6 
  engine/schema/src/org/apache/cloudstack/region/RegionVO.java 608bd2b 
  framework/db/src/com/cloud/utils/db/Attribute.java 82c2bdb 
  framework/db/src/com/cloud/utils/db/GenericDao.java cb401cd 
  framework/db/src/com/cloud/utils/db/GenericDaoBase.java 2052aad 
  framework/db/src/com/cloud/utils/db/SqlGenerator.java befe34b 
  framework/db/test/com/cloud/utils/db/GenericDaoBaseTest.java aef0c69 
  framework/db/test/com/cloud/utils/db/SqlGeneratorTest.java PRE-CREATION 
  plugins/network-elements/juniper-contrail/test/org/apache/cloudstack/network/contrail/management/MockAccountManager.java 957f708 
  plugins/pom.xml 9b391b8 
  server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml fc1c7e2 
  server/src/com/cloud/api/ApiDispatcher.java 95074e2 
  server/src/com/cloud/api/ApiResponseHelper.java 38f2f0b 
  server/src/com/cloud/api/dispatch/ParamProcessWorker.java e9bdd8b 
  server/src/com/cloud/api/query/dao/AccountJoinDaoImpl.java ecd97c7 
  server/src/com/cloud/api/query/dao/UserAccountJoinDaoImpl.java 923a238 
  server/src/com/cloud/api/query/vo/AccountJoinVO.java 8d642ed 
  server/src/com/cloud/api/query/vo/UserAccountJoinVO.java ed29284 
  server/src/com/cloud/event/ActionEventUtils.java 28e5680 
  server/src/com/cloud/projects/ProjectManagerImpl.java d10c059 
  server/src/com/cloud/user/AccountManager.java 03bf842 
  server/src/com/cloud/user/AccountManagerImpl.java 2070ee6 
  server/src/com/cloud/user/DomainManager.java f72b18a 
  server/src/com/cloud/user/DomainManagerImpl.java fbbe0c2 
  server/src/org/apache/cloudstack/region/RegionManager.java 6f25481 
  server/src/org/apache/cloudstack/region/RegionManagerImpl.java 8910714 
  server/src/org/apache/cloudstack/region/RegionServiceImpl.java 98cf500 
  server/test/com/cloud/api/dispatch/ParamProcessWorkerTest.java 12051a6 
  server/test/com/cloud/user/MockAccountManagerImpl.java f373cba 
  server/test/com/cloud/user/MockDomainManagerImpl.java 7dddefb 
  server/test/org/apache/cloudstack/region/RegionManagerTest.java d7bc537 
  setup/db/db/schema-440to450.sql 2bd5386 
  ui/scripts/regions.js 66dae8c 

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


Re: Review Request 17790: Domain-Account-User Sync Up Among Multiple Regions (New Plugin)

Posted by Alex Ough <al...@sungard.com>.

> On May 5, 2014, 6:28 p.m., Alena Prokharchyk wrote:
> > Alex,
> > 
> > Move all new API commands/responses you've added (ListSyncAccountsCmdByAdmin.java, SyncAccountResponse.java), to your plugin's "multiregion" folder. Look how its done for other CS plugins - internallb for example

I checked the 'internallb' and it looks like the cmd class files are under "api/src/org/apache/cloudstack/api/command/admin/internallb", where all the command classes are located. Please let me know if I'm missing any.


- Alex


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17790/#review42177
-----------------------------------------------------------


On May 4, 2014, 9:18 p.m., Alex Ough wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/17790/
> -----------------------------------------------------------
> 
> (Updated May 4, 2014, 9:18 p.m.)
> 
> 
> Review request for cloudstack.
> 
> 
> 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
> -----
> 
>   api/src/org/apache/cloudstack/api/command/admin/account/ListSyncAccountsCmdByAdmin.java PRE-CREATION 
>   api/src/org/apache/cloudstack/api/command/admin/domain/ListSyncDomainChildrenCmd.java PRE-CREATION 
>   api/src/org/apache/cloudstack/api/command/admin/domain/ListSyncDomainsCmd.java PRE-CREATION 
>   api/src/org/apache/cloudstack/api/command/admin/user/ListSyncUsersCmd.java PRE-CREATION 
>   api/src/org/apache/cloudstack/api/command/user/account/ListSyncAccountsCmd.java PRE-CREATION 
>   api/src/org/apache/cloudstack/api/response/SyncAccountResponse.java PRE-CREATION 
>   api/src/org/apache/cloudstack/api/response/SyncDomainResponse.java PRE-CREATION 
>   api/src/org/apache/cloudstack/api/response/SyncUserResponse.java PRE-CREATION 
>   engine/schema/src/org/apache/cloudstack/multiregion/RmapVO.java PRE-CREATION 
>   engine/schema/src/org/apache/cloudstack/multiregion/RsyncVO.java PRE-CREATION 
>   engine/schema/src/org/apache/cloudstack/multiregion/dao/RmapDao.java PRE-CREATION 
>   engine/schema/src/org/apache/cloudstack/multiregion/dao/RmapDaoImpl.java PRE-CREATION 
>   engine/schema/src/org/apache/cloudstack/multiregion/dao/RsyncDao.java PRE-CREATION 
>   engine/schema/src/org/apache/cloudstack/multiregion/dao/RsyncDaoImpl.java PRE-CREATION 
>   plugins/event-bus/multiregion/pom.xml PRE-CREATION 
>   plugins/event-bus/multiregion/resources/META-INF/cloudstack/spring-mom-multiregion-daos-context.xml PRE-CREATION 
>   plugins/event-bus/multiregion/resources/META-INF/cloudstack/system/spring-plugin-multiregion-system-context.xml PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/FullSyncer.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/InjectedCollection.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/MultiRegionEventBus.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/StringManipulator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/AccountCaller.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/BaseCaller.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/DomainCaller.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/UserCaller.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/APIFailureException.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/BaseService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullScanner.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullSyncProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalAccountManager.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalDomainManager.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalUserManager.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteEventProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEvent.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAutoGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEvent.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEvent.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriber.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriber.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriber.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriber.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/AccountCallerTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/BaseCallerTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/DomainCallerTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/UserCallerTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/BaseServiceTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEventTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEventTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGeneratorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEventTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriberTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriberTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriberTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriberTest.java PRE-CREATION 
>   server/src/com/cloud/api/query/dao/SyncAccountJoinDao.java PRE-CREATION 
>   server/src/com/cloud/api/query/dao/SyncAccountJoinDaoImpl.java PRE-CREATION 
>   server/src/com/cloud/api/query/dao/SyncUserAccountJoinDao.java PRE-CREATION 
>   server/src/com/cloud/api/query/dao/SyncUserAccountJoinDaoImpl.java PRE-CREATION 
>   server/src/com/cloud/multiregion/RsyncManager.java PRE-CREATION 
>   server/src/com/cloud/multiregion/RsyncManagerImpl.java PRE-CREATION 
> 
> 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
> 
>


Re: Review Request 17790: Domain-Account-User Sync Up Among Multiple Regions (New Plugin)

Posted by Alena Prokharchyk <al...@citrix.com>.

> On May 5, 2014, 6:28 p.m., Alena Prokharchyk wrote:
> > Alex,
> > 
> > Move all new API commands/responses you've added (ListSyncAccountsCmdByAdmin.java, SyncAccountResponse.java), to your plugin's "multiregion" folder. Look how its done for other CS plugins - internallb for example
> 
> Alex Ough wrote:
>     I checked the 'internallb' and it looks like the cmd class files are under "api/src/org/apache/cloudstack/api/command/admin/internallb", where all the command classes are located. Please let me know if I'm missing any.

Sorry, internallb plugin doesn't quite follow the CS packaging convention; we will have to change it eventually. Refer to cloud-plugin-network-vns instead. Under the plugin folder, there is an "api" folder. The folder contains 2 subfolders - commands (where Cmd classes are kept) and response (for API responses). Thats the right way to ship API commands/responses when they are a part of the plugin. 

Alex, you can also refer to this doc for more details if needed https://cwiki.apache.org/confluence/display/CLOUDSTACK/CloudStack+API+Coding+Guidelines. It explains CS coding guidelines when it comes to API development/placement.


- Alena


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17790/#review42177
-----------------------------------------------------------


On May 4, 2014, 9:18 p.m., Alex Ough wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/17790/
> -----------------------------------------------------------
> 
> (Updated May 4, 2014, 9:18 p.m.)
> 
> 
> Review request for cloudstack.
> 
> 
> 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
> -----
> 
>   api/src/org/apache/cloudstack/api/command/admin/account/ListSyncAccountsCmdByAdmin.java PRE-CREATION 
>   api/src/org/apache/cloudstack/api/command/admin/domain/ListSyncDomainChildrenCmd.java PRE-CREATION 
>   api/src/org/apache/cloudstack/api/command/admin/domain/ListSyncDomainsCmd.java PRE-CREATION 
>   api/src/org/apache/cloudstack/api/command/admin/user/ListSyncUsersCmd.java PRE-CREATION 
>   api/src/org/apache/cloudstack/api/command/user/account/ListSyncAccountsCmd.java PRE-CREATION 
>   api/src/org/apache/cloudstack/api/response/SyncAccountResponse.java PRE-CREATION 
>   api/src/org/apache/cloudstack/api/response/SyncDomainResponse.java PRE-CREATION 
>   api/src/org/apache/cloudstack/api/response/SyncUserResponse.java PRE-CREATION 
>   engine/schema/src/org/apache/cloudstack/multiregion/RmapVO.java PRE-CREATION 
>   engine/schema/src/org/apache/cloudstack/multiregion/RsyncVO.java PRE-CREATION 
>   engine/schema/src/org/apache/cloudstack/multiregion/dao/RmapDao.java PRE-CREATION 
>   engine/schema/src/org/apache/cloudstack/multiregion/dao/RmapDaoImpl.java PRE-CREATION 
>   engine/schema/src/org/apache/cloudstack/multiregion/dao/RsyncDao.java PRE-CREATION 
>   engine/schema/src/org/apache/cloudstack/multiregion/dao/RsyncDaoImpl.java PRE-CREATION 
>   plugins/event-bus/multiregion/pom.xml PRE-CREATION 
>   plugins/event-bus/multiregion/resources/META-INF/cloudstack/spring-mom-multiregion-daos-context.xml PRE-CREATION 
>   plugins/event-bus/multiregion/resources/META-INF/cloudstack/system/spring-plugin-multiregion-system-context.xml PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/FullSyncer.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/InjectedCollection.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/MultiRegionEventBus.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/StringManipulator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/AccountCaller.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/BaseCaller.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/DomainCaller.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/UserCaller.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/APIFailureException.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/BaseService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullScanner.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullSyncProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalAccountManager.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalDomainManager.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalUserManager.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteEventProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEvent.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAutoGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEvent.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEvent.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriber.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriber.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriber.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriber.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/AccountCallerTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/BaseCallerTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/DomainCallerTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/UserCallerTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/BaseServiceTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEventTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEventTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGeneratorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEventTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriberTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriberTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriberTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriberTest.java PRE-CREATION 
>   server/src/com/cloud/api/query/dao/SyncAccountJoinDao.java PRE-CREATION 
>   server/src/com/cloud/api/query/dao/SyncAccountJoinDaoImpl.java PRE-CREATION 
>   server/src/com/cloud/api/query/dao/SyncUserAccountJoinDao.java PRE-CREATION 
>   server/src/com/cloud/api/query/dao/SyncUserAccountJoinDaoImpl.java PRE-CREATION 
>   server/src/com/cloud/multiregion/RsyncManager.java PRE-CREATION 
>   server/src/com/cloud/multiregion/RsyncManagerImpl.java PRE-CREATION 
> 
> 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
> 
>


Re: Review Request 17790: Domain-Account-User Sync Up Among Multiple Regions (New Plugin)

Posted by Alena Prokharchyk <al...@citrix.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17790/#review42177
-----------------------------------------------------------


Alex,

Move all new API commands/responses you've added (ListSyncAccountsCmdByAdmin.java, SyncAccountResponse.java), to your plugin's "multiregion" folder. Look how its done for other CS plugins - internallb for example

- Alena Prokharchyk


On May 4, 2014, 9:18 p.m., Alex Ough wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/17790/
> -----------------------------------------------------------
> 
> (Updated May 4, 2014, 9:18 p.m.)
> 
> 
> Review request for cloudstack.
> 
> 
> 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
> -----
> 
>   api/src/org/apache/cloudstack/api/command/admin/account/ListSyncAccountsCmdByAdmin.java PRE-CREATION 
>   api/src/org/apache/cloudstack/api/command/admin/domain/ListSyncDomainChildrenCmd.java PRE-CREATION 
>   api/src/org/apache/cloudstack/api/command/admin/domain/ListSyncDomainsCmd.java PRE-CREATION 
>   api/src/org/apache/cloudstack/api/command/admin/user/ListSyncUsersCmd.java PRE-CREATION 
>   api/src/org/apache/cloudstack/api/command/user/account/ListSyncAccountsCmd.java PRE-CREATION 
>   api/src/org/apache/cloudstack/api/response/SyncAccountResponse.java PRE-CREATION 
>   api/src/org/apache/cloudstack/api/response/SyncDomainResponse.java PRE-CREATION 
>   api/src/org/apache/cloudstack/api/response/SyncUserResponse.java PRE-CREATION 
>   engine/schema/src/org/apache/cloudstack/multiregion/RmapVO.java PRE-CREATION 
>   engine/schema/src/org/apache/cloudstack/multiregion/RsyncVO.java PRE-CREATION 
>   engine/schema/src/org/apache/cloudstack/multiregion/dao/RmapDao.java PRE-CREATION 
>   engine/schema/src/org/apache/cloudstack/multiregion/dao/RmapDaoImpl.java PRE-CREATION 
>   engine/schema/src/org/apache/cloudstack/multiregion/dao/RsyncDao.java PRE-CREATION 
>   engine/schema/src/org/apache/cloudstack/multiregion/dao/RsyncDaoImpl.java PRE-CREATION 
>   plugins/event-bus/multiregion/pom.xml PRE-CREATION 
>   plugins/event-bus/multiregion/resources/META-INF/cloudstack/spring-mom-multiregion-daos-context.xml PRE-CREATION 
>   plugins/event-bus/multiregion/resources/META-INF/cloudstack/system/spring-plugin-multiregion-system-context.xml PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/FullSyncer.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/InjectedCollection.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/MultiRegionEventBus.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/StringManipulator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/AccountCaller.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/BaseCaller.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/DomainCaller.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/UserCaller.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/APIFailureException.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/BaseService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullScanner.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullSyncProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalAccountManager.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalDomainManager.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalUserManager.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteEventProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEvent.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAutoGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEvent.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEvent.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriber.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriber.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriber.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriber.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/AccountCallerTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/BaseCallerTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/DomainCallerTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/UserCallerTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/BaseServiceTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEventTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEventTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGeneratorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEventTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriberTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriberTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriberTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriberTest.java PRE-CREATION 
>   server/src/com/cloud/api/query/dao/SyncAccountJoinDao.java PRE-CREATION 
>   server/src/com/cloud/api/query/dao/SyncAccountJoinDaoImpl.java PRE-CREATION 
>   server/src/com/cloud/api/query/dao/SyncUserAccountJoinDao.java PRE-CREATION 
>   server/src/com/cloud/api/query/dao/SyncUserAccountJoinDaoImpl.java PRE-CREATION 
>   server/src/com/cloud/multiregion/RsyncManager.java PRE-CREATION 
>   server/src/com/cloud/multiregion/RsyncManagerImpl.java PRE-CREATION 
> 
> 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
> 
>


Re: Review Request 17790: Domain-Account-User Sync Up Among Multiple Regions (New Plugin)

Posted by Alena Prokharchyk <al...@citrix.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17790/#review42512
-----------------------------------------------------------


Looks good to me, Alex. Lets wait for the resolution on https://reviews.apache.org/r/20099/, and then I will check in both patches.

- Alena Prokharchyk


On May 7, 2014, 10:46 p.m., Alex Ough wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/17790/
> -----------------------------------------------------------
> 
> (Updated May 7, 2014, 10:46 p.m.)
> 
> 
> Review request for cloudstack.
> 
> 
> 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
> -----
> 
>   engine/schema/src/org/apache/cloudstack/multiregion/RmapVO.java PRE-CREATION 
>   engine/schema/src/org/apache/cloudstack/multiregion/RsyncVO.java PRE-CREATION 
>   engine/schema/src/org/apache/cloudstack/multiregion/dao/RmapDao.java PRE-CREATION 
>   engine/schema/src/org/apache/cloudstack/multiregion/dao/RmapDaoImpl.java PRE-CREATION 
>   engine/schema/src/org/apache/cloudstack/multiregion/dao/RsyncDao.java PRE-CREATION 
>   engine/schema/src/org/apache/cloudstack/multiregion/dao/RsyncDaoImpl.java PRE-CREATION 
>   plugins/event-bus/multiregion/pom.xml PRE-CREATION 
>   plugins/event-bus/multiregion/resources/META-INF/cloudstack/spring-plugin-multiregion-system-context.xml PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/FullSyncer.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/InjectedCollection.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/MultiRegionEventBus.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/StringManipulator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/AccountCaller.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/BaseCaller.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/DomainCaller.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/UserCaller.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncAccountsCmd.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncAccountsCmdByAdmin.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncDomainChildrenCmd.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncDomainsCmd.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncUsersCmd.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncAccountJoinDao.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncAccountJoinDaoImpl.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncUserAccountJoinDao.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncUserAccountJoinDaoImpl.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/ApiSyncResponseHelper.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncAccountResponse.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncDomainResponse.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncQueryManagerImpl.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncQueryService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncUserResponse.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/APIFailureException.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/BaseService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullScanner.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullSyncProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalAccountManager.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalDomainManager.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalUserManager.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteEventProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEvent.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAutoGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEvent.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEvent.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriber.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriber.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriber.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriber.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/AccountCallerTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/BaseCallerTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/DomainCallerTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/UserCallerTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/BaseServiceTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEventTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEventTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGeneratorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEventTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriberTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriberTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriberTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriberTest.java PRE-CREATION 
>   server/src/com/cloud/multiregion/RsyncManager.java PRE-CREATION 
>   server/src/com/cloud/multiregion/RsyncManagerImpl.java PRE-CREATION 
> 
> 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
> 
>


Re: Review Request 17790: Domain-Account-User Sync Up Among Multiple Regions (New Plugin)

Posted by John Burwell <jb...@basho.com>.
Alena and Rohit,

I am only phone ATM, and can't easily locate the thread, but I am strong -1 on that patch in its current form due to the highly likelihood data corruption when network partitions occur.

Thanks,
-John

> On Dec 5, 2014, at 5:25 PM, Alena Prokharchyk <Al...@citrix.com> wrote:
> 
> The discussion wasn’t published on the review board, so yes, please search in the mailing list for the subject "Review Request 20099”
> 
> Let me know if you need more details.
> 
> -Alena.
> 
> From: Rohit Yadav <bh...@apache.org>
> Reply-To: "dev@cloudstack.apache.org" <de...@cloudstack.apache.org>
> Date: Friday, December 5, 2014 at 2:15 PM
> To: Alena Prokharchyk <al...@citrix.com>
> Cc: "dev@cloudstack.apache.org" <de...@cloudstack.apache.org>, Alex Ough <al...@sungard.com>, John Burwell <jb...@basho.com>
> Subject: Re: Review Request 17790: Domain-Account-User Sync Up Among Multiple Regions (New Plugin)
> 
> On Sat, Dec 6, 2014 at 3:39 AM, Alena Prokharchyk <
> Alena.Prokharchyk@citrix.com> wrote:
> 
>   Rohit, please refer to the thread with "Review Request 20099" subject
> and concerns raised by John Burwell.
> 
>   -Alena.
> 
> 
> Thanks for replying Alena, I was just going through pending reviews and was
> trying to close those which are invalid or already merged.
> 
> I could not find John's reply on https://reviews.apache.org/r/20099/
> review, perhaps it was on the ML I'll search markmail for that later, right
> now I simply need help from everyone to do some maintenance work on our
> JIRA, ReviewBoard and Github PR and cleanup/close invalid or old
> issues/reviews/pull-requests that don't apply anymore or are already fixed.
> 
> Regards.
> 
> 
> 
> 
>    From: Rohit Yadav <bh...@apache.org>
> Reply-To: "dev@cloudstack.apache.org" <de...@cloudstack.apache.org>, Rohit
> Yadav <bh...@apache.org>
> Date: Friday, December 5, 2014 at 10:41 AM
> To: cloudstack <de...@cloudstack.apache.org>, Alex Ough <
> alex.ough@sungard.com>, Rohit Yadav <bh...@apache.org>
> Subject: Re: Review Request 17790: Domain-Account-User Sync Up Among
> Multiple Regions (New Plugin)
> 
> 
>   -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/17790/#review64047
> -----------------------------------------------------------
> 
> 
>   ping. any update on this?
> 
>   - Rohit Yadav
> 
> 
>   On June 27, 2014, 5:04 p.m., Alex Ough wrote:
> 
>   -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/17790/
> -----------------------------------------------------------
>   (Updated June 27, 2014, 5:04 p.m.)
>   Review request for cloudstack.
>   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
> -----
>      engine/schema/src/org/apache/cloudstack/multiregion/RmapVO.java
> PRE-CREATION
>     engine/schema/src/org/apache/cloudstack/multiregion/RsyncVO.java
> PRE-CREATION
>     engine/schema/src/org/apache/cloudstack/multiregion/dao/RmapDao.java
> PRE-CREATION
> 
> engine/schema/src/org/apache/cloudstack/multiregion/dao/RmapDaoImpl.java
> PRE-CREATION
>     engine/schema/src/org/apache/cloudstack/multiregion/dao/RsyncDao.java
> PRE-CREATION
> 
> engine/schema/src/org/apache/cloudstack/multiregion/dao/RsyncDaoImpl.java
> PRE-CREATION
>     plugins/event-bus/multiregion/pom.xml PRE-CREATION
> 
> plugins/event-bus/multiregion/resources/META-INF/cloudstack/core/spring-plugin-multiregion-system-context.xml
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/FullSyncer.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/InjectedCollection.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/MultiRegionEventBus.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/StringManipulator.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/AccountCaller.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/BaseCaller.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/DomainCaller.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/UserCaller.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncAccountsCmd.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncAccountsCmdByAdmin.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncDomainChildrenCmd.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncDomainsCmd.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncUsersCmd.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncAccountJoinDao.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncAccountJoinDaoImpl.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncUserAccountJoinDao.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncUserAccountJoinDaoImpl.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/ApiSyncResponseHelper.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncAccountResponse.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncDomainResponse.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncQueryManagerImpl.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncQueryService.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncUserResponse.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/event/SyncActionEventInterceptor.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/event/SyncActionEventUtils.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/APIFailureException.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessor.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountService.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/BaseService.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessor.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainService.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullScanner.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullSyncProcessor.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalAccountManager.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalDomainManager.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalManager.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalUserManager.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessor.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessor.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteEventProcessor.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessor.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessor.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserService.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGenerator.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEvent.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAutoGenerator.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGenerator.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEvent.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGenerator.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGenerator.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEvent.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriber.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriber.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriber.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriber.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/AccountCallerTest.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/BaseCallerTest.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/DomainCallerTest.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/UserCallerTest.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessorTest.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/BaseServiceTest.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessorTest.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessorTest.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessorTest.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessorTest.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessorTest.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEventTest.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorTest.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEventTest.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorTest.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGeneratorTest.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEventTest.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorTest.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriberTest.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriberTest.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriberTest.java
> PRE-CREATION
> 
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriberTest.java
> PRE-CREATION
>     server/src/com/cloud/multiregion/RsyncManager.java PRE-CREATION
>     server/src/com/cloud/multiregion/RsyncManagerImpl.java PRE-CREATION
>   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
> 
> 
> 
> 
> 

Re: Review Request 17790: Domain-Account-User Sync Up Among Multiple Regions (New Plugin)

Posted by Alena Prokharchyk <Al...@citrix.com>.
The discussion wasn’t published on the review board, so yes, please search in the mailing list for the subject "Review Request 20099”

Let me know if you need more details.

-Alena.

From: Rohit Yadav <bh...@apache.org>>
Reply-To: "dev@cloudstack.apache.org<ma...@cloudstack.apache.org>" <de...@cloudstack.apache.org>>
Date: Friday, December 5, 2014 at 2:15 PM
To: Alena Prokharchyk <al...@citrix.com>>
Cc: "dev@cloudstack.apache.org<ma...@cloudstack.apache.org>" <de...@cloudstack.apache.org>>, Alex Ough <al...@sungard.com>>, John Burwell <jb...@basho.com>>
Subject: Re: Review Request 17790: Domain-Account-User Sync Up Among Multiple Regions (New Plugin)

On Sat, Dec 6, 2014 at 3:39 AM, Alena Prokharchyk <
Alena.Prokharchyk@citrix.com<ma...@citrix.com>> wrote:

  Rohit, please refer to the thread with "Review Request 20099" subject
and concerns raised by John Burwell.

  -Alena.


Thanks for replying Alena, I was just going through pending reviews and was
trying to close those which are invalid or already merged.

I could not find John's reply on https://reviews.apache.org/r/20099/
review, perhaps it was on the ML I'll search markmail for that later, right
now I simply need help from everyone to do some maintenance work on our
JIRA, ReviewBoard and Github PR and cleanup/close invalid or old
issues/reviews/pull-requests that don't apply anymore or are already fixed.

Regards.




   From: Rohit Yadav <bh...@apache.org>>
Reply-To: "dev@cloudstack.apache.org<ma...@cloudstack.apache.org>" <de...@cloudstack.apache.org>>, Rohit
Yadav <bh...@apache.org>>
Date: Friday, December 5, 2014 at 10:41 AM
To: cloudstack <de...@cloudstack.apache.org>>, Alex Ough <
alex.ough@sungard.com<ma...@sungard.com>>, Rohit Yadav <bh...@apache.org>>
Subject: Re: Review Request 17790: Domain-Account-User Sync Up Among
Multiple Regions (New Plugin)


  -----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17790/#review64047
-----------------------------------------------------------


  ping. any update on this?

  - Rohit Yadav


  On June 27, 2014, 5:04 p.m., Alex Ough wrote:

  -----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17790/
-----------------------------------------------------------
  (Updated June 27, 2014, 5:04 p.m.)
  Review request for cloudstack.
  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
-----
     engine/schema/src/org/apache/cloudstack/multiregion/RmapVO.java
PRE-CREATION
    engine/schema/src/org/apache/cloudstack/multiregion/RsyncVO.java
PRE-CREATION
    engine/schema/src/org/apache/cloudstack/multiregion/dao/RmapDao.java
PRE-CREATION

engine/schema/src/org/apache/cloudstack/multiregion/dao/RmapDaoImpl.java
PRE-CREATION
    engine/schema/src/org/apache/cloudstack/multiregion/dao/RsyncDao.java
PRE-CREATION

engine/schema/src/org/apache/cloudstack/multiregion/dao/RsyncDaoImpl.java
PRE-CREATION
    plugins/event-bus/multiregion/pom.xml PRE-CREATION

plugins/event-bus/multiregion/resources/META-INF/cloudstack/core/spring-plugin-multiregion-system-context.xml
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/FullSyncer.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/InjectedCollection.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/MultiRegionEventBus.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/StringManipulator.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/AccountCaller.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/BaseCaller.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/DomainCaller.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/UserCaller.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncAccountsCmd.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncAccountsCmdByAdmin.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncDomainChildrenCmd.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncDomainsCmd.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncUsersCmd.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncAccountJoinDao.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncAccountJoinDaoImpl.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncUserAccountJoinDao.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncUserAccountJoinDaoImpl.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/ApiSyncResponseHelper.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncAccountResponse.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncDomainResponse.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncQueryManagerImpl.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncQueryService.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncUserResponse.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/event/SyncActionEventInterceptor.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/event/SyncActionEventUtils.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/APIFailureException.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessor.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountService.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/BaseService.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessor.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainService.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullScanner.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullSyncProcessor.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalAccountManager.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalDomainManager.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalManager.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalUserManager.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessor.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessor.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteEventProcessor.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessor.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessor.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserService.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGenerator.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEvent.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAutoGenerator.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGenerator.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEvent.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGenerator.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGenerator.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEvent.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriber.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriber.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriber.java
PRE-CREATION

plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriber.java
PRE-CREATION

plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/AccountCallerTest.java
PRE-CREATION

plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/BaseCallerTest.java
PRE-CREATION

plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/DomainCallerTest.java
PRE-CREATION

plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/UserCallerTest.java
PRE-CREATION

plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessorTest.java
PRE-CREATION

plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/BaseServiceTest.java
PRE-CREATION

plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessorTest.java
PRE-CREATION

plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessorTest.java
PRE-CREATION

plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessorTest.java
PRE-CREATION

plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessorTest.java
PRE-CREATION

plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessorTest.java
PRE-CREATION

plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEventTest.java
PRE-CREATION

plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorTest.java
PRE-CREATION

plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEventTest.java
PRE-CREATION

plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorTest.java
PRE-CREATION

plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGeneratorTest.java
PRE-CREATION

plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEventTest.java
PRE-CREATION

plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorTest.java
PRE-CREATION

plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriberTest.java
PRE-CREATION

plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriberTest.java
PRE-CREATION

plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriberTest.java
PRE-CREATION

plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriberTest.java
PRE-CREATION
    server/src/com/cloud/multiregion/RsyncManager.java PRE-CREATION
    server/src/com/cloud/multiregion/RsyncManagerImpl.java PRE-CREATION
  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






Re: Review Request 17790: Domain-Account-User Sync Up Among Multiple Regions (New Plugin)

Posted by Rohit Yadav <bh...@apache.org>.
On Sat, Dec 6, 2014 at 3:39 AM, Alena Prokharchyk <
Alena.Prokharchyk@citrix.com> wrote:

>  Rohit, please refer to the thread with "Review Request 20099" subject
> and concerns raised by John Burwell.
>
>  -Alena.
>

Thanks for replying Alena, I was just going through pending reviews and was
trying to close those which are invalid or already merged.

I could not find John's reply on https://reviews.apache.org/r/20099/
review, perhaps it was on the ML I'll search markmail for that later, right
now I simply need help from everyone to do some maintenance work on our
JIRA, ReviewBoard and Github PR and cleanup/close invalid or old
issues/reviews/pull-requests that don't apply anymore or are already fixed.

Regards.



>
>   From: Rohit Yadav <bh...@apache.org>
> Reply-To: "dev@cloudstack.apache.org" <de...@cloudstack.apache.org>, Rohit
> Yadav <bh...@apache.org>
> Date: Friday, December 5, 2014 at 10:41 AM
> To: cloudstack <de...@cloudstack.apache.org>, Alex Ough <
> alex.ough@sungard.com>, Rohit Yadav <bh...@apache.org>
> Subject: Re: Review Request 17790: Domain-Account-User Sync Up Among
> Multiple Regions (New Plugin)
>
>
>  -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/17790/#review64047
> -----------------------------------------------------------
>
>
>  ping. any update on this?
>
>  - Rohit Yadav
>
>
>  On June 27, 2014, 5:04 p.m., Alex Ough wrote:
>
>  -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/17790/
> -----------------------------------------------------------
>  (Updated June 27, 2014, 5:04 p.m.)
>  Review request for cloudstack.
>  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
> -----
>     engine/schema/src/org/apache/cloudstack/multiregion/RmapVO.java
> PRE-CREATION
>    engine/schema/src/org/apache/cloudstack/multiregion/RsyncVO.java
> PRE-CREATION
>    engine/schema/src/org/apache/cloudstack/multiregion/dao/RmapDao.java
> PRE-CREATION
>
> engine/schema/src/org/apache/cloudstack/multiregion/dao/RmapDaoImpl.java
> PRE-CREATION
>    engine/schema/src/org/apache/cloudstack/multiregion/dao/RsyncDao.java
> PRE-CREATION
>
> engine/schema/src/org/apache/cloudstack/multiregion/dao/RsyncDaoImpl.java
> PRE-CREATION
>    plugins/event-bus/multiregion/pom.xml PRE-CREATION
>
> plugins/event-bus/multiregion/resources/META-INF/cloudstack/core/spring-plugin-multiregion-system-context.xml
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/FullSyncer.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/InjectedCollection.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/MultiRegionEventBus.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/StringManipulator.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/AccountCaller.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/BaseCaller.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/DomainCaller.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/UserCaller.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncAccountsCmd.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncAccountsCmdByAdmin.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncDomainChildrenCmd.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncDomainsCmd.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncUsersCmd.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncAccountJoinDao.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncAccountJoinDaoImpl.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncUserAccountJoinDao.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncUserAccountJoinDaoImpl.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/ApiSyncResponseHelper.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncAccountResponse.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncDomainResponse.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncQueryManagerImpl.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncQueryService.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncUserResponse.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/event/SyncActionEventInterceptor.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/event/SyncActionEventUtils.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/APIFailureException.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessor.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountService.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/BaseService.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessor.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainService.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullScanner.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullSyncProcessor.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalAccountManager.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalDomainManager.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalManager.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalUserManager.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessor.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessor.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteEventProcessor.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessor.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessor.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserService.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGenerator.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEvent.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAutoGenerator.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGenerator.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEvent.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGenerator.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGenerator.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEvent.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriber.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriber.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriber.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriber.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/AccountCallerTest.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/BaseCallerTest.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/DomainCallerTest.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/UserCallerTest.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessorTest.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/BaseServiceTest.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessorTest.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessorTest.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessorTest.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessorTest.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessorTest.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEventTest.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorTest.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEventTest.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorTest.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGeneratorTest.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEventTest.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorTest.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriberTest.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriberTest.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriberTest.java
> PRE-CREATION
>
> plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriberTest.java
> PRE-CREATION
>    server/src/com/cloud/multiregion/RsyncManager.java PRE-CREATION
>    server/src/com/cloud/multiregion/RsyncManagerImpl.java PRE-CREATION
>  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
>
>
>
>

Re: Review Request 17790: Domain-Account-User Sync Up Among Multiple Regions (New Plugin)

Posted by Alena Prokharchyk <Al...@citrix.com>.
Rohit, please refer to the thread with "Review Request 20099” subject and concerns raised by John Burwell.

-Alena.

From: Rohit Yadav <bh...@apache.org>>
Reply-To: "dev@cloudstack.apache.org<ma...@cloudstack.apache.org>" <de...@cloudstack.apache.org>>, Rohit Yadav <bh...@apache.org>>
Date: Friday, December 5, 2014 at 10:41 AM
To: cloudstack <de...@cloudstack.apache.org>>, Alex Ough <al...@sungard.com>>, Rohit Yadav <bh...@apache.org>>
Subject: Re: Review Request 17790: Domain-Account-User Sync Up Among Multiple Regions (New Plugin)


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17790/#review64047
-----------------------------------------------------------


ping. any update on this?

- Rohit Yadav


On June 27, 2014, 5:04 p.m., Alex Ough wrote:
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17790/
-----------------------------------------------------------
(Updated June 27, 2014, 5:04 p.m.)
Review request for cloudstack.
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
-----
   engine/schema/src/org/apache/cloudstack/multiregion/RmapVO.java PRE-CREATION
   engine/schema/src/org/apache/cloudstack/multiregion/RsyncVO.java PRE-CREATION
   engine/schema/src/org/apache/cloudstack/multiregion/dao/RmapDao.java PRE-CREATION
   engine/schema/src/org/apache/cloudstack/multiregion/dao/RmapDaoImpl.java PRE-CREATION
   engine/schema/src/org/apache/cloudstack/multiregion/dao/RsyncDao.java PRE-CREATION
   engine/schema/src/org/apache/cloudstack/multiregion/dao/RsyncDaoImpl.java PRE-CREATION
   plugins/event-bus/multiregion/pom.xml PRE-CREATION
   plugins/event-bus/multiregion/resources/META-INF/cloudstack/core/spring-plugin-multiregion-system-context.xml PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/FullSyncer.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/InjectedCollection.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/MultiRegionEventBus.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/StringManipulator.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/AccountCaller.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/BaseCaller.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/DomainCaller.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/UserCaller.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncAccountsCmd.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncAccountsCmdByAdmin.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncDomainChildrenCmd.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncDomainsCmd.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncUsersCmd.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncAccountJoinDao.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncAccountJoinDaoImpl.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncUserAccountJoinDao.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncUserAccountJoinDaoImpl.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/ApiSyncResponseHelper.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncAccountResponse.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncDomainResponse.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncQueryManagerImpl.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncQueryService.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncUserResponse.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/event/SyncActionEventInterceptor.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/event/SyncActionEventUtils.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/APIFailureException.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessor.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountService.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/BaseService.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessor.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainService.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullScanner.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullSyncProcessor.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalAccountManager.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalDomainManager.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalManager.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalUserManager.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessor.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessor.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteEventProcessor.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessor.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessor.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserService.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGenerator.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEvent.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAutoGenerator.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGenerator.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEvent.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGenerator.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGenerator.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEvent.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriber.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriber.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriber.java PRE-CREATION
   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriber.java PRE-CREATION
   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/AccountCallerTest.java PRE-CREATION
   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/BaseCallerTest.java PRE-CREATION
   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/DomainCallerTest.java PRE-CREATION
   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/UserCallerTest.java PRE-CREATION
   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessorTest.java PRE-CREATION
   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/BaseServiceTest.java PRE-CREATION
   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessorTest.java PRE-CREATION
   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessorTest.java PRE-CREATION
   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessorTest.java PRE-CREATION
   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessorTest.java PRE-CREATION
   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessorTest.java PRE-CREATION
   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEventTest.java PRE-CREATION
   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorTest.java PRE-CREATION
   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEventTest.java PRE-CREATION
   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorTest.java PRE-CREATION
   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGeneratorTest.java PRE-CREATION
   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEventTest.java PRE-CREATION
   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorTest.java PRE-CREATION
   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriberTest.java PRE-CREATION
   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriberTest.java PRE-CREATION
   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriberTest.java PRE-CREATION
   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriberTest.java PRE-CREATION
   server/src/com/cloud/multiregion/RsyncManager.java PRE-CREATION
   server/src/com/cloud/multiregion/RsyncManagerImpl.java PRE-CREATION
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




Re: Review Request 17790: Domain-Account-User Sync Up Among Multiple Regions (New Plugin)

Posted by Rohit Yadav <bh...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17790/#review64047
-----------------------------------------------------------


ping. any update on this?

- Rohit Yadav


On June 27, 2014, 5:04 p.m., Alex Ough wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/17790/
> -----------------------------------------------------------
> 
> (Updated June 27, 2014, 5:04 p.m.)
> 
> 
> Review request for cloudstack.
> 
> 
> 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
> -----
> 
>   engine/schema/src/org/apache/cloudstack/multiregion/RmapVO.java PRE-CREATION 
>   engine/schema/src/org/apache/cloudstack/multiregion/RsyncVO.java PRE-CREATION 
>   engine/schema/src/org/apache/cloudstack/multiregion/dao/RmapDao.java PRE-CREATION 
>   engine/schema/src/org/apache/cloudstack/multiregion/dao/RmapDaoImpl.java PRE-CREATION 
>   engine/schema/src/org/apache/cloudstack/multiregion/dao/RsyncDao.java PRE-CREATION 
>   engine/schema/src/org/apache/cloudstack/multiregion/dao/RsyncDaoImpl.java PRE-CREATION 
>   plugins/event-bus/multiregion/pom.xml PRE-CREATION 
>   plugins/event-bus/multiregion/resources/META-INF/cloudstack/core/spring-plugin-multiregion-system-context.xml PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/FullSyncer.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/InjectedCollection.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/MultiRegionEventBus.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/StringManipulator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/AccountCaller.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/BaseCaller.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/DomainCaller.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/UserCaller.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncAccountsCmd.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncAccountsCmdByAdmin.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncDomainChildrenCmd.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncDomainsCmd.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncUsersCmd.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncAccountJoinDao.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncAccountJoinDaoImpl.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncUserAccountJoinDao.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncUserAccountJoinDaoImpl.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/ApiSyncResponseHelper.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncAccountResponse.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncDomainResponse.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncQueryManagerImpl.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncQueryService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncUserResponse.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/event/SyncActionEventInterceptor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/event/SyncActionEventUtils.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/APIFailureException.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/BaseService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullScanner.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullSyncProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalAccountManager.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalDomainManager.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalManager.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalUserManager.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteEventProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEvent.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAutoGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEvent.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEvent.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriber.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriber.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriber.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriber.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/AccountCallerTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/BaseCallerTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/DomainCallerTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/UserCallerTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/BaseServiceTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEventTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEventTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGeneratorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEventTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriberTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriberTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriberTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriberTest.java PRE-CREATION 
>   server/src/com/cloud/multiregion/RsyncManager.java PRE-CREATION 
>   server/src/com/cloud/multiregion/RsyncManagerImpl.java PRE-CREATION 
> 
> 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
> 
>


Re: Review Request 17790: Domain-Account-User Sync Up Among Multiple Regions (New Plugin)

Posted by Sebastien Goasguen <ru...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17790/#review78992
-----------------------------------------------------------


Thank you for submitting your CloudStack contribution through review board. After discussion on the dev@cloudstack.apache.org the community decided to close down review board and start accepting contributiong through GitHub pull requests. We have been using GH PR for several months now and the process is better than review board.

We will keep Review Board open for another week to give you time to migrate your patch to a github PR if you wish. After that time, your patch will no longer be viewable (even though it will not be deleted).

Please consider submitting a pull request.

Great instructions are available at:
https://github.com/apache/cloudstack/blob/master/CONTRIBUTING.md

Thank you very much for your time and your contribution to Apache CloudStack, we hope that using this new process will encourage you to do more.

- Sebastien Goasguen


On June 27, 2014, 5:04 p.m., Alex Ough wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/17790/
> -----------------------------------------------------------
> 
> (Updated June 27, 2014, 5:04 p.m.)
> 
> 
> Review request for cloudstack.
> 
> 
> 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
> -----
> 
>   engine/schema/src/org/apache/cloudstack/multiregion/RmapVO.java PRE-CREATION 
>   engine/schema/src/org/apache/cloudstack/multiregion/RsyncVO.java PRE-CREATION 
>   engine/schema/src/org/apache/cloudstack/multiregion/dao/RmapDao.java PRE-CREATION 
>   engine/schema/src/org/apache/cloudstack/multiregion/dao/RmapDaoImpl.java PRE-CREATION 
>   engine/schema/src/org/apache/cloudstack/multiregion/dao/RsyncDao.java PRE-CREATION 
>   engine/schema/src/org/apache/cloudstack/multiregion/dao/RsyncDaoImpl.java PRE-CREATION 
>   plugins/event-bus/multiregion/pom.xml PRE-CREATION 
>   plugins/event-bus/multiregion/resources/META-INF/cloudstack/core/spring-plugin-multiregion-system-context.xml PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/FullSyncer.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/InjectedCollection.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/MultiRegionEventBus.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/StringManipulator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/AccountCaller.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/BaseCaller.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/DomainCaller.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/UserCaller.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncAccountsCmd.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncAccountsCmdByAdmin.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncDomainChildrenCmd.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncDomainsCmd.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncUsersCmd.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncAccountJoinDao.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncAccountJoinDaoImpl.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncUserAccountJoinDao.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncUserAccountJoinDaoImpl.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/ApiSyncResponseHelper.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncAccountResponse.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncDomainResponse.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncQueryManagerImpl.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncQueryService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncUserResponse.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/event/SyncActionEventInterceptor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/event/SyncActionEventUtils.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/APIFailureException.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/BaseService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullScanner.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullSyncProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalAccountManager.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalDomainManager.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalManager.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalUserManager.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteEventProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEvent.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAutoGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEvent.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEvent.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriber.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriber.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriber.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriber.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/AccountCallerTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/BaseCallerTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/DomainCallerTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/UserCallerTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/BaseServiceTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEventTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEventTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGeneratorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEventTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriberTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriberTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriberTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriberTest.java PRE-CREATION 
>   server/src/com/cloud/multiregion/RsyncManager.java PRE-CREATION 
>   server/src/com/cloud/multiregion/RsyncManagerImpl.java PRE-CREATION 
> 
> 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
> 
>


Re: Review Request 17790: Domain-Account-User Sync Up Among Multiple Regions (New Plugin)

Posted by Alex Ough <al...@sungard.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17790/
-----------------------------------------------------------

(Updated June 27, 2014, 5:04 p.m.)


Review request for cloudstack.


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)
-----

  engine/schema/src/org/apache/cloudstack/multiregion/RmapVO.java PRE-CREATION 
  engine/schema/src/org/apache/cloudstack/multiregion/RsyncVO.java PRE-CREATION 
  engine/schema/src/org/apache/cloudstack/multiregion/dao/RmapDao.java PRE-CREATION 
  engine/schema/src/org/apache/cloudstack/multiregion/dao/RmapDaoImpl.java PRE-CREATION 
  engine/schema/src/org/apache/cloudstack/multiregion/dao/RsyncDao.java PRE-CREATION 
  engine/schema/src/org/apache/cloudstack/multiregion/dao/RsyncDaoImpl.java PRE-CREATION 
  plugins/event-bus/multiregion/pom.xml PRE-CREATION 
  plugins/event-bus/multiregion/resources/META-INF/cloudstack/core/spring-plugin-multiregion-system-context.xml PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/FullSyncer.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/InjectedCollection.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/MultiRegionEventBus.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/StringManipulator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/AccountCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/BaseCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/DomainCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/UserCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncAccountsCmd.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncAccountsCmdByAdmin.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncDomainChildrenCmd.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncDomainsCmd.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncUsersCmd.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncAccountJoinDao.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncAccountJoinDaoImpl.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncUserAccountJoinDao.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncUserAccountJoinDaoImpl.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/ApiSyncResponseHelper.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncAccountResponse.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncDomainResponse.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncQueryManagerImpl.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncQueryService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncUserResponse.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/event/SyncActionEventInterceptor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/event/SyncActionEventUtils.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/APIFailureException.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/BaseService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullScanner.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalAccountManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalDomainManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalUserManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAutoGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/AccountCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/BaseCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/DomainCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/UserCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/BaseServiceTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriberTest.java PRE-CREATION 
  server/src/com/cloud/multiregion/RsyncManager.java PRE-CREATION 
  server/src/com/cloud/multiregion/RsyncManagerImpl.java PRE-CREATION 

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


Re: Review Request 17790: Domain-Account-User Sync Up Among Multiple Regions (New Plugin)

Posted by Alex Ough <al...@sungard.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17790/
-----------------------------------------------------------

(Updated June 24, 2014, 3:52 p.m.)


Review request for cloudstack.


Changes
-------

Hope this is the final!


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)
-----

  engine/schema/src/org/apache/cloudstack/multiregion/RmapVO.java PRE-CREATION 
  engine/schema/src/org/apache/cloudstack/multiregion/RsyncVO.java PRE-CREATION 
  engine/schema/src/org/apache/cloudstack/multiregion/dao/RmapDao.java PRE-CREATION 
  engine/schema/src/org/apache/cloudstack/multiregion/dao/RmapDaoImpl.java PRE-CREATION 
  engine/schema/src/org/apache/cloudstack/multiregion/dao/RsyncDao.java PRE-CREATION 
  engine/schema/src/org/apache/cloudstack/multiregion/dao/RsyncDaoImpl.java PRE-CREATION 
  plugins/event-bus/multiregion/pom.xml PRE-CREATION 
  plugins/event-bus/multiregion/resources/META-INF/cloudstack/core/spring-plugin-multiregion-system-context.xml PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/FullSyncer.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/InjectedCollection.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/MultiRegionEventBus.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/StringManipulator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/AccountCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/BaseCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/DomainCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/UserCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncAccountsCmd.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncAccountsCmdByAdmin.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncDomainChildrenCmd.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncDomainsCmd.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncUsersCmd.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncAccountJoinDao.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncAccountJoinDaoImpl.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncUserAccountJoinDao.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncUserAccountJoinDaoImpl.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/ApiSyncResponseHelper.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncAccountResponse.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncDomainResponse.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncQueryManagerImpl.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncQueryService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncUserResponse.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/event/SyncActionEventInterceptor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/event/SyncActionEventUtils.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/APIFailureException.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/BaseService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullScanner.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalAccountManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalDomainManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalUserManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAutoGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/AccountCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/BaseCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/DomainCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/UserCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/BaseServiceTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriberTest.java PRE-CREATION 
  server/src/com/cloud/multiregion/RsyncManager.java PRE-CREATION 
  server/src/com/cloud/multiregion/RsyncManagerImpl.java PRE-CREATION 

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


Re: Review Request 17790: Domain-Account-User Sync Up Among Multiple Regions (New Plugin)

Posted by Alex Ough <al...@sungard.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17790/
-----------------------------------------------------------

(Updated June 20, 2014, 3:49 p.m.)


Review request for cloudstack.


Changes
-------

sub classes added


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)
-----

  engine/schema/src/org/apache/cloudstack/multiregion/RmapVO.java PRE-CREATION 
  engine/schema/src/org/apache/cloudstack/multiregion/RsyncVO.java PRE-CREATION 
  engine/schema/src/org/apache/cloudstack/multiregion/dao/RmapDao.java PRE-CREATION 
  engine/schema/src/org/apache/cloudstack/multiregion/dao/RmapDaoImpl.java PRE-CREATION 
  engine/schema/src/org/apache/cloudstack/multiregion/dao/RsyncDao.java PRE-CREATION 
  engine/schema/src/org/apache/cloudstack/multiregion/dao/RsyncDaoImpl.java PRE-CREATION 
  plugins/event-bus/multiregion/pom.xml PRE-CREATION 
  plugins/event-bus/multiregion/resources/META-INF/cloudstack/spring-plugin-multiregion-system-context.xml PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/FullSyncer.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/InjectedCollection.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/MultiRegionEventBus.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/StringManipulator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/AccountCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/BaseCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/DomainCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/UserCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncAccountsCmd.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncAccountsCmdByAdmin.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncDomainChildrenCmd.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncDomainsCmd.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncUsersCmd.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncAccountJoinDao.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncAccountJoinDaoImpl.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncUserAccountJoinDao.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncUserAccountJoinDaoImpl.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/ApiSyncResponseHelper.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncAccountResponse.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncDomainResponse.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncQueryManagerImpl.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncQueryService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncUserResponse.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/event/SyncActionEventInterceptor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/event/SyncActionEventUtils.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/APIFailureException.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/BaseService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullScanner.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalAccountManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalDomainManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalUserManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAutoGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/AccountCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/BaseCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/DomainCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/UserCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/BaseServiceTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriberTest.java PRE-CREATION 
  server/src/com/cloud/multiregion/RsyncManager.java PRE-CREATION 
  server/src/com/cloud/multiregion/RsyncManagerImpl.java PRE-CREATION 

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


Re: Review Request 17790: Domain-Account-User Sync Up Among Multiple Regions (New Plugin)

Posted by Alex Ough <al...@sungard.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17790/
-----------------------------------------------------------

(Updated June 15, 2014, 9:48 p.m.)


Review request for cloudstack.


Changes
-------

Please review


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)
-----

  engine/schema/src/org/apache/cloudstack/multiregion/RmapVO.java PRE-CREATION 
  engine/schema/src/org/apache/cloudstack/multiregion/RsyncVO.java PRE-CREATION 
  engine/schema/src/org/apache/cloudstack/multiregion/dao/RmapDao.java PRE-CREATION 
  engine/schema/src/org/apache/cloudstack/multiregion/dao/RmapDaoImpl.java PRE-CREATION 
  engine/schema/src/org/apache/cloudstack/multiregion/dao/RsyncDao.java PRE-CREATION 
  engine/schema/src/org/apache/cloudstack/multiregion/dao/RsyncDaoImpl.java PRE-CREATION 
  plugins/event-bus/multiregion/pom.xml PRE-CREATION 
  plugins/event-bus/multiregion/resources/META-INF/cloudstack/spring-plugin-multiregion-system-context.xml PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/FullSyncer.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/InjectedCollection.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/MultiRegionEventBus.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/StringManipulator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/AccountCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/BaseCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/DomainCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/UserCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncAccountsCmd.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncAccountsCmdByAdmin.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncDomainChildrenCmd.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncDomainsCmd.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncUsersCmd.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncAccountJoinDao.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncAccountJoinDaoImpl.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncUserAccountJoinDao.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncUserAccountJoinDaoImpl.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/ApiSyncResponseHelper.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncAccountResponse.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncDomainResponse.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncQueryManagerImpl.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncQueryService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncUserResponse.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/APIFailureException.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/BaseService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullScanner.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalAccountManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalDomainManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalUserManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAutoGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/AccountCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/BaseCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/DomainCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/UserCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/BaseServiceTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriberTest.java PRE-CREATION 
  server/src/com/cloud/multiregion/RsyncManager.java PRE-CREATION 
  server/src/com/cloud/multiregion/RsyncManagerImpl.java PRE-CREATION 

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


Re: Review Request 17790: Domain-Account-User Sync Up Among Multiple Regions (New Plugin)

Posted by Alex Ough <al...@sungard.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17790/
-----------------------------------------------------------

(Updated May 7, 2014, 10:46 p.m.)


Review request for cloudstack.


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)
-----

  engine/schema/src/org/apache/cloudstack/multiregion/RmapVO.java PRE-CREATION 
  engine/schema/src/org/apache/cloudstack/multiregion/RsyncVO.java PRE-CREATION 
  engine/schema/src/org/apache/cloudstack/multiregion/dao/RmapDao.java PRE-CREATION 
  engine/schema/src/org/apache/cloudstack/multiregion/dao/RmapDaoImpl.java PRE-CREATION 
  engine/schema/src/org/apache/cloudstack/multiregion/dao/RsyncDao.java PRE-CREATION 
  engine/schema/src/org/apache/cloudstack/multiregion/dao/RsyncDaoImpl.java PRE-CREATION 
  plugins/event-bus/multiregion/pom.xml PRE-CREATION 
  plugins/event-bus/multiregion/resources/META-INF/cloudstack/spring-plugin-multiregion-system-context.xml PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/FullSyncer.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/InjectedCollection.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/MultiRegionEventBus.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/StringManipulator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/AccountCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/BaseCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/DomainCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/UserCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncAccountsCmd.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncAccountsCmdByAdmin.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncDomainChildrenCmd.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncDomainsCmd.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/command/ListSyncUsersCmd.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncAccountJoinDao.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncAccountJoinDaoImpl.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncUserAccountJoinDao.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/dao/SyncUserAccountJoinDaoImpl.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/ApiSyncResponseHelper.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncAccountResponse.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncDomainResponse.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncQueryManagerImpl.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncQueryService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/response/SyncUserResponse.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/APIFailureException.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/BaseService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullScanner.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalAccountManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalDomainManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalUserManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAutoGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/AccountCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/BaseCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/DomainCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/UserCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/BaseServiceTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriberTest.java PRE-CREATION 
  server/src/com/cloud/multiregion/RsyncManager.java PRE-CREATION 
  server/src/com/cloud/multiregion/RsyncManagerImpl.java PRE-CREATION 

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


Re: Review Request 17790: Domain-Account-User Sync Up Among Multiple Regions (New Plugin)

Posted by Alex Ough <al...@sungard.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17790/
-----------------------------------------------------------

(Updated May 4, 2014, 9:18 p.m.)


Review request for cloudstack.


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/org/apache/cloudstack/api/command/admin/account/ListSyncAccountsCmdByAdmin.java PRE-CREATION 
  api/src/org/apache/cloudstack/api/command/admin/domain/ListSyncDomainChildrenCmd.java PRE-CREATION 
  api/src/org/apache/cloudstack/api/command/admin/domain/ListSyncDomainsCmd.java PRE-CREATION 
  api/src/org/apache/cloudstack/api/command/admin/user/ListSyncUsersCmd.java PRE-CREATION 
  api/src/org/apache/cloudstack/api/command/user/account/ListSyncAccountsCmd.java PRE-CREATION 
  api/src/org/apache/cloudstack/api/response/SyncAccountResponse.java PRE-CREATION 
  api/src/org/apache/cloudstack/api/response/SyncDomainResponse.java PRE-CREATION 
  api/src/org/apache/cloudstack/api/response/SyncUserResponse.java PRE-CREATION 
  engine/schema/src/org/apache/cloudstack/multiregion/RmapVO.java PRE-CREATION 
  engine/schema/src/org/apache/cloudstack/multiregion/RsyncVO.java PRE-CREATION 
  engine/schema/src/org/apache/cloudstack/multiregion/dao/RmapDao.java PRE-CREATION 
  engine/schema/src/org/apache/cloudstack/multiregion/dao/RmapDaoImpl.java PRE-CREATION 
  engine/schema/src/org/apache/cloudstack/multiregion/dao/RsyncDao.java PRE-CREATION 
  engine/schema/src/org/apache/cloudstack/multiregion/dao/RsyncDaoImpl.java PRE-CREATION 
  plugins/event-bus/multiregion/pom.xml PRE-CREATION 
  plugins/event-bus/multiregion/resources/META-INF/cloudstack/spring-mom-multiregion-daos-context.xml PRE-CREATION 
  plugins/event-bus/multiregion/resources/META-INF/cloudstack/system/spring-plugin-multiregion-system-context.xml PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/FullSyncer.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/InjectedCollection.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/MultiRegionEventBus.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/StringManipulator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/AccountCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/BaseCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/DomainCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/UserCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/APIFailureException.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/BaseService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullScanner.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalAccountManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalDomainManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalUserManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAutoGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/AccountCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/BaseCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/DomainCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/UserCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/BaseServiceTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriberTest.java PRE-CREATION 
  server/src/com/cloud/api/query/dao/SyncAccountJoinDao.java PRE-CREATION 
  server/src/com/cloud/api/query/dao/SyncAccountJoinDaoImpl.java PRE-CREATION 
  server/src/com/cloud/api/query/dao/SyncUserAccountJoinDao.java PRE-CREATION 
  server/src/com/cloud/api/query/dao/SyncUserAccountJoinDaoImpl.java PRE-CREATION 
  server/src/com/cloud/multiregion/RsyncManager.java PRE-CREATION 
  server/src/com/cloud/multiregion/RsyncManagerImpl.java PRE-CREATION 

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


Re: Review Request 17790: Domain-Account-User Sync Up Among Multiple Regions (New Plugin)

Posted by Alex Ough <al...@sungard.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17790/
-----------------------------------------------------------

(Updated April 16, 2014, 7:07 p.m.)


Review request for cloudstack.


Changes
-------

Another update for the new plugin.


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)
-----

  plugins/event-bus/multiregion/pom.xml PRE-CREATION 
  plugins/event-bus/multiregion/resources/META-INF/cloudstack/spring-mom-multiregion-daos-context.xml PRE-CREATION 
  plugins/event-bus/multiregion/resources/META-INF/cloudstack/system/spring-plugin-multiregion-system-context.xml PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/FullSyncer.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/InjectedCollection.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/MultiRegionEventBus.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/StringManipulator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/AccountCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/BaseCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/DomainCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/UserCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/APIFailureException.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/BaseService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullScanner.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalAccountManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalDomainManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalUserManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAutoGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/AccountCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/BaseCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/DomainCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/UserCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/BaseServiceTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriberTest.java PRE-CREATION 

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


Re: Review Request 17790: Domain-Account-User Sync Up Among Multiple Regions (New Plugin)

Posted by Alex Ough <al...@sungard.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17790/
-----------------------------------------------------------

(Updated April 7, 2014, 7:17 p.m.)


Review request for cloudstack.


Changes
-------

This includes only the new plugin codes.
You can get the core changes in #20099.


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)
-----

  plugins/event-bus/multiregion/pom.xml PRE-CREATION 
  plugins/event-bus/multiregion/resources/META-INF/cloudstack/spring-mom-multiregion-daos-context.xml PRE-CREATION 
  plugins/event-bus/multiregion/resources/META-INF/cloudstack/system/spring-plugin-multiregion-system-context.xml PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/FullSyncer.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/InjectedCollection.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/MultiRegionEventBus.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/RmapVO.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/StringManipulator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/AccountCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/BaseCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/DomainCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/UserCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/dao/RmapDao.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/dao/RmapDaoImpl.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/APIFailureException.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/BaseService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullScanner.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalAccountManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalDomainManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalUserManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAutoGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/AccountCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/BaseCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/DomainCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/UserCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/BaseServiceTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriberTest.java PRE-CREATION 

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


Re: Review Request 17790: Domain-Account-User Sync Up Among Multiple Regions (New Plugin)

Posted by Alex Ough <al...@sungard.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17790/
-----------------------------------------------------------

(Updated April 7, 2014, 7:15 p.m.)


Review request for cloudstack.


Changes
-------

This includes only the new plugin codes.
You can get the core changes in #20099.


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
-----

  api/src/com/cloud/domain/Domain.java 365a705 
  api/src/com/cloud/event/EventTypes.java 39ef710 
  api/src/com/cloud/user/Account.java b912e51 
  api/src/com/cloud/user/AccountService.java 7e37b38 
  api/src/com/cloud/user/User.java 36e9028 
  api/src/com/cloud/user/UserAccount.java c5a0637 
  api/src/org/apache/cloudstack/api/ApiConstants.java fdb4558 
  api/src/org/apache/cloudstack/api/BaseCmd.java f6f21ae 
  api/src/org/apache/cloudstack/api/command/admin/region/AddRegionCmd.java f6743ba 
  api/src/org/apache/cloudstack/api/command/admin/region/UpdateRegionCmd.java b08cbbb 
  api/src/org/apache/cloudstack/api/response/AccountResponse.java 2e50c51 
  api/src/org/apache/cloudstack/api/response/DomainResponse.java 0c0281e 
  api/src/org/apache/cloudstack/api/response/RegionResponse.java 6c74fa6 
  api/src/org/apache/cloudstack/api/response/UserResponse.java 40e1561 
  api/src/org/apache/cloudstack/region/Region.java df64e44 
  api/src/org/apache/cloudstack/region/RegionService.java afefcc7 
  api/test/org/apache/cloudstack/api/command/test/RegionCmdTest.java 10c3d85 
  client/pom.xml d8dbde7 
  engine/schema/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml 489b37d 
  engine/schema/src/com/cloud/domain/DomainVO.java f6494b3 
  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 0f5a044 
  engine/schema/src/com/cloud/user/UserAccountVO.java cef9239 
  engine/schema/src/com/cloud/user/UserVO.java 68879f6 
  engine/schema/src/org/apache/cloudstack/region/RegionVO.java 608bd2b 
  framework/db/src/com/cloud/utils/db/Attribute.java 82c2bdb 
  framework/db/src/com/cloud/utils/db/GenericDao.java cb401cd 
  framework/db/src/com/cloud/utils/db/GenericDaoBase.java 2052aad 
  framework/db/src/com/cloud/utils/db/SqlGenerator.java befe34b 
  framework/db/test/com/cloud/utils/db/GenericDaoBaseTest.java aef0c69 
  framework/db/test/com/cloud/utils/db/SqlGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/pom.xml PRE-CREATION 
  plugins/event-bus/multiregion/resources/META-INF/cloudstack/spring-mom-multiregion-daos-context.xml PRE-CREATION 
  plugins/event-bus/multiregion/resources/META-INF/cloudstack/system/spring-plugin-multiregion-system-context.xml PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/FullSyncer.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/InjectedCollection.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/MultiRegionEventBus.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/StringManipulator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/AccountCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/BaseCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/DomainCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/UserCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/APIFailureException.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/InvalidDataException.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/UnsupportedException.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/BaseService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullScanner.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalAccountManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalDomainManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalUserManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAutoGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/AccountCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/BaseCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/DomainCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/UserCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/BaseServiceTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriberTest.java PRE-CREATION 
  plugins/network-elements/juniper-contrail/test/org/apache/cloudstack/network/contrail/management/MockAccountManager.java 957f708 
  plugins/pom.xml 9b391b8 
  server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml fc1c7e2 
  server/src/com/cloud/api/ApiDispatcher.java 95074e2 
  server/src/com/cloud/api/ApiResponseHelper.java 38f2f0b 
  server/src/com/cloud/api/dispatch/ParamProcessWorker.java e9bdd8b 
  server/src/com/cloud/api/query/dao/AccountJoinDaoImpl.java ecd97c7 
  server/src/com/cloud/api/query/dao/UserAccountJoinDaoImpl.java 923a238 
  server/src/com/cloud/api/query/vo/AccountJoinVO.java 8d642ed 
  server/src/com/cloud/api/query/vo/UserAccountJoinVO.java ed29284 
  server/src/com/cloud/event/ActionEventUtils.java 28e5680 
  server/src/com/cloud/projects/ProjectManagerImpl.java d10c059 
  server/src/com/cloud/user/AccountManager.java 03bf842 
  server/src/com/cloud/user/AccountManagerImpl.java 2070ee6 
  server/src/com/cloud/user/DomainManager.java f72b18a 
  server/src/com/cloud/user/DomainManagerImpl.java fbbe0c2 
  server/src/org/apache/cloudstack/region/RegionManager.java 6f25481 
  server/src/org/apache/cloudstack/region/RegionManagerImpl.java 8910714 
  server/src/org/apache/cloudstack/region/RegionServiceImpl.java 98cf500 
  server/test/com/cloud/api/dispatch/ParamProcessWorkerTest.java 12051a6 
  server/test/com/cloud/user/MockAccountManagerImpl.java f373cba 
  server/test/com/cloud/user/MockDomainManagerImpl.java 7dddefb 
  server/test/org/apache/cloudstack/region/RegionManagerTest.java d7bc537 
  setup/db/db/schema-440to450.sql 2bd5386 
  ui/scripts/regions.js 66dae8c 

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


Re: Review Request 17790: Domain-Account-User Sync Up Among Multiple Regions (New Plugin)

Posted by Alex Ough <al...@sungard.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17790/
-----------------------------------------------------------

(Updated April 7, 2014, 7:14 p.m.)


Review request for cloudstack.


Changes
-------

This includes only the new plugin codes.
You can get the core changes in #20099.


Summary (updated)
-----------------

Domain-Account-User Sync Up Among Multiple Regions (New Plugin)


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
-----

  api/src/com/cloud/domain/Domain.java 365a705 
  api/src/com/cloud/event/EventTypes.java 39ef710 
  api/src/com/cloud/user/Account.java b912e51 
  api/src/com/cloud/user/AccountService.java 7e37b38 
  api/src/com/cloud/user/User.java 36e9028 
  api/src/com/cloud/user/UserAccount.java c5a0637 
  api/src/org/apache/cloudstack/api/ApiConstants.java fdb4558 
  api/src/org/apache/cloudstack/api/BaseCmd.java f6f21ae 
  api/src/org/apache/cloudstack/api/command/admin/region/AddRegionCmd.java f6743ba 
  api/src/org/apache/cloudstack/api/command/admin/region/UpdateRegionCmd.java b08cbbb 
  api/src/org/apache/cloudstack/api/response/AccountResponse.java 2e50c51 
  api/src/org/apache/cloudstack/api/response/DomainResponse.java 0c0281e 
  api/src/org/apache/cloudstack/api/response/RegionResponse.java 6c74fa6 
  api/src/org/apache/cloudstack/api/response/UserResponse.java 40e1561 
  api/src/org/apache/cloudstack/region/Region.java df64e44 
  api/src/org/apache/cloudstack/region/RegionService.java afefcc7 
  api/test/org/apache/cloudstack/api/command/test/RegionCmdTest.java 10c3d85 
  client/pom.xml d8dbde7 
  engine/schema/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml 489b37d 
  engine/schema/src/com/cloud/domain/DomainVO.java f6494b3 
  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 0f5a044 
  engine/schema/src/com/cloud/user/UserAccountVO.java cef9239 
  engine/schema/src/com/cloud/user/UserVO.java 68879f6 
  engine/schema/src/org/apache/cloudstack/region/RegionVO.java 608bd2b 
  framework/db/src/com/cloud/utils/db/Attribute.java 82c2bdb 
  framework/db/src/com/cloud/utils/db/GenericDao.java cb401cd 
  framework/db/src/com/cloud/utils/db/GenericDaoBase.java 2052aad 
  framework/db/src/com/cloud/utils/db/SqlGenerator.java befe34b 
  framework/db/test/com/cloud/utils/db/GenericDaoBaseTest.java aef0c69 
  framework/db/test/com/cloud/utils/db/SqlGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/pom.xml PRE-CREATION 
  plugins/event-bus/multiregion/resources/META-INF/cloudstack/spring-mom-multiregion-daos-context.xml PRE-CREATION 
  plugins/event-bus/multiregion/resources/META-INF/cloudstack/system/spring-plugin-multiregion-system-context.xml PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/FullSyncer.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/InjectedCollection.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/MultiRegionEventBus.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/StringManipulator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/AccountCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/BaseCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/DomainCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/UserCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/APIFailureException.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/InvalidDataException.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/UnsupportedException.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/BaseService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullScanner.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalAccountManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalDomainManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalUserManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAutoGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/AccountCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/BaseCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/DomainCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/UserCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/BaseServiceTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriberTest.java PRE-CREATION 
  plugins/network-elements/juniper-contrail/test/org/apache/cloudstack/network/contrail/management/MockAccountManager.java 957f708 
  plugins/pom.xml 9b391b8 
  server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml fc1c7e2 
  server/src/com/cloud/api/ApiDispatcher.java 95074e2 
  server/src/com/cloud/api/ApiResponseHelper.java 38f2f0b 
  server/src/com/cloud/api/dispatch/ParamProcessWorker.java e9bdd8b 
  server/src/com/cloud/api/query/dao/AccountJoinDaoImpl.java ecd97c7 
  server/src/com/cloud/api/query/dao/UserAccountJoinDaoImpl.java 923a238 
  server/src/com/cloud/api/query/vo/AccountJoinVO.java 8d642ed 
  server/src/com/cloud/api/query/vo/UserAccountJoinVO.java ed29284 
  server/src/com/cloud/event/ActionEventUtils.java 28e5680 
  server/src/com/cloud/projects/ProjectManagerImpl.java d10c059 
  server/src/com/cloud/user/AccountManager.java 03bf842 
  server/src/com/cloud/user/AccountManagerImpl.java 2070ee6 
  server/src/com/cloud/user/DomainManager.java f72b18a 
  server/src/com/cloud/user/DomainManagerImpl.java fbbe0c2 
  server/src/org/apache/cloudstack/region/RegionManager.java 6f25481 
  server/src/org/apache/cloudstack/region/RegionManagerImpl.java 8910714 
  server/src/org/apache/cloudstack/region/RegionServiceImpl.java 98cf500 
  server/test/com/cloud/api/dispatch/ParamProcessWorkerTest.java 12051a6 
  server/test/com/cloud/user/MockAccountManagerImpl.java f373cba 
  server/test/com/cloud/user/MockDomainManagerImpl.java 7dddefb 
  server/test/org/apache/cloudstack/region/RegionManagerTest.java d7bc537 
  setup/db/db/schema-440to450.sql 2bd5386 
  ui/scripts/regions.js 66dae8c 

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


Re: Review Request 17790: Domain-Account-User Sync Up Among Multiple Regions

Posted by Alena Prokharchyk <al...@citrix.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17790/#review39701
-----------------------------------------------------------


Alex, can you please


1) split your fix into 2 patches:

Patch #1 – contains the fixes to CS core/api 
Patch #2 – fixes for your new plugin

Check if review board allows to upload 2 patches for the same ticket; if it doesn’t   - create a new one for the second patch.

2) Move all the Daos related to your plugin (RmapVO.java), to the plugin folder? As an example, you can take a look at NetScalerPodDao

3) There is no need to introduce your own exceptions in the plugin UnsupportedException.java/InvalidDataException.java/APIFailureException.java. You should re-use existing CS exceptions like InvalidParameterValueException (instead of InvalidDataException), UnsupportedException(UnsupportedServiceException), etc. Unless your exceptions are very different from those; then can you please explain the differences.


4) ActionEventUtils.java

String concatenation again :) Can you please replace all "+" operations in addDescription with StringBuffer?

- Alena Prokharchyk


On April 6, 2014, 3:32 a.m., Alex Ough wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/17790/
> -----------------------------------------------------------
> 
> (Updated April 6, 2014, 3:32 a.m.)
> 
> 
> Review request for cloudstack.
> 
> 
> 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
> -----
> 
>   api/src/com/cloud/domain/Domain.java 365a705 
>   api/src/com/cloud/event/EventTypes.java 39ef710 
>   api/src/com/cloud/user/Account.java b912e51 
>   api/src/com/cloud/user/AccountService.java 7e37b38 
>   api/src/com/cloud/user/User.java 36e9028 
>   api/src/com/cloud/user/UserAccount.java c5a0637 
>   api/src/org/apache/cloudstack/api/ApiConstants.java fdb4558 
>   api/src/org/apache/cloudstack/api/BaseCmd.java f6f21ae 
>   api/src/org/apache/cloudstack/api/command/admin/region/AddRegionCmd.java f6743ba 
>   api/src/org/apache/cloudstack/api/command/admin/region/UpdateRegionCmd.java b08cbbb 
>   api/src/org/apache/cloudstack/api/response/AccountResponse.java 2e50c51 
>   api/src/org/apache/cloudstack/api/response/DomainResponse.java 0c0281e 
>   api/src/org/apache/cloudstack/api/response/RegionResponse.java 6c74fa6 
>   api/src/org/apache/cloudstack/api/response/UserResponse.java 40e1561 
>   api/src/org/apache/cloudstack/region/Region.java df64e44 
>   api/src/org/apache/cloudstack/region/RegionService.java afefcc7 
>   api/test/org/apache/cloudstack/api/command/test/RegionCmdTest.java 10c3d85 
>   client/pom.xml d8dbde7 
>   engine/schema/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml 489b37d 
>   engine/schema/src/com/cloud/domain/DomainVO.java f6494b3 
>   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 0f5a044 
>   engine/schema/src/com/cloud/user/UserAccountVO.java cef9239 
>   engine/schema/src/com/cloud/user/UserVO.java 68879f6 
>   engine/schema/src/org/apache/cloudstack/region/RegionVO.java 608bd2b 
>   framework/db/src/com/cloud/utils/db/Attribute.java 82c2bdb 
>   framework/db/src/com/cloud/utils/db/GenericDao.java cb401cd 
>   framework/db/src/com/cloud/utils/db/GenericDaoBase.java 2052aad 
>   framework/db/src/com/cloud/utils/db/SqlGenerator.java befe34b 
>   framework/db/test/com/cloud/utils/db/GenericDaoBaseTest.java aef0c69 
>   framework/db/test/com/cloud/utils/db/SqlGeneratorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/pom.xml PRE-CREATION 
>   plugins/event-bus/multiregion/resources/META-INF/cloudstack/spring-mom-multiregion-daos-context.xml PRE-CREATION 
>   plugins/event-bus/multiregion/resources/META-INF/cloudstack/system/spring-plugin-multiregion-system-context.xml PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/FullSyncer.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/InjectedCollection.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/MultiRegionEventBus.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/StringManipulator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/AccountCaller.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/BaseCaller.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/DomainCaller.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/UserCaller.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/APIFailureException.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/InvalidDataException.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/UnsupportedException.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/BaseService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullScanner.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullSyncProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalAccountManager.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalDomainManager.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalUserManager.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteEventProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEvent.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAutoGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEvent.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEvent.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriber.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriber.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriber.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriber.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/AccountCallerTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/BaseCallerTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/DomainCallerTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/UserCallerTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/BaseServiceTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEventTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEventTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGeneratorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEventTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriberTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriberTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriberTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriberTest.java PRE-CREATION 
>   plugins/network-elements/juniper-contrail/test/org/apache/cloudstack/network/contrail/management/MockAccountManager.java 957f708 
>   plugins/pom.xml 9b391b8 
>   server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml fc1c7e2 
>   server/src/com/cloud/api/ApiDispatcher.java 95074e2 
>   server/src/com/cloud/api/ApiResponseHelper.java 38f2f0b 
>   server/src/com/cloud/api/dispatch/ParamProcessWorker.java e9bdd8b 
>   server/src/com/cloud/api/query/dao/AccountJoinDaoImpl.java ecd97c7 
>   server/src/com/cloud/api/query/dao/UserAccountJoinDaoImpl.java 923a238 
>   server/src/com/cloud/api/query/vo/AccountJoinVO.java 8d642ed 
>   server/src/com/cloud/api/query/vo/UserAccountJoinVO.java ed29284 
>   server/src/com/cloud/event/ActionEventUtils.java 28e5680 
>   server/src/com/cloud/projects/ProjectManagerImpl.java d10c059 
>   server/src/com/cloud/user/AccountManager.java 03bf842 
>   server/src/com/cloud/user/AccountManagerImpl.java 2070ee6 
>   server/src/com/cloud/user/DomainManager.java f72b18a 
>   server/src/com/cloud/user/DomainManagerImpl.java fbbe0c2 
>   server/src/org/apache/cloudstack/region/RegionManager.java 6f25481 
>   server/src/org/apache/cloudstack/region/RegionManagerImpl.java 8910714 
>   server/src/org/apache/cloudstack/region/RegionServiceImpl.java 98cf500 
>   server/test/com/cloud/api/dispatch/ParamProcessWorkerTest.java 12051a6 
>   server/test/com/cloud/user/MockAccountManagerImpl.java f373cba 
>   server/test/com/cloud/user/MockDomainManagerImpl.java 7dddefb 
>   server/test/org/apache/cloudstack/region/RegionManagerTest.java d7bc537 
>   setup/db/db/schema-440to450.sql 2bd5386 
>   ui/scripts/regions.js 66dae8c 
> 
> 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
> 
>


Re: Review Request 17790: Domain-Account-User Sync Up Among Multiple Regions

Posted by Alena Prokharchyk <Al...@citrix.com>.
Alex, can you please


1) split your fix into 2 patches:

Patch #1 – contains the fixes to CS core/api
Patch #2 – fixes for your new plugin

Check if review board allows to upload 2 patches for the same ticket; if it doesn’t   - create a new one for the second patch.

2) Move all the Daos related to your plugin (RmapVO.java<https://reviews.apache.org/r/17790/diff/?page=2#20>), to the plugin folder? As an example, you can take a look at NetScalerPodDao

Thank you!
Alena.

From: Alex Ough <al...@sungard.com>>
Reply-To: Alex Ough <al...@sungard.com>>
Date: Saturday, April 5, 2014 at 8:32 PM
To: daan Hoogland <da...@gmail.com>>, Alex Ough <al...@sungard.com>>, Alena Prokharchyk <al...@citrix.com>>, cloudstack <de...@cloudstack.apache.org>>
Subject: Re: Review Request 17790: Domain-Account-User Sync Up Among Multiple Regions

This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/17790/

Review request for cloudstack.
By Alex Ough.

Updated April 6, 2014, 3:32 a.m.

Changes

I fixed a few minor bugs, so please discard the previous patch (diff r11).


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


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.


Diffs (updated)

  *   api/src/com/cloud/domain/Domain.java (365a705)
  *   api/src/com/cloud/event/EventTypes.java (39ef710)
  *   api/src/com/cloud/user/Account.java (b912e51)
  *   api/src/com/cloud/user/AccountService.java (7e37b38)
  *   api/src/com/cloud/user/User.java (36e9028)
  *   api/src/com/cloud/user/UserAccount.java (c5a0637)
  *   api/src/org/apache/cloudstack/api/ApiConstants.java (fdb4558)
  *   api/src/org/apache/cloudstack/api/BaseCmd.java (f6f21ae)
  *   api/src/org/apache/cloudstack/api/command/admin/region/AddRegionCmd.java (f6743ba)
  *   api/src/org/apache/cloudstack/api/command/admin/region/UpdateRegionCmd.java (b08cbbb)
  *   api/src/org/apache/cloudstack/api/response/AccountResponse.java (2e50c51)
  *   api/src/org/apache/cloudstack/api/response/DomainResponse.java (0c0281e)
  *   api/src/org/apache/cloudstack/api/response/RegionResponse.java (6c74fa6)
  *   api/src/org/apache/cloudstack/api/response/UserResponse.java (40e1561)
  *   api/src/org/apache/cloudstack/region/Region.java (df64e44)
  *   api/src/org/apache/cloudstack/region/RegionService.java (afefcc7)
  *   api/test/org/apache/cloudstack/api/command/test/RegionCmdTest.java (10c3d85)
  *   client/pom.xml (d8dbde7)
  *   engine/schema/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml (489b37d)
  *   engine/schema/src/com/cloud/domain/DomainVO.java (f6494b3)
  *   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 (0f5a044)
  *   engine/schema/src/com/cloud/user/UserAccountVO.java (cef9239)
  *   engine/schema/src/com/cloud/user/UserVO.java (68879f6)
  *   engine/schema/src/org/apache/cloudstack/region/RegionVO.java (608bd2b)
  *   framework/db/src/com/cloud/utils/db/Attribute.java (82c2bdb)
  *   framework/db/src/com/cloud/utils/db/GenericDao.java (cb401cd)
  *   framework/db/src/com/cloud/utils/db/GenericDaoBase.java (2052aad)
  *   framework/db/src/com/cloud/utils/db/SqlGenerator.java (befe34b)
  *   framework/db/test/com/cloud/utils/db/GenericDaoBaseTest.java (aef0c69)
  *   framework/db/test/com/cloud/utils/db/SqlGeneratorTest.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/pom.xml (PRE-CREATION)
  *   plugins/event-bus/multiregion/resources/META-INF/cloudstack/spring-mom-multiregion-daos-context.xml (PRE-CREATION)
  *   plugins/event-bus/multiregion/resources/META-INF/cloudstack/system/spring-plugin-multiregion-system-context.xml (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/FullSyncer.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/InjectedCollection.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/MultiRegionEventBus.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/StringManipulator.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/AccountCaller.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/BaseCaller.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/DomainCaller.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/UserCaller.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/APIFailureException.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/InvalidDataException.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/UnsupportedException.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessor.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountService.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/BaseService.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessor.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainService.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullScanner.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullSyncProcessor.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalAccountManager.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalDomainManager.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalUserManager.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessor.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessor.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteEventProcessor.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessor.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessor.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserService.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGenerator.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEvent.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAutoGenerator.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGenerator.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEvent.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGenerator.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGenerator.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEvent.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriber.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriber.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriber.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriber.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/AccountCallerTest.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/BaseCallerTest.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/DomainCallerTest.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/UserCallerTest.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessorTest.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/BaseServiceTest.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessorTest.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessorTest.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessorTest.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessorTest.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessorTest.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEventTest.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorTest.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEventTest.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorTest.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGeneratorTest.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEventTest.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorTest.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriberTest.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriberTest.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriberTest.java (PRE-CREATION)
  *   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriberTest.java (PRE-CREATION)
  *   plugins/network-elements/juniper-contrail/test/org/apache/cloudstack/network/contrail/management/MockAccountManager.java (957f708)
  *   plugins/pom.xml (9b391b8)
  *   server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml (fc1c7e2)
  *   server/src/com/cloud/api/ApiDispatcher.java (95074e2)
  *   server/src/com/cloud/api/ApiResponseHelper.java (38f2f0b)
  *   server/src/com/cloud/api/dispatch/ParamProcessWorker.java (e9bdd8b)
  *   server/src/com/cloud/api/query/dao/AccountJoinDaoImpl.java (ecd97c7)
  *   server/src/com/cloud/api/query/dao/UserAccountJoinDaoImpl.java (923a238)
  *   server/src/com/cloud/api/query/vo/AccountJoinVO.java (8d642ed)
  *   server/src/com/cloud/api/query/vo/UserAccountJoinVO.java (ed29284)
  *   server/src/com/cloud/event/ActionEventUtils.java (28e5680)
  *   server/src/com/cloud/projects/ProjectManagerImpl.java (d10c059)
  *   server/src/com/cloud/user/AccountManager.java (03bf842)
  *   server/src/com/cloud/user/AccountManagerImpl.java (2070ee6)
  *   server/src/com/cloud/user/DomainManager.java (f72b18a)
  *   server/src/com/cloud/user/DomainManagerImpl.java (fbbe0c2)
  *   server/src/org/apache/cloudstack/region/RegionManager.java (6f25481)
  *   server/src/org/apache/cloudstack/region/RegionManagerImpl.java (8910714)
  *   server/src/org/apache/cloudstack/region/RegionServiceImpl.java (98cf500)
  *   server/test/com/cloud/api/dispatch/ParamProcessWorkerTest.java (12051a6)
  *   server/test/com/cloud/user/MockAccountManagerImpl.java (f373cba)
  *   server/test/com/cloud/user/MockDomainManagerImpl.java (7dddefb)
  *   server/test/org/apache/cloudstack/region/RegionManagerTest.java (d7bc537)
  *   setup/db/db/schema-440to450.sql (2bd5386)
  *   ui/scripts/regions.js (66dae8c)

View Diff<https://reviews.apache.org/r/17790/diff/>


Re: Review Request 17790: Domain-Account-User Sync Up Among Multiple Regions

Posted by Alex Ough <al...@sungard.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17790/
-----------------------------------------------------------

(Updated April 6, 2014, 3:32 a.m.)


Review request for cloudstack.


Changes
-------

I fixed a few minor bugs, so please discard the previous patch (diff r11).


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 365a705 
  api/src/com/cloud/event/EventTypes.java 39ef710 
  api/src/com/cloud/user/Account.java b912e51 
  api/src/com/cloud/user/AccountService.java 7e37b38 
  api/src/com/cloud/user/User.java 36e9028 
  api/src/com/cloud/user/UserAccount.java c5a0637 
  api/src/org/apache/cloudstack/api/ApiConstants.java fdb4558 
  api/src/org/apache/cloudstack/api/BaseCmd.java f6f21ae 
  api/src/org/apache/cloudstack/api/command/admin/region/AddRegionCmd.java f6743ba 
  api/src/org/apache/cloudstack/api/command/admin/region/UpdateRegionCmd.java b08cbbb 
  api/src/org/apache/cloudstack/api/response/AccountResponse.java 2e50c51 
  api/src/org/apache/cloudstack/api/response/DomainResponse.java 0c0281e 
  api/src/org/apache/cloudstack/api/response/RegionResponse.java 6c74fa6 
  api/src/org/apache/cloudstack/api/response/UserResponse.java 40e1561 
  api/src/org/apache/cloudstack/region/Region.java df64e44 
  api/src/org/apache/cloudstack/region/RegionService.java afefcc7 
  api/test/org/apache/cloudstack/api/command/test/RegionCmdTest.java 10c3d85 
  client/pom.xml d8dbde7 
  engine/schema/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml 489b37d 
  engine/schema/src/com/cloud/domain/DomainVO.java f6494b3 
  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 0f5a044 
  engine/schema/src/com/cloud/user/UserAccountVO.java cef9239 
  engine/schema/src/com/cloud/user/UserVO.java 68879f6 
  engine/schema/src/org/apache/cloudstack/region/RegionVO.java 608bd2b 
  framework/db/src/com/cloud/utils/db/Attribute.java 82c2bdb 
  framework/db/src/com/cloud/utils/db/GenericDao.java cb401cd 
  framework/db/src/com/cloud/utils/db/GenericDaoBase.java 2052aad 
  framework/db/src/com/cloud/utils/db/SqlGenerator.java befe34b 
  framework/db/test/com/cloud/utils/db/GenericDaoBaseTest.java aef0c69 
  framework/db/test/com/cloud/utils/db/SqlGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/pom.xml PRE-CREATION 
  plugins/event-bus/multiregion/resources/META-INF/cloudstack/spring-mom-multiregion-daos-context.xml PRE-CREATION 
  plugins/event-bus/multiregion/resources/META-INF/cloudstack/system/spring-plugin-multiregion-system-context.xml PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/FullSyncer.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/InjectedCollection.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/MultiRegionEventBus.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/StringManipulator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/AccountCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/BaseCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/DomainCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/UserCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/APIFailureException.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/InvalidDataException.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/UnsupportedException.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/BaseService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullScanner.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalAccountManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalDomainManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalUserManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAutoGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/AccountCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/BaseCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/DomainCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/UserCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/BaseServiceTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriberTest.java PRE-CREATION 
  plugins/network-elements/juniper-contrail/test/org/apache/cloudstack/network/contrail/management/MockAccountManager.java 957f708 
  plugins/pom.xml 9b391b8 
  server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml fc1c7e2 
  server/src/com/cloud/api/ApiDispatcher.java 95074e2 
  server/src/com/cloud/api/ApiResponseHelper.java 38f2f0b 
  server/src/com/cloud/api/dispatch/ParamProcessWorker.java e9bdd8b 
  server/src/com/cloud/api/query/dao/AccountJoinDaoImpl.java ecd97c7 
  server/src/com/cloud/api/query/dao/UserAccountJoinDaoImpl.java 923a238 
  server/src/com/cloud/api/query/vo/AccountJoinVO.java 8d642ed 
  server/src/com/cloud/api/query/vo/UserAccountJoinVO.java ed29284 
  server/src/com/cloud/event/ActionEventUtils.java 28e5680 
  server/src/com/cloud/projects/ProjectManagerImpl.java d10c059 
  server/src/com/cloud/user/AccountManager.java 03bf842 
  server/src/com/cloud/user/AccountManagerImpl.java 2070ee6 
  server/src/com/cloud/user/DomainManager.java f72b18a 
  server/src/com/cloud/user/DomainManagerImpl.java fbbe0c2 
  server/src/org/apache/cloudstack/region/RegionManager.java 6f25481 
  server/src/org/apache/cloudstack/region/RegionManagerImpl.java 8910714 
  server/src/org/apache/cloudstack/region/RegionServiceImpl.java 98cf500 
  server/test/com/cloud/api/dispatch/ParamProcessWorkerTest.java 12051a6 
  server/test/com/cloud/user/MockAccountManagerImpl.java f373cba 
  server/test/com/cloud/user/MockDomainManagerImpl.java 7dddefb 
  server/test/org/apache/cloudstack/region/RegionManagerTest.java d7bc537 
  setup/db/db/schema-440to450.sql 2bd5386 
  ui/scripts/regions.js 66dae8c 

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


Re: Review Request 17790: Domain-Account-User Sync Up Among Multiple Regions

Posted by Alex Ough <al...@sungard.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17790/
-----------------------------------------------------------

(Updated April 5, 2014, 9:31 p.m.)


Review request for cloudstack.


Changes
-------

All done except #8 because
1. domainDao.findImmediateChildrenForParent() returns list of DomainVO not Domain
2. accountDao.findActiveAccountsForDomain() returns list of AccountVO not Account
3. userDao.listByAccount() returns list of UserVO not User

And I merged the patches because only the new patch has been changed.


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 365a705 
  api/src/com/cloud/event/EventTypes.java 39ef710 
  api/src/com/cloud/user/Account.java b912e51 
  api/src/com/cloud/user/AccountService.java 7e37b38 
  api/src/com/cloud/user/User.java 36e9028 
  api/src/com/cloud/user/UserAccount.java c5a0637 
  api/src/org/apache/cloudstack/api/ApiConstants.java fdb4558 
  api/src/org/apache/cloudstack/api/BaseCmd.java f6f21ae 
  api/src/org/apache/cloudstack/api/command/admin/region/AddRegionCmd.java f6743ba 
  api/src/org/apache/cloudstack/api/command/admin/region/UpdateRegionCmd.java b08cbbb 
  api/src/org/apache/cloudstack/api/response/AccountResponse.java 2e50c51 
  api/src/org/apache/cloudstack/api/response/DomainResponse.java 0c0281e 
  api/src/org/apache/cloudstack/api/response/RegionResponse.java 6c74fa6 
  api/src/org/apache/cloudstack/api/response/UserResponse.java 40e1561 
  api/src/org/apache/cloudstack/region/Region.java df64e44 
  api/src/org/apache/cloudstack/region/RegionService.java afefcc7 
  api/test/org/apache/cloudstack/api/command/test/RegionCmdTest.java 10c3d85 
  client/pom.xml d8dbde7 
  engine/schema/resources/META-INF/cloudstack/core/spring-engine-schema-core-daos-context.xml 489b37d 
  engine/schema/src/com/cloud/domain/DomainVO.java f6494b3 
  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 0f5a044 
  engine/schema/src/com/cloud/user/UserAccountVO.java cef9239 
  engine/schema/src/com/cloud/user/UserVO.java 68879f6 
  engine/schema/src/org/apache/cloudstack/region/RegionVO.java 608bd2b 
  framework/db/src/com/cloud/utils/db/Attribute.java 82c2bdb 
  framework/db/src/com/cloud/utils/db/GenericDao.java cb401cd 
  framework/db/src/com/cloud/utils/db/GenericDaoBase.java 2052aad 
  framework/db/src/com/cloud/utils/db/SqlGenerator.java befe34b 
  framework/db/test/com/cloud/utils/db/GenericDaoBaseTest.java aef0c69 
  framework/db/test/com/cloud/utils/db/SqlGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/pom.xml PRE-CREATION 
  plugins/event-bus/multiregion/resources/META-INF/cloudstack/spring-mom-multiregion-daos-context.xml PRE-CREATION 
  plugins/event-bus/multiregion/resources/META-INF/cloudstack/system/spring-plugin-multiregion-system-context.xml PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/FullSyncer.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/InjectedCollection.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/MultiRegionEventBus.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/StringManipulator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/AccountCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/BaseCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/DomainCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/UserCaller.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/APIFailureException.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/InvalidDataException.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/exception/UnsupportedException.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/BaseService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullScanner.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalAccountManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalDomainManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalUserManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAutoGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/AccountCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/BaseCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/DomainCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/UserCallerTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/BaseServiceTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriberTest.java PRE-CREATION 
  plugins/network-elements/juniper-contrail/test/org/apache/cloudstack/network/contrail/management/MockAccountManager.java 957f708 
  plugins/pom.xml 9b391b8 
  server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml fc1c7e2 
  server/src/com/cloud/api/ApiDispatcher.java 95074e2 
  server/src/com/cloud/api/ApiResponseHelper.java 38f2f0b 
  server/src/com/cloud/api/dispatch/ParamProcessWorker.java e9bdd8b 
  server/src/com/cloud/api/query/dao/AccountJoinDaoImpl.java ecd97c7 
  server/src/com/cloud/api/query/dao/UserAccountJoinDaoImpl.java 923a238 
  server/src/com/cloud/api/query/vo/AccountJoinVO.java 8d642ed 
  server/src/com/cloud/api/query/vo/UserAccountJoinVO.java ed29284 
  server/src/com/cloud/event/ActionEventUtils.java 28e5680 
  server/src/com/cloud/projects/ProjectManagerImpl.java d10c059 
  server/src/com/cloud/user/AccountManager.java 03bf842 
  server/src/com/cloud/user/AccountManagerImpl.java 2070ee6 
  server/src/com/cloud/user/DomainManager.java f72b18a 
  server/src/com/cloud/user/DomainManagerImpl.java fbbe0c2 
  server/src/org/apache/cloudstack/region/RegionManager.java 6f25481 
  server/src/org/apache/cloudstack/region/RegionManagerImpl.java 8910714 
  server/src/org/apache/cloudstack/region/RegionServiceImpl.java 98cf500 
  server/test/com/cloud/api/dispatch/ParamProcessWorkerTest.java 12051a6 
  server/test/com/cloud/user/MockAccountManagerImpl.java f373cba 
  server/test/com/cloud/user/MockDomainManagerImpl.java 7dddefb 
  server/test/org/apache/cloudstack/region/RegionManagerTest.java d7bc537 
  setup/db/db/schema-440to450.sql 2bd5386 
  ui/scripts/regions.js 66dae8c 

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


Re: Review Request 17790: Domain-Account-User Sync Up Among Multiple Regions

Posted by Alena Prokharchyk <al...@citrix.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17790/#review39482
-----------------------------------------------------------


Alex, all the fixes from the previous review, were done, thank you. But there are some more to address:

1) Minor: Its a good practice shutdownNow() for your executors as a part of the server shutdownHook

Take for example:
FullSyncer.java

You have an _executor there; you have to call shutdownNow for it as a part of stop() method. You can refer to ClusteredAgentManagerImpl for the example

2) Replace all of the hardcoded values like "account"/"domainId" you are getting when parse API requests from CS, with the references to ApiConstants.

3) Replace generic Exception for "not implemented" cases in places like below, with CS UnsupportedException:

public JSONObject deleteAccountFromProject() throws Exception {
158
        throw new Exception("Not implemented");
159
    }


4) :) Use StringBuilder for String concatination (BaseInterface.java, and may be some other classes)

if (paramStr != null && !paramStr.equals(""))
98
            connUrl += "?" + paramStr;


5) Rename BaseInterface.java, its not an interface. Rename is with some name meaningful to your component.
Same for DomainInterface/AccountInterface. all the classes that are not interfaces.


6) Back to StringBuilder. Replace

StringBuilder param = new StringBuilder("command=createDomain&name=" + name + "&response=json&sessionkey=" + encodeSessionKey());
if (parentDomainId != null) param.append("&parentdomainid=" + parentDomainId);

with

StringBuilder param = new StringBuilder("command=createDomain&name=").append(name).append("&response=json&sessionkey=").append(encodeSessionKey());
if (parentDomainId != null) param.append("&parentdomainid=").append(parentDomainId);

Just search for all + occurance for your string, and put a replacement


7) My suggestion for you would be: build your commands in generic manner. For example, create some helper method with the signature:

buildCommand(String commandName, Map<String, String> parameters) {
    StringBuilder param = new StringBuilder("command=).append(commandName).append("&response=json&sessionkey=").append(encodeSessionKey());
    ...
    go through parameters list to form the request
}


8) Whenever possible, try to use interface instead of VO class. For example, Account vs AccountVO. Only if Account misses some fiels that you need, use AccountVO.

9) AccountFullSyncProcesser. What is the reason for the code swallowing a generic exception like this? Its not a good practice

 for (int idx = 0; idx < remoteArray.length(); idx++) {
93
            try {
94
                remoteList.add(remoteArray.getJSONObject(idx));
95
            } catch (Exception ex) {
96
97
            }
98
        }



10) AccountFullSync

 catch (Exception ex) {
118
            s_logger.error("Failed to synchronize accounts : " + ex.getMessage());
119
        }

exception is logged incorrectly, should be logged like:

s_logger.error("Failed to synchronize accounts : ", ex;

I've seen the similar in other places; please replace everywhere


11) On Exceptions. I can see that you throw generic Exception everywhere. Try to replace them with more specific exceptions reflecting reason for the failure. Look at CS existing exceptions - PermissionDeniedException,InvalidParameterValueException/CloudRuntimeException, and try to utilize them.

12) Please compare accountNames (and other string values) in case insensitive manner. Use equalsignorecase instead of equals


- Alena Prokharchyk


On April 3, 2014, 3:54 p.m., Alex Ough wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/17790/
> -----------------------------------------------------------
> 
> (Updated April 3, 2014, 3:54 p.m.)
> 
> 
> Review request for cloudstack.
> 
> 
> 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
> -----
> 
>   plugins/event-bus/multiregion/pom.xml PRE-CREATION 
>   plugins/event-bus/multiregion/resources/META-INF/cloudstack/spring-mom-multiregion-daos-context.xml PRE-CREATION 
>   plugins/event-bus/multiregion/resources/META-INF/cloudstack/system/spring-plugin-multiregion-system-context.xml PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/FullSyncer.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/InjectedCollection.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/MultiRegionEventBus.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/AccountInterface.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/BaseInterface.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/DomainInterface.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/UserInterface.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/BaseService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullScanner.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullSyncProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalAccountManager.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalDomainManager.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalUserManager.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteEventProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessor.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserService.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEvent.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAutoGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEvent.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGenerator.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEvent.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriber.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriber.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriber.java PRE-CREATION 
>   plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriber.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/AccountInterfaceTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/BaseInterfaceTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/DomainInterfaceTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/UserInterfaceTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/BaseServiceTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEventTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEventTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGeneratorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEventTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriberTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriberTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriberTest.java PRE-CREATION 
>   plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriberTest.java PRE-CREATION 
> 
> 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
> 
>


Re: Review Request 17790: Domain-Account-User Sync Up Among Multiple Regions

Posted by Alex Ough <al...@sungard.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17790/
-----------------------------------------------------------

(Updated April 3, 2014, 3:54 p.m.)


Review request for cloudstack.


Changes
-------

This is the patch for the new plugin.


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)
-----

  plugins/event-bus/multiregion/pom.xml PRE-CREATION 
  plugins/event-bus/multiregion/resources/META-INF/cloudstack/spring-mom-multiregion-daos-context.xml PRE-CREATION 
  plugins/event-bus/multiregion/resources/META-INF/cloudstack/system/spring-plugin-multiregion-system-context.xml PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/FullSyncer.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/InjectedCollection.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/MultiRegionEventBus.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/AccountInterface.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/BaseInterface.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/DomainInterface.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/api/UserInterface.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/AccountService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/BaseService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/DomainService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullScanner.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/FullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalAccountManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalDomainManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/LocalUserManager.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessor.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/service/UserService.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAutoGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGenerator.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEvent.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/src/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriber.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/AccountInterfaceTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/BaseInterfaceTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/DomainInterfaceTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/api/UserInterfaceTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/AccountFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/BaseServiceTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/DomainFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteAccountEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteDomainEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/RemoteUserEventProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/service/UserFullSyncProcessorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorAccountLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorDomainLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorEventTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/simulator/SimulatorUserLocalGeneratorTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/AccountSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/DomainSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/MultiRegionSubscriberTest.java PRE-CREATION 
  plugins/event-bus/multiregion/test/org/apache/cloudstack/mom/multiregion/subscriber/UserSubscriberTest.java PRE-CREATION 

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