]> git.proxmox.com Git - ceph.git/blame - ceph/src/pybind/rados/c_rados.pxd
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / pybind / rados / c_rados.pxd
CommitLineData
f67539c2
TL
1# cython: embedsignature=True
2
3from libc.stdint cimport *
4from ctime cimport time_t, timeval
5from rados cimport rados_t, rados_config_t, rados_ioctx_t
6
7cdef extern from "err.h" nogil:
8 cdef int _MAX_ERRNO "MAX_ERRNO"
9
10
11cdef extern from "rados/rados_types.h" nogil:
12 cdef char* _LIBRADOS_ALL_NSPACES "LIBRADOS_ALL_NSPACES"
13 cdef struct notify_ack_t:
14 unsigned long notifier_id
15 unsigned long cookie
16 char *payload
17 unsigned long payload_len
18
19 cdef struct notify_timeout_t:
20 unsigned long notifier_id
21 unsigned long cookie
22
23cdef extern from "rados/librados.h" nogil:
24 enum:
25 _LIBRADOS_OP_FLAG_EXCL "LIBRADOS_OP_FLAG_EXCL"
26 _LIBRADOS_OP_FLAG_FAILOK "LIBRADOS_OP_FLAG_FAILOK"
27 _LIBRADOS_OP_FLAG_FADVISE_RANDOM "LIBRADOS_OP_FLAG_FADVISE_RANDOM"
28 _LIBRADOS_OP_FLAG_FADVISE_SEQUENTIAL "LIBRADOS_OP_FLAG_FADVISE_SEQUENTIAL"
29 _LIBRADOS_OP_FLAG_FADVISE_WILLNEED "LIBRADOS_OP_FLAG_FADVISE_WILLNEED"
30 _LIBRADOS_OP_FLAG_FADVISE_DONTNEED "LIBRADOS_OP_FLAG_FADVISE_DONTNEED"
31 _LIBRADOS_OP_FLAG_FADVISE_NOCACHE "LIBRADOS_OP_FLAG_FADVISE_NOCACHE"
32
33
34 enum:
35 _LIBRADOS_OPERATION_NOFLAG "LIBRADOS_OPERATION_NOFLAG"
36 _LIBRADOS_OPERATION_BALANCE_READS "LIBRADOS_OPERATION_BALANCE_READS"
37 _LIBRADOS_OPERATION_LOCALIZE_READS "LIBRADOS_OPERATION_LOCALIZE_READS"
38 _LIBRADOS_OPERATION_ORDER_READS_WRITES "LIBRADOS_OPERATION_ORDER_READS_WRITES"
39 _LIBRADOS_OPERATION_IGNORE_CACHE "LIBRADOS_OPERATION_IGNORE_CACHE"
40 _LIBRADOS_OPERATION_SKIPRWLOCKS "LIBRADOS_OPERATION_SKIPRWLOCKS"
41 _LIBRADOS_OPERATION_IGNORE_OVERLAY "LIBRADOS_OPERATION_IGNORE_OVERLAY"
42 _LIBRADOS_CREATE_EXCLUSIVE "LIBRADOS_CREATE_EXCLUSIVE"
43 _LIBRADOS_CREATE_IDEMPOTENT "LIBRADOS_CREATE_IDEMPOTENT"
44
45 cdef uint64_t _LIBRADOS_SNAP_HEAD "LIBRADOS_SNAP_HEAD"
46
47 ctypedef void* rados_xattrs_iter_t
48 ctypedef void* rados_omap_iter_t
49 ctypedef void* rados_list_ctx_t
50 ctypedef uint64_t rados_snap_t
51 ctypedef void *rados_write_op_t
52 ctypedef void *rados_read_op_t
53 ctypedef void *rados_completion_t
54 ctypedef void (*rados_callback_t)(rados_completion_t cb, void *arg)
55 ctypedef void (*rados_log_callback_t)(void *arg, const char *line, const char *who,
56 uint64_t sec, uint64_t nsec, uint64_t seq, const char *level, const char *msg)
57 ctypedef void (*rados_log_callback2_t)(void *arg, const char *line, const char *channel, const char *who, const char *name,
58 uint64_t sec, uint64_t nsec, uint64_t seq, const char *level, const char *msg)
59 ctypedef void (*rados_watchcb2_t)(void *arg, int64_t notify_id,
60 uint64_t handle, uint64_t notifier_id,
61 void *data, size_t data_len)
62 ctypedef void (*rados_watcherrcb_t)(void *pre, uint64_t cookie, int err)
63
64
65 cdef struct rados_cluster_stat_t:
66 uint64_t kb
67 uint64_t kb_used
68 uint64_t kb_avail
69 uint64_t num_objects
70
71 cdef struct rados_pool_stat_t:
72 uint64_t num_bytes
73 uint64_t num_kb
74 uint64_t num_objects
75 uint64_t num_object_clones
76 uint64_t num_object_copies
77 uint64_t num_objects_missing_on_primary
78 uint64_t num_objects_unfound
79 uint64_t num_objects_degraded
80 uint64_t num_rd
81 uint64_t num_rd_kb
82 uint64_t num_wr
83 uint64_t num_wr_kb
84
85 void rados_buffer_free(char *buf)
86
87 void rados_version(int *major, int *minor, int *extra)
88 int rados_create2(rados_t *pcluster, const char *const clustername,
89 const char * const name, uint64_t flags)
90 int rados_create_with_context(rados_t *cluster, rados_config_t cct)
91 int rados_connect(rados_t cluster)
92 void rados_shutdown(rados_t cluster)
93 uint64_t rados_get_instance_id(rados_t cluster)
94 int rados_conf_read_file(rados_t cluster, const char *path)
95 int rados_conf_parse_argv_remainder(rados_t cluster, int argc, const char **argv, const char **remargv)
96 int rados_conf_parse_env(rados_t cluster, const char *var)
97 int rados_conf_set(rados_t cluster, char *option, const char *value)
98 int rados_conf_get(rados_t cluster, char *option, char *buf, size_t len)
99
100 rados_t rados_ioctx_get_cluster(rados_ioctx_t io)
101 int rados_ioctx_pool_stat(rados_ioctx_t io, rados_pool_stat_t *stats)
102 int64_t rados_pool_lookup(rados_t cluster, const char *pool_name)
103 int rados_pool_reverse_lookup(rados_t cluster, int64_t id, char *buf, size_t maxlen)
104 int rados_pool_create(rados_t cluster, const char *pool_name)
105 int rados_pool_create_with_crush_rule(rados_t cluster, const char *pool_name, uint8_t crush_rule_num)
106 int rados_pool_create_with_auid(rados_t cluster, const char *pool_name, uint64_t auid)
107 int rados_pool_create_with_all(rados_t cluster, const char *pool_name, uint64_t auid, uint8_t crush_rule_num)
108 int rados_pool_get_base_tier(rados_t cluster, int64_t pool, int64_t *base_tier)
109 int rados_pool_list(rados_t cluster, char *buf, size_t len)
110 int rados_pool_delete(rados_t cluster, const char *pool_name)
111 int rados_inconsistent_pg_list(rados_t cluster, int64_t pool, char *buf, size_t len)
112
113 int rados_cluster_stat(rados_t cluster, rados_cluster_stat_t *result)
114 int rados_cluster_fsid(rados_t cluster, char *buf, size_t len)
115 int rados_blocklist_add(rados_t cluster, char *client_address, uint32_t expire_seconds)
116 int rados_getaddrs(rados_t cluster, char** addrs)
117 int rados_application_enable(rados_ioctx_t io, const char *app_name,
118 int force)
119 void rados_set_pool_full_try(rados_ioctx_t io)
120 void rados_unset_pool_full_try(rados_ioctx_t io)
121 int rados_application_list(rados_ioctx_t io, char *values,
122 size_t *values_len)
123 int rados_application_metadata_get(rados_ioctx_t io, const char *app_name,
124 const char *key, char *value,
125 size_t *value_len)
126 int rados_application_metadata_set(rados_ioctx_t io, const char *app_name,
127 const char *key, const char *value)
128 int rados_application_metadata_remove(rados_ioctx_t io,
129 const char *app_name, const char *key)
130 int rados_application_metadata_list(rados_ioctx_t io,
131 const char *app_name, char *keys,
132 size_t *key_len, char *values,
133 size_t *value_len)
134 int rados_ping_monitor(rados_t cluster, const char *mon_id, char **outstr, size_t *outstrlen)
135 int rados_mon_command(rados_t cluster, const char **cmd, size_t cmdlen,
136 const char *inbuf, size_t inbuflen,
137 char **outbuf, size_t *outbuflen,
138 char **outs, size_t *outslen)
139 int rados_mgr_command(rados_t cluster, const char **cmd, size_t cmdlen,
140 const char *inbuf, size_t inbuflen,
141 char **outbuf, size_t *outbuflen,
142 char **outs, size_t *outslen)
143 int rados_mgr_command_target(rados_t cluster,
144 const char *name,
145 const char **cmd, size_t cmdlen,
146 const char *inbuf, size_t inbuflen,
147 char **outbuf, size_t *outbuflen,
148 char **outs, size_t *outslen)
149 int rados_mon_command_target(rados_t cluster, const char *name, const char **cmd, size_t cmdlen,
150 const char *inbuf, size_t inbuflen,
151 char **outbuf, size_t *outbuflen,
152 char **outs, size_t *outslen)
153 int rados_osd_command(rados_t cluster, int osdid, const char **cmd, size_t cmdlen,
154 const char *inbuf, size_t inbuflen,
155 char **outbuf, size_t *outbuflen,
156 char **outs, size_t *outslen)
157 int rados_pg_command(rados_t cluster, const char *pgstr, const char **cmd, size_t cmdlen,
158 const char *inbuf, size_t inbuflen,
159 char **outbuf, size_t *outbuflen,
160 char **outs, size_t *outslen)
161 int rados_monitor_log(rados_t cluster, const char *level, rados_log_callback_t cb, void *arg)
162 int rados_monitor_log2(rados_t cluster, const char *level, rados_log_callback2_t cb, void *arg)
163
164 int rados_wait_for_latest_osdmap(rados_t cluster)
165
166 int rados_service_register(rados_t cluster, const char *service, const char *daemon, const char *metadata_dict)
167 int rados_service_update_status(rados_t cluster, const char *status_dict)
168
169 int rados_ioctx_create(rados_t cluster, const char *pool_name, rados_ioctx_t *ioctx)
170 int rados_ioctx_create2(rados_t cluster, int64_t pool_id, rados_ioctx_t *ioctx)
171 void rados_ioctx_destroy(rados_ioctx_t io)
172 void rados_ioctx_locator_set_key(rados_ioctx_t io, const char *key)
173 void rados_ioctx_set_namespace(rados_ioctx_t io, const char * nspace)
174
175 uint64_t rados_get_last_version(rados_ioctx_t io)
176 int rados_stat(rados_ioctx_t io, const char *o, uint64_t *psize, time_t *pmtime)
177 int rados_write(rados_ioctx_t io, const char *oid, const char *buf, size_t len, uint64_t off)
178 int rados_write_full(rados_ioctx_t io, const char *oid, const char *buf, size_t len)
179 int rados_writesame(rados_ioctx_t io, const char *oid, const char *buf, size_t data_len, size_t write_len, uint64_t off)
180 int rados_append(rados_ioctx_t io, const char *oid, const char *buf, size_t len)
181 int rados_read(rados_ioctx_t io, const char *oid, char *buf, size_t len, uint64_t off)
182 int rados_remove(rados_ioctx_t io, const char *oid)
183 int rados_trunc(rados_ioctx_t io, const char *oid, uint64_t size)
184 int rados_cmpext(rados_ioctx_t io, const char *o, const char *cmp_buf, size_t cmp_len, uint64_t off)
185 int rados_getxattr(rados_ioctx_t io, const char *o, const char *name, char *buf, size_t len)
186 int rados_setxattr(rados_ioctx_t io, const char *o, const char *name, const char *buf, size_t len)
187 int rados_rmxattr(rados_ioctx_t io, const char *o, const char *name)
188 int rados_getxattrs(rados_ioctx_t io, const char *oid, rados_xattrs_iter_t *iter)
189 int rados_getxattrs_next(rados_xattrs_iter_t iter, const char **name, const char **val, size_t *len)
190 void rados_getxattrs_end(rados_xattrs_iter_t iter)
191
192 int rados_nobjects_list_open(rados_ioctx_t io, rados_list_ctx_t *ctx)
193 int rados_nobjects_list_next(rados_list_ctx_t ctx, const char **entry, const char **key, const char **nspace)
194 void rados_nobjects_list_close(rados_list_ctx_t ctx)
195
196 int rados_ioctx_pool_requires_alignment2(rados_ioctx_t io, int * requires)
197 int rados_ioctx_pool_required_alignment2(rados_ioctx_t io, uint64_t * alignment)
198
199 int rados_ioctx_snap_rollback(rados_ioctx_t io, const char * oid, const char * snapname)
200 int rados_ioctx_snap_create(rados_ioctx_t io, const char * snapname)
201 int rados_ioctx_snap_remove(rados_ioctx_t io, const char * snapname)
202 int rados_ioctx_snap_lookup(rados_ioctx_t io, const char * name, rados_snap_t * id)
203 int rados_ioctx_snap_get_name(rados_ioctx_t io, rados_snap_t id, char * name, int maxlen)
204 void rados_ioctx_snap_set_read(rados_ioctx_t io, rados_snap_t snap)
205 int rados_ioctx_snap_list(rados_ioctx_t io, rados_snap_t * snaps, int maxlen)
206 int rados_ioctx_snap_get_stamp(rados_ioctx_t io, rados_snap_t id, time_t * t)
207 int64_t rados_ioctx_get_id(rados_ioctx_t io)
208 int rados_ioctx_get_pool_name(rados_ioctx_t io, char *buf, unsigned maxlen)
209
210 int rados_ioctx_selfmanaged_snap_create(rados_ioctx_t io,
211 rados_snap_t *snapid)
212 int rados_ioctx_selfmanaged_snap_remove(rados_ioctx_t io,
213 rados_snap_t snapid)
214 int rados_ioctx_selfmanaged_snap_set_write_ctx(rados_ioctx_t io,
215 rados_snap_t snap_seq,
216 rados_snap_t *snap,
217 int num_snaps)
218 int rados_ioctx_selfmanaged_snap_rollback(rados_ioctx_t io, const char *oid,
219 rados_snap_t snapid)
220
221 int rados_lock_exclusive(rados_ioctx_t io, const char * oid, const char * name,
222 const char * cookie, const char * desc,
223 timeval * duration, uint8_t flags)
224 int rados_lock_shared(rados_ioctx_t io, const char * o, const char * name,
225 const char * cookie, const char * tag, const char * desc,
226 timeval * duration, uint8_t flags)
227 int rados_unlock(rados_ioctx_t io, const char * o, const char * name, const char * cookie)
228
229 rados_write_op_t rados_create_write_op()
230 void rados_release_write_op(rados_write_op_t write_op)
231
232 rados_read_op_t rados_create_read_op()
233 void rados_release_read_op(rados_read_op_t read_op)
234
235 int rados_aio_create_completion2(void * cb_arg, rados_callback_t cb_complete, rados_completion_t * pc)
236 void rados_aio_release(rados_completion_t c)
237 int rados_aio_stat(rados_ioctx_t io, const char *oid, rados_completion_t completion, uint64_t *psize, time_t *pmtime)
238 int rados_aio_write(rados_ioctx_t io, const char * oid, rados_completion_t completion, const char * buf, size_t len, uint64_t off)
239 int rados_aio_append(rados_ioctx_t io, const char * oid, rados_completion_t completion, const char * buf, size_t len)
240 int rados_aio_write_full(rados_ioctx_t io, const char * oid, rados_completion_t completion, const char * buf, size_t len)
241 int rados_aio_writesame(rados_ioctx_t io, const char *oid, rados_completion_t completion, const char *buf, size_t data_len, size_t write_len, uint64_t off)
242 int rados_aio_remove(rados_ioctx_t io, const char * oid, rados_completion_t completion)
243 int rados_aio_read(rados_ioctx_t io, const char * oid, rados_completion_t completion, char * buf, size_t len, uint64_t off)
244 int rados_aio_flush(rados_ioctx_t io)
245 int rados_aio_cmpext(rados_ioctx_t io, const char *o, rados_completion_t completion, const char *cmp_buf, size_t cmp_len, uint64_t off)
246 int rados_aio_rmxattr(rados_ioctx_t io, const char *o, rados_completion_t completion, const char *name)
247
248 int rados_aio_get_return_value(rados_completion_t c)
249 int rados_aio_wait_for_complete_and_cb(rados_completion_t c)
250 int rados_aio_wait_for_complete(rados_completion_t c)
251 int rados_aio_is_complete(rados_completion_t c)
252
253 int rados_exec(rados_ioctx_t io, const char * oid, const char * cls, const char * method,
254 const char * in_buf, size_t in_len, char * buf, size_t out_len)
255 int rados_aio_exec(rados_ioctx_t io, const char * oid, rados_completion_t completion, const char * cls, const char * method,
256 const char * in_buf, size_t in_len, char * buf, size_t out_len)
257 int rados_aio_setxattr(rados_ioctx_t io, const char *o, rados_completion_t completion, const char *name, const char *buf, size_t len)
258
259 int rados_write_op_operate(rados_write_op_t write_op, rados_ioctx_t io, const char * oid, time_t * mtime, int flags)
260 int rados_aio_write_op_operate(rados_write_op_t write_op, rados_ioctx_t io, rados_completion_t completion, const char *oid, time_t *mtime, int flags)
261 void rados_write_op_cmpext(rados_write_op_t write_op, const char *cmp_buf, size_t cmp_len, uint64_t off, int *prval)
262 void rados_write_op_omap_set(rados_write_op_t write_op, const char * const* keys, const char * const* vals, const size_t * lens, size_t num)
263 void rados_write_op_omap_rm_keys(rados_write_op_t write_op, const char * const* keys, size_t keys_len)
264 void rados_write_op_omap_clear(rados_write_op_t write_op)
265 void rados_write_op_omap_rm_range2(rados_write_op_t write_op, const char *key_begin, size_t key_begin_len, const char *key_end, size_t key_end_len)
266 void rados_write_op_set_flags(rados_write_op_t write_op, int flags)
267 void rados_write_op_setxattr(rados_write_op_t write_op, const char *name, const char *value, size_t value_len)
268 void rados_write_op_rmxattr(rados_write_op_t write_op, const char *name)
269
270 void rados_write_op_create(rados_write_op_t write_op, int exclusive, const char *category)
271 void rados_write_op_append(rados_write_op_t write_op, const char *buffer, size_t len)
272 void rados_write_op_write_full(rados_write_op_t write_op, const char *buffer, size_t len)
273 void rados_write_op_assert_version(rados_write_op_t write_op, uint64_t ver)
274 void rados_write_op_write(rados_write_op_t write_op, const char *buffer, size_t len, uint64_t offset)
275 void rados_write_op_remove(rados_write_op_t write_op)
276 void rados_write_op_truncate(rados_write_op_t write_op, uint64_t offset)
277 void rados_write_op_zero(rados_write_op_t write_op, uint64_t offset, uint64_t len)
278 void rados_write_op_exec(rados_write_op_t write_op, const char *cls, const char *method, const char *in_buf, size_t in_len, int *prval)
279 void rados_write_op_writesame(rados_write_op_t write_op, const char *buffer, size_t data_len, size_t write_len, uint64_t offset)
280 void rados_read_op_cmpext(rados_read_op_t read_op, const char *cmp_buf, size_t cmp_len, uint64_t off, int *prval)
281 void rados_read_op_omap_get_vals2(rados_read_op_t read_op, const char * start_after, const char * filter_prefix, uint64_t max_return, rados_omap_iter_t * iter, unsigned char *pmore, int * prval)
282 void rados_read_op_omap_get_keys2(rados_read_op_t read_op, const char * start_after, uint64_t max_return, rados_omap_iter_t * iter, unsigned char *pmore, int * prval)
283 void rados_read_op_omap_get_vals_by_keys(rados_read_op_t read_op, const char * const* keys, size_t keys_len, rados_omap_iter_t * iter, int * prval)
284 int rados_read_op_operate(rados_read_op_t read_op, rados_ioctx_t io, const char * oid, int flags)
285 int rados_aio_read_op_operate(rados_read_op_t read_op, rados_ioctx_t io, rados_completion_t completion, const char *oid, int flags)
286 void rados_read_op_set_flags(rados_read_op_t read_op, int flags)
287 int rados_omap_get_next(rados_omap_iter_t iter, const char * const* key, const char * const* val, size_t * len)
288 void rados_omap_get_end(rados_omap_iter_t iter)
289 int rados_notify2(rados_ioctx_t io, const char * o, const char *buf, int buf_len, uint64_t timeout_ms, char **reply_buffer, size_t *reply_buffer_len)
290 int rados_aio_notify(rados_ioctx_t io, const char * oid, rados_completion_t completion, const char * buf, int len, uint64_t timeout_ms, char **reply_buffer, size_t *reply_buffer_len)
291 int rados_decode_notify_response(char *reply_buffer, size_t reply_buffer_len, notify_ack_t **acks, size_t *nr_acks, notify_timeout_t **timeouts, size_t *nr_timeouts)
292 void rados_free_notify_response(notify_ack_t *acks, size_t nr_acks, notify_timeout_t *timeouts)
293 int rados_notify_ack(rados_ioctx_t io, const char *o, uint64_t notify_id, uint64_t cookie, const char *buf, int buf_len)
294 int rados_watch3(rados_ioctx_t io, const char *o, uint64_t *cookie, rados_watchcb2_t watchcb, rados_watcherrcb_t watcherrcb, uint32_t timeout, void *arg)
295 int rados_watch_check(rados_ioctx_t io, uint64_t cookie)
296 int rados_unwatch2(rados_ioctx_t io, uint64_t cookie)
297 int rados_watch_flush(rados_t cluster)