if (rc < 0)
return rc;
-CLS_LOG(0, "%s: %d from_index=%s match_prefix=%s", __FILE__, __LINE__, from_index.c_str(), match_prefix.c_str());
+ CLS_LOG(20, "from_index=%s match_prefix=%s", from_index.c_str(), match_prefix.c_str());
cls_statelog_list_ret ret;
list<cls_statelog_entry>& entries = ret.entries;
for (i = 0; i < max_entries && iter != keys.end(); ++i, ++iter) {
const string& index = iter->first;
marker = index;
-CLS_LOG(0, "%s: %d index=%s", __FILE__, __LINE__, index.c_str());
bufferlist& bl = iter->second;
bufferlist::iterator biter = bl.begin();
}
void cls_statelog_add_prepare_entry(cls_statelog_entry& entry, const string& client_id, const string& op_id,
- const string& object, uint32_t state, bufferlist& bl)
+ const string& object, const utime_t& timestamp, uint32_t state, bufferlist& bl)
{
entry.client_id = client_id;
entry.op_id = op_id;
entry.object = object;
+ entry.timestamp = timestamp;
entry.state = state;
entry.data = bl;
}
void cls_statelog_add(librados::ObjectWriteOperation& op, const string& client_id, const string& op_id,
- const string& object, uint32_t state, bufferlist& bl)
+ const string& object, const utime_t& timestamp, uint32_t state, bufferlist& bl)
{
cls_statelog_entry entry;
- cls_statelog_add_prepare_entry(entry, client_id, op_id, object, state, bl);
+ cls_statelog_add_prepare_entry(entry, client_id, op_id, object, timestamp, state, bl);
cls_statelog_add(op, entry);
}
*/
void cls_statelog_add_prepare_entry(cls_statelog_entry& entry, const string& client_id, const string& op_id,
- const string& object, uint32_t state, bufferlist& bl);
+ const string& object, const utime_t& timestamp, uint32_t state, bufferlist& bl);
void cls_statelog_add(librados::ObjectWriteOperation& op, list<cls_statelog_entry>& entry);
void cls_statelog_add(librados::ObjectWriteOperation& op, cls_statelog_entry& entry);
void cls_statelog_add(librados::ObjectWriteOperation& op, const string& client_id, const string& op_id,
- const string& object, uint32_t state, bufferlist& bl);
+ const string& object, const utime_t& timestamp, uint32_t state, bufferlist& bl);
void cls_statelog_list(librados::ObjectReadOperation& op,
const string& client_id, const string& op_id, const string& object, /* op_id may be empty, also one of client_id, object*/
bufferlist bl;
::encode(state, bl);
- cls_statelog_add(*op, client_id, op_id, obj, state, bl);
+ utime_t ts = ceph_clock_now(g_ceph_context);
+
+ cls_statelog_add(*op, client_id, op_id, obj, ts, state, bl);
}
void next_op_id(string& op_id, int *id)