diff --git a/commands/ls.go b/commands/ls.go index 68e4417bbb..6c84893d42 100644 --- a/commands/ls.go +++ b/commands/ls.go @@ -468,18 +468,22 @@ func getHostListItems(hostList []*host.Host, hostsInError map[string]error) []Ho close(hostListItemsChan) for name, err := range hostsInError { - itemInError := HostListItem{} - itemInError.Name = name - itemInError.DriverName = "not found" - itemInError.State = state.Error - itemInError.Error = err.Error() - hostListItems = append(hostListItems, itemInError) + hostListItems = append(hostListItems, newHostListItemInError(name, err)) } sortHostListItemsByName(hostListItems) return hostListItems } +func newHostListItemInError(name string, err error) HostListItem { + return HostListItem{ + Name: name, + DriverName: "not found", + State: state.Error, + Error: strings.Replace(err.Error(), "\n", " ", -1), + } +} + func sortHostListItemsByName(items []HostListItem) { m := make(map[string]HostListItem, len(items)) s := make([]string, len(items)) diff --git a/commands/ls_test.go b/commands/ls_test.go index 0aa67c7d44..437b30fd9a 100644 --- a/commands/ls_test.go +++ b/commands/ls_test.go @@ -528,3 +528,11 @@ func TestGetSomeHostInError(t *testing.T) { assert.Equal(t, "foo", hostItem.Name) assert.Equal(t, state.Running, hostItem.State) } + +func TestOnErrorWithMultilineComment(t *testing.T) { + err := errors.New("MissingParameter: The request must contain the parameter InstanceId\n status code: 400, request id:") + + itemInError := newHostListItemInError("foo", err) + + assert.Equal(t, itemInError.Error, "MissingParameter: The request must contain the parameter InstanceId status code: 400, request id:") +}