2. Understanding how Abiquo uses the backup plugin

This plugin is loaded from 3 different components of Abiquo:

API

The API needs to load the plugin in order to know which features are supported and in order to choose and command the actions.

Methods invoked

  • validateConfiguration() - During API startup this method is invoked to validate that all required plugin configuration is loaded and the plugin can be used.

Virtual Factory

The virtual factory uses the plugin to:

  • configure and destroy the backup for the VMs
  • request an on demand backup
  • restore a VM

In summary, it executes the actions requested by the user.

It processes the backup tasks as it does with the deploy ones, which also means that it keeps the task locked while a method is invoked.

Methods invoked

  • applySchedule(connection, virtualMachineIdentifier, backupSchedule) - Configure the backup of the recently deployed VM.

  • applySchedule(connection, virtualMachineIdentifier, oldBackupSchedule, newBackupSchedule) - Some backup changes have occurred in a deployed VM, so make them effective. Changes can be new configurations added, old ones removed or some of them updated.

  • removeSchedue(connection, virtualMachineIdentifier) - The VM is will be undeployed, so remove the existing backup configuration.
  • executeBackup(connection, virtualMachineIdentifier, options) - A user requested a backup of the VM at this moment, so let's proceed.
  • executeRestore(connection, virtualMachineIdentifier, backupId) - A user requested a restore of a backup of a VM, so let's proceed.

Cloud Provider Proxy

The cloud provider proxy (CPP) uses the plugin to:

  • Retrieve the backup and restore results.
  • Check for the backup and restore results that are expired.

These are actions requested by a periodical task from API, so it retrieves the necessary information to maintain the status of the backup in the Abiquo.

Methods invoked

  • listResults(connection, lastCheckDate, inProgressResultProviderIds) - Return to Abiquo API which backup results are finished or in progress.
  • getExpiredResults(connection, providerIds) - Check the given results that API supposes to be expired and return those that are really expired.

Copyright © 2006-2022, Abiquo Holdings SL. All rights reserved