@Test public void test_verbosenessSettings() { final List<Object> l_true = Arrays.asList(1, "1", "true", true, "TRUE", "True"); final List<Object> l_false = Arrays.asList(0, "0", "false", false, "FALSE", "False"); for (Object o : l_true) { final DataSchemaBean.SearchIndexSchemaBean s = BeanTemplateUtils.build(DataSchemaBean.SearchIndexSchemaBean.class) .with( DataSchemaBean.SearchIndexSchemaBean::technology_override_schema, ImmutableMap.builder().put("verbose", o).build()) .done() .get(); assertEquals(true, ElasticsearchIndexService.is_verbose(s)); } for (Object o : l_false) { final DataSchemaBean.SearchIndexSchemaBean s = BeanTemplateUtils.build(DataSchemaBean.SearchIndexSchemaBean.class) .with( DataSchemaBean.SearchIndexSchemaBean::technology_override_schema, ImmutableMap.builder().put("verbose", o).build()) .done() .get(); assertEquals(false, ElasticsearchIndexService.is_verbose(s)); } // (not present) { final DataSchemaBean.SearchIndexSchemaBean s = BeanTemplateUtils.build(DataSchemaBean.SearchIndexSchemaBean.class) .with( DataSchemaBean.SearchIndexSchemaBean::technology_override_schema, ImmutableMap.builder().build()) .done() .get(); assertEquals(false, ElasticsearchIndexService.is_verbose(s)); } { final DataSchemaBean.SearchIndexSchemaBean s = BeanTemplateUtils.build(DataSchemaBean.SearchIndexSchemaBean.class).done().get(); assertEquals(false, ElasticsearchIndexService.is_verbose(s)); } }
public ImmutableMap<String, BlobMetaData> listBlobs() throws IOException { FileStatus[] files = blobStore.fileSystem().listStatus(path); if (files == null || files.length == 0) { return ImmutableMap.of(); } ImmutableMap.Builder<String, BlobMetaData> builder = ImmutableMap.builder(); for (FileStatus file : files) { builder.put( file.getPath().getName(), new PlainBlobMetaData(file.getPath().getName(), file.getLen())); } return builder.build(); }
@Override public ImmutableMap<String, BlobMetaData> listBlobsByPrefix(final @Nullable String blobNamePrefix) throws IOException { FileStatus[] files = blobStore .fileSystem() .listStatus( path, new PathFilter() { @Override public boolean accept(Path path) { return path.getName().startsWith(blobNamePrefix); } }); if (files == null || files.length == 0) { return ImmutableMap.of(); } ImmutableMap.Builder<String, BlobMetaData> builder = ImmutableMap.builder(); for (FileStatus file : files) { builder.put( file.getPath().getName(), new PlainBlobMetaData(file.getPath().getName(), file.getLen())); } return builder.build(); }
@Test public void test_validationSuccess() throws IOException { final String bucket_str = Resources.toString( Resources.getResource( "com/ikanow/aleph2/search_service/elasticsearch/services/test_bucket_validate_success.json"), Charsets.UTF_8); final DataBucketBean bucket = BeanTemplateUtils.build(bucket_str, DataBucketBean.class).done().get(); // 1) Verbose mode off { final Collection<BasicMessageBean> res_col = _index_service.validateSchema(bucket.data_schema().columnar_schema(), bucket)._2(); final Collection<BasicMessageBean> res_search = _index_service.validateSchema(bucket.data_schema().search_index_schema(), bucket)._2(); final Collection<BasicMessageBean> res_time = _index_service.validateSchema(bucket.data_schema().temporal_schema(), bucket)._2(); assertEquals(0, res_col.size()); assertEquals(0, res_search.size()); assertEquals(0, res_time.size()); } // 2) Verbose mode on { final DataBucketBean bucket_verbose = BeanTemplateUtils.clone(bucket) .with( DataBucketBean::data_schema, BeanTemplateUtils.clone(bucket.data_schema()) .with( DataSchemaBean::search_index_schema, BeanTemplateUtils.clone(bucket.data_schema().search_index_schema()) .with( DataSchemaBean.SearchIndexSchemaBean::technology_override_schema, ImmutableMap.builder() .putAll( bucket .data_schema() .search_index_schema() .technology_override_schema()) .put("verbose", true) .build()) .done()) .done()) .done(); final Collection<BasicMessageBean> res_col = _index_service .validateSchema(bucket_verbose.data_schema().columnar_schema(), bucket) ._2(); final Collection<BasicMessageBean> res_search = _index_service .validateSchema(bucket_verbose.data_schema().search_index_schema(), bucket) ._2(); final Collection<BasicMessageBean> res_time = _index_service .validateSchema(bucket_verbose.data_schema().temporal_schema(), bucket) ._2(); assertEquals(0, res_col.size()); assertEquals(0, res_time.size()); assertEquals(2, res_search.size()); assertEquals(true, res_search.stream().allMatch(BasicMessageBean::success)); Iterator<BasicMessageBean> res_search_message = res_search.iterator(); final String mapping_str = Resources.toString( Resources.getResource( "com/ikanow/aleph2/search_service/elasticsearch/services/test_verbose_mapping_validate_results.json"), Charsets.UTF_8); final JsonNode mapping_json = _mapper.readTree(mapping_str.getBytes()); assertEquals( mapping_json.toString(), _mapper.readTree(res_search_message.next().message()).toString()); assertTrue( "Sets the max index override: " + res_search.stream().skip(1).map(m -> m.message()).collect(Collectors.joining()), res_search_message.next().message().contains("1,000 MB")); } // 3) Temporal { final DataBucketBean bucket_temporal_no_grouping = BeanTemplateUtils.clone(bucket) .with( DataBucketBean::data_schema, BeanTemplateUtils.clone(bucket.data_schema()) .with( DataSchemaBean::temporal_schema, BeanTemplateUtils.build(DataSchemaBean.TemporalSchemaBean.class) .done() .get()) .done()) .done(); assertEquals( "", _index_service .validateSchema(bucket_temporal_no_grouping.data_schema().temporal_schema(), bucket) ._1()); final DataBucketBean bucket_temporal_grouping = BeanTemplateUtils.clone(bucket) .with( DataBucketBean::data_schema, BeanTemplateUtils.clone(bucket.data_schema()) .with( DataSchemaBean::temporal_schema, BeanTemplateUtils.build(DataSchemaBean.TemporalSchemaBean.class) .with(DataSchemaBean.TemporalSchemaBean::grouping_time_period, "1d") .done() .get()) .done()) .done(); assertEquals( "_{yyyy-MM-dd}", _index_service .validateSchema(bucket_temporal_grouping.data_schema().temporal_schema(), bucket) ._1()); } }