kingbird/kingbird/engine
Goutham Pratapa ce3a2dae92 Implement Image synchronization in Kingbird.
Image-synchronization syncs multiple images from one region to
multiple target regions.
Currently the supported image disk_formats are Qcow2 and AMI.
If user triggers a request to sync AMI format image then Kingbird
syncs the dependent AKI and ARI images as well.
-Syncs the respective image's image-metadata as well.
-Verification of Dependent images is handled by glance_adapter.
-Modified sync_manager to keypair_sync_manager and made it an
independent entity.
-Created an independent Image Sync-manager which syncs images in
multiple target regions.
Added Test-cases for the same.
Depends-on: I316ff7e79afb0ea092eec2a4bf32a78c609198ab
Implements: blueprint image-synchronization

Change-Id: If207f803b67b5f5702117d377883b57101802c42
2017-07-18 12:19:13 +00:00
..
README.rst Remove unused configuration options 2016-07-22 12:11:37 +02:00
__init__.py Restructure kingbird architecture 2016-02-16 16:12:26 +05:30
image_sync_manager.py Implement Image synchronization in Kingbird. 2017-07-18 12:19:13 +00:00
keypair_sync_manager.py Implement Image synchronization in Kingbird. 2017-07-18 12:19:13 +00:00
kingbird_lock.py Remove log translations 2017-03-21 20:45:47 +08:00
quota_manager.py Remove log translations 2017-03-21 20:45:47 +08:00
scheduler.py RPC refactoring 2016-07-05 11:32:19 +05:30
service.py Implement Image synchronization in Kingbird. 2017-07-18 12:19:13 +00:00

README.rst

Service

Kingbird Service has responsibility for:

Monitoring the job/smaller jobs status, and return the result to Kingbird API if needed.

Generate task to purge time-out jobs from Kingbird Database

Multiple Kingbird API could run in parallel, and also can work in multi-worker mode.

Multiple Kingbird Engine will be designed and run in stateless mode, persistent data will be accessed (read and write) from the Kingbird Database through the DAL module.

service.py:

run KB service in multi-worker mode, and establish RPC server

engine_cfg.py:

configuration and initialization for Engine service

quota_manager.py

Manages all the quota related activies such as Periodic Quota Sync, One Demand Quota Sync, Get Total Usage for a Project, Read Kingbird global limit from DB/Conf file etc..

Quota sync happens based on below formula: Global_remaining_limit = Kingbird_global_limit(from DB/Conf) - Su(sum of all usages from all regions) Region_new_limit = Global_remaining_limit + resource_usage_in_that_region.

Reference link: https://etherpad.opnfv.org/p/centralized_quota_management

On Demand Quota Sync: Creates threads for each region and syncs the limits for each quota concurrently.

Periodic Quota Sync: Creates threads for each Project and calls quota sync for project(On Demand Quota sync) for syncing project.

Caches OpenStack region specific clients so reduced traffic.