|
|
@@ -0,0 +1,51 @@
|
|
|
+#Etcd File System
|
|
|
+
|
|
|
+## Structure
|
|
|
+[TODO]
|
|
|
+
|
|
|
+
|
|
|
+## Node
|
|
|
+The building ingredients of etcd file system are two kinds of nodes -- files and directories:
|
|
|
+- File has data associated with it.
|
|
|
+- Directory has children nodes associated with it.
|
|
|
+
|
|
|
+### Attributes:
|
|
|
+####Expiration Time [optional]
|
|
|
+The node will be deleted when it expires.
|
|
|
+####ACL
|
|
|
+The path of access control list of the node.
|
|
|
+
|
|
|
+### Operation:
|
|
|
+#### Get (path, recursive)
|
|
|
+Get the content of the node
|
|
|
+ - If the node is a file, the data of the file will be returned.
|
|
|
+ - If the node is a directory, the child nodes of the directory will be returned.
|
|
|
+ - If recursive is true, it will recursively get the nodes of the directory.
|
|
|
+
|
|
|
+####Set (path, value[optional], ttl [optional])
|
|
|
+Set the value to a file. Set operation will help to create intermediate directories with no expiration time.
|
|
|
+ - If the value is given, set will create a file
|
|
|
+ - If the value is not given, set will crate a directory
|
|
|
+ - If ttl is given, the node will be deleted when it expires.
|
|
|
+
|
|
|
+####Delete (path, recursive)
|
|
|
+Delete the node of given path.
|
|
|
+ - If the node is a directory:
|
|
|
+ - If recursive is true, the operation will delete all nodes under the directory.
|
|
|
+ - If recursive is false, error will be returned.
|
|
|
+
|
|
|
+####TestAndSet (path, prevValue [prevIndex], value, ttl)
|
|
|
+Atomically test and set value to a file. If test succeeds, this operation will change the previous value of the file to the given value.
|
|
|
+ - If the prevValue is given, it will test against previous value of the node.
|
|
|
+ - If the prevValue is empty, it will test if the node is not existing.
|
|
|
+ - If the prevValue is not empty, it will test if the prevValue is equal to the current value of the file.
|
|
|
+ - If the prevIndex is given, it will test if the create/last modified index of the node is equal to prevIndex.
|
|
|
+
|
|
|
+####Renew (path, ttl)
|
|
|
+Set the node's expiration time to (current time + ttl)
|
|
|
+
|
|
|
+## ACL
|
|
|
+[TODO]
|
|
|
+
|
|
|
+## User Group
|
|
|
+[TODO]
|