Search in sources :

Example 1 with GenericProperties

use of io.crate.sql.tree.GenericProperties in project crate by crate.

the class RepositoryParamValidatorTest method testS3ConfigParams.

@Test
public void testS3ConfigParams() throws Exception {
    GenericProperties genericProperties = new GenericProperties();
    genericProperties.add(new GenericProperty("access_key", new StringLiteral("foobar")));
    genericProperties.add(new GenericProperty("base_path", new StringLiteral("/data")));
    genericProperties.add(new GenericProperty("bucket", new StringLiteral("myBucket")));
    genericProperties.add(new GenericProperty("buffer_size", new StringLiteral("10k")));
    genericProperties.add(new GenericProperty("canned_acl", new StringLiteral("cannedACL")));
    genericProperties.add(new GenericProperty("chunk_size", new StringLiteral("4g")));
    genericProperties.add(new GenericProperty("compress", new StringLiteral("true")));
    genericProperties.add(new GenericProperty("concurrent_streams", new StringLiteral("12")));
    genericProperties.add(new GenericProperty("endpoint", new StringLiteral("myEndpoint")));
    genericProperties.add(new GenericProperty("max_retries", new StringLiteral("8")));
    genericProperties.add(new GenericProperty("protocol", new StringLiteral("myProtocol")));
    genericProperties.add(new GenericProperty("region", new StringLiteral("Europe-1")));
    genericProperties.add(new GenericProperty("secret_key", new StringLiteral("thisIsASecretKey")));
    genericProperties.add(new GenericProperty("server_side_encryption", new StringLiteral("false")));
    Settings settings = validator.convertAndValidate("s3", Optional.of(genericProperties), ParameterContext.EMPTY);
    assertThat(settings.get("access_key"), is("foobar"));
    assertThat(settings.get("base_path"), is("/data"));
    assertThat(settings.get("bucket"), is("myBucket"));
    assertThat(settings.get("buffer_size"), is("10240b"));
    assertThat(settings.get("canned_acl"), is("cannedACL"));
    assertThat(settings.get("chunk_size"), is("4294967296b"));
    assertThat(settings.get("compress"), is("true"));
    assertThat(settings.get("concurrent_streams"), is("12"));
    assertThat(settings.get("endpoint"), is("myEndpoint"));
    assertThat(settings.get("max_retries"), is("8"));
    assertThat(settings.get("protocol"), is("myProtocol"));
    assertThat(settings.get("region"), is("Europe-1"));
    assertThat(settings.get("secret_key"), is("thisIsASecretKey"));
    assertThat(settings.get("server_side_encryption"), is("false"));
}
Also used : StringLiteral(io.crate.sql.tree.StringLiteral) GenericProperty(io.crate.sql.tree.GenericProperty) GenericProperties(io.crate.sql.tree.GenericProperties) Settings(org.elasticsearch.common.settings.Settings) Test(org.junit.Test) CrateUnitTest(io.crate.test.integration.CrateUnitTest)

Example 2 with GenericProperties

use of io.crate.sql.tree.GenericProperties in project crate by crate.

the class RepositoryParamValidatorTest method testInvalidSetting.

@Test
public void testInvalidSetting() throws Exception {
    expectedException.expect(IllegalArgumentException.class);
    expectedException.expectMessage("setting 'yay' not supported");
    GenericProperties genericProperties = new GenericProperties();
    genericProperties.add(new GenericProperty("location", new StringLiteral("foo")));
    genericProperties.add(new GenericProperty("yay", new StringLiteral("invalid")));
    validator.convertAndValidate("fs", Optional.of(genericProperties), ParameterContext.EMPTY);
}
Also used : StringLiteral(io.crate.sql.tree.StringLiteral) GenericProperty(io.crate.sql.tree.GenericProperty) GenericProperties(io.crate.sql.tree.GenericProperties) Test(org.junit.Test) CrateUnitTest(io.crate.test.integration.CrateUnitTest)

Example 3 with GenericProperties

use of io.crate.sql.tree.GenericProperties in project crate by crate.

the class RepositoryParamValidator method convertAndValidate.

public Settings convertAndValidate(String type, Optional<GenericProperties> genericProperties, ParameterContext parameterContext) {
    TypeSettings typeSettings = this.typeSettings.get(type);
    if (typeSettings == null) {
        throw new IllegalArgumentException(String.format(Locale.ENGLISH, "Invalid repository type \"%s\"", type));
    }
    Map<String, SettingsApplier> allSettings = typeSettings.all();
    // create string settings applier for all dynamic settings
    Optional<GenericProperties> dynamicProperties = typeSettings.dynamicProperties(genericProperties);
    if (dynamicProperties.isPresent()) {
        // allSettings are immutable by default, copy map
        allSettings = Maps.newHashMap(allSettings);
        for (String key : dynamicProperties.get().properties().keySet()) {
            allSettings.put(key, new SettingsAppliers.StringSettingsApplier(new StringSetting(key, true)));
        }
    }
    // convert and validate all settings
    Settings settings = GenericPropertiesConverter.settingsFromProperties(genericProperties, parameterContext, allSettings).build();
    Set<String> names = settings.getAsMap().keySet();
    Sets.SetView<String> missingRequiredSettings = Sets.difference(typeSettings.required().keySet(), names);
    if (!missingRequiredSettings.isEmpty()) {
        throw new IllegalArgumentException(String.format(Locale.ENGLISH, "The following required parameters are missing to create a repository of type \"%s\": [%s]", type, Joiner.on(", ").join(missingRequiredSettings)));
    }
    return settings;
}
Also used : SettingsAppliers(io.crate.metadata.settings.SettingsAppliers) SettingsApplier(io.crate.metadata.settings.SettingsApplier) StringSetting(io.crate.metadata.settings.StringSetting) Sets(com.google.common.collect.Sets) GenericProperties(io.crate.sql.tree.GenericProperties) Settings(org.elasticsearch.common.settings.Settings)

Example 4 with GenericProperties

use of io.crate.sql.tree.GenericProperties in project crate by crate.

the class RepositoryParamValidatorTest method testHdfsDynamicConfParam.

@Test
public void testHdfsDynamicConfParam() throws Exception {
    GenericProperties genericProperties = new GenericProperties();
    genericProperties.add(new GenericProperty("path", new StringLiteral("/data")));
    genericProperties.add(new GenericProperty("conf.foobar", new StringLiteral("bar")));
    Settings settings = validator.convertAndValidate("hdfs", Optional.of(genericProperties), ParameterContext.EMPTY);
    assertThat(settings.get("conf.foobar"), is("bar"));
}
Also used : StringLiteral(io.crate.sql.tree.StringLiteral) GenericProperty(io.crate.sql.tree.GenericProperty) GenericProperties(io.crate.sql.tree.GenericProperties) Settings(org.elasticsearch.common.settings.Settings) Test(org.junit.Test) CrateUnitTest(io.crate.test.integration.CrateUnitTest)

Aggregations

GenericProperties (io.crate.sql.tree.GenericProperties)4 GenericProperty (io.crate.sql.tree.GenericProperty)3 StringLiteral (io.crate.sql.tree.StringLiteral)3 CrateUnitTest (io.crate.test.integration.CrateUnitTest)3 Settings (org.elasticsearch.common.settings.Settings)3 Test (org.junit.Test)3 Sets (com.google.common.collect.Sets)1 SettingsApplier (io.crate.metadata.settings.SettingsApplier)1 SettingsAppliers (io.crate.metadata.settings.SettingsAppliers)1 StringSetting (io.crate.metadata.settings.StringSetting)1