@Override public String getIndex(String sensorName) { if(config != null && config.getSensorParserConfig(sensorName) != null && config.getSensorParserConfig(sensorName).getParserConfig() != null ) { Object indexObj = config.getSensorParserConfig(sensorName).getParserConfig().get(IndexingConfigurations.INDEX_CONF); if(indexObj != null) { return indexObj.toString(); } return null; } return sensorName; }
@Override public int getBatchSize(String sensorName) { if(config != null && config.getSensorParserConfig(sensorName) != null && config.getSensorParserConfig(sensorName).getParserConfig() != null ) { Object batchObj = config.getSensorParserConfig(sensorName).getParserConfig().get(IndexingConfigurations.BATCH_SIZE_CONF); return batchObj == null ? ParserConfigurations.DEFAULT_KAFKA_BATCH_SIZE : ConversionUtils.convert(batchObj, Integer.class); } return 1; }
@Override public boolean isEnabled(String sensorName) { if(config != null && config.getSensorParserConfig(sensorName) != null && config.getSensorParserConfig(sensorName).getParserConfig() != null ) { Object enabledObj = config.getSensorParserConfig(sensorName).getParserConfig().get(IndexingConfigurations.ENABLED_CONF); return enabledObj == null ? true : ConversionUtils.convert(enabledObj, Boolean.class); } return true; }
@Override public int getBatchTimeout(String sensorName) { if(config != null && config.getSensorParserConfig(sensorName) != null && config.getSensorParserConfig(sensorName).getParserConfig() != null ) { Object batchObj = config.getSensorParserConfig(sensorName).getParserConfig().get(IndexingConfigurations.BATCH_TIMEOUT_CONF); return batchObj == null ? 0 : ConversionUtils.convert(batchObj, Integer.class); } return 0; }
/** * @return The JSON configuration of the parser. */ public String toJSON() { try { return parserConfigurations.getSensorParserConfig(sensorType).toJSON(); } catch(JsonProcessingException e) { throw new RuntimeException(e); } }
@Override public SensorParserConfig findOne(String name) throws RestException { ParserConfigurations configs = cache.get( ParserConfigurations.class); return configs.getSensorParserConfig(name); }
@Override public Map<String, Object> getSensorConfig(String sensorName) { return config.getSensorParserConfig(sensorName).getParserConfig(); }
protected SensorParserConfig getSensorParserConfig(String sensorType) { return getConfigurations().getSensorParserConfig(sensorType); }
/** * Fetch the parser configuration from Zookeeper. * * @param zookeeperUrl Zookeeper URL * @param sensorTypes Types of sensor * @param configs * @return * @throws Exception */ private static Map<String, SensorParserConfig> getSensorParserConfig(String zookeeperUrl, List<String> sensorTypes, ParserConfigurations configs) throws Exception { Map<String, SensorParserConfig> parserConfigs = new HashMap<>(); try(CuratorFramework client = ConfigurationsUtils.getClient(zookeeperUrl)) { client.start(); ConfigurationsUtils.updateParserConfigsFromZookeeper(configs, client); for (String sensorType : sensorTypes) { SensorParserConfig parserConfig = configs.getSensorParserConfig(sensorType); if (parserConfig == null) { throw new IllegalStateException("Cannot find the parser configuration in zookeeper for " + sensorType + "." + " Please check that it exists in zookeeper by using the 'zk_load_configs.sh -m DUMP' command."); } parserConfigs.put(sensorType, parserConfig); } } return parserConfigs; }
@Override public ParserConfigurations getConfigurations() { config.getSensorParserConfig(sensorType).getParserConfig().put(IndexingConfigurations.BATCH_SIZE_CONF, 1); return config; }
sensorToParserComponentMap = new HashMap<>(); for(String sensorType: sensorTypes) { if (parserConfigSupplier.get().getSensorParserConfig(sensorType) == null) { throw new IllegalStateException(String.format("Could not initialize parsers. Cannot find configuration for sensor %s.", sensorType)); SensorParserConfig parserConfig = parserConfigSupplier.get().getSensorParserConfig(sensorType);
) { Optional<ProcessResult> processResult = Optional.empty(); SensorParserConfig sensorParserConfig = parserConfigurations.getSensorParserConfig(sensorType); sensorParserConfig.getRawMessageStrategy().mergeMetadata( message,
public ParserRunnerResults<JSONObject> execute(String sensorType, RawMessage rawMessage, ParserConfigurations parserConfigurations) { DefaultParserRunnerResults parserRunnerResults = new DefaultParserRunnerResults(); SensorParserConfig sensorParserConfig = parserConfigurations.getSensorParserConfig(sensorType); if (sensorParserConfig != null) { MessageParser<JSONObject> parser = sensorToParserComponentMap.get(sensorType).getMessageParser();
try { ParserConfigurations parserConfigurations = getConfigurations(); SensorParserConfig sensorParserConfig = parserConfigurations.getSensorParserConfig(sensorType); RawMessage rawMessage = RawMessageUtil.INSTANCE.getRawMessage( sensorParserConfig.getRawMessageStrategy() , tuple
@Test public void shouldInit() throws Exception { Context stellarContext = mock(Context.class); Map<String, Object> broParserConfig = parserConfigurations.getSensorParserConfig("bro").getParserConfig(); Map<String, Object> snortParserConfig = parserConfigurations.getSensorParserConfig("snort").getParserConfig();
ParserConfigurations parserConfigs = new ParserConfigurations(); parserConfigs.updateSensorParserConfig("test-sensor", parserConfig.getBytes()); SensorParserConfig actualSensorConfig = parserConfigs.getSensorParserConfig("test-sensor"); assertThat(actualSensorConfig.getParserClassName(), equalTo("parser-class")); assertThat(actualSensorConfig.getFilterClassName(), equalTo("filter-class"));
assertEventually(() -> Assert.assertEquals(expectedConfig, config.getSensorParserConfig("bro")));
SensorParserConfig expectedConfig = JSONUtils.INSTANCE.load(inFile, SensorParserConfig.class); ParserConfigurations config = cache.get( ParserConfigurations.class); assertEventually(() -> Assert.assertEquals(expectedConfig, config.getSensorParserConfig("bro"))); assertEventually(() -> Assert.assertEquals(expectedGlobalConfig, config.getGlobalConfig())); assertEventually(() -> Assert.assertNull(config.getSensorParserConfig("notthere")));
assertEventually(() -> Assert.assertNull(config.getSensorParserConfig("bro"))); assertEventually(() -> Assert.assertNull(config.getGlobalConfig(false)));