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

« back to all changes in this revision

Viewing changes to state/api/params/internal.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:
359
359
        Error         *Error
360
360
}
361
361
 
362
 
// AgentVersionResult holds the version and possibly error for a given
363
 
// DesiredVersion request
364
 
type AgentVersionResult struct {
 
362
// VersionResult holds the version and possibly error for a given
 
363
// DesiredVersion() API call.
 
364
type VersionResult struct {
365
365
        Version *version.Number
366
366
        Error   *Error
367
367
}
368
368
 
369
 
// AgentVersionResults is a list of versions for the requested entities
370
 
type AgentVersionResults struct {
371
 
        Results []AgentVersionResult
 
369
// VersionResults is a list of versions for the requested entities.
 
370
type VersionResults struct {
 
371
        Results []VersionResult
372
372
}
373
373
 
374
 
// AgentToolsResult holds the tools and possibly error for a given AgentTools request
375
 
type AgentToolsResult struct {
 
374
// ToolsResult holds the tools and possibly error for a given
 
375
// Tools() API call.
 
376
type ToolsResult struct {
376
377
        Tools *tools.Tools
377
378
        Error *Error
378
379
}
379
380
 
380
 
// AgentToolsResults is a list of tools for various requested agents.
381
 
type AgentToolsResults struct {
382
 
        Results []AgentToolsResult
383
 
}
384
 
 
385
 
// SetAgent specifies tools to be set for an agent with the
386
 
// given tag.
387
 
type SetAgentTools struct {
 
381
// ToolsResults is a list of tools for various requested agents.
 
382
type ToolsResults struct {
 
383
        Results []ToolsResult
 
384
}
 
385
 
 
386
// Version holds a specific binary version.
 
387
type Version struct {
 
388
        Version version.Binary
 
389
}
 
390
 
 
391
// EntityVersion specifies the tools version to be set for an entity
 
392
// with the given tag.
 
393
// version.Binary directly.
 
394
type EntityVersion struct {
388
395
        Tag   string
389
 
        Tools *tools.Tools
 
396
        Tools *Version
390
397
}
391
398
 
392
 
// SetAgentsTools specifies what tools are being run for
393
 
// multiple agents.
394
 
type SetAgentsTools struct {
395
 
        AgentTools []SetAgentTools
 
399
// EntitiesVersion specifies what tools are being run for
 
400
// multiple entities.
 
401
type EntitiesVersion struct {
 
402
        AgentTools []EntityVersion
396
403
}
397
404
 
398
405
// PasswordChanges holds the parameters for making a SetPasswords call.