blob: 3475a7db1b966cb780375777ff0a5b009490f9fc [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF 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.apache.brooklyn.entity.nosql.mongodb;
import org.apache.brooklyn.api.entity.Entity;
import org.apache.brooklyn.config.ConfigKey;
import org.apache.brooklyn.core.config.ConfigKeys;
import org.apache.brooklyn.core.sensor.AttributeSensorAndConfigKey;
import org.apache.brooklyn.core.sensor.BasicAttributeSensorAndConfigKey;
import org.apache.brooklyn.core.sensor.PortAttributeSensorAndConfigKey;
import org.apache.brooklyn.entity.software.base.SoftwareProcess;
import org.apache.brooklyn.util.core.ResourcePredicates;
import org.apache.brooklyn.util.core.flags.SetFromFlag;
public interface AbstractMongoDBServer extends SoftwareProcess, Entity, MongoDBAuthenticationMixins {
// TODO Need to properly test v2.4.x and v2.5.x support.
// I think the v2.5.x were dev releases.
// Should update mongo.config to yaml format, but no rush for that.
@SetFromFlag("dataDirectory")
ConfigKey<String> DATA_DIRECTORY = ConfigKeys.newStringConfigKey(
"mongodb.data.directory", "Data directory to store MongoDB journals");
@SetFromFlag("mongodbConfTemplateUrl")
ConfigKey<String> MONGODB_CONF_TEMPLATE_URL = ConfigKeys.builder(String.class)
.name("mongodb.config.url")
.description("Template file (in freemarker format) for a MongoDB configuration file")
.defaultValue("classpath://org/apache/brooklyn/entity/nosql/mongodb/default.conf")
.constraint(ResourcePredicates.urlIsBlankOrExists())
.build();
@SetFromFlag("version")
ConfigKey<String> SUGGESTED_VERSION =
ConfigKeys.newConfigKeyWithDefault(SoftwareProcess.SUGGESTED_VERSION, "2.6.5");
// TODO: Windows support
// e.g. http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.2.2.tgz,
// http://fastdl.mongodb.org/osx/mongodb-osx-x86_64-2.2.2.tgz
// http://downloads.mongodb.org/win32/mongodb-win32-x86_64-1.8.5.zip
// Note Windows download is a zip.
@SetFromFlag("downloadUrl")
AttributeSensorAndConfigKey<String, String> DOWNLOAD_URL = new BasicAttributeSensorAndConfigKey<String>(
SoftwareProcess.DOWNLOAD_URL, "http://fastdl.mongodb.org/${driver.osDir}/${driver.osTag}-${version}.tgz");
@SetFromFlag("port")
PortAttributeSensorAndConfigKey PORT =
new PortAttributeSensorAndConfigKey("mongodb.server.port", "Server port", "27017+");
}