github.com/makyo/juju@v0.0.0-20160425123129-2608902037e9/payload/status/formatter.go (about) 1 // Copyright 2015 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package status 5 6 import ( 7 "github.com/juju/juju/payload" 8 ) 9 10 type listFormatter struct { 11 payloads []payload.FullPayloadInfo 12 } 13 14 func newListFormatter(payloads []payload.FullPayloadInfo) *listFormatter { 15 lf := listFormatter{ 16 payloads: payloads, 17 } 18 return &lf 19 } 20 21 func (lf *listFormatter) format() []FormattedPayload { 22 if lf.payloads == nil { 23 return nil 24 } 25 26 var formatted []FormattedPayload 27 for _, payload := range lf.payloads { 28 formatted = append(formatted, FormatPayload(payload)) 29 } 30 return formatted 31 } 32 33 // FormatPayload converts the Payload into a FormattedPayload. 34 func FormatPayload(payload payload.FullPayloadInfo) FormattedPayload { 35 var labels []string 36 if len(payload.Labels) > 0 { 37 labels = make([]string, len(payload.Labels)) 38 copy(labels, payload.Labels) 39 } 40 return FormattedPayload{ 41 Unit: payload.Unit, 42 Machine: payload.Machine, 43 ID: payload.ID, 44 Type: payload.Type, 45 Class: payload.Name, 46 Labels: labels, 47 // TODO(ericsnow) Explicitly convert to a string? 48 Status: payload.Status, 49 } 50 }