From 5011892b37161e4e84b25a1ec0b808ebaf40fa16 Mon Sep 17 00:00:00 2001 From: Lingxian Kong Date: Fri, 29 May 2020 22:43:37 +1200 Subject: [PATCH] Doc: update trove design Change-Id: I8497395e5c685fd599b147028ec6fd0b061461fd --- doc/source/contributor/design.rst | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/doc/source/contributor/design.rst b/doc/source/contributor/design.rst index 1262ed20ff..01c8ac9fd9 100644 --- a/doc/source/contributor/design.rst +++ b/doc/source/contributor/design.rst @@ -7,7 +7,7 @@ Trove Design High Level description ====================== -Trove is designed to support a single-tenant database within a Nova +Trove is designed to support multi-tenant database within a Nova instance. There will be no restrictions on how Nova is configured, since Trove interacts with other OpenStack components purely through the API. @@ -16,11 +16,11 @@ the API. Trove-api ========= -The trove-api service provides a RESTful API that supports JSON and -XML to provision and manage Trove instances. +The trove-api service provides a RESTful API that supports JSON to +provision and manage Trove instances. * A REST-ful component -* Entry point - trove/bin/trove-api +* Entry point - trove/cmd/api.py * Uses a WSGI launcher configured by etc/trove/api-paste.ini * Defines the pipeline of filters; authtoken, ratelimit, etc. * Defines the app_factory for the troveapp as @@ -28,7 +28,7 @@ XML to provision and manage Trove instances. * The API class (a wsgi Router) wires the REST paths to the appropriate Controllers * Implementation of the Controllers are under the relevant module - (versions/instance/flavor/limits), in the service.py module + (versions/instance/backup/configuration), in the service.py module * Controllers usually redirect implementation to a class in the models.py module * At this point, an api module of another component (TaskManager, @@ -44,9 +44,9 @@ provisioning instances, managing the lifecycle of instances, and performing operations on the Database instance. * A service that listens on a RabbitMQ topic -* Entry point - trove/bin/trove-taskmanager +* Entry point - trove/cmd/taskmanager.py * Runs as a RpcService configured by - etc/trove/trove.conf.sample which defines + etc/trove/trove.conf which defines trove.taskmanager.manager.Manager as the manager - basically this is the entry point for requests arriving through the queue * As described above, requests for this component are pushed to MQ @@ -74,9 +74,9 @@ bus and performs the requested operation. listens on a RabbitMQ topic * GuestAgent runs on every DB instance, and a dedicated MQ topic is used (identified as the instance's id) -* Entry point - trove/bin/trove-guestagent +* Entry point - trove/cmd/guest.py * Runs as a RpcService configured by - etc/trove/trove-guestagent.conf.sample which defines + /etc/trove/conf.d/trove-guestagent.conf which defines trove.guestagent.datastore.manager.Manager as the manager - basically this is the entry point for requests arriving through the queue * As described above, requests for this component are pushed to MQ @@ -88,7 +88,8 @@ bus and performs the requested operation. by some equivalent to reflection * The Manager then redirect the handling to an object (usually) from the dbaas.py module. -* Actual handling is usually done in the dbaas.py module +* The database service is running as a docker container inside the Nova + VM. Trove-conductor @@ -107,9 +108,9 @@ bus and performs the relevant operation. * Guest agents communicate to conductor by putting messages on the topic defined in cfg as conductor_queue. By default this is "trove-conductor". -* Entry point - trove/bin/trove-conductor +* Entry point - trove/cmd/conductor.py * Runs as RpcService configured by - etc/trove/trove.conf.sample which defines + etc/trove/trove.conf which defines trove.conductor.manager.Manager as the manager. This is the entry point for requests arriving on the queue. * As guestagent above, requests are pushed to MQ from another component @@ -123,5 +124,4 @@ bus and performs the relevant operation. its current status, size of the backup, type, and checksum. - .. Trove - Database as a Service: https://wiki.openstack.org/wiki/Trove