~rogpeppe/juju-core/438-local-instance-Addresses

« back to all changes in this revision

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

[r=fwereade],[bug=1234035] Fix upgrade 1.14 -> 1.15

This adds a Tools() API call to provisioner API,
similarly to the upgrader API. Common code factored
out into apiserver/common/tools.go.

SetAgentTools() renamed to SetAgentVersion() in
machine and unit state types. Also renamed a few
types in params to be shorter or better reflect
what are they about. Added DEPRECATE(v1.18) tags
to bits of the API that need cleanup.

Live tested on EC2 - after copying the tools from
/tools/releases/ to /tools/ the upgrade proceeds
and finishes successfully.

https://codereview.appspot.com/14231044/

R=fwereade, jameinel

Show diffs side-by-side

added added

removed removed

Lines of Context:
24
24
        return &State{caller}
25
25
}
26
26
 
27
 
// SetTools sets the tools associated with the entity
28
 
// with the given tag, which must be the tag
29
 
// of the entity that the upgrader is running
30
 
// on behalf of.
31
 
func (st *State) SetTools(tag string, tools *tools.Tools) error {
 
27
// SetVersion sets the tools version associated with the entity with
 
28
// the given tag, which must be the tag of the entity that the
 
29
// upgrader is running on behalf of.
 
30
func (st *State) SetVersion(tag string, v version.Binary) error {
32
31
        var results params.ErrorResults
33
 
        args := params.SetAgentsTools{
34
 
                AgentTools: []params.SetAgentTools{{
 
32
        args := params.EntitiesVersion{
 
33
                AgentTools: []params.EntityVersion{{
35
34
                        Tag:   tag,
36
 
                        Tools: tools,
 
35
                        Tools: &params.Version{v},
37
36
                }},
38
37
        }
39
38
        err := st.caller.Call("Upgrader", "", "SetTools", args, &results)
45
44
}
46
45
 
47
46
func (st *State) DesiredVersion(tag string) (version.Number, error) {
48
 
        var results params.AgentVersionResults
 
47
        var results params.VersionResults
49
48
        args := params.Entities{
50
49
                Entities: []params.Entity{{Tag: tag}},
51
50
        }
69
68
        return *result.Version, nil
70
69
}
71
70
 
 
71
// Tools returns the agent tools that should run on the given entity.
72
72
func (st *State) Tools(tag string) (*tools.Tools, error) {
73
 
        var results params.AgentToolsResults
 
73
        var results params.ToolsResults
74
74
        args := params.Entities{
75
75
                Entities: []params.Entity{{Tag: tag}},
76
76
        }