~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/uniter/unit.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:
13
13
        "github.com/juju/juju/api/common"
14
14
        apiwatcher "github.com/juju/juju/api/watcher"
15
15
        "github.com/juju/juju/apiserver/params"
 
16
        "github.com/juju/juju/status"
16
17
        "github.com/juju/juju/watcher"
17
18
)
18
19
 
54
55
}
55
56
 
56
57
// SetUnitStatus sets the status of the unit.
57
 
func (u *Unit) SetUnitStatus(status params.Status, info string, data map[string]interface{}) error {
 
58
func (u *Unit) SetUnitStatus(unitStatus status.Status, info string, data map[string]interface{}) error {
58
59
        if u.st.facade.BestAPIVersion() < 2 {
59
60
                return errors.NotImplementedf("SetUnitStatus")
60
61
        }
61
62
        var result params.ErrorResults
62
63
        args := params.SetStatus{
63
64
                Entities: []params.EntityStatusArgs{
64
 
                        {Tag: u.tag.String(), Status: status, Info: info, Data: data},
 
65
                        {Tag: u.tag.String(), Status: unitStatus, Info: info, Data: data},
65
66
                },
66
67
        }
67
68
        err := u.st.facade.FacadeCall("SetUnitStatus", args, &result)
94
95
}
95
96
 
96
97
// SetAgentStatus sets the status of the unit agent.
97
 
func (u *Unit) SetAgentStatus(status params.Status, info string, data map[string]interface{}) error {
 
98
func (u *Unit) SetAgentStatus(agentStatus status.Status, info string, data map[string]interface{}) error {
98
99
        var result params.ErrorResults
99
100
        args := params.SetStatus{
100
101
                Entities: []params.EntityStatusArgs{
101
 
                        {Tag: u.tag.String(), Status: status, Info: info, Data: data},
 
102
                        {Tag: u.tag.String(), Status: agentStatus, Info: info, Data: data},
102
103
                },
103
104
        }
104
105
        setStatusFacadeCall := "SetAgentStatus"
709
710
 
710
711
        return results.Combine()
711
712
}
 
713
 
 
714
// NetworkConfig requests network config information for the unit and the given
 
715
// bindingName.
 
716
func (u *Unit) NetworkConfig(bindingName string) ([]params.NetworkConfig, error) {
 
717
        var results params.UnitNetworkConfigResults
 
718
        args := params.UnitsNetworkConfig{
 
719
                Args: []params.UnitNetworkConfig{{
 
720
                        BindingName: bindingName,
 
721
                        UnitTag:     u.tag.String(),
 
722
                }},
 
723
        }
 
724
 
 
725
        err := u.st.facade.FacadeCall("NetworkConfig", args, &results)
 
726
        if err != nil {
 
727
                return nil, errors.Trace(err)
 
728
        }
 
729
 
 
730
        if len(results.Results) != 1 {
 
731
                return nil, fmt.Errorf("expected 1 result, got %d", len(results.Results))
 
732
        }
 
733
 
 
734
        result := results.Results[0]
 
735
        if result.Error != nil {
 
736
                return nil, result.Error
 
737
        }
 
738
 
 
739
        return result.Config, nil
 
740
}