/** * Verify if the systemDefs list contains a specific system definition. * <p>One system definition will be considered the same as another one, if they have the same name.</p> * * @param globalContainer * @param systemDef * * @return true, if the list contains the system definition */ // TODO Include sysoid and sysoidMask on validation process private boolean contains(List<SystemDef> systemDefs, SystemDef systemDef) { for (SystemDef sd : systemDefs) { if (systemDef.getName().equals(sd.getName())) return true; } return false; }
/** * Get a system definition from datacollection-group map. * * @param systemDefName the systemDef object name. * @return the systemDef object. */ private SystemDef getSystemDef(String systemDefName) { for (DatacollectionGroup group : externalGroupsMap.values()) { for (SystemDef sd : group.getSystemDefs()) { if (sd.getName().equals(systemDefName)) { return sd; } } } return null; }
/** * Gets the parent SNMP Collections. * <p>The list of SNMP collection that are referencing a given systemDefName</p> * * @param dataCollectionConfigDao the data collection configuration DAO * @param systemDefName the system definition name * @return the parent collections. */ private Set<String> getParentCollections(final DataCollectionConfigDao dataCollectionConfigDao, String systemDefName) { Set<String> collectionMap = new TreeSet<>(); for (final SnmpCollection collection : dataCollectionConfigDao.getRootDataCollection().getSnmpCollections()) { for (final SystemDef systemDef : collection.getSystems().getSystemDefs()) { if (systemDefName.equals(systemDef.getName())) { collectionMap.add(collection.getName()); } } } return collectionMap; }
@Override public List<String> getAvailableSystemDefs() { List<String> systemDefs = new ArrayList<>(); for (final SnmpCollection collection : getContainer().getObject().getSnmpCollections()) { if (collection.getSystems() != null) { for (final SystemDef systemDef : collection.getSystems().getSystemDefs()) { systemDefs.add(systemDef.getName()); } } } return systemDefs; }
@Override public boolean delete() { Object systemDefId = systemDefTable.getValue(); if (systemDefId != null) { SystemDef systemDef = systemDefTable.getSystemDef(systemDefId); Set<String> collections = getParentCollections(dataCollectionConfigDao, systemDef.getName()); if (!collections.isEmpty()) { final String msg = "The systemDef cannot be deleted because it is being referenced by:\n" + collections.toString(); Notification.show(msg, Notification.Type.WARNING_MESSAGE); return false; } logger.info("SNMP SystemDef " + systemDef.getName() + " has been removed."); systemDefTable.select(null); systemDefTable.removeItem(systemDefId); systemDefTable.refreshRowCache(); } return true; } @Override
@Override public boolean delete() { Object systemDefId = systemDefTable.getValue(); if (systemDefId != null) { SystemDef systemDef = systemDefTable.getSystemDef(systemDefId); Set<String> collections = getParentCollections(dataCollectionConfigDao, systemDef.getName()); if (!collections.isEmpty()) { final String msg = "The systemDef cannot be deleted because it is being referenced by:\n" + collections.toString(); Notification.show(msg, Notification.Type.WARNING_MESSAGE); return false; } logger.info("SNMP SystemDef " + systemDef.getName() + " has been removed."); systemDefTable.select(null); systemDefTable.removeItem(systemDefId); systemDefTable.refreshRowCache(); } return true; } @Override
/** * Gets the parent SNMP Collections. * <p>The list of SNMP collection that are referencing a given systemDefName</p> * * @param dataCollectionConfigDao the data collection configuration DAO * @param systemDefName the system definition name * @return the parent collections. */ private Set<String> getParentCollections(final DataCollectionConfigDao dataCollectionConfigDao, String systemDefName) { Set<String> collectionMap = new TreeSet<>(); for (final SnmpCollection collection : dataCollectionConfigDao.getRootDataCollection().getSnmpCollections()) { for (final SystemDef systemDef : collection.getSystems().getSystemDefs()) { if (systemDefName.equals(systemDef.getName())) { collectionMap.add(collection.getName()); } } } return collectionMap; }
@Override public boolean save() { SystemDef systemDef = systemDefForm.getSystemDef(); if (!isNew && !systemDef.getName().equals(systemDefForm.getSystemDefName())) { Set<String> collections = getParentCollections(dataCollectionConfigDao, systemDef.getName()); if (!collections.isEmpty()) { final String msg = "The systemDef cannot be renamed because it is being referenced by:\n" + collections.toString(); Notification.show(msg, Notification.Type.WARNING_MESSAGE); return false; } } logger.info("SNMP SystemDef " + systemDef.getName() + " has been " + (isNew ? "created." : "updated.")); try { systemDefForm.commit(); systemDefForm.setReadOnly(true); systemDefTable.refreshRowCache(); return true; } catch (CommitException e) { String msg = "Can't save the changes: " + e.getMessage(); logger.error(msg); Notification.show(msg, Notification.Type.ERROR_MESSAGE); return false; } } @Override
LOG.debug("getMibObjectList: includes sysoid {} for system <name>: {}", aSysoid, system.getName()); bMatchSysoid = true; LOG.debug("getMibObjectList: includes sysoid {} for system <name>: {}", aSysoid, system.getName()); bMatchSysoid = true; LOG.debug("getMibObjectList: addrList exists and does include IP address {} for system <name>: {}", anAddress, system.getName()); bMatchIPAddress = true;
@Override public boolean save() { SystemDef systemDef = systemDefForm.getSystemDef(); if (!isNew && !systemDef.getName().equals(systemDefForm.getSystemDefName())) { Set<String> collections = getParentCollections(dataCollectionConfigDao, systemDef.getName()); if (!collections.isEmpty()) { final String msg = "The systemDef cannot be renamed because it is being referenced by:\n" + collections.toString(); Notification.show(msg, Notification.Type.WARNING_MESSAGE); return false; } } logger.info("SNMP SystemDef " + systemDef.getName() + " has been " + (isNew ? "created." : "updated.")); try { systemDefForm.commit(); systemDefForm.setReadOnly(true); systemDefTable.refreshRowCache(); return true; } catch (CommitException e) { String msg = "Can't save the changes: " + e.getMessage(); logger.error(msg); Notification.show(msg, Notification.Type.ERROR_MESSAGE); return false; } } @Override
/** * Gets the parent system definitions. * <p>The list of systemDef per SNMP collection that are referencing a given groupName</p> * * @param dataCollectionConfigDao the data collection configuration DAO * @param groupName the group name * @return the parent system definitions. */ private Set<String> getParentSystemDefs(final DataCollectionConfigDao dataCollectionConfigDao, String groupName) { Set<String> systemDefMap = new TreeSet<>(); for (final SnmpCollection collection : dataCollectionConfigDao.getRootDataCollection().getSnmpCollections()) { for (final SystemDef systemDef : collection.getSystems().getSystemDefs()) { for (final String group : systemDef.getCollect().getIncludeGroups()) { if (group.equals(groupName)) { systemDefMap.add(systemDef.getName() + '@' + collection.getName()); } } } } return systemDefMap; }
/** * Gets the parent system definitions. * <p>The list of systemDef per SNMP collection that are referencing a given groupName</p> * * @param dataCollectionConfigDao the data collection configuration DAO * @param groupName the group name * @return the parent system definitions. */ private Set<String> getParentSystemDefs(final DataCollectionConfigDao dataCollectionConfigDao, String groupName) { Set<String> systemDefMap = new TreeSet<>(); for (final SnmpCollection collection : dataCollectionConfigDao.getRootDataCollection().getSnmpCollections()) { for (final SystemDef systemDef : collection.getSystems().getSystemDefs()) { for (final String group : systemDef.getCollect().getIncludeGroups()) { if (group.equals(groupName)) { systemDefMap.add(systemDef.getName() + '@' + collection.getName()); } } } } return systemDefMap; }
/** * Add all system definitions defined on a specific data collection group, into a SNMP collection. * * @param collection the target SNMP collection object. * @param dataCollectionGroupName the data collection group name. * @param excludeList the list of regular expression to exclude certain system definitions. */ private void addDatacollectionGroup(SnmpCollection collection, String dataCollectionGroupName, List<String> excludeList) { DatacollectionGroup group = externalGroupsMap.get(dataCollectionGroupName); if (group == null) { throwException("Group " + dataCollectionGroupName + " does not exist.", null); } LOG.debug("addDatacollectionGroup: adding all definitions from group {} to snmp-collection {}", group.getName(), collection.getName()); for (SystemDef systemDef : group.getSystemDefs()) { if (shouldAdd(systemDef.getName(), excludeList)) { addSystemDef(collection, systemDef, group.getName()); } } }
LOG.debug("getMibObjectList: MATCH!! adding system '{}'", system.getName()); systemList.add(system);
LOG.debug("addSystemDef: merging system defintion {} into snmp-collection {}", systemDef.getName(), collection.getName()); LOG.warn("addSystemDef: system definition {} from data collection group {} already exist on SNMP collection {}", systemDef.getName(), dcGroup, collection.getName()); } else { LOG.debug("addSystemDef: adding system definition {} from data collection group {} to snmp-collection {}", systemDef.getName(), dcGroup, collection.getName()); collection.getSystems().addSystemDef(systemDef);
@Override public void visitSystemDef(final SystemDef systemDef) { //LOG.debug("visitSystemDef({})", systemDef); final SystemDefImpl def = new SystemDefImpl(systemDef.getName()); if (systemDef.getSysoid() != null) { def.setSysoid(systemDef.getSysoid()); } else if (systemDef.getSysoidMask() != null) { def.setSysoidMask(systemDef.getSysoidMask()); } m_currentSystemDef = def; }