Uploaded image for project: 'Mesos'
  1. Mesos
  2. MESOS-6469

Build an Attach Container Actor

    XMLWordPrintableJSON

    Details

    • Type: Task
    • Status: Resolved
    • Priority: Major
    • Resolution: Won't Fix
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None

      Description

      The new agent API calls for ATTACH_CONTAINER_INPUT and ATTACH_CONTAINER_OUTPUT are intimately intertwined. That is, most attach operations will likely want to call both ATTACH_CONTAINER_INPUT and ATTACH_CONTAINER_OUTPUT in order to attach all three of stdin, stdout and stderr to a local terminal.

      Moreover, we plan to allow multiple ATTACH_CONTAINER_OUTPUT calls can be made for the same container (i.e. from multiple clients), while only one ATTACH_CONTAINER_INPUT call will be allowed to connect at a time.

      In order to ensure that these calls are properly grouped (as well as to ensure that any state they need to share is properly confined), we will lazily launch a “per-container” actor to manage all ATTACH_CONTAINER_OUTPUT and ATTACH_CONTAINER_INPUT calls on behalf of a container.

      It will be the responsibility of this actor to:

      • Manage the read end of the pipe set up by the HTTP handler for the ATTACH_CONTAINER_INPUT call for a given container.
      • Manage the write end of the pipes set up by the HTTP handler for all ATTACH_CONTAINER_OUTPUT calls for a given container.
      • Establish a connection to a per-container “I/O switchboard” (discussed below) in order to forward data coming from the ATTACH_CONTAINER_INPUT pipe to the switchboard.
      • Establish a second connection to the per-container “I/O switchboard” to stream all stdout data coming from the switchboard to all ATTACH_CONTAINER_OUTPUT pipes.
      • Establish a third connection to the per-container “I/O switchboard” to stream all stderr data coming from the switchboard to all ATTACH_CONTAINER_OUTPUT pipes.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                klueska Kevin Klues
                Reporter:
                klueska Kevin Klues
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: