func (s *uniterSuite) TestResolved(c *gc.C) { err := s.wordpressUnit.SetResolved(state.ResolvedRetryHooks) c.Assert(err, gc.IsNil) mode := s.wordpressUnit.Resolved() c.Assert(mode, gc.Equals, state.ResolvedRetryHooks) args := params.Entities{Entities: []params.Entity{ {Tag: "unit-mysql-0"}, {Tag: "unit-wordpress-0"}, {Tag: "unit-foo-42"}, }} result, err := s.uniter.Resolved(args) c.Assert(err, gc.IsNil) c.Assert(result, gc.DeepEquals, params.ResolvedModeResults{ Results: []params.ResolvedModeResult{ {Error: apiservertesting.ErrUnauthorized}, {Mode: params.ResolvedMode(mode)}, {Error: apiservertesting.ErrUnauthorized}, }, }) }
// Resolved returns the current resolved setting for each given unit. func (u *UniterAPI) Resolved(args params.Entities) (params.ResolvedModeResults, error) { result := params.ResolvedModeResults{ Results: make([]params.ResolvedModeResult, len(args.Entities)), } canAccess, err := u.accessUnit() if err != nil { return params.ResolvedModeResults{}, err } for i, entity := range args.Entities { err := common.ErrPerm if canAccess(entity.Tag) { var unit *state.Unit unit, err = u.getUnit(entity.Tag) if err == nil { result.Results[i].Mode = params.ResolvedMode(unit.Resolved()) } } result.Results[i].Error = common.ServerError(err) } return result, nil }