Update/Upgrade trove-guestagent code

Registered by Denis M.

This blueprint has been superseded. See the newer blueprint "Upgrade support in the Guest Agent" for updated plans.

Trove needs mechanism for updating(during one release cycle)/upgrading(from one release to another) guest code after migration from one release to another, taking into account possible guest RPC API changes.

Warning: Note, user should perform backup before update/upgrade. There's no way to downgrade.

Since guestagent is an application which could be delivered into many kind ways, we need to extend mgmt API calls stack.

Task #1: Versionize guest RPC API
      Define RPC API version per Trove release.

Task #2: Update/Upgrade
      Define pluggable mechanism for guest update/upgrade.
      Requires: update/upgrade strategy
      Request parameters:
            DBInstance ID
                        Type: UUID
            StrategyName.
                        Type: String.
                        Description: Update/Upgrade strategy.
                        Possible values: from_source, from_package
      Flow: trove-manage guest-update 5ff34c3d-689f-46f0-904a-9c1cc4d54fcb --strategy from_source
                If strategy available - execute update/upgrade, restart instance, send finish_update call

      Required configuration:
            Available strategy names;
            Strategy implementations;
            Version of current guest RPC API;
            Strategy related parameters (from_source: code repository, from_package: package URL).

Task #3: finish_update/upgrade call
      Perform database check. (mysql ping, nodetool statusthrift, etc)
      Requires: check process implementation. ( suc, err = util.execute_with_timeout('bla-bla') )
      Flow: cast finish_update(): suc, err = util.execute_with_timeout('mysql ping', run_as_root=True, shell=True)

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
None
Direction:
Needs approval
Assignee:
None
Definition:
Superseded
Series goal:
None
Implementation:
Unknown
Milestone target:
None
Completed by
Michael Basnight

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.