Return-Path: X-Original-To: apmail-cloudstack-dev-archive@www.apache.org Delivered-To: apmail-cloudstack-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id C7531112DD for ; Tue, 6 May 2014 15:10:47 +0000 (UTC) Received: (qmail 10501 invoked by uid 500); 6 May 2014 14:56:31 -0000 Delivered-To: apmail-cloudstack-dev-archive@cloudstack.apache.org Received: (qmail 10461 invoked by uid 500); 6 May 2014 14:56:30 -0000 Mailing-List: contact dev-help@cloudstack.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cloudstack.apache.org Delivered-To: mailing list dev@cloudstack.apache.org Received: (qmail 10442 invoked by uid 99); 6 May 2014 14:56:29 -0000 Received: from reviews-vm.apache.org (HELO reviews.apache.org) (140.211.11.40) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 06 May 2014 14:56:29 +0000 Received: from reviews.apache.org (localhost [127.0.0.1]) by reviews.apache.org (Postfix) with ESMTP id 5496E1D7598; Tue, 6 May 2014 14:56:23 +0000 (UTC) Content-Type: multipart/alternative; boundary="===============0075058292993842404==" MIME-Version: 1.0 Subject: Re: Review Request 17790: Domain-Account-User Sync Up Among Multiple Regions (New Plugin) From: "Alex Ough" To: "Alex Ough" , "Alena Prokharchyk" , "cloudstack" Date: Tue, 06 May 2014 14:56:22 -0000 Message-ID: <20140506145622.7613.61775@reviews.apache.org> X-ReviewBoard-URL: https://reviews.apache.org Auto-Submitted: auto-generated Sender: "Alex Ough" X-ReviewGroup: cloudstack X-ReviewRequest-URL: https://reviews.apache.org/r/17790/ X-Sender: "Alex Ough" References: <20140505182813.7615.53669@reviews.apache.org> In-Reply-To: <20140505182813.7615.53669@reviews.apache.org> Reply-To: "Alex Ough" X-ReviewRequest-Repository: cloudstack-git --===============0075058292993842404== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit > 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 > > --===============0075058292993842404==--