Example #1
0
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.
Example #2
0
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()