Index: state/statecmd/status.go |
=== modified file 'state/statecmd/status.go' |
--- state/statecmd/status.go 2014-01-23 20:30:35 +0000 |
+++ state/statecmd/status.go 2014-02-12 18:18:40 +0000 |
@@ -9,6 +9,7 @@ |
"regexp" |
"strings" |
+ errgo "launchpad.net/errgo/errors" |
"launchpad.net/juju-core/charm" |
"launchpad.net/juju-core/errors" |
"launchpad.net/juju-core/instance" |
@@ -25,11 +26,11 @@ |
var context statusContext |
unitMatcher, err := NewUnitMatcher(patterns) |
if err != nil { |
- return &nilStatus, err |
+ return &nilStatus, wrap(err) |
} |
if context.services, |
context.units, context.latestCharms, err = fetchAllServicesAndUnits(conn.State, unitMatcher); err != nil { |
- return &nilStatus, err |
+ return &nilStatus, wrap(err) |
} |
// Filter machines by units in scope. |
@@ -37,11 +38,11 @@ |
if !unitMatcher.matchesAny() { |
machineIds, err = fetchUnitMachineIds(context.units) |
if err != nil { |
- return &nilStatus, err |
+ return &nilStatus, wrap(err) |
} |
} |
if context.machines, err = fetchMachines(conn.State, machineIds); err != nil { |
- return &nilStatus, err |
+ return &nilStatus, wrap(err) |
} |
return &api.Status{ |
@@ -109,7 +110,7 @@ |
ok, err := path.Match(pattern, s) |
if err != nil { |
// We validate patterns, so should never get here. |
- panic(fmt.Errorf("pattern syntax error in %q", pattern)) |
+ panic(errgo.Newf("pattern syntax error in %q", pattern)) |
} else if ok { |
return true |
} |
@@ -133,11 +134,11 @@ |
for i, pattern := range patterns { |
fields := strings.Split(pattern, "/") |
if len(fields) > 2 { |
- return unitMatcher{}, fmt.Errorf("pattern %q contains too many '/' characters", pattern) |
+ return unitMatcher{}, errgo.Newf("pattern %q contains too many '/' characters", pattern) |
} |
for _, f := range fields { |
if !validPattern.MatchString(f) { |
- return unitMatcher{}, fmt.Errorf("pattern %q contains invalid characters", pattern) |
+ return unitMatcher{}, errgo.Newf("pattern %q contains invalid characters", pattern) |
} |
} |
if len(fields) == 1 { |
@@ -155,8 +156,9 @@ |
v := make(map[string][]*state.Machine) |
machines, err := st.AllMachines() |
if err != nil { |
- return nil, err |
+ return nil, wrap(err) |
} |
+ |
// AllMachines gives us machines sorted by id. |
for _, m := range machines { |
if machineIds != nil && !machineIds.Contains(m.Id()) { |
@@ -170,7 +172,7 @@ |
topParentId := state.TopParentId(m.Id()) |
machines, ok := v[topParentId] |
if !ok { |
- panic(fmt.Errorf("unexpected machine id %q", parentId)) |
+ panic(errgo.Newf("unexpected machine id %q", parentId)) |
} |
machines = append(machines, m) |
v[topParentId] = machines |
@@ -190,12 +192,12 @@ |
latestCharms := make(map[charm.URL]string) |
services, err := st.AllServices() |
if err != nil { |
- return nil, nil, nil, err |
+ return nil, nil, nil, wrap(err) |
} |
for _, s := range services { |
units, err := s.AllUnits() |
if err != nil { |
- return nil, nil, nil, err |
+ return nil, nil, nil, wrap(err) |
} |
svcUnitMap := make(map[string]*state.Unit) |
for _, u := range units { |
@@ -221,7 +223,7 @@ |
continue |
} |
if err != nil { |
- return nil, nil, nil, err |
+ return nil, nil, nil, wrap(err) |
} |
latestCharms[baseURL] = ch.String() |
} |
@@ -239,7 +241,7 @@ |
} |
mid, err := unit.AssignedMachineId() |
if err != nil { |
- return nil, err |
+ return nil, wrap(err) |
} |
for mid != "" { |
machineIds.Add(mid) |
@@ -401,19 +403,19 @@ |
// call of this function. |
relations, err := service.Relations() |
if err != nil { |
- return nil, nil, err |
+ return nil, nil, wrap(err) |
} |
var subordSet set.Strings |
related = make(map[string][]string) |
for _, relation := range relations { |
ep, err := relation.Endpoint(service.Name()) |
if err != nil { |
- return nil, nil, err |
+ return nil, nil, wrap(err) |
} |
relationName := ep.Relation.Name |
eps, err := relation.RelatedEndpoints(service.Name()) |
if err != nil { |
- return nil, nil, err |
+ return nil, nil, wrap(err) |
} |
for _, ep := range eps { |
if ep.Scope == charm.ScopeContainer && !service.IsPrincipal() { |