tests finally can works over pure novaclient/ssh
diff --git a/scripts/run.sh b/scripts/run.sh
index 342356e..b5bc41c 100644
--- a/scripts/run.sh
+++ b/scripts/run.sh
@@ -7,12 +7,12 @@
 bsizes="1k 4k 64k 256k 1m"
 ops="write randwrite"
 osync="s a"
-three_times="1 2 3"
+num_times=3
 
 for bsize in $bsizes ; do
 	for op in $ops ; do 
 		for sync in $osync ; do 
-			for xxx in $three_times ; do
+			for counter in $(seq 1 $num_times) ; do
 				if [[ "$ops" == "write" && "$osync" == "s" ]] ; then
 					continue
 				fi
@@ -30,7 +30,7 @@
 				fi
 
 				io_opts="--type $type -a $op --iodepth 16 --blocksize $bsize --iosize $factor $ssync"
-				python run_rally_test.py -l -o "$io_opts" -t io-scenario $type --rally-extra-opts="--deployment $1"
+				python run_test.py --runner rally -l -o "$io_opts" -t io-scenario $type --runner-extra-opts="--deployment $1"
 			done
 		done
 	done
diff --git a/scripts/run_2.sh b/scripts/run_2.sh
index 7bd92fb..2265176 100644
--- a/scripts/run_2.sh
+++ b/scripts/run_2.sh
@@ -1,8 +1,33 @@
 #!/bin/bash
 set -x
-set -e
 
 type="iozone"
 
+# nova image-list | grep ' ubuntu ' >/dev/null
+# if [ $? -ne 0 ] ; then
+# 	url="https://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img"
+# 	glance image-create --name 'ubuntu' --disk-format qcow2 --container-format bare --is-public true --copy-from $url
+# fi
+
+# nova flavor-list | grep ' ceph.512 ' >/dev/null
+# if [ $? -ne 0 ] ; then
+# 	nova flavor-create ceph.512 ceph.512 512 50 1
+# fi
+
+# nova server-group-list | grep ' ceph ' >/dev/null
+# if [ $? -ne 0 ] ; then
+# 	nova server-group-create --policy anti-affinity ceph
+# fi
+
+# nova keypair-list | grep ' ceph ' >/dev/null
+# if [ $? -ne 0 ] ; then
+# 	nova keypair-add ceph > ceph.pem
+# fi
+
+set -e
+
 io_opts="--type $type -a write --iodepth 16 --blocksize 1m --iosize x20"
-python run_rally_test.py -l -o "$io_opts" -t io-scenario $type --rally-extra-opts="--deployment $1"
+python run_test.py --runner ssh -l -o "$io_opts" -t io-scenario $type --runner-extra-opts="ubuntu ceph.pem"
+
+# io_opts="--type $type -a write --iodepth 16 --blocksize 1m --iosize x20"
+# python run_test.py --runner rally -l -o "$io_opts" -t io-scenario $type --runner-extra-opts="--deployment perf-1"
diff --git a/scripts/starts_vms.py b/scripts/starts_vms.py
deleted file mode 100644
index b52c2d5..0000000
--- a/scripts/starts_vms.py
+++ /dev/null
@@ -1,240 +0,0 @@
-import re
-import os
-import time
-
-import paramiko
-from novaclient.client import Client as n_client
-from cinderclient.v1.client import Client as c_client
-
-
-def ostack_get_creds():
-    env = os.environ.get
-    name = env('OS_USERNAME')
-    passwd = env('OS_PASSWORD')
-    tenant = env('OS_TENANT_NAME')
-    auth_url = env('OS_AUTH_URL')
-    return name, passwd, tenant, auth_url
-
-
-def nova_connect():
-    return n_client('1.1', *ostack_get_creds())
-
-
-def create_keypair(nova, name, key_path):
-    with open(key_path) as key:
-        return nova.keypairs.create(name, key.read())
-
-
-def create_volume(size, name=None, volid=[0]):
-    cinder = c_client(*ostack_get_creds())
-    name = 'ceph-test-{0}'.format(volid[0])
-    volid[0] = volid[0] + 1
-    vol = cinder.volumes.create(size=size, display_name=name)
-    err_count = 0
-    while vol.status != 'available':
-        if vol.status == 'error':
-            if err_count == 3:
-                print "Fail to create volume"
-                raise RuntimeError("Fail to create volume")
-            else:
-                err_count += 1
-                cinder.volumes.delete(vol)
-                time.sleep(1)
-                vol = cinder.volumes.create(size=size, display_name=name)
-                continue
-        time.sleep(1)
-        vol = cinder.volumes.get(vol.id)
-    return vol
-
-
-def wait_for_server_active(nova, server, timeout=240):
-    t = time.time()
-    while True:
-        time.sleep(5)
-        sstate = getattr(server, 'OS-EXT-STS:vm_state').lower()
-
-        if sstate == 'active':
-            return True
-
-        print "Curr state is", sstate, "waiting for active"
-
-        if sstate == 'error':
-            return False
-
-        if time.time() - t > timeout:
-            return False
-
-        server = nova.servers.get(server)
-
-
-def get_or_create_floating_ip(nova, pool, used_ip):
-    ip_list = nova.floating_ips.list()
-
-    if pool is not None:
-        ip_list = [ip for ip in ip_list if ip.pool == pool]
-
-    ip_list = [ip for ip in ip_list if ip.instance_id is None]
-    ip_list = [ip for ip in ip_list if ip.ip not in used_ip]
-
-    if len(ip_list) > 0:
-        return ip_list[0]
-    else:
-        return nova.floating_ips.create(pool)
-
-
-def create_vms(nova, amount, keypair_name, img_name,
-               flavor_name, vol_sz, network_zone_name=None):
-
-    network = nova.networks.find(label=network_zone_name)
-    nics = [{'net-id': network.id}]
-    fl = nova.flavors.find(name=flavor_name)
-    img = nova.images.find(name=img_name)
-    srvs = []
-    counter = 0
-
-    for i in range(3):
-        amount_left = amount - len(srvs)
-
-        new_srvs = []
-        for i in range(amount_left):
-            print "creating server"
-            srv = nova.servers.create("ceph-test-{0}".format(counter),
-                                      flavor=fl, image=img, nics=nics,
-                                      key_name=keypair_name)
-            counter += 1
-            new_srvs.append(srv)
-            print srv
-
-        deleted_servers = []
-        for srv in new_srvs:
-            if not wait_for_server_active(nova, srv):
-                print "Server", srv.name, "fails to start. Kill it and",
-                print " try again"
-
-                nova.servers.delete(srv)
-                deleted_servers.append(srv)
-            else:
-                srvs.append(srv)
-
-        if len(deleted_servers) != 0:
-            time.sleep(5)
-
-    if len(srvs) != amount:
-        print "ERROR: can't start required amount of servers. Exit"
-        raise RuntimeError("Fail to create {0} servers".format(amount))
-
-    result = {}
-    for srv in srvs:
-        print "wait till server be ready"
-        wait_for_server_active(nova, srv)
-        print "creating volume"
-        vol = create_volume(vol_sz)
-        print "attach volume to server"
-        nova.volumes.create_server_volume(srv.id, vol.id, None)
-        print "create floating ip"
-        flt_ip = get_or_create_floating_ip(nova, 'net04_ext', result.keys())
-        print "attaching ip to server"
-        srv.add_floating_ip(flt_ip)
-        result[flt_ip.ip] = srv
-
-    return result
-
-
-def clear_all(nova):
-    deleted_srvs = set()
-    for srv in nova.servers.list():
-        if re.match(r"ceph-test-\d+", srv.name):
-            print "Deleting server", srv.name
-            nova.servers.delete(srv)
-            deleted_srvs.add(srv.id)
-
-    while deleted_srvs != set():
-        print "Waiting till all servers are actually deleted"
-        all_id = set(srv.id for srv in nova.servers.list())
-        if all_id.intersection(deleted_srvs) == set():
-            print "Done, deleting volumes"
-            break
-        time.sleep(1)
-
-    # wait till vm actually deleted
-
-    cinder = c_client(*ostack_get_creds())
-    for vol in cinder.volumes.list():
-        if isinstance(vol.display_name, basestring):
-            if re.match(r'ceph-test-\d+', vol.display_name):
-                if vol.status in ('available', 'error'):
-                    print "Deleting volume", vol.display_name
-                    cinder.volumes.delete(vol)
-
-    print "Clearing done (yet some volumes may still deleting)"
-
-
-def wait_ssh_ready(host, user, key_file, retry_count=10, timeout=5):
-    ssh = paramiko.SSHClient()
-    ssh.load_host_keys('/dev/null')
-    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
-    ssh.known_hosts = None
-
-    for i in range(retry_count):
-        try:
-            ssh.connect(host, username=user, key_filename=key_file,
-                        look_for_keys=False)
-            break
-        except:
-            if i == retry_count - 1:
-                raise
-            time.sleep(timeout)
-
-
-# def prepare_host(key_file, ip, fio_path, dst_fio_path, user='cirros'):
-#     print "Wait till ssh ready...."
-#     wait_ssh_ready(ip, user, key_file)
-
-#     print "Preparing host >"
-#     print "    Coping fio"
-#     copy_fio(key_file, ip, fio_path, user, dst_fio_path)
-
-#     key_opts = '-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'
-#     args = (key_file, user, ip, key_opts)
-#     cmd_format = "ssh {3} -i {0} {1}@{2} '{{0}}'".format(*args).format
-
-#     def exec_on_host(cmd):
-#         print "    " + cmd
-#         subprocess.check_call(cmd_format(cmd), shell=True)
-
-#     exec_on_host("sudo /usr/sbin/mkfs.ext4 /dev/vdb")
-#     exec_on_host("sudo /bin/mkdir /media/ceph")
-#     exec_on_host("sudo /bin/mount /dev/vdb /media/ceph")
-#     exec_on_host("sudo /bin/chmod a+rwx /media/ceph")
-
-
-def main():
-    image_name = 'TestVM'
-    flavor_name = 'ceph'
-    vol_sz = 50
-    network_zone_name = 'net04'
-    amount = 10
-    keypair_name = 'ceph-test'
-
-    nova = nova_connect()
-    clear_all(nova)
-
-    try:
-        ips = []
-        params = dict(vol_sz=vol_sz)
-        params['image_name'] = image_name
-        params['flavor_name'] = flavor_name
-        params['network_zone_name'] = network_zone_name
-        params['amount'] = amount
-        params['keypair_name'] = keypair_name
-
-        for ip, host in create_vms(nova, **params).items():
-            ips.append(ip)
-
-        print "All setup done! Ips =", " ".join(ips)
-        print "Starting tests"
-    finally:
-        clear_all(nova)
-
-if __name__ == "__main__":
-    exit(main())