Exemplo n.º 1
0
if __name__ == "__main__":
    logging.basicConfig(format=LOG_FORMAT, level=logging.INFO)
    parser = init_parser()
    args = parser.parse_args()
    status = {'status': 'inProgress', 'message': 'Starting services'}
    write_to_json_file(status, args.log_postfix)

    db_access = None
    zookeeper = None
    try:
        # Ensure monit is running.
        relevant_ips = set(args.zookeeper) | set(args.database)
        for ip in relevant_ips:
            utils.ssh(ip, args.keyname, 'service monit start')

        start_zookeeper(args.zookeeper, args.keyname)
        conn = KazooClient(hosts=",".join(args.zookeeper))
        conn.start()
        if not conn.exists(ZK_CASSANDRA_CONFIG):
            conn.create(ZK_CASSANDRA_CONFIG,
                        json.dumps({"num_tokens": 256}),
                        makepath=True)
        start_cassandra(args.database, args.db_master, args.keyname,
                        args.zookeeper)
        datastore_upgrade.wait_for_quorum(args.keyname, args.db_master,
                                          len(args.database), args.replication)
        db_access = DatastoreProxy(hosts=args.database)

        # Exit early if a data layout upgrade is not needed.
        if db_access.valid_data_version():
            status = {
Exemplo n.º 2
0
    logging.basicConfig(format=LOG_FORMAT, level=logging.INFO)
    parser = init_parser()
    args = parser.parse_args()
    status = {"status": "inProgress", "message": "Starting services"}
    write_to_json_file(status, args.log_postfix)

    db_access = None
    zookeeper = None
    try:
        # Ensure monit is running.
        relevant_ips = set(args.zookeeper) | set(args.database)
        for ip in relevant_ips:
            utils.ssh(ip, args.keyname, "service monit start")

        start_cassandra(args.database, args.db_master, args.keyname)
        start_zookeeper(args.zookeeper, args.keyname)
        datastore_upgrade.wait_for_quorum(args.keyname, len(args.database), args.replication)
        db_access = datastore_upgrade.get_datastore()

        # Exit early if a data layout upgrade is not needed.
        if db_access.valid_data_version():
            status = {"status": "complete", "message": "The data layout is valid"}
            sys.exit()

        zookeeper = datastore_upgrade.get_zookeeper(args.zookeeper)
        try:
            total_entities = datastore_upgrade.estimate_total_entities(db_access.session, args.db_master, args.keyname)
        except AppScaleDBError:
            total_entities = None
        run_datastore_upgrade(db_access, zookeeper, args.log_postfix, total_entities)
        status = {"status": "complete", "message": "Data layout upgrade complete"}