mirror of
https://github.com/apache/cloudstack.git
synced 2025-12-21 13:03:10 +01:00
bug 5412: Use same search criteria for listing pending events instead of creating a new one
status 5412: resolved fixed reviewed-by: Nitin
This commit is contained in:
parent
5d00edb31b
commit
51d77c259d
@ -31,7 +31,5 @@ public interface EventDao extends GenericDao<EventVO, Long> {
|
||||
|
||||
public List<EventVO> listOlderEvents(Date oldTime);
|
||||
|
||||
List<EventVO> listStartedEvents(Date minTime, Date maxTime);
|
||||
|
||||
EventVO findCompletedEvent(long startId);
|
||||
}
|
||||
|
||||
@ -35,16 +35,9 @@ import com.cloud.utils.db.SearchCriteria;
|
||||
@Local(value={EventDao.class})
|
||||
public class EventDaoImpl extends GenericDaoBase<EventVO, Long> implements EventDao {
|
||||
public static final Logger s_logger = Logger.getLogger(EventDaoImpl.class.getName());
|
||||
protected final SearchBuilder<EventVO> StartedEventsSearch;
|
||||
protected final SearchBuilder<EventVO> CompletedEventSearch;
|
||||
|
||||
public EventDaoImpl () {
|
||||
StartedEventsSearch = createSearchBuilder();
|
||||
StartedEventsSearch.and("state",StartedEventsSearch.entity().getState(),SearchCriteria.Op.NEQ);
|
||||
StartedEventsSearch.and("startId", StartedEventsSearch.entity().getStartId(), SearchCriteria.Op.EQ);
|
||||
StartedEventsSearch.and("createDate", StartedEventsSearch.entity().getCreateDate(), SearchCriteria.Op.BETWEEN);
|
||||
StartedEventsSearch.done();
|
||||
|
||||
CompletedEventSearch = createSearchBuilder();
|
||||
CompletedEventSearch.and("state",CompletedEventSearch.entity().getState(),SearchCriteria.Op.EQ);
|
||||
CompletedEventSearch.and("startId", CompletedEventSearch.entity().getStartId(), SearchCriteria.Op.EQ);
|
||||
@ -65,16 +58,6 @@ public class EventDaoImpl extends GenericDaoBase<EventVO, Long> implements Event
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<EventVO> listStartedEvents(Date minTime, Date maxTime) {
|
||||
if (minTime == null || maxTime == null) return null;
|
||||
SearchCriteria<EventVO> sc = StartedEventsSearch.create();
|
||||
sc.setParameters("state", State.Completed);
|
||||
sc.setParameters("startId", 0);
|
||||
sc.setParameters("createDate", minTime, maxTime);
|
||||
return listIncludingRemovedBy(sc, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public EventVO findCompletedEvent(long startId) {
|
||||
SearchCriteria<EventVO> sc = CompletedEventSearch.create();
|
||||
|
||||
@ -78,8 +78,6 @@ public interface ManagementServer extends ManagementService {
|
||||
*/
|
||||
List<EventVO> getEvents(long userId, long accountId, Long domainId, String type, String level, Date startDate, Date endDate);
|
||||
|
||||
List<EventVO> listPendingEvents(int entryTime, int duration);
|
||||
|
||||
//FIXME - move all console proxy related commands to corresponding managers
|
||||
ConsoleProxyInfo getConsoleProxyForVm(long dataCenterId, long userVmId);
|
||||
|
||||
|
||||
@ -1500,13 +1500,6 @@ public class ManagementServerImpl implements ManagementServer {
|
||||
Integer entryTime = cmd.getEntryTime();
|
||||
Integer duration = cmd.getDuration();
|
||||
|
||||
if ((entryTime != null) && (duration != null)) {
|
||||
if (entryTime <= duration) {
|
||||
throw new InvalidParameterValueException("Entry time must be greater than duration");
|
||||
}
|
||||
return listPendingEvents(entryTime, duration);
|
||||
}
|
||||
|
||||
SearchBuilder<EventVO> sb = _eventDao.createSearchBuilder();
|
||||
sb.and("id", sb.entity().getId(), SearchCriteria.Op.EQ);
|
||||
sb.and("levelL", sb.entity().getLevel(), SearchCriteria.Op.LIKE);
|
||||
@ -1519,6 +1512,9 @@ public class ManagementServerImpl implements ManagementServer {
|
||||
sb.and("createDateG", sb.entity().getCreateDate(), SearchCriteria.Op.GTEQ);
|
||||
sb.and("createDateL", sb.entity().getCreateDate(), SearchCriteria.Op.LTEQ);
|
||||
sb.and("accountType", sb.entity().getAccountType(), SearchCriteria.Op.NEQ);
|
||||
sb.and("state", sb.entity().getState(),SearchCriteria.Op.NEQ);
|
||||
sb.and("startId", sb.entity().getStartId(), SearchCriteria.Op.EQ);
|
||||
sb.and("createDate", sb.entity().getCreateDate(), SearchCriteria.Op.BETWEEN);
|
||||
|
||||
if (isAdmin && permittedAccounts.isEmpty() && domainId != null) {
|
||||
// if accountId isn't specified, we can do a domain match for the admin case
|
||||
@ -1565,8 +1561,33 @@ public class ManagementServerImpl implements ManagementServer {
|
||||
} else if (endDate != null) {
|
||||
sc.setParameters("createDateL", endDate);
|
||||
}
|
||||
|
||||
return _eventDao.searchAllEvents(sc, searchFilter);
|
||||
|
||||
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<EventVO> startedEvents = _eventDao.searchAllEvents(sc, searchFilter);
|
||||
List<EventVO> pendingEvents = new ArrayList<EventVO>();
|
||||
for (EventVO event : startedEvents) {
|
||||
EventVO completedEvent = _eventDao.findCompletedEvent(event.getId());
|
||||
if (completedEvent == null) {
|
||||
pendingEvents.add(event);
|
||||
}
|
||||
}
|
||||
return _eventDao.searchAllEvents(sc, searchFilter);
|
||||
} else {
|
||||
return _eventDao.searchAllEvents(sc, searchFilter);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -3072,25 +3093,6 @@ public class ManagementServerImpl implements ManagementServer {
|
||||
return cloudParams;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<EventVO> listPendingEvents(int entryTime, int 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();
|
||||
List<EventVO> startedEvents = _eventDao.listStartedEvents(minTime, maxTime);
|
||||
List<EventVO> pendingEvents = new ArrayList<EventVO>();
|
||||
for (EventVO event : startedEvents) {
|
||||
EventVO completedEvent = _eventDao.findCompletedEvent(event.getId());
|
||||
if (completedEvent == null) {
|
||||
pendingEvents.add(event);
|
||||
}
|
||||
}
|
||||
return pendingEvents;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> listCapabilities(ListCapabilitiesCmd cmd) {
|
||||
Map<String, Object> capabilities = new HashMap<String, Object>();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user