1
// Copyright 2014 Canonical Ltd.
2
// Licensed under the AGPLv3, see LICENCE file for details.
9
"launchpad.net/juju-core/state/api/common"
10
"launchpad.net/juju-core/state/api/params"
11
"launchpad.net/juju-core/state/api/watcher"
14
// State provides access to an debugger worker's view of the state.
19
// NewState returns a version of the state that provides functionality
20
// required by the debugger worker.
21
func NewState(caller common.Caller) *State {
25
// WatchDebugLog starts a StringsWatcher to watch the all-machines log. The initial
26
// number of lines and a filter tag for machines or units can be passed.
27
func (st *State) WatchDebugLog(lines int, tag string) (watcher.StringsWatcher, error) {
28
var results params.StringsWatchResults
29
args := params.EntityLogRequests{Entities: []params.EntityLogRequest{{
33
err := st.caller.Call("Debugger", "", "WatchDebugLog", args, &results)
37
if len(results.Results) != 1 {
38
return nil, fmt.Errorf("expected one result, got %d", len(results.Results))
40
result := results.Results[0]
41
if result.Error != nil {
42
return nil, result.Error
44
w := watcher.NewStringsWatcher(st.caller, result)