/*
* Licensed to Elasticsearch under one or more contributor
* license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright
* ownership. Elasticsearch licenses this file to you under
* the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.elasticsearch.hadoop;
import java.io.IOException;
import java.util.Arrays;
import java.util.Collection;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.filecache.DistributedCache;
import org.apache.hadoop.fs.Path;
import org.elasticsearch.hadoop.mr.HadoopCfgUtils;
import org.elasticsearch.hadoop.util.TestUtils;
public class QueryTestParams {
public static Collection<Object[]> jsonParams() {
return Arrays.asList(new Object[][] {
// standard
{ "", "?q=name:mega", false, false },
{ "", "", false, false }, // empty
{ "", "?q=m*", false, false }, // uri
{ "", "?q=name:m*", false, false }, // uri
{ "", "{ \"query\" : { \"query_string\" : { \"query\":\"m*\"} } }", false, false }, // query dsl
{ "", TestUtils.sampleQueryUri(), false, false }, // nested uri
{ "", TestUtils.sampleQueryDsl(), false, false }, // nested dsl
{ "", "", true, false }, // empty
{ "", "?q=m*", true, false }, // uri
{ "", "?q=name:m*", true, false }, // uri
{ "", "{ \"query\" : { \"query_string\" : { \"query\":\"m*\"} } }", true, false }, // query dsl
{ "", TestUtils.sampleQueryUri(), true, false }, // nested uri
{ "", TestUtils.sampleQueryDsl(), true, false }, // nested dsl
{ "", "", false, true }, // empty
{ "", "?q=m*", false, true }, // uri
{ "", "?q=name:m*", false, true }, // uri
{ "", "{ \"query\" : { \"query_string\" : { \"query\":\"m*\"} } }", false, true }, // query dsl
{ "", TestUtils.sampleQueryUri(), false, true }, // nested uri
{ "", TestUtils.sampleQueryDsl(), false, true }, // nested dsl
{ "", "", true, true }, // empty
{ "", "?q=m*", true, true }, // uri
{ "", "?q=name:m*", true, true }, // uri
{ "", "{ \"query\" : { \"query_string\" : { \"query\":\"m*\"} } }", true, true }, // query dsl
{ "", TestUtils.sampleQueryUri(), true, true }, // nested uri
{ "", TestUtils.sampleQueryDsl(), true, true }, // nested dsl
// json
{ "json-", "", false, false }, // empty
{ "json-", "?q=m*", false, false }, // uri
{ "json-", "?q=name:m*", false, false }, // uri
{ "json-", "{ \"query\" : { \"query_string\" : { \"query\":\"m*\"} } }", false, false }, // query dsl
{ "json-", TestUtils.sampleQueryUri(), false, false }, // nested uri
{ "json-", TestUtils.sampleQueryDsl(), false, false }, // nested dsl
// json
{ "json-", "", true, false }, // empty
{ "json-", "?q=m*", true, false }, // uri
{ "json-", "?q=name:m*", true, false }, // uri
{ "json-", "{ \"query\" : { \"query_string\" : { \"query\":\"m*\"} } }", true, false }, // query dsl
{ "json-", TestUtils.sampleQueryUri(), true, false }, // nested uri
{ "json-", TestUtils.sampleQueryDsl(), true, false }, // nested dsl
// json
{ "json-", "", false, true }, // empty
{ "json-", "?q=m*", false, true }, // uri
{ "json-", "?q=name:m*", false, true }, // uri
{ "json-", "{ \"query\" : { \"query_string\" : { \"query\":\"m*\"} } }", false, true }, // query dsl
{ "json-", TestUtils.sampleQueryUri(), false, true }, // nested uri
{ "json-", TestUtils.sampleQueryDsl(), false, true }, // nested dsl
// json
{ "json-", "", true, true }, // empty
{ "json-", "?q=m*", true, true }, // uri
{ "json-", "?q=name:m*", true, true }, // uri
{ "json-", "{ \"query\" : { \"query_string\" : { \"query\":\"m*\"} } }", true, true }, // query dsl
{ "json-", TestUtils.sampleQueryUri(), true, true }, // nested uri
{ "json-", TestUtils.sampleQueryDsl(), true, true } // nested dsl
});
}
public static Collection<Object[]> jsonLocalParams() {
return Arrays.asList(new Object[][] {
{ "", "" }, // empty
{ "", "?q=m*" }, // uri
{ "", "?q=name:m*" }, // uri
{ "", "{ \"query\" : { \"query_string\" : { \"query\":\"m*\"} } }" }, // query dsl
{ "", TestUtils.sampleQueryUri() }, // nested uri
{ "", TestUtils.sampleQueryDsl() }, // nested dsl
{ "json-", "" }, // empty
{ "json-", "?q=m*" }, // uri
{ "json-", "?q=name:m*" }, // uri
{ "json-", "{ \"query\" : { \"query_string\" : { \"query\":\"m*\"} } }" }, // query dsl
{ "json-", TestUtils.sampleQueryUri() }, // nested uri
{ "json-", TestUtils.sampleQueryDsl() } // nested dsl
});
}
public static Collection<Object[]> params() {
return Arrays.asList(new Object[][] {
{ "", true }, // empty
{ "?q=m*", true }, // uri
//{ "?q=@name:m*", true }, // uri
{ "{ \"query\" : { \"query_string\" : { \"query\":\"m*\"} } }", true }, // query dsl
{ TestUtils.sampleQueryUri(), true }, // nested uri
{ TestUtils.sampleQueryDsl(), true }, // nested dsl
{ "", false }, // empty
{ "?q=m*", false }, // uri
//{ "?q=name:m*", false }, // uri
{ "{ \"query\" : { \"query_string\" : { \"query\":\"m*\"} } }", false }, // query dsl
{ TestUtils.sampleQueryUri(), false }, // nested uri
{ TestUtils.sampleQueryDsl(), false } // nested dsl
});
}
public static Collection<Object[]> localParams() {
return Arrays.asList(new Object[][] {
{ "", true }, // empty
{ "?q=m*", true }, // uri
{ "?q=name:m*", true }, // uri
{ "{ \"query\" : { \"query_string\" : { \"query\":\"m*\"} } }", true }, // query dsl
{ TestUtils.sampleQueryUri(), true }, // nested uri
{ TestUtils.sampleQueryDsl(), true }, // nested dsl
{ "", false }, // empty
{ "?q=m*", false }, // uri
{ "?q=name:m*", false }, // uri
{ "{ \"query\" : { \"query_string\" : { \"query\":\"m*\"} } }", false }, // query dsl
{ TestUtils.sampleQueryUri(), false }, // nested uri
{ TestUtils.sampleQueryDsl(), false } // nested dsl
});
}
@SuppressWarnings("deprecation")
public static <T extends Configuration> T provisionQueries(T cfg) {
if (HadoopCfgUtils.isLocal(cfg)) {
return cfg;
}
try {
DistributedCache.addFileToClassPath(new Path(TestUtils.sampleQueryDsl()), cfg);
DistributedCache.addFileToClassPath(new Path(TestUtils.sampleQueryUri()), cfg);
} catch (IOException ex) {
}
return cfg;
}
}