from trove.common.db.couchdb import models from trove.common import exception from trove.common.i18n import _ from trove.common import instance as rd_instance from trove.common import pagination from trove.common.stream_codecs import JsonCodec from trove.common import utils as utils from trove.guestagent.common import operating_system from trove.guestagent.common.operating_system import FileMode from trove.guestagent.datastore.experimental.couchdb import system from trove.guestagent.datastore import service from trove.guestagent import pkg CONF = cfg.CONF LOG = logging.getLogger(__name__) packager = pkg.Package() COUCHDB_LIB_DIR = "/var/lib/couchdb" COUCHDB_LOG_DIR = "/var/log/couchdb" COUCHDB_CONFIG_DIR = "/etc/couchdb" COUCHDB_BIN_DIR = "/var/run/couchdb" class CouchDBApp(object): """ Handles installation and configuration of CouchDB on a Trove instance. """ def __init__(self, status, state_change_wait_time=None): """ Sets default status and state_change_wait_time.
TIME_OUT = 1000 MONGO_USER = {operating_system.REDHAT: "mongod", operating_system.DEBIAN: "mongodb", operating_system.SUSE: "mongod"}[OS_NAME] INIT_EXEC_MONGOS = ("start-stop-daemon --start --quiet --chuid %s " "--exec /usr/bin/mongos -- " "--config {config_file_placeholder}" % MONGO_USER) MONGOS_UPSTART_CONTENTS = """limit fsize unlimited unlimited # (file size) limit cpu unlimited unlimited # (cpu time) limit as unlimited unlimited # (virtual memory size) limit nofile 64000 64000 # (open files) limit nproc 64000 64000 # (processes/threads) pre-start script mkdir -p /var/log/mongodb/ end script start on runlevel [2345] stop on runlevel [06] script ENABLE_MONGOS="yes" if [ -f /etc/default/mongos ]; then . /etc/default/mongos; fi if [ "x$ENABLE_MONGOS" = "xyes" ]; then exec %s; fi end script """ % INIT_EXEC_MONGOS PACKAGER = pkg.Package()