~juju-qa/ubuntu/xenial/juju/xenial-2.0-beta3

« back to all changes in this revision

Viewing changes to src/github.com/juju/juju/api/instancepoller/machine.go

  • Committer: Martin Packman
  • Date: 2016-03-30 19:31:08 UTC
  • mfrom: (1.1.41)
  • Revision ID: martin.packman@canonical.com-20160330193108-h9iz3ak334uk0z5r
Merge new upstream source 2.0~beta3

Show diffs side-by-side

added added

removed removed

Lines of Context:
12
12
        "github.com/juju/juju/apiserver/params"
13
13
        "github.com/juju/juju/instance"
14
14
        "github.com/juju/juju/network"
 
15
        "github.com/juju/juju/status"
15
16
)
16
17
 
17
18
// Machine represents a juju machine as seen by an instancepoller
117
118
}
118
119
 
119
120
// InstanceStatus returns the machine's instance status.
120
 
func (m *Machine) InstanceStatus() (string, error) {
121
 
        var results params.StringResults
 
121
func (m *Machine) InstanceStatus() (params.StatusResult, error) {
 
122
        var results params.StatusResults
122
123
        args := params.Entities{Entities: []params.Entity{
123
124
                {Tag: m.tag.String()},
124
125
        }}
125
126
        err := m.facade.FacadeCall("InstanceStatus", args, &results)
126
127
        if err != nil {
127
 
                return "", errors.Trace(err)
 
128
                return params.StatusResult{}, errors.Trace(err)
128
129
        }
129
130
        if len(results.Results) != 1 {
130
131
                err := errors.Errorf("expected 1 result, got %d", len(results.Results))
131
 
                return "", err
 
132
                return params.StatusResult{}, err
132
133
        }
133
134
        result := results.Results[0]
134
135
        if result.Error != nil {
135
 
                return "", result.Error
 
136
                return params.StatusResult{}, result.Error
136
137
        }
137
 
        return result.Result, nil
 
138
        return result, nil
138
139
}
139
140
 
140
141
// SetInstanceStatus sets the instance status of the machine.
141
 
func (m *Machine) SetInstanceStatus(status string) error {
 
142
func (m *Machine) SetInstanceStatus(status status.Status, message string, data map[string]interface{}) error {
142
143
        var result params.ErrorResults
143
 
        args := params.SetInstancesStatus{Entities: []params.InstanceStatus{
144
 
                {Tag: m.tag.String(), Status: status},
 
144
        args := params.SetStatus{Entities: []params.EntityStatusArgs{
 
145
                {Tag: m.tag.String(), Status: status, Info: message, Data: data},
145
146
        }}
146
147
        err := m.facade.FacadeCall("SetInstanceStatus", args, &result)
147
148
        if err != nil {