Filetree

Tag 1: the client asks for the filesystem of the container, watched; the server sends a snapshot of a tree that leaves out every FUSE mount and contains every volume mount, and one channel response per change, until the scope ends.

The client opens this channel to watch the filesystem of the container.

  • The request. The payload is the tag byte 1 and nothing more. Request states its form.
  • The response. A snapshot, one channel response per change, and the channel response finish when the scope ends. Response states the sequence.
  • What the tree leaves out. Every FUSE mount of the container, and no other mount. The tree the client receives contains no FUSE mount and reports no change under one.
  • What the tree contains. Every volume mount of the container is in the tree, and a change under one is reported as any other change is. A volume is observed live by this channel of a container it is mounted in, and, while it is mounted nowhere, once, by a volumes::filetree of its own. How the server watches a volume mount is not prescribed.
  • Not before the mounts. The server does not open a tree scope before the last FUSE mount of the container is complete. A filetree channel opened earlier waits.
  • Every channel is whole. Each filetree channel is its own tree scope on the proxy, beginning with a snapshot. Two filetree channels are two scopes.
  • Stopped with the scope. When this scope ends, the server stops the tree scope it opened for the channel.