]>
Commit | Line | Data |
---|---|---|
f67539c2 TL |
1 | # cython: embedsignature=True |
2 | ||
3 | from libc.stdint cimport * | |
4 | from ctime cimport time_t, timeval | |
5 | from rados cimport rados_t, rados_config_t, rados_ioctx_t | |
6 | ||
7 | cdef extern from "err.h" nogil: | |
8 | cdef int _MAX_ERRNO "MAX_ERRNO" | |
9 | ||
10 | ||
11 | cdef 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 | ||
23 | cdef 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) |