@Override public boolean removeEventFromProgrammaticStore(Event event) { Events programmaticEvents = m_events.getLoadEventsByFile(m_programmaticStoreRelativePath); if (programmaticEvents == null) return false; programmaticEvents.removeEvent(event); if (programmaticEvents.getEvents().size() <= 0) { m_events.removeLoadedEventFile(m_programmaticStoreRelativePath); } m_events.initialize(m_partition, new EventOrdering()); return true; }
@Override public void addEventToProgrammaticStore(Event event) { Events programmaticEvents = m_events.getLoadEventsByFile(m_programmaticStoreRelativePath); if (programmaticEvents == null) { programmaticEvents = new Events(); m_events.addLoadedEventFile(m_programmaticStoreRelativePath, programmaticEvents); } programmaticEvents.addEvent(event); m_events.initialize(m_partition, new EventOrdering()); }
@Override public Event findByUei(final String uei) { if (uei == null) { return null; } return m_events.findFirstMatchingEvent(new EventCriteria() { @Override public boolean matches(final Event e) { return uei.equals(e.getUei()); } }); }
public void save(final Resource resource) { for(final Entry<String, Events> entry : m_loadedEventFiles.entrySet()) { final String eventFile = entry.getKey(); final Events events = entry.getValue(); final Resource eventResource = getRelative(resource, eventFile); events.save(eventResource); } saveEvents(resource); }
if (extEvents != null) { events.getEvents().addAll(0, extEvents.getEvents()); if (LOG.isDebugEnabled()) { LOG.debug("Events with the following UEIs are contributed by one or more extensions: {}", extEvents.getEvents().stream() .map(Event::getUei) .collect(Collectors.joining(","))); eventFiles.addAll(events.getEventFiles()); for (String eventFile : m_events.getEventFiles()) { if (!eventFiles.contains(eventFile)) { m_lastModifiedEventFiles.remove(eventFile); continue; events.addLoadedEventFile(eventFile, m_events.getLoadEventsByFile(eventFile)); events.loadEventFilesIfModified(m_configResource, m_lastModifiedEventFiles); events.initialize(m_partition, new EventOrdering());
addStyleName("light"); baseEventsObject.setGlobal(events.getGlobal()); baseEventsObject.setEventFiles(events.getEventFiles()); eventTable = new EventTable(events.getEvents());
private void forEachEvent(Consumer<Event> callback) { forEachEvent(callback, this, null); }
final Resource eventResource = getRelative(configResource, eventFile); final long lastModified = eventResource.lastModified(); if (events.getEvents().isEmpty()) { throw new IllegalStateException("Uh oh! An event file "+eventResource.getFile()+" with no events has been laoded!"); if (events.getGlobal() != null) { throw new ObjectRetrievalFailureException(Resource.class, eventResource, "The event resource " + eventResource + " included from the root event configuration file cannot have a 'global' element", null); if (!events.getEventFiles().isEmpty()) { throw new ObjectRetrievalFailureException(Resource.class, eventResource, "The event resource " + eventResource + " included from the root event configuration file cannot include other configuration files: " + StringUtils.collectionToCommaDelimitedString(events.getEventFiles()), null);
try { baseEventsObject.setEvents(eventTable.getOnmsEvents()); for (org.opennms.netmgt.xml.eventconf.Event event : baseEventsObject.getEvents()) { logger.debug("Normalizing event " + event.getUei()); final AlarmData ad = event.getAlarmData(); final Events rootEvents = eventConfDao.getRootEvents(); final File rootFile = ConfigFileConstants.getFile(ConfigFileConstants.EVENT_CONF_FILE_NAME); if (baseEventsObject.getEvents().size() > 0) { if (!rootEvents.getEventFiles().contains(fileName)) { logger.info("Adding a reference to " + fileName + " inside eventconf.xml."); rootEvents.getEventFiles().add(0, fileName); saveEvents(rootEvents, rootFile, logger); if (rootEvents.getEventFiles().contains(fileName)) { logger.info("Removing a reference to " + fileName + " inside eventconf.xml because there are no events."); rootEvents.getEventFiles().remove(fileName); saveEvents(rootEvents, rootFile, logger);
@Override protected Events getConfigForExtensions(Set<EventConfExtension> extensions) { final List<Event> orderedEvents = extensions.stream() .flatMap(ext -> ext.getEventDefinitions().stream()) .sorted(Comparator.comparing(EventDefinition::getPriority)) .map(EventConfExtensionManager::toEvent) .collect(Collectors.toList()); // Re-build the events final Events events = new Events(); events.getEvents().addAll(orderedEvents); return events; }
@Override public void reload() throws DataAccessException { InputStream is = null; InputStreamReader isr = null; try { is = m_resource.getInputStream(); isr = new InputStreamReader(is); final Reader reader = isr; m_events = JaxbUtils.unmarshal(Events.class, reader); m_events.loadEventFiles(m_resource); m_events.initialize(new EnterpriseIdPartition(), new EventOrdering()); } catch (final IOException e) { throw new DataRetrievalFailureException("Failed to read from " + m_resource.toString(), e); } finally { IOUtils.closeQuietly(isr); IOUtils.closeQuietly(is); } }
/** * Convert MIB to events. * * @param module the module object * @param ueibase the UEI base * @return the events */ protected Events convertMibToEvents(SmiModule module, String ueibase) { Events events = new Events(); for (SmiNotificationType trap : module.getNotificationTypes()) { events.addEvent(getTrapEvent(trap, ueibase)); } for (SmiTrapType trap : module.getTrapTypes()) { events.addEvent(getTrapEvent(trap, ueibase)); } return events; }
@Override public void addEvent(Event event) { m_events.addEvent(event); m_events.initialize(m_partition, new EventOrdering()); }
public void initialize(final Partition partition, final EventOrdering eventOrdering) { m_ordering = eventOrdering; for (final Event event : m_events) { event.initialize(m_ordering.next()); } partitionEvents(partition); for (final Events events : m_loadedEventFiles.values()) { events.initialize(partition, m_ordering.subsequence()); } // roll up all prioritized events and sort all events by priority // must be done after event.initialize() has been called to set the event.index List<Event> prioritizedEvents = getPrioritizedEvents(); m_events.addAll(prioritizedEvents); m_events.sort(Comparator.naturalOrder()); // Also add to unpartitioned events for first crack when not using a UEI match m_nullPartitionedEvents.addAll(prioritizedEvents); m_nullPartitionedEvents.sort(Comparator.naturalOrder()); indexEventsByUei(); }
@Override public void addEvent(final Event event) { m_events.addEvent(event); }
/** * Shows the events window. * * @param logger the logger * @param fileName the file name * @param ueiBase the UEI base */ private void showEventsWindow(final Logger logger, final String fileName, final String ueiBase) { final Events events = mibParser.getEvents(ueiBase); if (events == null) { Notification.show("The MIB couldn't be processed for events because: " + mibParser.getFormattedErrors(), Notification.Type.ERROR_MESSAGE); } else { if (events.getEvents().size() > 0) { try { logger.info("Found " + events.getEvents().size() + " events."); final String eventsFileName = fileName.replaceFirst("\\..*$", ".events.xml"); final File configDir = new File(ConfigFileConstants.getHome(), "etc" + File.separatorChar + "events"); final File eventFile = new File(configDir, eventsFileName); final EventWindow w = new EventWindow(eventsDao, eventsProxy, eventFile, events, logger); getUI().addWindow(w); } catch (Throwable t) { Notification.show(t.getMessage(), Notification.Type.ERROR_MESSAGE); } } else { Notification.show("The MIB doesn't contain any notification/trap", Notification.Type.WARNING_MESSAGE); } } }
@Override public void saveCurrent() { m_events.save(m_resource); }
public EventConfExtensionManager(EventConfDao eventConfDao) { super(Events.class, new Events()); this.eventConfDao = Objects.requireNonNull(eventConfDao); LOG.debug("EventConfExtensionManager initialized."); }
@Override public boolean isSecureTag(final String tag) { return m_events.isSecureTag(tag); }
addStyleName("light"); baseEventsObject.setGlobal(events.getGlobal()); baseEventsObject.setEventFiles(events.getEventFiles()); eventTable = new EventTable(events.getEvents());