~rogpeppe/juju-core/themue-058-debug-log-api

« back to all changes in this revision

Viewing changes to state/api/uniter/uniter.go

  • Committer: Frank Mueller
  • Date: 2014-01-23 14:14:49 UTC
  • mfrom: (2152.1.95 juju-core)
  • Revision ID: frank.mueller@canonical.com-20140123141449-b30l57y7gs3wjkpw
debugger: merged trunk and fixed permission and interface problems

Show diffs side-by-side

added added

removed removed

Lines of Context:
8
8
 
9
9
        "launchpad.net/juju-core/charm"
10
10
        "launchpad.net/juju-core/names"
 
11
        "launchpad.net/juju-core/state/api/base"
11
12
        "launchpad.net/juju-core/state/api/common"
12
13
        "launchpad.net/juju-core/state/api/params"
13
14
)
14
15
 
 
16
const uniter = "Uniter"
 
17
 
15
18
// State provides access to the Uniter API facade.
16
19
type State struct {
17
 
        caller common.Caller
 
20
        *common.EnvironWatcher
 
21
 
 
22
        caller base.Caller
18
23
        // unitTag contains the authenticated unit's tag.
19
24
        unitTag string
20
25
}
21
26
 
22
27
// NewState creates a new client-side Uniter facade.
23
 
func NewState(caller common.Caller, authTag string) *State {
24
 
        return &State{caller, authTag}
 
28
func NewState(caller base.Caller, authTag string) *State {
 
29
        return &State{
 
30
                EnvironWatcher: common.NewEnvironWatcher(uniter, caller),
 
31
                caller:         caller,
 
32
                unitTag:        authTag}
25
33
}
26
34
 
27
35
// life requests the lifecycle of the given entity from the server.
28
36
func (st *State) life(tag string) (params.Life, error) {
29
 
        var result params.LifeResults
30
 
        args := params.Entities{
31
 
                Entities: []params.Entity{{Tag: tag}},
32
 
        }
33
 
        err := st.caller.Call("Uniter", "", "Life", args, &result)
34
 
        if err != nil {
35
 
                return "", err
36
 
        }
37
 
        if len(result.Results) != 1 {
38
 
                return "", fmt.Errorf("expected one result, got %d", len(result.Results))
39
 
        }
40
 
        if err := result.Results[0].Error; err != nil {
41
 
                return "", err
42
 
        }
43
 
        return result.Results[0].Life, nil
 
37
        return common.Life(st.caller, uniter, tag)
44
38
}
45
39
 
46
40
// relation requests relation information from the server.
52
46
                        {Relation: relationTag, Unit: unitTag},
53
47
                },
54
48
        }
55
 
        err := st.caller.Call("Uniter", "", "Relation", args, &result)
 
49
        err := st.caller.Call(uniter, "", "Relation", args, &result)
56
50
        if err != nil {
57
51
                return nothing, err
58
52
        }
98
92
// addresses implemented fully. See also LP bug 1221798.
99
93
func (st *State) ProviderType() (string, error) {
100
94
        var result params.StringResult
101
 
        err := st.caller.Call("Uniter", "", "ProviderType", nil, &result)
 
95
        err := st.caller.Call(uniter, "", "ProviderType", nil, &result)
102
96
        if err != nil {
103
97
                return "", err
104
98
        }
139
133
        args := params.RelationIds{
140
134
                RelationIds: []int{id},
141
135
        }
142
 
        err := st.caller.Call("Uniter", "", "RelationById", args, &results)
 
136
        err := st.caller.Call(uniter, "", "RelationById", args, &results)
143
137
        if err != nil {
144
138
                return nil, err
145
139
        }
167
161
// APIAddresses returns the list of addresses used to connect to the API.
168
162
func (st *State) APIAddresses() ([]string, error) {
169
163
        var result params.StringsResult
170
 
        err := st.caller.Call("Uniter", "", "APIAddresses", nil, &result)
 
164
        err := st.caller.Call(uniter, "", "APIAddresses", nil, &result)
171
165
        if err != nil {
172
166
                return nil, err
173
167
        }