forked from ceph/go-ceph
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathapi-status.json
More file actions
3567 lines (3567 loc) · 201 KB
/
Copy pathapi-status.json
File metadata and controls
3567 lines (3567 loc) · 201 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
{
"cephfs": {
"stable_api": [
{
"name": "Version",
"comment": "Version returns the major, minor, and patch level of the libcephfs library.\n"
},
{
"name": "CreateMount",
"comment": "CreateMount creates a mount handle for interacting with Ceph.\n"
},
{
"name": "CreateMountWithId",
"comment": "CreateMountWithId creates a mount handle for interacting with Ceph.\nThe caller can specify a unique id that will identify this client.\n"
},
{
"name": "CreateFromRados",
"comment": "CreateFromRados creates a mount handle using an existing rados cluster\nconnection.\n\nImplements:\n int ceph_create_from_rados(struct ceph_mount_info **cmount, rados_t cluster);\n"
},
{
"name": "MountInfo.ReadDefaultConfigFile",
"comment": "ReadDefaultConfigFile loads the ceph configuration from the default config file.\n\nImplements:\n int ceph_conf_read_file(struct ceph_mount_info *cmount, const char *path_list);\n"
},
{
"name": "MountInfo.ReadConfigFile",
"comment": "ReadConfigFile loads the ceph configuration from the specified config file.\n\nImplements:\n int ceph_conf_read_file(struct ceph_mount_info *cmount, const char *path_list);\n"
},
{
"name": "MountInfo.ParseConfigArgv",
"comment": "ParseConfigArgv configures the mount using a unix style command line\nargument vector.\n\nImplements:\n int ceph_conf_parse_argv(struct ceph_mount_info *cmount, int argc, const char **argv);\n"
},
{
"name": "MountInfo.ParseDefaultConfigEnv",
"comment": "ParseDefaultConfigEnv configures the mount from the default Ceph\nenvironment variable CEPH_ARGS.\n\nImplements:\n int ceph_conf_parse_env(struct ceph_mount_info *cmount, const char *var);\n"
},
{
"name": "MountInfo.SetConfigOption",
"comment": "SetConfigOption sets the value of the configuration option identified by\nthe given name.\n\nImplements:\n int ceph_conf_set(struct ceph_mount_info *cmount, const char *option, const char *value);\n"
},
{
"name": "MountInfo.GetConfigOption",
"comment": "GetConfigOption returns the value of the Ceph configuration option\nidentified by the given name.\n\nImplements:\n int ceph_conf_get(struct ceph_mount_info *cmount, const char *option, char *buf, size_t len);\n"
},
{
"name": "MountInfo.Init",
"comment": "Init the file system client without actually mounting the file system.\n\nImplements:\n int ceph_init(struct ceph_mount_info *cmount);\n"
},
{
"name": "MountInfo.Mount",
"comment": "Mount the file system, establishing a connection capable of I/O.\n\nImplements:\n int ceph_mount(struct ceph_mount_info *cmount, const char *root);\n"
},
{
"name": "MountInfo.MountWithRoot",
"comment": "MountWithRoot mounts the file system using the path provided for the root of\nthe mount. This establishes a connection capable of I/O.\n\nImplements:\n int ceph_mount(struct ceph_mount_info *cmount, const char *root);\n"
},
{
"name": "MountInfo.Unmount",
"comment": "Unmount the file system.\n\nImplements:\n int ceph_unmount(struct ceph_mount_info *cmount);\n"
},
{
"name": "MountInfo.Release",
"comment": "Release destroys the mount handle.\n\nImplements:\n int ceph_release(struct ceph_mount_info *cmount);\n"
},
{
"name": "MountInfo.SyncFs",
"comment": "SyncFs synchronizes all filesystem data to persistent media.\n"
},
{
"name": "MountInfo.IsMounted",
"comment": "IsMounted checks mount status.\n"
},
{
"name": "MountInfo.MdsCommand",
"comment": "MdsCommand sends commands to the specified MDS.\n"
},
{
"name": "MountInfo.MdsCommandWithInputBuffer",
"comment": "MdsCommandWithInputBuffer sends commands to the specified MDS, with an input\nbuffer.\n"
},
{
"name": "MountInfo.GetFsCid",
"comment": "GetFsCid returns the cluster ID for a mounted ceph file system.\nIf the object does not refer to a mounted file system, an error\nwill be returned.\n\nNote:\n Only supported in Ceph Nautilus and newer.\n\nImplements:\n int64_t ceph_get_fs_cid(struct ceph_mount_info *cmount);\n"
},
{
"name": "MountInfo.OpenDir",
"comment": "OpenDir returns a new Directory handle open for I/O.\n\nImplements:\n int ceph_opendir(struct ceph_mount_info *cmount, const char *name, struct ceph_dir_result **dirpp);\n"
},
{
"name": "Directory.Close",
"comment": "Close the open directory handle.\n\nImplements:\n int ceph_closedir(struct ceph_mount_info *cmount, struct ceph_dir_result *dirp);\n"
},
{
"name": "DirEntry.Name",
"comment": "Name returns the directory entry's name.\n"
},
{
"name": "DirEntry.Inode",
"comment": "Inode returns the directory entry's inode number.\n"
},
{
"name": "DirEntry.DType",
"comment": "DType returns the Directory-entry's Type, indicating if it\nis a regular file, directory, etc.\nDType may be unknown and thus require an additional call\n(stat for example) if Unknown.\n"
},
{
"name": "DirEntryPlus.Statx",
"comment": "Statx returns cached stat metadata for the directory entry.\nThis call does not incur an actual file system stat.\n"
},
{
"name": "Directory.ReadDir",
"comment": "ReadDir reads a single directory entry from the open Directory.\nA nil DirEntry pointer will be returned when the Directory stream has been\nexhausted.\n\nImplements:\n int ceph_readdir_r(struct ceph_mount_info *cmount, struct ceph_dir_result *dirp, struct dirent *de);\n"
},
{
"name": "Directory.ReadDirPlus",
"comment": "ReadDirPlus reads a single directory entry and stat information from the\nopen Directory.\nA nil DirEntryPlus pointer will be returned when the Directory stream has\nbeen exhausted.\nSee Statx for a description of the wants and flags parameters.\n\nImplements:\n int ceph_readdirplus_r(struct ceph_mount_info *cmount, struct ceph_dir_result *dirp, struct dirent *de,\n struct ceph_statx *stx, unsigned want, unsigned flags, struct Inode **out);\n"
},
{
"name": "Directory.RewindDir",
"comment": "RewindDir sets the directory stream to the beginning of the directory.\n\nImplements:\n void ceph_rewinddir(struct ceph_mount_info *cmount, struct ceph_dir_result *dirp);\n"
},
{
"name": "MountInfo.Open",
"comment": "Open a file at the given path. The flags are the same os flags as\na local open call. Mode is the same mode bits as a local open call.\n\nImplements:\n int ceph_open(struct ceph_mount_info *cmount, const char *path, int flags, mode_t mode);\n"
},
{
"name": "File.Close",
"comment": "Close the file.\n\nImplements:\n int ceph_close(struct ceph_mount_info *cmount, int fd);\n"
},
{
"name": "File.Read",
"comment": "Read data from file. Up to len(buf) bytes will be read from the file.\nThe number of bytes read will be returned.\nWhen nothing is left to read from the file, Read returns, 0, io.EOF.\n"
},
{
"name": "File.ReadAt",
"comment": "ReadAt will read data from the file starting at the given offset.\nUp to len(buf) bytes will be read from the file.\nThe number of bytes read will be returned.\nWhen nothing is left to read from the file, ReadAt returns, 0, io.EOF.\n"
},
{
"name": "File.Preadv",
"comment": "Preadv will read data from the file, starting at the given offset,\ninto the byte-slice data buffers sequentially.\nThe number of bytes read will be returned.\nWhen nothing is left to read from the file the return values will be:\n0, io.EOF.\n\nImplements:\n int ceph_preadv(struct ceph_mount_info *cmount, int fd, const struct iovec *iov, int iovcnt,\n int64_t offset);\n"
},
{
"name": "File.Write",
"comment": "Write data from buf to the file.\nThe number of bytes written is returned.\n"
},
{
"name": "File.WriteAt",
"comment": "WriteAt writes data from buf to the file at the specified offset.\nThe number of bytes written is returned.\n"
},
{
"name": "File.Pwritev",
"comment": "Pwritev writes data from the slice of byte-slice buffers to the file at the\nspecified offset.\nThe number of bytes written is returned.\n\nImplements:\n int ceph_pwritev(struct ceph_mount_info *cmount, int fd, const struct iovec *iov, int iovcnt,\n int64_t offset);\n"
},
{
"name": "File.Seek",
"comment": "Seek will reposition the file stream based on the given offset.\n\nImplements:\n int64_t ceph_lseek(struct ceph_mount_info *cmount, int fd, int64_t offset, int whence);\n"
},
{
"name": "File.Fchmod",
"comment": "Fchmod changes the mode bits (permissions) of a file.\n\nImplements:\n int ceph_fchmod(struct ceph_mount_info *cmount, int fd, mode_t mode);\n"
},
{
"name": "File.Fchown",
"comment": "Fchown changes the ownership of a file.\n\nImplements:\n int ceph_fchown(struct ceph_mount_info *cmount, int fd, int uid, int gid);\n"
},
{
"name": "File.Fstatx",
"comment": "Fstatx returns information about an open file.\n\nImplements:\n int ceph_fstatx(struct ceph_mount_info *cmount, int fd, struct ceph_statx *stx,\n unsigned int want, unsigned int flags);\n"
},
{
"name": "File.Fallocate",
"comment": "Fallocate preallocates or releases disk space for the file for the\ngiven byte range, the flags determine the operation to be performed\non the given range.\n\nImplements:\n\tint ceph_fallocate(struct ceph_mount_info *cmount, int fd, int mode,\n\t\t\t\t\t\t\t\t int64_t offset, int64_t length);\n"
},
{
"name": "File.Flock",
"comment": "Flock applies or removes an advisory lock on an open file.\nParam owner is the user-supplied identifier for the owner of the\nlock, must be an arbitrary integer.\n\nImplements:\n int ceph_flock(struct ceph_mount_info *cmount, int fd, int operation, uint64_t owner);\n"
},
{
"name": "File.Fsync",
"comment": "Fsync ensures the file content that may be cached is committed to stable\nstorage.\nPass SyncAll to have this call behave like standard fsync and synchronize\nall data and metadata.\nPass SyncDataOnly to have this call behave more like fdatasync (on linux).\n\nImplements:\n int ceph_fsync(struct ceph_mount_info *cmount, int fd, int syncdataonly);\n"
},
{
"name": "File.Sync",
"comment": "Sync ensures the file content that may be cached is committed to stable\nstorage.\nSync behaves like Go's os package File.Sync function.\n"
},
{
"name": "File.Truncate",
"comment": "Truncate sets the size of the open file.\nNOTE: In some versions of ceph a bug exists where calling ftruncate on a\nfile open for read-only is permitted. The go-ceph wrapper does no additional\nchecking and will inherit the issue on affected versions of ceph. Please\nrefer to the following issue for details:\nhttps://tracker.ceph.com/issues/48202\n\nImplements:\n int ceph_ftruncate(struct ceph_mount_info *cmount, int fd, int64_t size);\n"
},
{
"name": "File.SetXattr",
"comment": "SetXattr sets an extended attribute on the open file.\n\nNOTE: Attempting to set an xattr value with an empty value may cause the\nxattr to be unset on some older versions of ceph.\nPlease refer to https://tracker.ceph.com/issues/46084\n\nImplements:\n int ceph_fsetxattr(struct ceph_mount_info *cmount, int fd, const char *name,\n const void *value, size_t size, int flags);\n"
},
{
"name": "File.GetXattr",
"comment": "GetXattr gets an extended attribute from the open file.\n\nImplements:\n int ceph_fgetxattr(struct ceph_mount_info *cmount, int fd, const char *name,\n void *value, size_t size);\n"
},
{
"name": "File.ListXattr",
"comment": "ListXattr returns a slice containing strings for the name of each xattr set\non the file.\n\nImplements:\n int ceph_flistxattr(struct ceph_mount_info *cmount, int fd, char *list, size_t size);\n"
},
{
"name": "File.RemoveXattr",
"comment": "RemoveXattr removes the named xattr from the open file.\n\nImplements:\n int ceph_fremovexattr(struct ceph_mount_info *cmount, int fd, const char *name);\n"
},
{
"name": "MountInfo.SetMountPerms",
"comment": "SetMountPerms applies the given UserPerm to the mount object, which it will\nthen use to define the connection's ownership credentials.\nThis function must be called after Init but before Mount.\n\nImplements:\n int ceph_mount_perms_set(struct ceph_mount_info *cmount, UserPerm *perm);\n"
},
{
"name": "MountInfo.CurrentDir",
"comment": "CurrentDir gets the current working directory.\n"
},
{
"name": "MountInfo.ChangeDir",
"comment": "ChangeDir changes the current working directory.\n"
},
{
"name": "MountInfo.MakeDir",
"comment": "MakeDir creates a directory.\n"
},
{
"name": "MountInfo.RemoveDir",
"comment": "RemoveDir removes a directory.\n"
},
{
"name": "MountInfo.Unlink",
"comment": "Unlink removes a file.\n\nImplements:\n int ceph_unlink(struct ceph_mount_info *cmount, const char *path);\n"
},
{
"name": "MountInfo.Link",
"comment": "Link creates a new link to an existing file.\n\nImplements:\n int ceph_link (struct ceph_mount_info *cmount, const char *existing, const char *newname);\n"
},
{
"name": "MountInfo.Symlink",
"comment": "Symlink creates a symbolic link to an existing path.\n\nImplements:\n int ceph_symlink(struct ceph_mount_info *cmount, const char *existing, const char *newname);\n"
},
{
"name": "MountInfo.Readlink",
"comment": "Readlink returns the value of a symbolic link.\n\nImplements:\n int ceph_readlink(struct ceph_mount_info *cmount, const char *path, char *buf, int64_t size);\n"
},
{
"name": "MountInfo.Statx",
"comment": "Statx returns information about a file/directory.\n\nImplements:\n int ceph_statx(struct ceph_mount_info *cmount, const char *path, struct ceph_statx *stx,\n unsigned int want, unsigned int flags);\n"
},
{
"name": "MountInfo.Rename",
"comment": "Rename a file or directory.\n\nImplements:\n int ceph_rename(struct ceph_mount_info *cmount, const char *from, const char *to);\n"
},
{
"name": "MountInfo.Truncate",
"comment": "Truncate sets the size of the specified file.\n\nImplements:\n int ceph_truncate(struct ceph_mount_info *cmount, const char *path, int64_t size);\n"
},
{
"name": "MountInfo.SetXattr",
"comment": "SetXattr sets an extended attribute on the file at the supplied path.\n\nNOTE: Attempting to set an xattr value with an empty value may cause\nthe xattr to be unset. Please refer to https://tracker.ceph.com/issues/46084\n\nImplements:\n int ceph_setxattr(struct ceph_mount_info *cmount, const char *path, const char *name,\n const void *value, size_t size, int flags);\n"
},
{
"name": "MountInfo.GetXattr",
"comment": "GetXattr gets an extended attribute from the file at the supplied path.\n\nImplements:\n int ceph_getxattr(struct ceph_mount_info *cmount, const char *path, const char *name,\n void *value, size_t size);\n"
},
{
"name": "MountInfo.ListXattr",
"comment": "ListXattr returns a slice containing strings for the name of each xattr set\non the file at the supplied path.\n\nImplements:\n int ceph_listxattr(struct ceph_mount_info *cmount, const char *path, char *list, size_t size);\n"
},
{
"name": "MountInfo.RemoveXattr",
"comment": "RemoveXattr removes the named xattr from the open file.\n\nImplements:\n int ceph_removexattr(struct ceph_mount_info *cmount, const char *path, const char *name);\n"
},
{
"name": "MountInfo.LsetXattr",
"comment": "LsetXattr sets an extended attribute on the file at the supplied path.\n\nNOTE: Attempting to set an xattr value with an empty value may cause\nthe xattr to be unset. Please refer to https://tracker.ceph.com/issues/46084\n\nImplements:\n int ceph_lsetxattr(struct ceph_mount_info *cmount, const char *path, const char *name,\n const void *value, size_t size, int flags);\n"
},
{
"name": "MountInfo.LgetXattr",
"comment": "LgetXattr gets an extended attribute from the file at the supplied path.\n\nImplements:\n int ceph_lgetxattr(struct ceph_mount_info *cmount, const char *path, const char *name,\n void *value, size_t size);\n"
},
{
"name": "MountInfo.LlistXattr",
"comment": "LlistXattr returns a slice containing strings for the name of each xattr set\non the file at the supplied path.\n\nImplements:\n int ceph_llistxattr(struct ceph_mount_info *cmount, const char *path, char *list, size_t size);\n"
},
{
"name": "MountInfo.LremoveXattr",
"comment": "LremoveXattr removes the named xattr from the open file.\n\nImplements:\n int ceph_lremovexattr(struct ceph_mount_info *cmount, const char *path, const char *name);\n"
},
{
"name": "MountInfo.Chmod",
"comment": "Chmod changes the mode bits (permissions) of a file/directory.\n"
},
{
"name": "MountInfo.Chown",
"comment": "Chown changes the ownership of a file/directory.\n"
},
{
"name": "MountInfo.Lchown",
"comment": "Lchown changes the ownership of a file/directory/etc without following symbolic links\n"
},
{
"name": "MountInfo.StatFS",
"comment": "StatFS returns file system wide statistics.\nNOTE: Many of the statistics fields reported by ceph are not filled in with\nuseful values.\n\nImplements:\n int ceph_statfs(struct ceph_mount_info *cmount, const char *path, struct statvfs *stbuf);\n"
},
{
"name": "NewUserPerm",
"comment": "NewUserPerm creates a UserPerm pointer and the underlying ceph resources.\n\nImplements:\n UserPerm *ceph_userperm_new(uid_t uid, gid_t gid, int ngids, gid_t *gidlist);\n"
},
{
"name": "UserPerm.Destroy",
"comment": "Destroy will explicitly free ceph resources associated with the UserPerm.\n\nImplements:\n void ceph_userperm_destroy(UserPerm *perm);\n"
},
{
"name": "MountInfo.SelectFilesystem",
"comment": "SelectFilesystem selects a file system to be mounted. If the ceph cluster\nsupports more than one cephfs this optional function selects which one to\nuse. Can only be called prior to calling Mount. The name of the file system\nis not validated by this call - if the supplied file system name is not\nvalid then only the subsequent mount call will fail.\n\nImplements:\n\n\tint ceph_select_filesystem(struct ceph_mount_info *cmount, const char *fs_name);\n",
"added_in_version": "v0.20.0",
"became_stable_version": "v0.22.0"
},
{
"name": "MountInfo.MakeDirs",
"comment": "MakeDirs creates multiple directories at once.\n\nImplements:\n\n\tint ceph_mkdirs(struct ceph_mount_info *cmount, const char *path, mode_t mode);\n",
"added_in_version": "v0.21.0",
"became_stable_version": "v0.23.0"
},
{
"name": "MountInfo.Mknod",
"comment": "Mknod creates a regular, block or character special file.\n\nImplements:\n\n\tint ceph_mknod(struct ceph_mount_info *cmount, const char *path, mode_t mode,\n\t\t\t\t dev_t rdev);\n",
"added_in_version": "v0.22.0",
"became_stable_version": "v0.24.0"
},
{
"name": "MountInfo.Futime",
"comment": "Futime changes file/directory last access and modification times.\n\nImplements:\n\n\tint ceph_futime(struct ceph_mount_info *cmount, int fd, struct utimbuf *buf);\n",
"added_in_version": "v0.22.0",
"became_stable_version": "v0.24.0"
},
{
"name": "MountInfo.Futimens",
"comment": "Futimens changes file/directory last access and modification times, here times param\nis an array of Timespec struct having length 2, where times[0] represents the access time\nand times[1] represents the modification time.\n\nImplements:\n\n\tint ceph_futimens(struct ceph_mount_info *cmount, int fd, struct timespec times[2]);\n",
"added_in_version": "v0.22.0",
"became_stable_version": "v0.24.0"
},
{
"name": "MountInfo.Futimes",
"comment": "Futimes changes file/directory last access and modification times, here times param\nis an array of Timeval struct type having length 2, where times[0] represents the access time\nand times[1] represents the modification time.\n\nImplements:\n\n\tint ceph_futimes(struct ceph_mount_info *cmount, int fd, struct timeval times[2]);\n",
"added_in_version": "v0.22.0",
"became_stable_version": "v0.24.0"
},
{
"name": "Wrap",
"comment": "Wrap a CephFS Mount object into a new type that is compatible with Go's io.FS\ninterface. CephFS Mounts are not compatible with io.FS directly because the\ngo-ceph library predates the addition of io.FS to Go as well as the fact that\ngo-ceph attempts to provide APIs that match the cephfs libraries first and\nforemost.\n",
"added_in_version": "v0.33.0",
"became_stable_version": "v0.35.0"
},
{
"name": "MountWrapper.SetTracing",
"comment": "SetTracing configures the MountWrapper and objects connected to it for debug\ntracing. True enables tracing and false disables it. A debug logging\nfunction must also be set using go-ceph's common.log.SetDebugf function.\n",
"added_in_version": "v0.33.0",
"became_stable_version": "v0.35.0"
},
{
"name": "MountWrapper.Open",
"comment": "Open opens the named file. This may be either a regular file or a directory.\nDirectories opened with this function will return object compatible with the\nio.ReadDirFile interface.\n",
"added_in_version": "v0.33.0",
"became_stable_version": "v0.35.0"
},
{
"name": "File.Fd",
"comment": "Fd returns the integer open file descriptor in cephfs.\nNOTE: It doesn't make sense to consume the returned integer fd anywhere\noutside CephFS and is recommended not to do so given the undefined behaviour.\nAlso, as seen with the Go standard library, the fd is only valid as long as\nthe corresponding File object is intact in the sense that an fd from a closed\nFile object is invalid.\n",
"added_in_version": "v0.35.0",
"became_stable_version": "v0.37.0"
},
{
"name": "File.Futime",
"comment": "Futime changes file/directory last access and modification times.\n\nImplements:\n\n\tint ceph_futime(struct ceph_mount_info *cmount, int fd, struct utimbuf *buf);\n",
"added_in_version": "v0.35.0",
"became_stable_version": "v0.37.0"
},
{
"name": "File.Futimens",
"comment": "Futimens changes file/directory last access and modification times, here times param\nis an array of Timespec struct having length 2, where times[0] represents the access time\nand times[1] represents the modification time.\n\nImplements:\n\n\tint ceph_futimens(struct ceph_mount_info *cmount, int fd, struct timespec times[2]);\n",
"added_in_version": "v0.35.0",
"became_stable_version": "v0.37.0"
},
{
"name": "File.Futimes",
"comment": "Futimes changes file/directory last access and modification times, here times param\nis an array of Timeval struct type having length 2, where times[0] represents the access time\nand times[1] represents the modification time.\n\nImplements:\n\n\tint ceph_futimes(struct ceph_mount_info *cmount, int fd, struct timeval times[2]);\n",
"added_in_version": "v0.35.0",
"became_stable_version": "v0.37.0"
},
{
"name": "OpenSnapDiff",
"comment": "OpenSnapDiff opens a snapshot diff stream to get snapshots delta\nand returns a SnapDiffInfo struct containing the diff information.\n\nImplements:\n\n\tint ceph_open_snapdiff(struct ceph_mount_info* cmount,\n\t const char* root_path,\n\t const char* rel_path,\n\t const char* snap1,\n\t const char* snap2,\n\t struct ceph_snapdiff_info* out);\n",
"added_in_version": "v0.37.0",
"became_stable_version": "v0.39.0"
},
{
"name": "SnapDiffInfo.Readdir",
"comment": "Readdir returns the next entry in the snapshot diff stream.\nIf there are no more entries, it returns (nil, nil).\n\nImplements:\n\n\tint ceph_readdir_snapdiff(struct ceph_snapdiff_info* snapdiff,\n\t struct ceph_snapdiff_entry_t* out);\n",
"added_in_version": "v0.37.0",
"became_stable_version": "v0.39.0"
},
{
"name": "SnapDiffInfo.Close",
"comment": "Close closes the snapshot diff handle.\n\nImplements:\n\n\tint ceph_close_snapdiff(struct ceph_snapdiff_info* snapdiff);\n",
"added_in_version": "v0.37.0",
"became_stable_version": "v0.39.0"
}
],
"preview_api": [
{
"name": "FileBlockDiffInit",
"comment": "FileBlockDiffInit initializes the block diff stream to get file block deltas.\nIt takes the mount handle, root path, relative path, snapshot names and returns\na FileBlockDiffInfo struct that contains the block diff stream handle.\n\nImplements:\n\n\t int ceph_file_blockdiff_init(\n\t\t struct ceph_mount_info* cmount,\n\t\t\tconst char* root_path,\n\t\t\tconst char* rel_path,\n\t\t\tconst char* snap1,\n\t\t\tconst char* snap2,\n\t\t\tstruct ceph_file_blockdiff_info* out_info);\n",
"added_in_version": "v0.38.0",
"expected_stable_version": "v0.40.0"
},
{
"name": "FileBlockDiffInfo.Close",
"comment": "Close closes the block diff stream.\n\nImplements:\n\nint ceph_file_blockdiff_finish(struct ceph_file_blockdiff_info* info);\n",
"added_in_version": "v0.38.0",
"expected_stable_version": "v0.40.0"
},
{
"name": "FileBlockDiffInfo.More",
"comment": "More returns true if there are more entries to read in the block diff stream.\n",
"added_in_version": "v0.38.0",
"expected_stable_version": "v0.40.0"
},
{
"name": "FileBlockDiffInfo.Read",
"comment": "Read retrieves the next set of file block diffs.\nIt returns\n - FileBlockDiffChangedBlocks struct that contains the number of blocks and list of ChangedBlocks and error if any.\n\nImplements:\n\n\tint ceph_file_blockdiff(struct ceph_file_blockdiff_info* info,\n\t\t\t\t\t \t\tstruct ceph_file_blockdiff_changedblocks* blocks);\n",
"added_in_version": "v0.38.0",
"expected_stable_version": "v0.40.0"
}
]
},
"cephfs/admin": {
"stable_api": [
{
"name": "quotaSizePlaceholder.UnmarshalJSON"
},
{
"name": "FSAdmin.CloneSubVolumeSnapshot",
"comment": "CloneSubVolumeSnapshot clones the specified snapshot from the subvolume.\nThe group, subvolume, and snapshot parameters specify the source for the\nclone, and only the source. Additional properties of the clone, such as the\nsubvolume group that the clone will be created in and the pool layout may be\nspecified using the clone options parameter.\n\nSimilar To:\n ceph fs subvolume snapshot clone <volume> --group_name=<group> <subvolume> <snapshot> <name> [...]\n"
},
{
"name": "FSAdmin.CloneStatus",
"comment": "CloneStatus returns data reporting the status of a subvolume clone.\n\nSimilar To:\n ceph fs clone status <volume> --group_name=<group> <clone>\n"
},
{
"name": "FSAdmin.CancelClone",
"comment": "CancelClone stops the background processes that populate a clone.\nCancelClone does not delete the clone.\n\nSimilar To:\n ceph fs clone cancel <volume> --group_name=<group> <clone>\n"
},
{
"name": "NewFromConn",
"comment": "NewFromConn creates an FSAdmin management object from a preexisting\nrados connection. The existing connection can be rados.Conn or any\ntype implementing the RadosCommander interface. This may be useful\nif the calling layer needs to inject additional logging, error handling,\nfault injection, etc.\n"
},
{
"name": "FSAdmin.EnableModule",
"comment": "EnableModule will enable the specified manager module.\n\nSimilar To:\n ceph mgr module enable <module> [--force]\n"
},
{
"name": "FSAdmin.DisableModule",
"comment": "DisableModule will disable the specified manager module.\n\nSimilar To:\n ceph mgr module disable <module>\n"
},
{
"name": "FSAdmin.EnableMirroringModule",
"comment": "EnableMirroringModule will enable the mirroring module for cephfs.\n\nSimilar To:\n ceph mgr module enable mirroring [--force]\n"
},
{
"name": "FSAdmin.DisableMirroringModule",
"comment": "DisableMirroringModule will disable the mirroring module for cephfs.\n\nSimilar To:\n ceph mgr module disable mirroring\n"
},
{
"name": "FSAdmin.SnapshotMirror",
"comment": "SnapshotMirror returns a new SnapshotMirrorAdmin to be used for the\nadministration of snapshot mirroring features.\n"
},
{
"name": "SnapshotMirrorAdmin.Enable",
"comment": "Enable snapshot mirroring for the given file system.\n\nSimilar To:\n ceph fs snapshot mirror enable <fs_name>\n"
},
{
"name": "SnapshotMirrorAdmin.Disable",
"comment": "Disable snapshot mirroring for the given file system.\n\nSimilar To:\n ceph fs snapshot mirror disable <fs_name>\n"
},
{
"name": "SnapshotMirrorAdmin.Add",
"comment": "Add a path in the file system to be mirrored.\n\nSimilar To:\n ceph fs snapshot mirror add <fs_name> <path>\n"
},
{
"name": "SnapshotMirrorAdmin.Remove",
"comment": "Remove a path in the file system from mirroring.\n\nSimilar To:\n ceph fs snapshot mirror remove <fs_name> <path>\n"
},
{
"name": "SnapshotMirrorAdmin.CreatePeerBootstrapToken",
"comment": "CreatePeerBootstrapToken returns a token that can be used to create\na peering association between this site an another site.\n\nSimilar To:\n ceph fs snapshot mirror peer_bootstrap create <fs_name> <client_entity> <site-name>\n"
},
{
"name": "SnapshotMirrorAdmin.ImportPeerBoostrapToken",
"comment": "ImportPeerBoostrapToken creates an association between another site, one\nthat has provided a token, with the current site.\n\nSimilar To:\n ceph fs snapshot mirror peer_bootstrap import <fs_name> <token>\n"
},
{
"name": "SnapshotMirrorAdmin.DaemonStatus",
"comment": "DaemonStatus returns information on the status of cephfs mirroring daemons\nassociated with the given file system.\n\nSimilar To:\n ceph fs snapshot mirror daemon status <fs_name>\n"
},
{
"name": "SnapshotMirrorAdmin.PeerList",
"comment": "PeerList returns information about peers associated with the given file system.\n\nSimilar To:\n ceph fs snapshot mirror peer_list <fs_name>\n"
},
{
"name": "FSAdmin.CreateSubVolume",
"comment": "CreateSubVolume sends a request to create a CephFS subvolume in a volume,\nbelonging to an optional subvolume group.\n\nSimilar To:\n ceph fs subvolume create <volume> --group-name=<group> <name> ...\n"
},
{
"name": "FSAdmin.ListSubVolumes",
"comment": "ListSubVolumes returns a list of subvolumes belonging to the volume and\noptional subvolume group.\n\nSimilar To:\n ceph fs subvolume ls <volume> --group-name=<group>\n"
},
{
"name": "FSAdmin.RemoveSubVolume",
"comment": "RemoveSubVolume will delete a CephFS subvolume in a volume and optional\nsubvolume group.\n\nSimilar To:\n ceph fs subvolume rm <volume> --group-name=<group> <name>\n"
},
{
"name": "FSAdmin.ForceRemoveSubVolume",
"comment": "ForceRemoveSubVolume will delete a CephFS subvolume in a volume and optional\nsubvolume group.\n\nSimilar To:\n ceph fs subvolume rm <volume> --group-name=<group> <name> --force\n"
},
{
"name": "FSAdmin.RemoveSubVolumeWithFlags",
"comment": "RemoveSubVolumeWithFlags will delete a CephFS subvolume in a volume and\noptional subvolume group. This function accepts a SubVolRmFlags type that\ncan be used to specify flags that modify the operations behavior.\nEquivalent to RemoveSubVolume with no flags set.\nEquivalent to ForceRemoveSubVolume if only the \"Force\" flag is set.\n\nSimilar To:\n ceph fs subvolume rm <volume> --group-name=<group> <name> [...flags...]\n"
},
{
"name": "FSAdmin.ResizeSubVolume",
"comment": "ResizeSubVolume will resize a CephFS subvolume. The newSize value may be a\nByteCount or the special Infinite constant. Setting noShrink to true will\nprevent reducing the size of the volume below the current used size.\n\nSimilar To:\n ceph fs subvolume resize <volume> --group-name=<group> <name> ...\n"
},
{
"name": "FSAdmin.SubVolumePath",
"comment": "SubVolumePath returns the path to the subvolume from the root of the file system.\n\nSimilar To:\n ceph fs subvolume getpath <volume> --group-name=<group> <name>\n"
},
{
"name": "FSAdmin.SubVolumeInfo",
"comment": "SubVolumeInfo returns information about the specified subvolume.\n\nSimilar To:\n ceph fs subvolume info <volume> --group-name=<group> <name>\n"
},
{
"name": "FSAdmin.CreateSubVolumeSnapshot",
"comment": "CreateSubVolumeSnapshot creates a new snapshot from the source subvolume.\n\nSimilar To:\n ceph fs subvolume snapshot create <volume> --group-name=<group> <source> <name>\n"
},
{
"name": "FSAdmin.RemoveSubVolumeSnapshot",
"comment": "RemoveSubVolumeSnapshot removes the specified snapshot from the subvolume.\n\nSimilar To:\n ceph fs subvolume snapshot rm <volume> --group-name=<group> <subvolume> <name>\n"
},
{
"name": "FSAdmin.ForceRemoveSubVolumeSnapshot",
"comment": "ForceRemoveSubVolumeSnapshot removes the specified snapshot from the subvolume.\n\nSimilar To:\n ceph fs subvolume snapshot rm <volume> --group-name=<group> <subvolume> <name> --force\n"
},
{
"name": "FSAdmin.ListSubVolumeSnapshots",
"comment": "ListSubVolumeSnapshots returns a listing of snapshots for a given subvolume.\n\nSimilar To:\n ceph fs subvolume snapshot ls <volume> --group-name=<group> <name>\n"
},
{
"name": "FSAdmin.SubVolumeSnapshotInfo",
"comment": "SubVolumeSnapshotInfo returns information about the specified subvolume snapshot.\n\nSimilar To:\n ceph fs subvolume snapshot info <volume> --group-name=<group> <subvolume> <name>\n"
},
{
"name": "FSAdmin.ProtectSubVolumeSnapshot",
"comment": "ProtectSubVolumeSnapshot protects the specified snapshot.\n\nSimilar To:\n ceph fs subvolume snapshot protect <volume> --group-name=<group> <subvolume> <name>\n"
},
{
"name": "FSAdmin.UnprotectSubVolumeSnapshot",
"comment": "UnprotectSubVolumeSnapshot removes protection from the specified snapshot.\n\nSimilar To:\n ceph fs subvolume snapshot unprotect <volume> --group-name=<group> <subvolume> <name>\n"
},
{
"name": "FSAdmin.CreateSubVolumeGroup",
"comment": "CreateSubVolumeGroup sends a request to create a subvolume group in a volume.\n\nSimilar To:\n ceph fs subvolumegroup create <volume> <group_name> ...\n"
},
{
"name": "FSAdmin.ListSubVolumeGroups",
"comment": "ListSubVolumeGroups returns a list of subvolume groups belonging to the\nspecified volume.\n\nSimilar To:\n ceph fs subvolumegroup ls cephfs <volume>\n"
},
{
"name": "FSAdmin.RemoveSubVolumeGroup",
"comment": "RemoveSubVolumeGroup will delete a subvolume group in a volume.\nSimilar To:\n ceph fs subvolumegroup rm <volume> <group_name>\n"
},
{
"name": "FSAdmin.ForceRemoveSubVolumeGroup",
"comment": "ForceRemoveSubVolumeGroup will delete a subvolume group in a volume.\nSimilar To:\n ceph fs subvolumegroup rm <volume> <group_name> --force\n"
},
{
"name": "FSAdmin.SubVolumeGroupPath",
"comment": "SubVolumeGroupPath returns the path to the subvolume from the root of the\nfile system.\n\nSimilar To:\n ceph fs subvolumegroup getpath <volume> <group_name>\n"
},
{
"name": "TimeStamp.String",
"comment": "String returns a string representing the date+time as presented\nby ceph.\n"
},
{
"name": "TimeStamp.UnmarshalJSON",
"comment": "UnmarshalJSON implements the json Unmarshaler interface.\n"
},
{
"name": "FSAdmin.ListVolumes",
"comment": "ListVolumes return a list of volumes in this Ceph cluster.\n\nSimilar To:\n ceph fs volume ls\n"
},
{
"name": "FSAdmin.ListFileSystems",
"comment": "ListFileSystems lists file systems along with the pools occupied by those\nfile systems.\n\nSimilar To:\n ceph fs ls\n"
},
{
"name": "FSAdmin.EnumerateVolumes",
"comment": "EnumerateVolumes returns a list of volume-name volume-id pairs.\n"
},
{
"name": "FSAdmin.VolumeStatus",
"comment": "VolumeStatus returns a VolumeStatus object for the given volume name.\n\nSimilar To:\n ceph fs status cephfs <name>\n"
},
{
"name": "CloneStatus.GetFailure",
"comment": "GetFailure returns details about the CloneStatus when in CloneFailed state.\n\nSimilar To:\n Reading the .failure object from the JSON returned by \"ceph fs subvolume\n snapshot clone\"\n",
"added_in_version": "v0.16.0",
"became_stable_version": "v0.18.0"
},
{
"name": "FSAdmin.GetMetadata",
"comment": "GetMetadata gets custom metadata on the subvolume in a volume belonging to\nan optional subvolume group based on provided key name.\n\nSimilar To:\n\n\tceph fs subvolume metadata get <vol_name> <sub_name> <key_name> [--group_name <subvol_group_name>]\n",
"added_in_version": "v0.20.0",
"became_stable_version": "v0.22.0"
},
{
"name": "FSAdmin.SetMetadata",
"comment": "SetMetadata sets custom metadata on the subvolume in a volume belonging to\nan optional subvolume group as a key-value pair.\n\nSimilar To:\n\n\tceph fs subvolume metadata set <vol_name> <sub_name> <key_name> <value> [--group_name <subvol_group_name>]\n",
"added_in_version": "v0.20.0",
"became_stable_version": "v0.22.0"
},
{
"name": "FSAdmin.RemoveMetadata",
"comment": "RemoveMetadata removes custom metadata set on the subvolume in a volume\nbelonging to an optional subvolume group using the metadata key.\n\nSimilar To:\n\n\tceph fs subvolume metadata rm <vol_name> <sub_name> <key_name> [--group_name <subvol_group_name>]\n",
"added_in_version": "v0.20.0",
"became_stable_version": "v0.22.0"
},
{
"name": "FSAdmin.ForceRemoveMetadata",
"comment": "ForceRemoveMetadata attempt to forcefully remove custom metadata set on\nthe subvolume in a volume belonging to an optional subvolume group using\nthe metadata key.\n\nSimilar To:\n\n\tceph fs subvolume metadata rm <vol_name> <sub_name> <key_name> [--group_name <subvol_group_name>] --force\n",
"added_in_version": "v0.20.0",
"became_stable_version": "v0.22.0"
},
{
"name": "FSAdmin.ListMetadata",
"comment": "ListMetadata lists custom metadata (key-value pairs) set on the subvolume\nin a volume belonging to an optional subvolume group.\n\nSimilar To:\n\n\tceph fs subvolume metadata ls <vol_name> <sub_name> [--group_name <subvol_group_name>]\n",
"added_in_version": "v0.20.0",
"became_stable_version": "v0.22.0"
},
{
"name": "FSAdmin.GetSnapshotMetadata",
"comment": "GetSnapshotMetadata gets custom metadata on the subvolume snapshot in a\nvolume belonging to an optional subvolume group based on provided key name.\n\nSimilar To:\n\n\tceph fs subvolume snapshot metadata get <vol_name> <sub_name> <snap_name> <key_name> [--group_name <subvol_group_name>]\n",
"added_in_version": "v0.20.0",
"became_stable_version": "v0.22.0"
},
{
"name": "FSAdmin.SetSnapshotMetadata",
"comment": "SetSnapshotMetadata sets custom metadata on the subvolume snapshot in a\nvolume belonging to an optional subvolume group as a key-value pair.\n\nSimilar To:\n\n\tceph fs subvolume snapshot metadata set <vol_name> <sub_name> <snap_name> <key_name> <value> [--group_name <subvol_group_name>]\n",
"added_in_version": "v0.20.0",
"became_stable_version": "v0.22.0"
},
{
"name": "FSAdmin.RemoveSnapshotMetadata",
"comment": "RemoveSnapshotMetadata removes custom metadata set on the subvolume\nsnapshot in a volume belonging to an optional subvolume group using the\nmetadata key.\n\nSimilar To:\n\n\tceph fs subvolume snapshot metadata rm <vol_name> <sub_name> <snap_name> <key_name> [--group_name <subvol_group_name>]\n",
"added_in_version": "v0.20.0",
"became_stable_version": "v0.22.0"
},
{
"name": "FSAdmin.ForceRemoveSnapshotMetadata",
"comment": "ForceRemoveSnapshotMetadata attempt to forcefully remove custom metadata\nset on the subvolume snapshot in a volume belonging to an optional\nsubvolume group using the metadata key.\n\nSimilar To:\n\n\tceph fs subvolume snapshot metadata rm <vol_name> <sub_name> <snap_name> <key_name> [--group_name <subvol_group_name>] --force\n",
"added_in_version": "v0.20.0",
"became_stable_version": "v0.22.0"
},
{
"name": "FSAdmin.ListSnapshotMetadata",
"comment": "ListSnapshotMetadata lists custom metadata (key-value pairs) set on the subvolume\nsnapshot in a volume belonging to an optional subvolume group.\n\nSimilar To:\n\n\tceph fs subvolume snapshot metadata ls <vol_name> <sub_name> <snap_name> [--group_name <subvol_group_name>]\n",
"added_in_version": "v0.20.0",
"became_stable_version": "v0.22.0"
},
{
"name": "FSAdmin.PinSubVolume",
"comment": "PinSubVolume pins subvolume to ranks according to policies. A valid pin\nsetting value depends on the type of pin as described in the docs from\nhttps://docs.ceph.com/en/latest/cephfs/multimds/#cephfs-pinning and\nhttps://docs.ceph.com/en/latest/cephfs/multimds/#setting-subtree-partitioning-policies\n\nSimilar To:\n\n\tceph fs subvolume pin <vol_name> <sub_name> <pin_type> <pin_setting>\n",
"added_in_version": "v0.21.0",
"became_stable_version": "v0.23.0"
},
{
"name": "FSAdmin.PinSubVolumeGroup",
"comment": "PinSubVolumeGroup pins subvolume to ranks according to policies. A valid pin\nsetting value depends on the type of pin as described in the docs from\nhttps://docs.ceph.com/en/latest/cephfs/multimds/#cephfs-pinning and\nhttps://docs.ceph.com/en/latest/cephfs/multimds/#setting-subtree-partitioning-policies\n\nSimilar To:\n\n\tceph fs subvolumegroup pin <vol_name> <group_name> <pin_type> <pin_setting>\n",
"added_in_version": "v0.21.0",
"became_stable_version": "v0.23.0"
},
{
"name": "FSAdmin.FetchVolumeInfo",
"comment": "FetchVolumeInfo fetches the information of a CephFS volume.\n\nSimilar To:\n\n\tceph fs volume info <vol_name>\n",
"added_in_version": "v0.21.0",
"became_stable_version": "v0.23.0"
},
{
"name": "FSAdmin.FSQuiesce",
"comment": "FSQuiesce will quiesce the specified subvolumes in a volume.\nQuiescing a fs will prevent new writes to the subvolumes.\nSimilar To:\n\nceph fs quiesce <volume>\n",
"added_in_version": "v0.27.0",
"became_stable_version": "v0.29.0"
},
{
"name": "FSAdmin.SubVolumeSnapshotPath",
"comment": "SubVolumeSnapshotPath returns the path for a snapshot from the source subvolume.\n\nSimilar To:\n\n\tceph fs subvolume snapshot getpath <volume> --group-name=<group> <source> <name>\n",
"added_in_version": "v0.34.0",
"became_stable_version": "v0.36.0"
}
],
"deprecated_api": [],
"preview_api": [
{
"name": "FSAdmin.SubVolumeGroupInfo",
"comment": "SubVolumeGroupInfo returns information about the specified subvolume group.\n\nSimilar To:\n\n\tceph fs subvolumegroup info <volume> <group_name>\n",
"added_in_version": "$NEXT_RELEASE",
"expected_stable_version": "$NEXT_RELEASE_STABLE"
}
]
},
"rados": {
"stable_api": [
{
"name": "Conn.MonCommand",
"comment": "MonCommand sends a command to one of the monitors\n"
},
{
"name": "Conn.MonCommandWithInputBuffer",
"comment": "MonCommandWithInputBuffer sends a command to one of the monitors, with an input buffer\n"
},
{
"name": "Conn.PGCommand",
"comment": "PGCommand sends a command to one of the PGs\n\nImplements:\n int rados_pg_command(rados_t cluster, const char *pgstr,\n const char **cmd, size_t cmdlen,\n const char *inbuf, size_t inbuflen,\n char **outbuf, size_t *outbuflen,\n char **outs, size_t *outslen);\n"
},
{
"name": "Conn.PGCommandWithInputBuffer",
"comment": "PGCommandWithInputBuffer sends a command to one of the PGs, with an input buffer\n\nImplements:\n int rados_pg_command(rados_t cluster, const char *pgstr,\n const char **cmd, size_t cmdlen,\n const char *inbuf, size_t inbuflen,\n char **outbuf, size_t *outbuflen,\n char **outs, size_t *outslen);\n"
},
{
"name": "Conn.MgrCommand",
"comment": "MgrCommand sends a command to a ceph-mgr.\n"
},
{
"name": "Conn.MgrCommandWithInputBuffer",
"comment": "MgrCommandWithInputBuffer sends a command, with an input buffer, to a ceph-mgr.\n\nImplements:\n int rados_mgr_command(rados_t cluster, const char **cmd,\n size_t cmdlen, const char *inbuf,\n size_t inbuflen, char **outbuf,\n size_t *outbuflen, char **outs,\n size_t *outslen);\n"
},
{
"name": "Conn.OsdCommand",
"comment": "OsdCommand sends a command to the specified ceph OSD.\n"
},
{
"name": "Conn.OsdCommandWithInputBuffer",
"comment": "OsdCommandWithInputBuffer sends a command, with an input buffer, to the\nspecified ceph OSD.\n\nImplements:\n int rados_osd_command(rados_t cluster, int osdid,\n const char **cmd, size_t cmdlen,\n const char *inbuf, size_t inbuflen,\n char **outbuf, size_t *outbuflen,\n char **outs, size_t *outslen);\n"
},
{
"name": "Conn.MonCommandTarget",
"comment": "MonCommandTarget sends a command to a specified monitor.\n"
},
{
"name": "Conn.MonCommandTargetWithInputBuffer",
"comment": "MonCommandTargetWithInputBuffer sends a command, with an input buffer, to a specified monitor.\n\nImplements:\n int rados_mon_command_target(rados_t cluster, const char *name,\n const char **cmd, size_t cmdlen,\n const char *inbuf, size_t inbuflen,\n char **outbuf, size_t *outbuflen,\n char **outs, size_t *outslen);\n"
},
{
"name": "Conn.Cluster",
"comment": "Cluster returns the underlying RADOS cluster reference for this Conn.\n"
},
{
"name": "Conn.PingMonitor",
"comment": "PingMonitor sends a ping to a monitor and returns the reply.\n"
},
{
"name": "Conn.Connect",
"comment": "Connect establishes a connection to a RADOS cluster. It returns an error,\nif any.\n"
},
{
"name": "Conn.Shutdown",
"comment": "Shutdown disconnects from the cluster.\n"
},
{
"name": "Conn.ReadConfigFile",
"comment": "ReadConfigFile configures the connection using a Ceph configuration file.\n"
},
{
"name": "Conn.ReadDefaultConfigFile",
"comment": "ReadDefaultConfigFile configures the connection using a Ceph configuration\nfile located at default locations.\n"
},
{
"name": "Conn.OpenIOContext",
"comment": "OpenIOContext creates and returns a new IOContext for the given pool.\n\nImplements:\n int rados_ioctx_create(rados_t cluster, const char *pool_name,\n rados_ioctx_t *ioctx);\n"
},
{
"name": "Conn.ListPools",
"comment": "ListPools returns the names of all existing pools.\n"
},
{
"name": "Conn.SetConfigOption",
"comment": "SetConfigOption sets the value of the configuration option identified by\nthe given name.\n"
},
{
"name": "Conn.GetConfigOption",
"comment": "GetConfigOption returns the value of the Ceph configuration option\nidentified by the given name.\n"
},
{
"name": "Conn.WaitForLatestOSDMap",
"comment": "WaitForLatestOSDMap blocks the caller until the latest OSD map has been\nretrieved.\n"
},
{
"name": "Conn.GetClusterStats",
"comment": "GetClusterStats returns statistics about the cluster associated with the\nconnection.\n"
},
{
"name": "Conn.ParseConfigArgv",
"comment": "ParseConfigArgv configures the connection using a unix style command line\nargument vector.\n\nImplements:\n int rados_conf_parse_argv(rados_t cluster, int argc,\n const char **argv);\n"
},
{
"name": "Conn.ParseCmdLineArgs",
"comment": "ParseCmdLineArgs configures the connection from command line arguments.\n\nThis function passes a placeholder value to Ceph as argv[0], see\nParseConfigArgv for a version of this function that allows the caller to\nspecify argv[0].\n"
},
{
"name": "Conn.ParseDefaultConfigEnv",
"comment": "ParseDefaultConfigEnv configures the connection from the default Ceph\nenvironment variable CEPH_ARGS.\n"
},
{
"name": "Conn.GetFSID",
"comment": "GetFSID returns the fsid of the cluster as a hexadecimal string. The fsid\nis a unique identifier of an entire Ceph cluster.\n"
},
{
"name": "Conn.GetInstanceID",
"comment": "GetInstanceID returns a globally unique identifier for the cluster\nconnection instance.\n"
},
{
"name": "Conn.MakePool",
"comment": "MakePool creates a new pool with default settings.\n"
},
{
"name": "Conn.DeletePool",
"comment": "DeletePool deletes a pool and all the data inside the pool.\n"
},
{
"name": "Conn.GetPoolByName",
"comment": "GetPoolByName returns the ID of the pool with a given name.\n"
},
{
"name": "Conn.GetPoolByID",
"comment": "GetPoolByID returns the name of a pool by a given ID.\n"
},
{
"name": "IOContext.Pointer",
"comment": "Pointer returns a pointer reference to an internal structure.\nThis function should NOT be used outside of go-ceph itself.\n"
},
{
"name": "IOContext.SetNamespace",
"comment": "SetNamespace sets the namespace for objects within this IO context (pool).\nSetting namespace to a empty or zero length string sets the pool to the default namespace.\n\nImplements:\n void rados_ioctx_set_namespace(rados_ioctx_t io,\n const char *nspace);\n"
},
{
"name": "IOContext.Create",
"comment": "Create a new object with key oid.\n\nImplements:\n void rados_write_op_create(rados_write_op_t write_op, int exclusive,\n const char* category)\n"
},
{
"name": "IOContext.Write",
"comment": "Write writes len(data) bytes to the object with key oid starting at byte\noffset offset. It returns an error, if any.\n"
},
{
"name": "IOContext.WriteFull",
"comment": "WriteFull writes len(data) bytes to the object with key oid.\nThe object is filled with the provided data. If the object exists,\nit is atomically truncated and then written. It returns an error, if any.\n"
},
{
"name": "IOContext.Append",
"comment": "Append appends len(data) bytes to the object with key oid.\nThe object is appended with the provided data. If the object exists,\nit is atomically appended to. It returns an error, if any.\n"
},
{
"name": "IOContext.Read",
"comment": "Read reads up to len(data) bytes from the object with key oid starting at byte\noffset offset. It returns the number of bytes read and an error, if any.\n"
},
{
"name": "IOContext.Delete",
"comment": "Delete deletes the object with key oid. It returns an error, if any.\n"
},
{
"name": "IOContext.Truncate",
"comment": "Truncate resizes the object with key oid to size size. If the operation\nenlarges the object, the new area is logically filled with zeroes. If the\noperation shrinks the object, the excess data is removed. It returns an\nerror, if any.\n"
},
{
"name": "IOContext.Destroy",
"comment": "Destroy informs librados that the I/O context is no longer in use.\nResources associated with the context may not be freed immediately, and the\ncontext should not be used again after calling this method.\n"
},
{
"name": "IOContext.GetPoolStats",
"comment": "GetPoolStats returns a set of statistics about the pool associated with this I/O\ncontext.\n\nImplements:\n int rados_ioctx_pool_stat(rados_ioctx_t io,\n struct rados_pool_stat_t *stats);\n"
},
{
"name": "IOContext.GetPoolID",
"comment": "GetPoolID returns the pool ID associated with the I/O context.\n\nImplements:\n int64_t rados_ioctx_get_id(rados_ioctx_t io)\n"
},
{
"name": "IOContext.GetPoolName",
"comment": "GetPoolName returns the name of the pool associated with the I/O context.\n"
},
{
"name": "IOContext.ListObjects",
"comment": "ListObjects lists all of the objects in the pool associated with the I/O\ncontext, and called the provided listFn function for each object, passing\nto the function the name of the object. Call SetNamespace with\nRadosAllNamespaces before calling this function to return objects from all\nnamespaces\n"
},
{
"name": "IOContext.Stat",
"comment": "Stat returns the size of the object and its last modification time\n"
},
{
"name": "IOContext.GetXattr",
"comment": "GetXattr gets an xattr with key `name`, it returns the length of\nthe key read or an error if not successful\n"
},
{
"name": "IOContext.SetXattr",
"comment": "SetXattr sets an xattr for an object with key `name` with value as `data`\n"
},
{
"name": "IOContext.ListXattrs",
"comment": "ListXattrs lists all the xattrs for an object. The xattrs are returned as a\nmapping of string keys and byte-slice values.\n"
},
{
"name": "IOContext.RmXattr",
"comment": "RmXattr removes an xattr with key `name` from object `oid`\n"
},
{
"name": "IOContext.LockExclusive",
"comment": "LockExclusive takes an exclusive lock on an object.\n"
},
{
"name": "IOContext.LockShared",
"comment": "LockShared takes a shared lock on an object.\n"
},
{
"name": "IOContext.Unlock",
"comment": "Unlock releases a shared or exclusive lock on an object.\n"
},
{
"name": "IOContext.ListLockers",
"comment": "ListLockers lists clients that have locked the named object lock and\ninformation about the lock.\nThe number of bytes required in each buffer is put in the corresponding size\nout parameter. If any of the provided buffers are too short, -ERANGE is\nreturned after these sizes are filled in.\n"
},
{
"name": "IOContext.BreakLock",
"comment": "BreakLock releases a shared or exclusive lock on an object, which was taken by the specified client.\n"
},
{
"name": "IOContext.GetLastVersion",
"comment": "GetLastVersion will return the version number of the last object read or\nwritten to.\n\nImplements:\n uint64_t rados_get_last_version(rados_ioctx_t io);\n"
},
{
"name": "IOContext.GetNamespace",
"comment": "GetNamespace gets the namespace used for objects within this IO context.\n\nImplements:\n int rados_ioctx_get_namespace(rados_ioctx_t io, char *buf,\n unsigned maxlen);\n"
},
{
"name": "IOContext.SetPoolFullTry",
"comment": "SetPoolFullTry makes sure to send requests to the cluster despite\nthe cluster or pool being marked full; ops will either succeed(e.g., delete)\nor return EDQUOT or ENOSPC.\n\nImplements:\n void rados_set_pool_full_try(rados_ioctx_t io);\n"
},
{
"name": "IOContext.UnsetPoolFullTry",
"comment": "UnsetPoolFullTry unsets the flag set by SetPoolFullTry()\n\nImplements:\n void rados_unset_pool_full_try(rados_ioctx_t io);\n"
},
{
"name": "IOContext.Iter",
"comment": "Iter returns a Iterator object that can be used to list the object names in the current pool\n"
},
{
"name": "Iter.Token",
"comment": "Token returns a token marking the current position of the iterator. To be used in combination with Iter.Seek()\n"
},
{
"name": "Iter.Seek",
"comment": "Seek moves the iterator to the position indicated by the token.\n"
},
{
"name": "Iter.Next",
"comment": "Next retrieves the next object name in the pool/namespace iterator.\nUpon a successful invocation (return value of true), the Value method should\nbe used to obtain the name of the retrieved object name. When the iterator is\nexhausted, Next returns false. The Err method should used to verify whether the\nend of the iterator was reached, or the iterator received an error.\n\nExample:\n\titer := pool.Iter()\n\tdefer iter.Close()\n\tfor iter.Next() {\n\t\tfmt.Printf(\"%v\\n\", iter.Value())\n\t}\n\treturn iter.Err()\n"
},
{
"name": "Iter.Value",
"comment": "Value returns the current value of the iterator (object name), after a successful call to Next.\n"
},
{
"name": "Iter.Namespace",
"comment": "Namespace returns the namespace associated with the current value of the iterator (object name), after a successful call to Next.\n"
},
{
"name": "Iter.Err",
"comment": "Err checks whether the iterator has encountered an error.\n"
},
{
"name": "Iter.Close",
"comment": "Close the iterator cursor on the server. Be aware that iterators are not closed automatically\nat the end of iteration.\n"
},
{
"name": "GetOmapStep.Next",
"comment": "Next returns the next key value pair or nil if iteration is exhausted.\n"
},
{
"name": "GetOmapStep.More",
"comment": "More returns true if there are more matching keys available.\n"
},
{
"name": "IOContext.SetOmap",
"comment": "SetOmap appends the map `pairs` to the omap `oid`\n"
},
{
"name": "IOContext.ListOmapValues",
"comment": "ListOmapValues iterates over the keys and values in an omap by way of\na callback function.\n\n`startAfter`: iterate only on the keys after this specified one\n`filterPrefix`: iterate only on the keys beginning with this prefix\n`maxReturn`: iterate no more than `maxReturn` key/value pairs\n`listFn`: the function called at each iteration\n"