API Service

API Service

https://review.openstack.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.

https://raw.githubusercontent.com/openstack/karbor/master/doc/images/api-service-class-diagram.png

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  
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.