/** * Instantiates a new TCA collection set. * * @param agent the agent * @param repository the repository */ public TcaCollectionHandler(SnmpCollectionAgent agent, RrdRepository repository, ResourceStorageDao resourceStorageDao, ResourceTypesDao resourceTypesDao, LocationAwareSnmpClient locationAwareSnmpClient) { m_agent = Objects.requireNonNull(agent); m_repository = Objects.requireNonNull(repository); m_resourceStorageDao = Objects.requireNonNull(resourceStorageDao); m_resourceType = Objects.requireNonNull(resourceTypesDao).getResourceTypeByName(RESOURCE_TYPE_NAME); if (m_resourceType == null) { throw new IllegalArgumentException("No resource of type juniperTcaEntry is defined."); } m_locationAwareSnmpClient = Objects.requireNonNull(locationAwareSnmpClient); }
private boolean isResourceTypesConfigChanged() { Date current = m_resourceTypesDao.getLastUpdate(); if (current.after(m_lastUpdatedResourceTypesConfig)) { m_lastUpdatedResourceTypesConfig = current; return true; } return false; }
private void initResourceTypes() { final Map<String, OnmsResourceType> resourceTypes = Maps.newLinkedHashMap(); OnmsResourceType resourceType; resourceType = new NodeSnmpResourceType(m_resourceStorageDao); resourceTypes.put(resourceType.getName(), resourceType); InterfaceSnmpResourceType intfResourceType = new InterfaceSnmpResourceType(m_resourceStorageDao); resourceTypes.put(intfResourceType.getName(), intfResourceType); resourceType = new InterfaceSnmpByIfIndexResourceType(intfResourceType); resourceTypes.put(resourceType.getName(), resourceType); resourceType = new ResponseTimeResourceType(m_resourceStorageDao, m_ipInterfaceDao); resourceTypes.put(resourceType.getName(), resourceType); resourceType = new DistributedStatusResourceType(m_resourceStorageDao, m_locationMonitorDao); resourceTypes.put(resourceType.getName(), resourceType); resourceTypes.putAll(GenericIndexResourceType.createTypes(m_resourceTypesDao.getResourceTypes(), m_resourceStorageDao)); m_nodeResourceType = new NodeResourceType(this, m_nodeDao); resourceTypes.put(m_nodeResourceType.getName(), m_nodeResourceType); // Add 'nodeSource' as an alias to for the 'node' resource type to preserve backwards compatibility // See NMS-8404 for details resourceTypes.put("nodeSource", m_nodeResourceType); if (isDomainResourceTypeUsed()) { LOG.debug("One or more packages are configured with storeByIfAlias=true. Enabling the domain resource type."); resourceType = new DomainResourceType(this, m_resourceStorageDao); resourceTypes.put(resourceType.getName(), resourceType); } else { LOG.debug("No packages are configured with storeByIfAlias=true. Excluding the domain resource type."); } m_resourceTypes = resourceTypes; m_lastUpdatedResourceTypesConfig = m_resourceTypesDao.getLastUpdate(); }
@PostConstruct public void registerWithTypeMapper() { ResourceTypeMapper.getInstance().setResourceTypeMapper( (type) -> resourceTypesDao.getResourceTypeByName(type)); } }
public static ResourceTypeMapper createReseourceTypeMapper(ResourceTypesDao resourceTypesDao) { Objects.requireNonNull(resourceTypesDao); ResourceTypeMapper.getInstance().setResourceTypeMapper( (type) -> resourceTypesDao.getResourceTypeByName(type)); return ResourceTypeMapper.getInstance(); }
public static ResourceTypeMapper createReseourceTypeMapper(ResourceTypesDao resourceTypesDao) { Objects.requireNonNull(resourceTypesDao); ResourceTypeMapper.getInstance().setResourceTypeMapper( (type) -> resourceTypesDao.getResourceTypeByName(type)); return ResourceTypeMapper.getInstance(); }
protected Resource getResource(NodeLevelResource nodeLevelResource, String nodeTypeName, String resourceType, String instance) throws CollectionException { if (CollectionResource.RESOURCE_TYPE_NODE.equalsIgnoreCase(nodeTypeName)) { return nodeLevelResource; } final String effectiveResourceType; if ((resourceType == null) || (resourceType.length() == 0)) { effectiveResourceType = null; } else { effectiveResourceType = resourceType; } final String effectiveInstance; if (instance != null) { effectiveInstance = XmpCollector.sanitizeInstance(instance); } else { effectiveInstance = null; } if (effectiveResourceType != null) { final ResourceType resourceTypeDef = m_resourceTypesDao.getResourceTypeByName(effectiveResourceType); if (resourceType == null) { throw new CollectionException("No resource type found with name '" + effectiveResourceType + "'."); } return new GenericTypeResource(nodeLevelResource, resourceTypeDef, effectiveInstance); } else { return new InterfaceLevelResource(nodeLevelResource, effectiveInstance); } }