def METHOD_NAME(benchmark_spec):
  """Prepare the virtual machines to run YCSB against Cassandra.
  Args:
    benchmark_spec: The benchmark specification. Contains all data that is
        required to run the benchmark.
  """
  vms = benchmark_spec.vms
  by_role = _GetVMsByRole(benchmark_spec)
  loaders = by_role['clients']
  assert loaders, vms
  # Cassandra cluster
  cassandra_vms = by_role['cassandra_vms']
  assert cassandra_vms, 'No Cassandra VMs: {0}'.format(by_role)
  seed_vm = by_role['seed_vm']
  assert seed_vm, 'No seed VM: {0}'.format(by_role)
  cassandra_install_fns = [functools.partial(_InstallCassandra,
                                             vm, seed_vms=[seed_vm])
                           for vm in cassandra_vms]
  ycsb_install_fns = [functools.partial(vm.Install, 'ycsb')
                      for vm in loaders]
  if FLAGS.ycsb_client_vms:
    background_tasks.RunThreaded(
        lambda f: f(), cassandra_install_fns + ycsb_install_fns
    )
  else:
    # If putting server and client on same vm, prepare packages one by one to
    # avoid race condition.
    background_tasks.RunThreaded(lambda f: f(), cassandra_install_fns)
    background_tasks.RunThreaded(lambda f: f(), ycsb_install_fns)
  cassandra.StartCluster(seed_vm, by_role['non_seed_cassandra_vms'])
  _CreateYCSBTable(
      seed_vm, replication_factor=FLAGS.cassandra_replication_factor)
  benchmark_spec.executor = ycsb.YCSBExecutor(
      'cassandra2-cql',
      hosts=','.join(vm.internal_ip for vm in cassandra_vms))