Beispiel #1
0
    def get_download_url(self, mongodb_version, mongodb_edition):
        template_args = get_template_args(mongodb_version, mongodb_edition)
        platform_spec = template_args["platform_spec"]
        os_dist_name = template_args["os_dist_name"]
        os_dist_version_no_dots = template_args["os_dist_version_no_dots"]
        os_name = template_args["os_name"]

        version_info = make_version_info(mongodb_version)
        if mongodb_edition == MongoDBEdition.COMMUNITY:
            archive_name = "mongodb-%s-%s.tgz" % (platform_spec,
                                                  mongodb_version)
            domain = "fastdl.mongodb.org"
        elif mongodb_edition == MongoDBEdition.ENTERPRISE:
            if version_info and version_info >= VERSION_2_6_1:
                domain = "downloads.10gen.com"
                rel_name = "enterprise"
            else:
                rel_name = "subscription"
                domain = "downloads.mongodb.com"

            archive_name = ("mongodb-%s-%s-%s%s-%s.tgz" %
                            (platform_spec, rel_name, os_dist_name,
                             os_dist_version_no_dots,
                             mongodb_version))

        else:
            raise MongoctlException("Unsupported edition '%s'" %
                                    mongodb_edition)

        return "http://%s/%s/%s" % (domain, os_name, archive_name)
Beispiel #2
0
    def get_download_url(self, mongodb_version, mongodb_edition):
        template_args = get_template_args(mongodb_version, mongodb_edition)
        platform_spec = template_args["platform_spec"]
        os_dist_name = template_args["os_dist_name"]
        os_dist_version_no_dots = template_args["os_dist_version_no_dots"]
        os_name = template_args["os_name"]

        version_info = make_version_info(mongodb_version)
        if mongodb_edition == MongoDBEdition.COMMUNITY:
            archive_name = "mongodb-%s-%s.tgz" % (platform_spec,
                                                  mongodb_version)
            domain = "fastdl.mongodb.org"
        elif mongodb_edition == MongoDBEdition.ENTERPRISE:
            if version_info and version_info >= VERSION_2_6_1:
                domain = "downloads.10gen.com"
                rel_name = "enterprise"
            else:
                rel_name = "subscription"
                domain = "downloads.mongodb.com"

            archive_name = ("mongodb-%s-%s-%s%s-%s.tgz" %
                            (platform_spec, rel_name, os_dist_name,
                             os_dist_version_no_dots, mongodb_version))

        else:
            raise MongoctlException("Unsupported edition '%s'" %
                                    mongodb_edition)

        return "http://%s/%s/%s" % (domain, os_name, archive_name)
Beispiel #3
0
    def get_download_url(self, mongodb_version, mongodb_edition):
        template_args = get_template_args(mongodb_version, mongodb_edition)
        platform_spec = template_args["platform_spec"]
        os_dist_name = template_args["os_dist_name"]
        os_dist_version_no_dots = template_args["os_dist_version_no_dots"]
        os_name = template_args["os_name"]

        version_info = make_version_info(mongodb_version)
        if mongodb_edition == MongoDBEdition.COMMUNITY:
            archive_name = "mongodb-%s-%s.tgz" % (platform_spec,
                                                  mongodb_version)
            domain = "fastdl.mongodb.org"
        # community ssl from mongodb.org are supported only for version >= 3.0
        elif mongodb_edition == MongoDBEdition.COMMUNITY_SSL:
            if version_info >= VERSION_3_0:
                # Platforms that lack OS dist data (eg OS X) apparently don't
                # need it
                dist_bits = ""
                # Ones that have it, need it injected, i.e.
                # 'mongodb-linux-x86_64-debian71-3.2.9.tgz
                if os_dist_name is not None:
                    dist_bits = "-{0}{1}".format(
                        os_dist_name,
                        os_dist_version_no_dots
                    )
                archive_name = "mongodb-{0}{1}-{2}.tgz".format(
                    platform_spec,
                    dist_bits,
                    mongodb_version
                )
                domain = "fastdl.mongodb.org"
            else:
                return None
        elif mongodb_edition == MongoDBEdition.ENTERPRISE:
            if version_info and version_info >= VERSION_2_6_1:
                domain = "downloads.10gen.com"
                rel_name = "enterprise"
            else:
                rel_name = "subscription"
                domain = "downloads.mongodb.com"

            archive_name = ("mongodb-%s-%s-%s%s-%s.tgz" %
                            (platform_spec, rel_name, os_dist_name,
                             os_dist_version_no_dots,
                             mongodb_version))

        else:
            raise MongoctlException("Unsupported edition '%s'" %
                                    mongodb_edition)

        url = "http://%s/%s/%s" % (domain, os_name, archive_name)
        log_verbose("Download url for MongoDB %s (%s edition) OS %s, dist '%s': %s" %
                    (mongodb_version, mongodb_edition, os_name, os_dist_name, url))

        return url
Beispiel #4
0
    def get_download_url(self, mongodb_version, mongodb_edition):
        template_args = get_template_args(mongodb_version, mongodb_edition)
        platform_spec = template_args["platform_spec"]
        os_dist_name = template_args["os_dist_name"]
        os_dist_version_no_dots = template_args["os_dist_version_no_dots"]
        os_name = template_args["os_name"]

        version_info = make_version_info(mongodb_version)
        if mongodb_edition == MongoDBEdition.COMMUNITY:
            archive_name = "mongodb-%s-%s.tgz" % (platform_spec,
                                                  mongodb_version)
            domain = "fastdl.mongodb.org"
        # community ssl from mongodb.org are supported only for version >= 3.0
        elif mongodb_edition == MongoDBEdition.COMMUNITY_SSL:
            if version_info >= VERSION_3_0:
                # Platforms that lack OS dist data (eg OS X) apparently don't
                # need it
                dist_bits = ""
                # Ones that have it, need it injected, i.e.
                # 'mongodb-linux-x86_64-debian71-3.2.9.tgz
                if os_dist_name is not None:
                    dist_bits = "-{0}{1}".format(os_dist_name,
                                                 os_dist_version_no_dots)
                archive_name = "mongodb-{0}{1}-{2}.tgz".format(
                    platform_spec, dist_bits, mongodb_version)
                domain = "fastdl.mongodb.org"
            else:
                return None
        elif mongodb_edition == MongoDBEdition.ENTERPRISE:
            if version_info and version_info >= VERSION_2_6_1:
                domain = "downloads.10gen.com"
                rel_name = "enterprise"
            else:
                rel_name = "subscription"
                domain = "downloads.mongodb.com"

            archive_name = ("mongodb-%s-%s-%s%s-%s.tgz" %
                            (platform_spec, rel_name, os_dist_name,
                             os_dist_version_no_dots, mongodb_version))

        else:
            raise MongoctlException("Unsupported edition '%s'" %
                                    mongodb_edition)

        url = "http://%s/%s/%s" % (domain, os_name, archive_name)
        log_verbose(
            "Download url for MongoDB %s (%s edition) OS %s, dist '%s': %s" %
            (mongodb_version, mongodb_edition, os_name, os_dist_name, url))

        return url
Beispiel #5
0
    def get_download_url(self, mongodb_version, mongodb_edition):
        template_args = get_template_args(mongodb_version, mongodb_edition)
        platform_spec = template_args["platform_spec"]
        os_dist_name = template_args["os_dist_name"]
        os_dist_version_no_dots = template_args["os_dist_version_no_dots"]
        os_name = template_args["os_name"]

        version_info = make_version_info(mongodb_version)
        if mongodb_edition == MongoDBEdition.COMMUNITY:
            archive_name = "mongodb-%s-%s.tgz" % (platform_spec,
                                                  mongodb_version)
            domain = "fastdl.mongodb.org"
        # community ssl from mongodb.org are supported only for version >= 3.0
        elif mongodb_edition == MongoDBEdition.COMMUNITY_SSL:
            if version_info >= VERSION_3_0 and os_dist_name is not None:
                archive_name = "mongodb-%s-%s%s-%s.tgz" % (platform_spec, os_dist_name,
                                                           os_dist_version_no_dots, mongodb_version)
                domain = "fastdl.mongodb.org"
            else:
                return None
        elif mongodb_edition == MongoDBEdition.ENTERPRISE:
            if version_info and version_info >= VERSION_2_6_1:
                domain = "downloads.10gen.com"
                rel_name = "enterprise"
            else:
                rel_name = "subscription"
                domain = "downloads.mongodb.com"

            archive_name = ("mongodb-%s-%s-%s%s-%s.tgz" %
                            (platform_spec, rel_name, os_dist_name,
                             os_dist_version_no_dots,
                             mongodb_version))

        else:
            raise MongoctlException("Unsupported edition '%s'" %
                                    mongodb_edition)

        url = "http://%s/%s/%s" % (domain, os_name, archive_name)
        log_verbose("Download url for MongoDB %s (%s edition) OS %s, dist '%s': %s" %
                    (mongodb_version, mongodb_edition, os_name, os_dist_name, url))

        return url
Beispiel #6
0
        if not password:
            password = read_seed_password(db.name, username)

        _mongo_add_user(server, db, username, password)
        # if there is no login user for this db then set it to this new one
        db_login_user = server.get_login_user(db.name)
        if not db_login_user:
            server.set_login_user(db.name, username, password)
            # inc new users
        count_new_users += 1

    return count_new_users


###############################################################################
VERSION_2_6 = mongodb_version.make_version_info("2.6.0")

###############################################################################
def server_supports_local_users(server):
    version = server.get_mongo_version_info()
    return version and version < VERSION_2_6

###############################################################################
def _mongo_add_user(server, db, username, password, read_only=False,
                    num_tries=1):
    try:
        db.add_user(username, password, read_only)
    except OperationFailure, ofe:
        # This is a workaround for PYTHON-407. i.e. catching a harmless
        # error that is raised after adding the first
        if "login" in str(ofe):
Beispiel #7
0
__author__ = 'abdul'

import platform
import os
import sys
from utils import download_url
from errors import MongoctlException, FileNotInRepoError
from mongoctl_logging import log_info, log_verbose
from prompt import is_interactive_mode
from boto.s3.connection import S3Connection, Key
from mongodb_version import make_version_info, MongoDBEdition
import config
import urllib

VERSION_2_6_1 = make_version_info("2.6.1")
VERSION_3_0 = make_version_info("3.0.0")


###############################################################################
# MongoDBBinaryRepository
###############################################################################
class MongoDBBinaryRepository(object):

    ###########################################################################
    # Constructor
    ###########################################################################
    def __init__(self, name=None):
        self._name = name
        self._supported_editions = None
        self._url_template = None
Beispiel #8
0
__author__ = 'abdul'

import platform
import os
import sys
from utils import download_url
from errors import MongoctlException, FileNotInRepoError
from mongoctl_logging import log_info, log_verbose
from prompt import is_interactive_mode
from boto.s3.connection import S3Connection, Key
from mongodb_version import make_version_info, MongoDBEdition
import config
import urllib

VERSION_2_6_1 = make_version_info("2.6.1")
VERSION_3_0 = make_version_info("3.0.0")

###############################################################################
# MongoDBBinaryRepository
###############################################################################
class MongoDBBinaryRepository(object):

    ###########################################################################
    # Constructor
    ###########################################################################
    def __init__(self, name=None):
        self._name = name
        self._supported_editions = None
        self._url_template = None

    ###########################################################################
Beispiel #9
0
        if not password:
            password = read_seed_password(db.name, username)

        _mongo_add_user(server, db, username, password)
        # if there is no login user for this db then set it to this new one
        db_login_user = server.get_login_user(db.name)
        if not db_login_user:
            server.set_login_user(db.name, username, password)
            # inc new users
        count_new_users += 1

    return count_new_users


###############################################################################
VERSION_2_6 = mongodb_version.make_version_info("2.6.0")


###############################################################################
def server_supports_local_users(server):
    version = server.get_mongo_version_info()
    return version and version < VERSION_2_6


###############################################################################
def _mongo_add_user(server,
                    db,
                    username,
                    password,
                    read_only=False,
                    num_tries=1):
Beispiel #10
0
__author__ = 'abdul'

import platform
import os
import sys
from utils import download_url
from errors import MongoctlException, FileNotInRepoError
from mongoctl_logging import log_info, log_verbose
from prompt import is_interactive_mode
from boto.s3.connection import S3Connection, Key
from mongodb_version import make_version_info, MongoDBEdition
import config
import urllib

VERSION_2_6_1 = make_version_info("2.6.1")

###############################################################################
# MongoDBBinaryRepository
###############################################################################
class MongoDBBinaryRepository(object):

    ###########################################################################
    # Constructor
    ###########################################################################
    def __init__(self, name=None):
        self._name = name
        self._supported_editions = None
        self._url_template = None

    ###########################################################################
    @property
Beispiel #11
0
__author__ = 'abdul'

import platform
import os
import sys
from utils import download_url
from errors import MongoctlException, FileNotInRepoError
from mongoctl_logging import log_info, log_verbose
from prompt import is_interactive_mode
from boto.s3.connection import S3Connection, Key
from mongodb_version import make_version_info, MongoDBEdition
import config
import urllib

VERSION_2_6_1 = make_version_info("2.6.1")


###############################################################################
# MongoDBBinaryRepository
###############################################################################
class MongoDBBinaryRepository(object):

    ###########################################################################
    # Constructor
    ###########################################################################
    def __init__(self, name=None):
        self._name = name
        self._supported_editions = None
        self._url_template = None

    ###########################################################################