示例#1
0
        # 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'
        }
    except Exception as error:
        logging.exception('Failed to upgrade AppScale')
        status = {'status': 'error', 'message': error.message}
        sys.exit()
    finally:
        # Always write the result of the upgrade and clean up.
        write_to_json_file(status, args.log_postfix)

        if zookeeper is not None:
            zookeeper.close()
        if db_access is not None:
示例#2
0
        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)
        run_datastore_upgrade(db_access, zookeeper, args.keyname,
                              args.log_postfix)
        status = {
            'status': 'complete',
            'message': 'Data layout upgrade complete'
        }
    except Exception as error:
        status = {'status': 'error', 'message': error.message}
        sys.exit()
    finally:
        # Always write the result of the upgrade and clean up.
        write_to_json_file(status, args.log_postfix)

        if zookeeper is not None:
            zookeeper.close()
        if db_access is not None:
            db_access.close()
示例#3
0
        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"}
    except Exception as error:
        status = {"status": "error", "message": error.message}
        sys.exit()
    finally:
        # Always write the result of the upgrade and clean up.
        write_to_json_file(status, args.log_postfix)

        if zookeeper is not None:
            zookeeper.close()
        if db_access is not None:
            db_access.close()

        datastore_upgrade.stop_cassandra(args.database, args.keyname)
        datastore_upgrade.stop_zookeeper(args.zookeeper, args.keyname)
示例#4
0
    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)
    run_datastore_upgrade(db_access, zookeeper, args.keyname, args.log_postfix)
    status = {'status': 'complete', 'message': 'Data layout upgrade complete'}
  except Exception as error:
    status = {'status': 'error', 'message': error.message}
    sys.exit()
  finally:
    # Always write the result of the upgrade and clean up.
    write_to_json_file(status, args.log_postfix)

    if zookeeper is not None:
      zookeeper.close()
    if db_access is not None:
      db_access.close()

    datastore_upgrade.stop_cassandra(args.database, args.keyname)
    datastore_upgrade.stop_zookeeper(args.zookeeper, args.keyname)