MCPcopy
hub / github.com/docker/compose / String

Method String

pkg/compose/plan.go:146–171  ·  pkg/compose/plan.go::Plan.String

String renders the plan as a human-readable graph for testing and debugging. Format per line: [dep1,dep2] -> #id resource, operation, cause [group] Examples: [] -> #1 network:default, CreateNetwork, not found [1] -> #2 service:web:1, CreateContainer, no existing container [2] -> #3 service:web

()

Source from the content-addressed store, hash-verified

144// [1] -> #2 service:web:1, CreateContainer, no existing container
145// [2] -> #3 service:web:1, StopContainer, replaced by #2 [recreate:web:1]
146func (p *Plan) String() string {
147 var sb strings.Builder
148 for _, node := range p.Nodes {
149 depIDs := make([]int, len(node.DependsOn))
150 for i, d := range node.DependsOn {
151 depIDs[i] = d.ID
152 }
153 sort.Ints(depIDs)
154 deps := make([]string, len(depIDs))
155 for i, id := range depIDs {
156 deps[i] = strconv.Itoa(id)
157 }
158 fmt.Fprintf(&sb, "[%s] -> #%d %s, %s, %s",
159 strings.Join(deps, ","),
160 node.ID,
161 node.Operation.ResourceID,
162 node.Operation.Type,
163 node.Operation.Cause,
164 )
165 if node.Group != "" {
166 fmt.Fprintf(&sb, " [%s]", node.Group)
167 }
168 sb.WriteByte('\n')
169 }
170 return sb.String()
171}
172
173// IsEmpty returns true if the plan contains no operations.
174func (p *Plan) IsEmpty() bool {

Calls

no outgoing calls