Merge pull request #2902 from jeanlaurent/ls-single-line

Fix #2888 - Multi-line errors in ls mess with tab writing
This commit is contained in:
David Gageot 2016-01-25 10:04:21 +01:00
commit 8977d29bae
2 changed files with 18 additions and 6 deletions

View File

@ -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))

View File

@ -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:")
}