in pkg/platform/api/platform.go [108:132]
func (p apiPlatform) Update(target platform.Update) error {
updateStatus, err := p.apiClient.GetUpdateStatus()
if err != nil {
return err
}
if updateStatus.UpdateState != stateStaged {
return errors.Errorf("unexpected update state: %s, expecting state to be 'Staged'. update action performed out of band?", updateStatus.UpdateState)
}
// Activate the prepared update
err = p.apiClient.ActivateUpdate()
if err != nil {
return err
}
commandResult, err := p.apiClient.GetMostRecentCommand()
if err != nil {
return err
}
if commandResult.CmdType != commandActivate || commandResult.CmdStatus != statusSuccess {
return errors.New("failed to activate update or update action performed out of band")
}
return nil
}