github.com/swiftstack/ProxyFS@v0.0.0-20210203235616-4017c267d62f/docs/source/architecture/uml/bimodal-put-newcontainer.uml (about)

     1  @startuml
     2  
     3  title Bimodal PUT API - New Container Case
     4  
     5  autonumber
     6  
     7  box "Swift WSGI"
     8  participant WSGI
     9  participant RPCclient
    10  end box
    11  box "ProxyFS"
    12  participant PFSrpcsvr
    13  participant PFSfs
    14  participant PFSinode
    15  end box
    16  participant SwiftBE
    17  
    18  ->WSGI: <URI>?Put
    19  
    20  WSGI -> WSGI:Virtual account
    21  
    22  WSGI -> RPCclient:<B><I>proxyfs_new_container(authUser,\n<B><I>vAccount, vNewContainer)</I></B>
    23  
    24  RPCclient -> PFSrpcsvr:<B><I>RpcCreateContainer(authUser,\n<B><I>vAccount, vNewContainer)</I></B>
    25  
    26  PFSrpcsvr -> PFSrpcsvr:Extract vAccount
    27  
    28  PFSrpcsvr -> PFSrpcsvr:Get mapping of vAccount to volumeName
    29  
    30  PFSrpcsvr -> PFSfs:If volume is not mounted for this user,\n<B><I>fs.Mount(volumeName, mountOptions, authUser)</I></B>
    31  
    32  PFSfs -> PFSrpcsvr:Return mountId, rootInodeNumber, err
    33  
    34  PFSrpcsvr -> PFSfs:<B><I>fs.Mkdir(mountId, rootInodeNumber, basename is vNewContainer)</I></B>
    35  PFSfs -> PFSrpcsvr:Return newDirInodeNumber, err
    36  
    37  PFSrpcsvr -> RPCclient:Return status
    38  
    39  RPCclient -> WSGI:Return status
    40  
    41  @enduml