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 >