https://wiki.openstack.org/w/api.php?action=feedcontributions&user=Zh.f&feedformat=atomOpenStack - User contributions [en]2024-03-28T19:54:34ZUser contributionsMediaWiki 1.28.2https://wiki.openstack.org/w/index.php?title=PTG/Rocky/Etherpads&diff=159949PTG/Rocky/Etherpads2018-03-02T02:41:39Z<p>Zh.f: </p>
<hr />
<div>__NOTOC__<br />
<br />
This is the list of etherpads for the Projects Team Gathering in Dublin. Each team can organize the content on their allocated day(s) in the way that seems to most appropriate to them. We suspect most teams will avoid strict timeboxed slots and will use etherpads to list topics to cover. This page lists those etherpads for easy reference.<br />
<br />
For more details on the event, see the [https://www.openstack.org/ptg/ event website].<br />
<br />
Sign up for [https://docs.google.com/spreadsheets/d/1MK7rCgYXCQZP1AgQ0RUiuc-cEXIzW5RuRzz5BWhV4nQ/edit#gid=0 team video interviews].<br />
<br />
For what's happening '''right now''' (during the event), see the [http://ptg.openstack.org/ptg.html ptgbot page].<br />
<br />
'''Projects:''' <br />
* Blazar - https://etherpad.openstack.org/p/blazar-ptg-rocky<br />
* Cinder - https://etherpad.openstack.org/p/cinder-ptg-rocky<br />
* Designate - https://etherpad.openstack.org/p/designate-ptg-rocky<br />
* Cyborg - https://etherpad.openstack.org/p/cyborg-ptg-rocky <br />
* Docs/I18n - https://etherpad.openstack.org/p/docs-i18n-ptg-rocky<br />
* Freezer - https://etherpad.openstack.org/p/freezer-ptg-rocky<br />
* Glance - https://etherpad.openstack.org/p/glance-rocky-ptg<br />
* Heat - https://etherpad.openstack.org/p/heat-rocky-ptg<br />
* Horizon - https://etherpad.openstack.org/p/horizon-ptg-rocky<br />
* Infra - https://etherpad.openstack.org/p/infra-rocky-ptg<br />
* Ironic - https://etherpad.openstack.org/p/ironic-rocky-ptg<br />
* Keystone - https://etherpad.openstack.org/p/keystone-rocky-ptg<br />
* Kolla - https://etherpad.openstack.org/p/kolla-rocky-ptg-planning<br />
* Kuryr - https://etherpad.openstack.org/p/kuryr-ptg-rocky<br />
* Magnum - https://etherpad.openstack.org/p/magnum-ptg-rocky<br />
* Manila - https://etherpad.openstack.org/p/manila-rocky-ptg<br />
* Mistral - https://etherpad.openstack.org/p/mistral-ptg-rocky<br />
* Monasca - https://etherpad.openstack.org/p/monasca-ptg-rocky<br />
* Neutron - https://etherpad.openstack.org/p/neutron-ptg-rocky<br />
* Nova - https://etherpad.openstack.org/p/nova-ptg-rocky<br />
* Octavia - https://etherpad.openstack.org/p/octavia-ptg-rocky<br />
* Openstack-Ansible - https://etherpad.openstack.org/p/osa-rocky-ptg<br />
* OpenStack-Charms - https://etherpad.openstack.org/p/DUB-charms-devroom<br />
* OpenStack-Helm - https://etherpad.openstack.org/p/openstack-helm-ptg-rocky<br />
* Oslo - https://etherpad.openstack.org/p/oslo-ptg-rocky<br />
* Packaging-RPM - https://etherpad.openstack.org/p/rpm-packaging-rocky-ptg<br />
* QA - https://etherpad.openstack.org/p/qa-rocky-ptg<br />
* RelMgt - https://etherpad.openstack.org/p/relmgt-ptg-rocky<br />
* Requirements - https://etherpad.openstack.org/p/rocky-PTG-requirements<br />
* Sahara - https://etherpad.openstack.org/p/sahara-rocky-ptg<br />
* Swift - https://etherpad.openstack.org/p/Dublin_PTG_Swift<br />
* TripleO - https://etherpad.openstack.org/p/tripleo-ptg-rocky<br />
* Trove - https://etherpad.openstack.org/p/trove-ptg-rocky<br />
* Vitrage - https://etherpad.openstack.org/p/vitrage-ptg-rocky<br />
* Watcher - https://etherpad.openstack.org/p/rocky-watcher-ptg<br />
<br />
<br />
'''SIG/Theme/Other:'''<br />
* API SIG - https://etherpad.openstack.org/p/api-sig-ptg-rocky<br />
* Edge/FEMDC - https://etherpad.openstack.org/p/edge-ptg-dublin<br />
* Cross-project identity integration (Monday & Tuesday) - https://etherpad.openstack.org/p/baremetal-vm-rocky-ptg<br />
* Fast-forward Upgrades - https://etherpad.openstack.org/p/ffu-ptg-rocky<br />
* Feedback on PTG - https://etherpad.openstack.org/p/RockyPTG-Feedback<br />
* First Contact SIG - https://etherpad.openstack.org/p/FC_SIG_Rocky_PTG<br />
* K8s SIG - https://etherpad.openstack.org/p/sig-k8s-2018-dublin-ptg<br />
* OpenStack Upstream Institute (OUI): https://etherpad.openstack.org/p/OUI-Rocky-PTG <br />
* Public Cloud WG - https://etherpad.openstack.org/p/publiccloud-wg-ptg-rocky<br />
* Release cycles and downstream consumption models - https://etherpad.openstack.org/p/release-cycles-ptg-rocky<br />
* RefStack / Interop WG - https://etherpad.openstack.org/p/InteropDublin2018PTG<br />
* Scientific SIG - https://etherpad.openstack.org/p/scientific-sig-ptg-rocky<br />
* Security SIG - https://etherpad.openstack.org/p/security-ptg-rocky<br />
* Self-healing SIG: https://etherpad.openstack.org/p/self-healing-ptg-rocky<br />
* StoryBoard: https://etherpad.openstack.org/p/StoryBoard-Rocky-PTG<br />
* TC (Friday) - https://etherpad.openstack.org/p/PTG-Dublin-TC-topics<br />
* UC (Tuesday) - https://etherpad.openstack.org/p/UC-Rocky-PTG</div>Zh.fhttps://wiki.openstack.org/w/index.php?title=Trove&diff=155479Trove2017-07-25T07:03:54Z<p>Zh.f: /* trove-api */</p>
<hr />
<div>= Mission Statement =<br />
The OpenStack Open Source Database as a Service Mission: To provide scalable and reliable Cloud Database as a Service provisioning functionality for both relational and non-relational database engines, and to continue to improve its fully-featured and extensible open source framework.<br />
<br />
= Description =<br />
Trove is Database as a Service for OpenStack. It's designed to run entirely on [[OpenStack]], with the goal of allowing users to quickly and easily utilize the features of a relational or non-relational database without the burden of handling complex administrative tasks. Cloud users and database administrators can provision and manage multiple database instances as needed. Initially, the service will focus on providing resource isolation at high performance while automating complex administrative tasks including deployment, configuration, patching, backups, restores, and monitoring.<br />
<br />
= Design =<br />
Trove is designed to support a single-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. More detailed Architecture info can be found [https://wiki.openstack.org/wiki/TroveArchitecture here]<br />
<br />
== trove-api ==<br />
The '''trove-api''' service provides a RESTful API that supports JSON and XML to provision and manage Trove instances. <br />
* A REST-ful component<br />
* Entry point - Trove/bin/trove-api<br />
* Uses a WSGI launcher configured by Trove/etc/trove/api-paste.ini<br />
** Defines the pipeline of filters; token auth, rate limit, etc.<br />
** Defines the app_factory for the trove app as trove.common.api:app_factory<br />
* The API class (a wsgi Router) wires the REST paths to the appropriate Controllers<br />
** Implementation of the Controllers are under the relevant module (versions/instance/flavor/limits), in the service.py module<br />
* Controllers usually redirect implementation to a class in the models.py module<br />
* At this point, an api module of another component (TaskManager, GuestAgent, etc.) is used to send the request onwards through RabbitMQ<br />
<br />
== trove-taskmanager ==<br />
The '''trove-taskmanager''' service does the heavy lifting as far as provisioning instances, managing the lifecycle of instances, and performing operations on the Database instance.<br />
* A service that listens on a RabbitMQ topic<br />
* Entry point - Trove/bin/trove-taskmanager<br />
* Runs as a RpcService configured by Trove/etc/trove/trove-taskmanager.conf.sample which defines trove.taskmanager.manager.Manager as the manager - basically this is the entry point for requests arriving through the queue<br />
* As described above, requests for this component are pushed to MQ from another component using the TaskManager's api module using _cast() or _call() (sync/a-sync) and putting the method's name as a parameter<br />
* Trove/openstack/common/rpc/dispatcher.py- RpcDispatcher.dispatch() invokes the proper method in the Manager by some equivalent to reflection<br />
* The Manager then redirect the handling to an object from the models.py module. It loads an object from the relevant class with the context and instance_id<br />
* Actual handling is usually done in the models.py module<br />
<br />
== trove-guestagent ==<br />
The '''guestagent''' is a service that runs within the guest instance, responsible for managing and performing operations on the Database itself. The Guest Agent listens for RPC messages through the message bus and performs the requested operation.<br />
* Similar to TaskManager in the sense of running as a service that listens on a RabbitMQ topic<br />
* GuestAgent runs on every DB instance, and a dedicated MQ topic is used (identified as the instance's id)<br />
* Entry point - Trove/bin/trove-guestagent<br />
* Runs as a RpcService configured by Trove/etc/trove/trove-guestagent.conf.sample which defines trove.guestagent.manager.Manager as the manager - basically this is the entry point for requests arriving through the queue<br />
* As described above, requests for this component are pushed to MQ from another component using the GuestAgent's api module using _cast() or _call() (sync/a-sync) and putting the method's name as a parameter<br />
* Trove/openstack/common/rpc/dispatcher.py- RpcDispatcher.dispatch() invokes the proper method in the Manager by some equivalent to reflection<br />
* The Manager then redirect the handling to an object (usually) from the dbaas.py module.<br />
* Actual handling is usually done in the dbaas.py module<br />
<br />
== Source Code Repositories ==<br />
* Trove Server (https://github.com/openstack/trove)<br />
* Trove Integration (https://github.com/openstack/trove-integration)<br />
* Trove Client (https://github.com/openstack/python-troveclient)<br />
<br />
= Installation and Deployment =<br />
* How to install trove as part of devstack: [[trove/installation]]<br />
* How to use trove-integration: [[trove/trove-integration]]<br />
* How to set up unit tests to run with tox: [[trove/unit-testing]]<br />
* How to set up a testing environment and run redstack tests after installation: [[trove/integration-testing]]<br />
* How to set up your Mac dev environment to debug: [[trove/dev-env]]<br />
* Releasing python-troveclient [[trove/release-python-troveclient]]<br />
* Creating release notes with Reno [[trove/create-release-notes-with-reno]]</div>Zh.f