Methods and Signals ------------------- method ListConfigs method GetConfig config-name method SetConfig config-name configdata method CreateConfig config-name subvolume fstype template-name method DeleteConfig config-name signal ConfigCreated config-name signal ConfigModified config-name signal ConfigDeleted config-name method LockConfig config-name method UnlockConfig config-name Locking disallows other clients to delete the config and delete snapshots for the config but not to create new snapshots for the config. Several clients can lock the same config. method ListSnapshots config-name method GetSnapshot config-name number method SetSnapshot config-name number description cleanup userdata method CreateSingleSnapshot config-name description cleanup userdata -> number method CreateSingleSnapshotV2 config-name parent-number read-only description cleanup userdata -> number method CreateSingleSnapshotOfDefault config-name read-only description cleanup userdata -> number method CreatePreSnapshot config-name description cleanup userdata -> number method CreatePostSnapshot config-name pre-number description cleanup userdata -> number method DeleteSnapshots config-name list(numbers) signal SnapshotCreated config-name number signal SnapshotModified config-name number signal SnapshotsDeleted config-name list(numbers) method GetDefaultSnapshot config-name -> bool number method GetActiveSnapshot config-name -> bool number method CalculateUsedSpace config-name (experimental) method GetUsedSpace config-name number -> number (experimental) method MountSnapshot config-name number user-request -> path method UmountSnapshot config-name number user-request method GetMountPoint config-name number -> path Snapshots mounted with user-request set to false will be unmounted (delayed) after the client disconnects. method Sync config-name method CreateComparison config-name number1 number2 -> num-files method DeleteComparison config-name number1 number2 The following two commands require a successful CreateComparison in advance. method GetFiles config-name number1 number2 -> list(filename status) method GetFilesByPipe config-name number1 number2 -> fd Filenames do not include the subvolume. GetFilesByPipe returns a file descriptor from which the client can read the file list. This avoids the problem of GetFiles with exceeding the allowed DBus message size. GetFiles is deprecated. The file descriptor returned by GetFilesByPipe has one entry per file with two fields (separated by spaces), first the filename and second the status as an integer. Additional fields must be ignored by clients. Intentionally not documented are SetupQuota, PrepareQuota, QueryQuota and QueryFreeSpace. Encoding and Escaping --------------------- Strings passed via DBus are UTF-8. Other characters (e.g. in filenames) must be encoded hexadecimal as "\x??". As a consequence, "\" is encoded as "\\". In strings passed via pipe the newline and space are escaped as "\x??". As a consequence, "\" is encoded as "\\". In general any character can be escaped as "\x??". Sorting ------- Sorting for files is undefined, esp. since server and client can use different locales. Misc Notes ---------- Due to security concerns there are no methods to get, compare or revert files. This can be done in the client. Some snapshots cannot be deleted (current, default and active). Delete requests for these are ignored.