karbor/doc/source/specs/api-service.rst

12 KiB

API Service

https://review.opendev.org/#/c/266338/

The APIs expose Application Data Protection services to the Karbor user.

The purpose of the services is to maximize flexibility and accommodate for (hopefully) any kind of protection for any type of resource, whether it is a basic OpenStack resource (such as a VM, Volume, Image, etc.) or some ancillary resource within an application system that is not managed in OpenStack (such as a hardware device, an external database, etc.).

WSGI Resources Controller

The WSGI Controller handles incoming web requests that are dispatched from the WSGI application APIRouter.

image

From the module class graph, api service basically have following resources Controller:

Provider Controller

Enables the Karbor user to list available providers and get parameters and result schema super-set for all plugins of a specific Provider.

Checkpoint Controller

Enables the Karbor user to access and manage the checkpoints stored in the protection provider.

Protectable Controller

Enables the Karbor user to access information about which resource types are protectable (i.e. can be protected by Karbor). In addition, enables the user to get additional information on each resource type, such as a list of actual instances and their dependencies.

Plan Controller

This API enables the Karbor user to access the protection Plan registry and do the following operations:

  • Plan CRUD.
  • List Plans.
  • Starting and suspending of plans.

Scheduled Operation Controller

This API enables the Karbor user to manage Scheduled Operations:

  • Operation CRUD.
  • List Operations.

Trigger Controller

This API enables the Karbor user to manage Triggers: A trigger only can be deleted when it isn't used in any of the scheduled operation.

  • Trigger CRUD.
  • List Triggers.

Restore Controller

This API enables the Karbor user restore a checkpoint on to a restore target:

  • Create restored system from a checkpoint.

API Service Data base tables

time_triggers and scheduled_operations database tables are the same as tables in the operation engine design.

  1. plans
Field Type Null Key Default Extra
id varchar(36) NO PRI NULL
name varchar(255) NO NULL
provider_id varchar(36) NO NULL
project_id varchar(255) NO NULL
status varchar(64) NO NULL
created_at Datetime YES NULL
updated_at Datetime YES NULL
deleted_at Datetime YES NULL
deleted Boolean NO NULL
  1. resources
Field Type Null Key Default Extra
id Integer NO PRI NULL
plan_id varchar(255) NO FOR NULL
resource_id varchar(36) NO NULL
resource_type varchar(64) NO NULL
created_at Datetime YES NULL
updated_at Datetime YES NULL
deleted_at Datetime YES NULL
deleted Boolean NO NULL
  1. restores
Field Type Null Key Default Extra
id varchar(36) NO PRI NULL
project_id varchar(255) NO NULL
provider_id varchar(36) NO NULL
checkpoint_id varchar(36) NO NULL
restore_target varchar(255) NO NULL
parameters varchar(255) NO NULL
status varchar(64) NO NULL
created_at Datetime YES NULL
updated_at Datetime YES NULL
deleted_at Datetime YES NULL
deleted Boolean NO NULL
  1. triggers
Field Type Null Key Default Extra
id varchar(36) NO PRI NULL
name varchar(255) NO NULL
project_id varchar(255) NO NULL
type varchar(64) NO NULL
properties TEXT NO NULL
created_at Datetime YES NULL
updated_at Datetime YES NULL
deleted_at Datetime YES NULL
deleted Boolean NO NULL
  1. scheduled_operations
Field Type Null Key Default Extra
id varchar(36) NO PRI NULL
name varchar(255) NO NULL
operation_type varchar(64) NO NULL
project_id varchar(255) NO NULL
trigger_id varchar(36) NO NULL
operation_definition TEXT NO NULL
created_at Datetime YES NULL
updated_at Datetime YES NULL
deleted_at Datetime YES NULL
deleted Boolean NO NULL
  1. services
Field Type Null Key Default Extra
id Integer NO PRI NULL
host varchar(255) NO NULL
binary varchar(255) NO NULL
topic varchar(255) NO NULL
report_count Integer NO NULL
disabled Boolean NO NULL
disabled_reason varchar(255) NO NULL
modified_at Datetime NO NULL
rpc_current_version varchar(36) NO NULL
rpc_available_version varchar(36) NO NULL
created_at Datetime YES NULL
updated_at Datetime YES NULL
deleted_at Datetime YES NULL
deleted Boolean NO NULL