Thanks for your reply. I think that in your example, you meant Duration =
1800.

Now I understood what is the semantics of using these two parameters. But
I am wondering how your current logic will work if user passed in pageSize
and pageNo?

-min

So based on your definition, invoking listEventsCmd?entryTime=x&duration=y
should return all the events that are initiated in the last x seconds

On 12/10/12 5:45 AM, "Kishan Kavala" <kishan.kav...@citrix.com> wrote:

>Just to clarify. 
>The purpose of finding pending events is to list any APIs initiated in
>the last x seconds(entry time) and are still not completed after running
>for at least y seconds (duration).
>For example, To find events for APIs initiated in the last 24 hrs and are
>not completed after running for at least 30mins, entry time and duration
>would be as follows:
>
>EntryTime = 86400
>Duration = 3600
>
>More info on Events:
>http://wiki.cloudstack.org/display/DesignDocs/Action+Events
>
>Implementation details:
>  1. Find all the events created in the last x seconds with start_id = 0
>and not in Completed state, excluding the event started in the last y
>seconds
> 2. Look for the corresponding Completed event
> 3. Add to pending list if Completed event is not found.
>
>~kishan
>
>-----Original Message-----
>From: Nitin Mehta [mailto:nitin.me...@citrix.com]
>Sent: Sunday, 9 December 2012 3:31 PM
>To: cloudstack-dev@incubator.apache.org
>Subject: Re: Question on ListEventsCmd
>
>Min - I will take a stab at this. See if this makes sense to you. I
>haven't used them but I think the intention of the code should be this.
>
>If say you want to query events within a time range then you will use
>these parameter. Say at this point of time you want to get all the events
>that took place in the last 2 mins then you will mention entryTime = 120
>and duration=0. I think the duration should be interpreted as end time
>and there reference is from current system time. So entry time means how
>many seconds before the current time and duration (end time) is how many
>seconds before the current time.
>In our example, since we want to query events that happened in the last
>120 secs I mention entry time as 120 and end time as 0 and as is clear
>the duration or the end time shouldn't exceed the entry time.
>
>Please file documentation bugs and test if these params work as intended.
>
>Thanks,
>-Nitin
>
>On 08-Dec-2012, at 5:07 AM, Min Chen wrote:
>
>> Hi there,
>> 
>> In refactoring ListEventsCmd api, I ran into the following code which
>>is a mystery to me, hope that somebody can explain here:
>> 
>> 
>>        if ((entryTime != null) && (duration != null)) {
>> 
>>            if (entryTime <= duration) {
>> 
>>                throw new InvalidParameterValueException("Entry time
>> must be greater than duration");
>> 
>>            }
>> 
>>            Calendar calMin = Calendar.getInstance();
>> 
>>            Calendar calMax = Calendar.getInstance();
>> 
>>            calMin.add(Calendar.SECOND, -entryTime);
>> 
>>            calMax.add(Calendar.SECOND, -duration);
>> 
>>            Date minTime = calMin.getTime();
>> 
>>            Date maxTime = calMax.getTime();
>> 
>> 
>>            sc.setParameters("state",
>> com.cloud.event.Event.State.Completed);
>> 
>>            sc.setParameters("startId", 0);
>> 
>>            sc.setParameters("createDate", minTime, maxTime);
>> 
>>            List<EventJoinVO> startedEvents =
>> _eventJoinDao.searchAllEvents(sc, searchFilter);
>> 
>>            List<EventJoinVO> pendingEvents = new
>> ArrayList<EventJoinVO>();
>> 
>>            for (EventVO event : startedEvents) {
>> 
>>                EventVO completedEvent =
>> _eventDao.findCompletedEvent(event.getId());
>> 
>>                if (completedEvent == null) {
>> 
>>                    pendingEvents.add(event);
>> 
>>                }
>> 
>>            }
>> 
>>            return pendingEvents;
>> 
>>        }
>> 
>> 
>>   I have several questions here:
>> 
>> 1. What are entryTime and duration parameters here? Based on API doc,
>>here are description on these two cmd parameters:
>> 
>>     entryTime:  the time the event is entered
>> 
>>     duration:   the duration of the event
>> 
>>    But from code, it seems that they are both Integer type. So not sure
>>how to understand the entryTime and duration here, contradictory to my
>>English understanding.
>> 
>> 2. In the code above, why must we have "Entry time must be greater than
>>duration"?
>> 
>> 3. When user provides entryTime and duration parameters in the search,
>>what kind of events are we supposed to return here? I don't quite
>>understand the pendingEvents list we are constructing here.
>> 
>> 
>>   Thanks
>> 
>>   -min
>

Reply via email to