def upgrade_scenario(self, mixed_version=False):
        self.num_rows = 2000
        self.counter_val = 0
        cluster = self.cluster

        # Create a ring
        debug('Creating cluster (%s)' % versions[0])
        cluster.populate(3)
        cluster.start()
        node1, node2, node3 = cluster.nodelist()
        self.node2 = node2

        node1.watch_log_for('Listening for thrift clients...')
        conn = ThriftConnection(node1)
        conn.create_ks()
        conn.create_cf()
        self._create_counter_cf()
        
        time.sleep(.5)
        self._write_values()
        self._increment_counter_value()

        test_versions = [v for v in versions if v <= current_version ]
        debug( str(test_versions) )
        # upgrade through versions
        for version in test_versions[1:]:
            if mixed_version:
                self.upgrade_to_version(version, mixed_version=True, nodes=(node1,))
                self.upgrade_to_version(version, mixed_version=True, nodes=(node2,node3)) 
                node1.nodetool('upgradesstables')
                node2.nodetool('upgradesstables')
                node3.nodetool('upgradesstables')
            else:
                self.upgrade_to_version(version)
        cluster.stop()
    def upgrade_scenario(self, mixed_version=False):
        self.num_rows = 0
        cluster = self.cluster

        # Create a ring
        debug("Creating cluster (%s)" % versions[0])
        cluster.populate(3)
        cluster.start()
        node1, node2, node3 = cluster.nodelist()
        self.node2 = node2

        node1.watch_log_for("Listening for thrift clients...")
        conn = ThriftConnection(node1)
        conn.create_ks()
        conn.create_cf()
        time.sleep(0.5)
        self._write_values()

        # upgrade through versions
        for version in versions[1:]:
            if mixed_version:
                self.upgrade_to_version(version, mixed_version=True, nodes=(node1,))
                self.upgrade_to_version(version, mixed_version=True, nodes=(node2, node3))
                node1.nodetool("upgradesstables")
                node2.nodetool("upgradesstables")
                node3.nodetool("upgradesstables")
            else:
                self.upgrade_to_version(version)
        cluster.stop()
    def upgrade_test(self):
        self.num_rows = 0
        cluster = self.cluster

        # Forcing cluster version on purpose
        cluster.set_cassandra_dir(cassandra_version=versions[0])

        # Create a ring
        cluster.populate(3).start()
        [node1, node2, node3] = cluster.nodelist()
        self.node2 = node2

        conn = ThriftConnection(node1)
        conn.create_ks()
        conn.create_cf()
        time.sleep(.5)
        self._write_values()

        self.upgrade_to_version(versions[1], from_version_07=True)
        # upgrade through the other versions
        for version in versions[2:]:
            self.upgrade_to_version(version, from_version_07=False)