func()

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
}