'Return an iterable of models.Sample instances.
:param sample_filter: Filter.
:param limit: Maximum number of results to return.'

def get_samples(self, sample_filter, limit=None):

    if (limit == 0):
        return
    with self.conn_pool.connection() as conn:
        meter_table = conn.table(self.METER_TABLE)
        (q, start, stop, columns) = hbase_utils.make_sample_query_from_filter(sample_filter, require_meter=False)
        LOG.debug('Query    Meter    Table:    %s', q)
        gen = meter_table.scan(filter=q, row_start=start, row_stop=stop, limit=limit, columns=columns)
        for (ignored, meter) in gen:
            d_meter = hbase_utils.deserialize_entry(meter)[0]
            d_meter['message']['counter_volume'] = float(d_meter['message']['counter_volume'])
            d_meter['message']['recorded_at'] = d_meter['recorded_at']
            (yield models.Sample(**d_meter['message']))
