Hi Alena,

Did you get back from the vacation?
If so, let me know when it is the good time to discuss this.

Thanks
Alex Ough


On Thu, May 15, 2014 at 9:02 AM, Alex Ough <alex.o...@sungardas.com> wrote:

> I know. That's why I asked before Alex Huang to let me know when he's
> available after he's coming back next week.
>
> Have a good vacation.
> Thanks
> Alex Ough
>
>
> On Wed, May 14, 2014 at 4:21 PM, Alena Prokharchyk <
> alena.prokharc...@citrix.com> wrote:
>
>>  Alex, I’m on vacation tomorrow; leaving today at 2 pm.
>>
>>  Thanks,
>> Alena.
>>
>>   From: Alex Ough <alex.o...@sungardas.com>
>> Date: Wednesday, May 14, 2014 at 1:18 PM
>>
>> To: Alena Prokharchyk <alena.prokharc...@citrix.com>
>> Cc: Alex Huang <alex.hu...@citrix.com>, Murali Reddy <
>> murali.re...@citrix.com>, Kishan Kavala <kishan.kav...@citrix.com>, "
>> dev@cloudstack.apache.org" <dev@cloudstack.apache.org>
>> Subject: Re: Control event publishing in multi region setups
>>
>>   My meeting is being delayed, so let me know when you guys are
>> available from tomorrow.
>>
>>  Thanks
>> Alex Ough
>>
>>
>> On Wed, May 14, 2014 at 3:05 PM, Alex Ough <alex.o...@sungardas.com>
>> wrote:
>>
>>> I have a meeting in 20 min which is estimated to end 1pm PST, so I'll
>>> let you know once it is over.
>>>
>>>
>>> On Wed, May 14, 2014 at 3:01 PM, Alena Prokharchyk <
>>> alena.prokharc...@citrix.com> wrote:
>>>
>>>>  Alex, sure we can have a call. I’m in the office till 2 pm PST today.
>>>> Send the meeting invitation to me and Alex.
>>>>
>>>>   From: Alex Ough <alex.o...@sungardas.com>
>>>> Date: Wednesday, May 14, 2014 at 11:33 AM
>>>>
>>>> To: Alena Prokharchyk <alena.prokharc...@citrix.com>
>>>> Cc: Alex Huang <alex.hu...@citrix.com>, Murali Reddy <
>>>> murali.re...@citrix.com>, Kishan Kavala <kishan.kav...@citrix.com>, "
>>>> dev@cloudstack.apache.org" <dev@cloudstack.apache.org>
>>>> Subject: Re: Control event publishing in multi region setups
>>>>
>>>>   I think I forgot to mention this, but I think we should talk with
>>>> Alex Huang also because you need his approval.
>>>> So let me know when you guys are available and let's just stop sending
>>>> emails back and forth.
>>>>
>>>>  Thanks
>>>> Alex Ough
>>>>
>>>>
>>>> On Wed, May 14, 2014 at 2:30 PM, Alex Ough <alex.o...@sungardas.com>
>>>> wrote:
>>>>
>>>>> Alena,
>>>>>
>>>>>  I think we should talk, so please let me know when you're available.
>>>>>
>>>>>  Thanks
>>>>>  Alex Ough
>>>>>
>>>>>
>>>>> On Wed, May 14, 2014 at 1:36 PM, Alena Prokharchyk <
>>>>> alena.prokharc...@citrix.com> wrote:
>>>>>
>>>>>>  Alex, we do understand how “Full Scan” works and we know that your
>>>>>> component/other components using Full Scan, should be able to distinguish
>>>>>> whether the event was generated locally or by another region.
>>>>>>
>>>>>>  Changing the event by enhancing it with “Local” flag is not a
>>>>>> desired solution as its very specific to your feature, and we should 
>>>>>> never
>>>>>> modify the CS code just to satisfy only a certain plugin/service needs. 
>>>>>> The
>>>>>> same applies to introducing another method w/o event generation.  Both
>>>>>> solutions are incorrect, and I’m against putting them to the CS.
>>>>>>
>>>>>>  Here are the rules that should apply to account/domain/user changes
>>>>>> on the CS side:
>>>>>>
>>>>>>
>>>>>>    1. The event should be generated regardless of who makes the call
>>>>>>    2. The event should be light weight and contain the minimum
>>>>>>    details – object id/uuid/status. If we let third party components to
>>>>>>    enhance the events, they would grow exponentially and certain details 
>>>>>> would
>>>>>>    make sense just to specific plugin. So no changes to the event object
>>>>>>    unless its something generic and would make sense for all the 
>>>>>> subscribers.
>>>>>>    3. If subscriber needs to get more details about the object –
>>>>>>    account/domain/user – he needs to request those details by calling
>>>>>>    listAccount/listDomains/listUsers API after getting the event. And 
>>>>>> object
>>>>>>    itself should give you information about:
>>>>>>
>>>>>>
>>>>>>    - Latest updates
>>>>>>    - Who performed the latest update – which region.
>>>>>>
>>>>>> So the solution for your plugin would be as Alex Huang suggested
>>>>>> originally – add extra field to account/domain/user object defining who 
>>>>>> did
>>>>>> the update. Copying his suggestion below:
>>>>>>
>>>>>>  "Now the detail is in how do we know if an account is created or
>>>>>> propagated.  For that, it can be done in a number of ways.  I’m open to
>>>>>> which method.  I would suggest that we add two fields to account:
>>>>>> origination region and original uuid.  The create account API takes an
>>>>>> optional fields for the origination region and origination account uuid.
>>>>>>  If these two parameters are not set in the API, the API set the
>>>>>> origination region to the current region and the original uuid to the 
>>>>>> uuid
>>>>>> of the account. "
>>>>>>
>>>>>>
>>>>>>  Thanks,
>>>>>> Alena.
>>>>>>
>>>>>>   From: Alex Ough <alex.o...@sungardas.com>
>>>>>> Date: Wednesday, May 14, 2014 at 6:44 AM
>>>>>> To: Alena Prokharchyk <alena.prokharc...@citrix.com>
>>>>>>
>>>>>> Cc: Alex Huang <alex.hu...@citrix.com>, Murali Reddy <
>>>>>> murali.re...@citrix.com>, Kishan Kavala <kishan.kav...@citrix.com>, "
>>>>>> dev@cloudstack.apache.org" <dev@cloudstack.apache.org>
>>>>>> Subject: Re: Control event publishing in multi region setups
>>>>>>
>>>>>>   Alena/Alex Hwang,
>>>>>>
>>>>>>  I totally understand your concerns, but I'm afraid you guys don't
>>>>>> seem to understand how the 'Full scan' works.
>>>>>> If I understood correctly, Alex Hwang's suggestion does NOT work
>>>>>> because it is NOT the matter of propagation.
>>>>>> The event subscribers that processes the Full Scan needs to discard
>>>>>> all events even if they have the region value of 'Local'.
>>>>>>
>>>>>>  So to resolve this issue,
>>>>>> 1. The methods to manage the domain/account/user resources needs to
>>>>>> send events that include a kind of boolean flag that notify the 'Full 
>>>>>> Scan'
>>>>>> subscribers to discard the events even if the region value is 'Local'
>>>>>> 2. To add that flag into their events, the methods should have
>>>>>> additional input parameter for the flag value the caller can assign along
>>>>>> with the region input param value of null
>>>>>> 3. Then what is the difference with having another method not to
>>>>>> generate event?
>>>>>>
>>>>>>  Let me know if I'm missing any.
>>>>>> Thanks
>>>>>> Alex Ough
>>>>>>
>>>>>>
>>>>>> On Tue, May 13, 2014 at 12:56 PM, Alena Prokharchyk <
>>>>>> alena.prokharc...@citrix.com> wrote:
>>>>>>
>>>>>>>  Alex, how do you know that the data is useless? Only the recipient
>>>>>>> can make this judgement. In your case you know that the recipient – your
>>>>>>> local region – doesn’t need this data, but you can’t make this call on
>>>>>>> behalf of everybody else. Example of the possible scenario: somebody 
>>>>>>> wants
>>>>>>> to perform user’s update once corresponding account gets updated, within
>>>>>>> the same region. And they rely on in-memory bus to catch updateAccount
>>>>>>> event in order to execute updateUser operation. So the event always has 
>>>>>>> to
>>>>>>> be published.
>>>>>>>
>>>>>>>  The conclusion: Any update done to the account/domain/user, should
>>>>>>> generate the event. The recipient should make a decision whether to 
>>>>>>> ignore
>>>>>>> the event, or process it further. Alex proposed to enhance the
>>>>>>> account/domain/user object with the field identifying who’s triggered 
>>>>>>> the
>>>>>>> upgrade to give more details to the recipient.
>>>>>>>
>>>>>>>  -Alena.
>>>>>>>
>>>>>>>   From: Alex Ough <alex.o...@sungardas.com>
>>>>>>> Date: Monday, May 12, 2014 at 6:14 PM
>>>>>>>
>>>>>>> To: Alena Prokharchyk <alena.prokharc...@citrix.com>
>>>>>>> Cc: Alex Huang <alex.hu...@citrix.com>, Murali Reddy <
>>>>>>> murali.re...@citrix.com>, Kishan Kavala <kishan.kav...@citrix.com>,
>>>>>>> "dev@cloudstack.apache.org" <dev@cloudstack.apache.org>
>>>>>>> Subject: Re: Control event publishing in multi region setups
>>>>>>>
>>>>>>>   I'm not really sure why you think it is a bug. And why do you
>>>>>>> want to send data that is absolutely useless to the destination?
>>>>>>>
>>>>>>>  Thanks
>>>>>>> Alex Ough
>>>>>>>
>>>>>>>
>>>>>>> On Mon, May 12, 2014 at 6:19 PM, Alena Prokharchyk <
>>>>>>> alena.prokharc...@citrix.com> wrote:
>>>>>>>
>>>>>>>>  Alex, I can’t approve the current approach you use in your fix.
>>>>>>>> The reason that there are bugs in the current CS code, and therefore 
>>>>>>>> we can
>>>>>>>> contribute more to the buggy behavior, doesn’t sound right to me.  And 
>>>>>>>> we
>>>>>>>> have –1 from Alex Huang on that as well.
>>>>>>>>
>>>>>>>>  We either fix it as a part of this commit, or you can fix it
>>>>>>>> later. But it has to make it to 4.5, otherwise the original fix will be
>>>>>>>> rolled back. You can finalize the approach with Alex, and I will check 
>>>>>>>> in
>>>>>>>> your code as soon as its done, either before I go on vacation, or 
>>>>>>>> after I’m
>>>>>>>> back.
>>>>>>>>
>>>>>>>>  -Alena.
>>>>>>>>
>>>>>>>>   From: Alex Ough <alex.o...@sungardas.com>
>>>>>>>> Date: Monday, May 12, 2014 at 3:13 PM
>>>>>>>> To: Alena Prokharchyk <alena.prokharc...@citrix.com>
>>>>>>>> Cc: Alex Huang <alex.hu...@citrix.com>, Murali Reddy <
>>>>>>>> murali.re...@citrix.com>, Kishan Kavala <kishan.kav...@citrix.com>,
>>>>>>>> "dev@cloudstack.apache.org" <dev@cloudstack.apache.org>
>>>>>>>>
>>>>>>>> Subject: Re: Control event publishing in multi region setups
>>>>>>>>
>>>>>>>>   That is not good, but I'm wondering if you can approve after our
>>>>>>>> conversation without consulting with Alex Hwang.
>>>>>>>>
>>>>>>>>  Thanks
>>>>>>>> Alex Ough
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, May 12, 2014 at 2:37 PM, Alena Prokharchyk <
>>>>>>>> alena.prokharc...@citrix.com> wrote:
>>>>>>>>
>>>>>>>>>  We do have to come to conclusion for this remaining issue before
>>>>>>>>> committing the patches below:
>>>>>>>>>  (https://reviews.apache.org/r/20099/ and
>>>>>>>>> https://reviews.apache.org/r/17790/)
>>>>>>>>>
>>>>>>>>>  Alex (Ough), I’m going to be on vacation from May 15th till May
>>>>>>>>> 31st, if you and Alex(Huang) have your discussion/resolution while I’m
>>>>>>>>> away, I can commit the patches only after I’m back.
>>>>>>>>>
>>>>>>>>>  Thank you!
>>>>>>>>> Alena.
>>>>>>>>>
>>>>>>>>>   From: Alex Ough <alex.o...@sungardas.com>
>>>>>>>>> Date: Sunday, May 11, 2014 at 10:10 PM
>>>>>>>>> To: Alex Huang <alex.hu...@citrix.com>
>>>>>>>>> Cc: Murali Reddy <murali.re...@citrix.com>, Alena Prokharchyk <
>>>>>>>>> alena.prokharc...@citrix.com>, Kishan Kavala <
>>>>>>>>> kishan.kav...@citrix.com>, "dev@cloudstack.apache.org" <
>>>>>>>>> dev@cloudstack.apache.org>
>>>>>>>>>
>>>>>>>>> Subject: Re: Control event publishing in multi region setups
>>>>>>>>>
>>>>>>>>>   Alex,
>>>>>>>>>
>>>>>>>>>  It looks like I'd better wait until you're back because I'm
>>>>>>>>> afraid Alena seems to need your approval based on what I've been 
>>>>>>>>> through.
>>>>>>>>> Let me know once you're back.
>>>>>>>>>
>>>>>>>>>  Thanks
>>>>>>>>> Alex Ough
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Sat, May 10, 2014 at 12:50 PM, Alex Huang <
>>>>>>>>> alex.hu...@citrix.com> wrote:
>>>>>>>>>
>>>>>>>>>>  Alex and Alena,
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Perhaps, it’s best you two get on the phone about this.  I don’t
>>>>>>>>>> see Alex understanding what I’m saying over email so there’s no 
>>>>>>>>>> point in me
>>>>>>>>>> repeating it.  I’m not around next week and I think Alena is out 
>>>>>>>>>> after
>>>>>>>>>> Wednesday.  Something on Monday or Tuesday would be a good idea or 
>>>>>>>>>> you can
>>>>>>>>>> wait for me to come back the week after.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --Alex
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> *From:* Alex Ough [mailto:alex.o...@sungardas.com]
>>>>>>>>>> *Sent:* Saturday, May 10, 2014 9:28 AM
>>>>>>>>>> *To:* Alex Huang
>>>>>>>>>>
>>>>>>>>>> *Cc:* Murali Reddy; Alena Prokharchyk; Kishan Kavala;
>>>>>>>>>> dev@cloudstack.apache.org
>>>>>>>>>> *Subject:* Re: Control event publishing in multi region setups
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> And I'm really wondering if you understood how the 'Full Scan'
>>>>>>>>>> works. It is absolutely internal operations.
>>>>>>>>>>
>>>>>>>>>> Why do we force to use the event generating methods when the
>>>>>>>>>> updates are only internal and never, ever, ever ... need events?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Let me know if there is any chance it needs to use the events,
>>>>>>>>>> then I'll follow your suggestion.
>>>>>>>>>>
>>>>>>>>>> Thanks
>>>>>>>>>>
>>>>>>>>>> Alex Ough
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Sat, May 10, 2014 at 11:55 AM, Alex Ough <
>>>>>>>>>> alex.o...@sungardas.com> wrote:
>>>>>>>>>>
>>>>>>>>>>  I really don't know why you guys are making it complicated.
>>>>>>>>>>
>>>>>>>>>> The class has two different methods, one with 'event' decorator
>>>>>>>>>> and the other without it.
>>>>>>>>>>
>>>>>>>>>> So the callers know which method to call depending on their needs.
>>>>>>>>>>
>>>>>>>>>> And the each method will be called accordingly.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Sat, May 10, 2014 at 6:13 AM, Alex Huang <
>>>>>>>>>> alex.hu...@citrix.com> wrote:
>>>>>>>>>>
>>>>>>>>>>  -1
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> I do not believe in the argument that says “since there’s
>>>>>>>>>> existing bad code, then I can check in code that also causes 
>>>>>>>>>> regressions
>>>>>>>>>> for users.”  If that’s the case, what’s the point of the review?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> We’ve offered a path forward already.  Please reconsider that.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --Alex
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> *From:* Alex Ough [mailto:alex.o...@sungardas.com]
>>>>>>>>>> *Sent:* Friday, May 9, 2014 9:14 PM
>>>>>>>>>> *To:* Alex Huang
>>>>>>>>>> *Cc:* Murali Reddy; Alena Prokharchyk; Kishan Kavala;
>>>>>>>>>> dev@cloudstack.apache.org
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> *Subject:* Re: Control event publishing in multi region setups
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Are we going to rolling this out?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Thu, May 8, 2014 at 2:28 PM, Alex Ough <
>>>>>>>>>> alex.o...@sungardas.com> wrote:
>>>>>>>>>>
>>>>>>>>>>  That's why there are 2 methods, one is that generates events
>>>>>>>>>> and the other not and there are already a few public methods without 
>>>>>>>>>> event
>>>>>>>>>> decoration.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Thu, May 8, 2014 at 2:25 PM, Alex Huang <alex.hu...@citrix.com>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>  Alex,
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> I did read this when you first proposed.  I do understand the two
>>>>>>>>>> implementation.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> I understand that #2 is not activated via events but it doesn’t
>>>>>>>>>> mean #2 can just don’t generate events.  The blocker is precisely 
>>>>>>>>>> with the
>>>>>>>>>> last sentence in #2 where it states #2 doesn’t generate an event 
>>>>>>>>>> when “it
>>>>>>>>>> creates/updates/removes the resource in the local region”.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Perhaps an example would make this more clear.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Someone who deploys CloudStack sets up a process to listen to
>>>>>>>>>> account events.  It is a simple audit process whose job is to verify 
>>>>>>>>>> that
>>>>>>>>>> an account created in CloudStack is actually in their own billing
>>>>>>>>>> database.   The fact that #2 doesn’t generate an event would mean 
>>>>>>>>>> this
>>>>>>>>>> process would be broken for them.  This is the regression that 
>>>>>>>>>> causes the
>>>>>>>>>> blocker.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --Alex
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> *From:* Alex Ough [mailto:alex.o...@sungardas.com]
>>>>>>>>>> *Sent:* Thursday, May 8, 2014 11:02 AM
>>>>>>>>>> *To:* Alex Huang
>>>>>>>>>> *Cc:* Murali Reddy; Alena Prokharchyk; Kishan Kavala
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> *Subject:* Re: Control event publishing in multi region setups
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Alex,
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> I think you really review the wiki (
>>>>>>>>>> https://cwiki.apache.org/confluence/display/CLOUDSTACK/Domain-Account-User+Sync+Up+Among+Multiple+Regions)
>>>>>>>>>> or the implemented codes.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> To help you understand, there are 2 synchronizations supported in
>>>>>>>>>> this feature.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 1. real time sync : This is what you may imagine and event based.
>>>>>>>>>> This is sending requests when they are created/updated/removed in 
>>>>>>>>>> the local
>>>>>>>>>> region by subscribing their events.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 2. full scan : This is NOT related with events and it is to cover
>>>>>>>>>> when the #1 sync is failed with any reason like network failures. 
>>>>>>>>>> With
>>>>>>>>>> interval, it just scans all resources and compare them with ones in 
>>>>>>>>>> remote
>>>>>>>>>> regions and if there is any missing in the local region, it
>>>>>>>>>> creates/updates/removes the resource in the local region and the NEW
>>>>>>>>>> METHODS I need are called because it is local region only and no 
>>>>>>>>>> need to
>>>>>>>>>> have events.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> I'm hoping you understand the feature a little more and let me
>>>>>>>>>> know if you need more information.
>>>>>>>>>>
>>>>>>>>>> Thanks
>>>>>>>>>>
>>>>>>>>>> Alex Ough
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Thu, May 8, 2014 at 1:43 PM, Alex Huang <alex.hu...@citrix.com>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>  Hi Alex,
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Please know that the contribution is much appreciated.  It is not
>>>>>>>>>> a case of whether or not Alena “wants” or “doesn’t want” to approve 
>>>>>>>>>> the
>>>>>>>>>> review.  She can only approve if the design is sound and has no 
>>>>>>>>>> regression
>>>>>>>>>> for existing deployments of CloudStack.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> This is a blocker because not publishing events when an account
>>>>>>>>>> is propagated is actually an “incorrect” behavior for CloudStack.  
>>>>>>>>>> Any
>>>>>>>>>> functionality that acts on an account creation within the region 
>>>>>>>>>> will face
>>>>>>>>>> regression.  That’s why it is not “an additional feature” and must be
>>>>>>>>>> fixed.  Think of SunGuard itself.  If it was depending on the account
>>>>>>>>>> creation event and the next version of CloudStack suddenly doesn’t 
>>>>>>>>>> generate
>>>>>>>>>> the event consistently, would it not consider this a bug and ask us 
>>>>>>>>>> to fix
>>>>>>>>>> it?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> I do understand the time consuming nature of providing patches
>>>>>>>>>> and merging code.  Alena tells me that she has reviewed the code and 
>>>>>>>>>> she
>>>>>>>>>> thinks the design is fine except for this one item.  If we can 
>>>>>>>>>> commit to
>>>>>>>>>> fix this problem after the code is checked in, we can check it in 
>>>>>>>>>> now just
>>>>>>>>>> so you don’t have to do another round of merge and review for the 
>>>>>>>>>> part that
>>>>>>>>>> is working.  But the fix will need to be in before the code is 
>>>>>>>>>> released or
>>>>>>>>>> else we might have to revert this checkin.  What do you think?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --Alex
>>>>>>>>>>
>>>>>>>>>> P.S. I’m not sure why this is not on the dev list.  We should
>>>>>>>>>> bring this back.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> *From:* Alex Ough [mailto:alex.o...@sungardas.com]
>>>>>>>>>> *Sent:* Wednesday, May 7, 2014 4:58 PM
>>>>>>>>>> *To:* Murali Reddy
>>>>>>>>>> *Cc:* Alena Prokharchyk; Alex Huang; Kishan Kavala
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> *Subject:* Re: Control event publishing in multi region setups
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> All,
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Alena doesn't want to approve my implementation because of this
>>>>>>>>>> email thread, but I'm frustrated and not sure why this is a blocker.
>>>>>>>>>>
>>>>>>>>>> What I did was just created another method without an event tag
>>>>>>>>>> like the one already existing in 'AccountManagerImpl' class as below.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> @Override
>>>>>>>>>>
>>>>>>>>>> public boolean enableAccount(long accountId)
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> And if we need this feature, we really need to create a new jira
>>>>>>>>>> instead of adding it to already existing one
>>>>>>>>>>
>>>>>>>>>> so that we can discuss options to find a best solution.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> It's been a really long path mostly because of miscommunications,
>>>>>>>>>> and I really want to wrap this up without adding a new feature that 
>>>>>>>>>> is not
>>>>>>>>>> existing.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Let me know what you think.
>>>>>>>>>>
>>>>>>>>>> Thanks
>>>>>>>>>>
>>>>>>>>>> Alex Ough
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Wed, May 7, 2014 at 10:29 AM, Murali Reddy <
>>>>>>>>>> murali.re...@citrix.com> wrote:
>>>>>>>>>>
>>>>>>>>>>  I don’t think we need to bring back reverted changes, as we
>>>>>>>>>> want all the events generated should be published all the time with 
>>>>>>>>>> in the
>>>>>>>>>> region. I agree with Alex Huang, that we could actually add details
>>>>>>>>>> (originating region) to the account indicating source region where 
>>>>>>>>>> account
>>>>>>>>>> is created. Details particular to an event published on the event 
>>>>>>>>>> bus is a
>>>>>>>>>> JSON object so we can add additional details. Also steps listed out 
>>>>>>>>>> by Alex
>>>>>>>>>> should prevent from cyclic propagation.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Alex Ough,
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Suggested steps below by alex should work for you. Do you see any
>>>>>>>>>> problem with that?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Thanks,
>>>>>>>>>>
>>>>>>>>>> Murali
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> *From: *Alena Prokharchyk <alena.prokharc...@citrix.com>
>>>>>>>>>> *Date: *Wednesday, 7 May 2014 5:56 AM
>>>>>>>>>> *To: *Alex Huang <alex.hu...@citrix.com>, Alex Ough <
>>>>>>>>>> alex.o...@sungardas.com>, Kishan Kavala <kishan.kav...@citrix.com>,
>>>>>>>>>> Murali Reddy <murali.re...@citrix.com>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> *Subject: *Re: Control event publishing in multi region setups
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Alex (Huang), thanks for commenting.  As a conclusion – we should
>>>>>>>>>> never omit event firing when submit create/update.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Kishan/Murali, can you please help Alex (Ough) to figure out how
>>>>>>>>>> to implement the behavior Kishan reverted. Kishan, can you check with
>>>>>>>>>> Murali how to bring back your reverted changes for the API to make 
>>>>>>>>>> it work
>>>>>>>>>> with the new events framework?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Thank you,
>>>>>>>>>>
>>>>>>>>>> Alena.
>>>>>>>>>>
>>>>>>>>>> *From: *Alex Huang <alex.hu...@citrix.com>
>>>>>>>>>> *Date: *Tuesday, May 6, 2014 at 10:17 AM
>>>>>>>>>> *To: *Alena Prokharchyk <alena.prokharc...@citrix.com>, Alex
>>>>>>>>>> Ough <alex.o...@sungardas.com>
>>>>>>>>>> *Cc: *Kishan Kavala <kishan.kav...@citrix.com>
>>>>>>>>>> *Subject: *RE: Control event publishing in multi region setups
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Hey guys,
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> I’m not sure we’re all on the same page.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> First, the event must always be published, regardless of if it
>>>>>>>>>> was propagated from another region or created originally in that 
>>>>>>>>>> region.
>>>>>>>>>> The reason is there may be other code interested in acting on account
>>>>>>>>>> creation in a region.  We just need to provide a way for Alex’s code 
>>>>>>>>>> to
>>>>>>>>>> determine that the account is propagated rather than created 
>>>>>>>>>> originally in
>>>>>>>>>> the region.  You don’t need details in the event for that.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> The propagation code can do the following.  It’s probably already
>>>>>>>>>> doing that.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 1.       Listen for the account creation event.
>>>>>>>>>>
>>>>>>>>>> 2.       Upon receiving an account creation event, retrieve the
>>>>>>>>>> account to check if the account is propagated or created.
>>>>>>>>>>
>>>>>>>>>> 3.       If propagated, then don’t propagate or maybe even
>>>>>>>>>> signal back that the propagation is done for this region (depending 
>>>>>>>>>> on the
>>>>>>>>>> propagation logic).  If created, then propagate to other regions.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Now the detail is in how do we know if an account is created or
>>>>>>>>>> propagated.  For that, it can be done in a number of ways.  I’m open 
>>>>>>>>>> to
>>>>>>>>>> which method.  I would suggest that we add two fields to account:
>>>>>>>>>> origination region and original uuid.  The create account API takes 
>>>>>>>>>> an
>>>>>>>>>> optional fields for the origination region and origination account 
>>>>>>>>>> uuid.
>>>>>>>>>>  If these two parameters are not set in the API, the API set the
>>>>>>>>>> origination region to the current region and the original uuid to 
>>>>>>>>>> the uuid
>>>>>>>>>> of the account.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Sorry for the confusion here.  I had thought Kishan added this
>>>>>>>>>> but apparently it has been reverted.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --Alex
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> *From:* Alena Prokharchyk
>>>>>>>>>> *Sent:* Tuesday, May 6, 2014 9:57 AM
>>>>>>>>>> *To:* Alex Ough
>>>>>>>>>> *Cc:* Kishan Kavala; Alex Huang
>>>>>>>>>> *Subject:* Re: Control event publishing in multi region setups
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Ok, thank you Alex, so looks like there is no other workaround as
>>>>>>>>>> of now rather than introducing the new methods to the managers. Just 
>>>>>>>>>> go
>>>>>>>>>> ahead and submit the rest of the fixes for both review tickets, and 
>>>>>>>>>> I will
>>>>>>>>>> commit the patch after that.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> -Alena.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> *From: *Alex Ough <alex.o...@sungardas.com>
>>>>>>>>>> *Date: *Tuesday, May 6, 2014 at 9:48 AM
>>>>>>>>>> *To: *Alena Prokharchyk <alena.prokharc...@citrix.com>
>>>>>>>>>> *Cc: *Kishan Kavala <kishan.kav...@citrix.com>, Alex Huang <
>>>>>>>>>> alex.hu...@citrix.com>
>>>>>>>>>> *Subject: *Re: Control event publishing in multi region setups
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> I'm afraid it is not possible because the events are set in the
>>>>>>>>>> method level and one of my colleagues implemented to enable/disable 
>>>>>>>>>> events,
>>>>>>>>>> but this is working as globally.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Tue, May 6, 2014 at 12:44 PM, Alena Prokharchyk <
>>>>>>>>>> alena.prokharc...@citrix.com> wrote:
>>>>>>>>>>
>>>>>>>>>>  Kishan, any updates from Murali? All we need to know is – if
>>>>>>>>>> controlling events possible when command is fired through CS client 
>>>>>>>>>> APIs
>>>>>>>>>> today.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Thank you!
>>>>>>>>>>
>>>>>>>>>> Alena.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> *From: *Kishan Kavala <kishan.kav...@citrix.com>
>>>>>>>>>> *Date: *Tuesday, May 6, 2014 at 7:22 AM
>>>>>>>>>> *To: *Alena Prokharchyk <alena.prokharc...@citrix.com>
>>>>>>>>>> *Cc: *Alex Ough <alex.o...@sungardas.com>, Alex Huang <
>>>>>>>>>> alex.hu...@citrix.com>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> *Subject: *Re: Control event publishing in multi region setups
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Alena,
>>>>>>>>>>
>>>>>>>>>>  Events are published using the event framework introduced by
>>>>>>>>>> Murali. It can contain additional details to indicate whether an 
>>>>>>>>>> event
>>>>>>>>>> should be propagated to other regions.
>>>>>>>>>>
>>>>>>>>>>  In the implementation I added using API sync, there was a flag
>>>>>>>>>> in the API params to indicate whether to propagate event or not. I 
>>>>>>>>>> reverted
>>>>>>>>>> this code later when we moved to use event framework.
>>>>>>>>>>
>>>>>>>>>>   I'll check with Murali for more details regarding adding custom
>>>>>>>>>> details / extending event details.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On 06-May-2014, at 4:52 am, "Alena Prokharchyk" <
>>>>>>>>>> alena.prokharc...@citrix.com> wrote:
>>>>>>>>>>
>>>>>>>>>>  Alex, I understand that. But if Kishan implemented the way of
>>>>>>>>>> extending the events with the details that can be later on read by 
>>>>>>>>>> events
>>>>>>>>>> recipient, then you should be able to use the API.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> If there is no such support, the I agree that the way you do it
>>>>>>>>>> now, is the only one way to achieve the desired functionality.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> -Alena.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> *From: *Alex Ough <alex.o...@sungardas.com>
>>>>>>>>>> *Date: *Monday, May 5, 2014 at 4:08 PM
>>>>>>>>>> *To: *Alex Huang <alex.hu...@citrix.com>
>>>>>>>>>> *Cc: *Alena Prokharchyk <alena.prokharc...@citrix.com>, Kishan
>>>>>>>>>> Kavala <kishan.kav...@citrix.com>
>>>>>>>>>> *Subject: *Re: Control event publishing in multi region setups
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> That's exactly why I need methods that do NOT generate events
>>>>>>>>>> when the create/update/delete is just for local resources.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Mon, May 5, 2014 at 7:06 PM, Alex Huang <alex.hu...@citrix.com>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>  That’s actually what I said.  Let me clarify.  When Kishan
>>>>>>>>>> added the region feature, we discussed the problem of infinite 
>>>>>>>>>> circular
>>>>>>>>>> propagation because each management server that adds an account will
>>>>>>>>>> attempt to propagate it to all the regions by adding it to that 
>>>>>>>>>> region and
>>>>>>>>>> so on.  The API needs provide a way for that propagation to be 
>>>>>>>>>> terminated.
>>>>>>>>>>  That doesn’t mean we don’t publish the event in the region where the
>>>>>>>>>> account is propagated to.  We still should publish the event because 
>>>>>>>>>> that
>>>>>>>>>> region did add a new account but the event needs to contain enough 
>>>>>>>>>> details
>>>>>>>>>> for anyone listening to the event to determine that they should not
>>>>>>>>>> propagate the account creation.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --Alex
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> *From:* Alena Prokharchyk
>>>>>>>>>> *Sent:* Monday, May 5, 2014 2:39 PM
>>>>>>>>>> *To:* Kishan Kavala; Alex Ough
>>>>>>>>>> *Cc:* Alex Huang
>>>>>>>>>> *Subject:* Control event publishing in multi region setups
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Kishan,
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Have a question to you. Alex Huang mentioned to me that you were
>>>>>>>>>> planning to add support for controlling event publishing in multi 
>>>>>>>>>> regions
>>>>>>>>>> setup. So you can control whether you want to publish the event in a
>>>>>>>>>> particular region when create/update/delete account/domain API call 
>>>>>>>>>> is
>>>>>>>>>> made. Can you please tell us if you’ve implemented it? And what 
>>>>>>>>>> parameters
>>>>>>>>>> need to be passed to the API call to achieve that.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Alex (Ought), if Kishan didn’t implement this, then I agree with
>>>>>>>>>> the way you’ve added new methods to Account/DomainManagers to do the 
>>>>>>>>>> object
>>>>>>>>>> update w/o the event generation. Lets wait for Kishan’s reply. By 
>>>>>>>>>> now, you
>>>>>>>>>> can go ahead and fix 1) and 2) in
>>>>>>>>>> https://reviews.apache.org/r/20099/ which is not related to
>>>>>>>>>> event generation.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Thank you!
>>>>>>>>>>
>>>>>>>>>> -Alena.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>

Reply via email to