Trove 的 Apache CouchDB 插件

Launchpad蓝图

https://blueprints.launchpad.net/trove/+spec/couchdb-plugin-trove

问题描述

此蓝图的目标是使 Trove 能够支持一种新的数据存储类型 - Ubuntu 和 Fedora 上的 Apache CouchDB v1.6.1,以及 Trove 支持的其他 NoSQL 数据库。

提议的变更

为了添加对这种新的数据存储的支持,我们需要实现以下内容:- 为 Ubuntu 和 Fedora 上的 Apache CouchDB 添加一个新的 diskimage-builder 元素 - 实现各种数据存储功能,例如

- Launch
- Reboot
- Terminate
- Backup
- Restore
- Resize
- Replication

配置

CouchDB 的一个新的配置组以及 /trove/common/cfg.py 中 CouchDB 特定的不同配置选项。

配置选项的一些示例是

- tcp_ports
- udp_ports
- backup_strategy
- mount_point
- usage_timeout
- volume_support
- device_path

数据库

公共 API

内部 API

Guest Agent

这需要为 Apache CouchDB 实现各种数据存储功能,例如启动、重启、终止、备份、恢复、调整大小和复制。 这将包括在 guestagent/datastore 模块下添加以下特定于 Apache CouchDB 的文件

- manager.py
- service.py
- system.py

此外,guestagent/strategies/backup 下还将有一个类来实现备份和恢复功能,guestagent/strategies/replication 下还将有一个类来实现复制功能。 CouchDB 使用复制接口进行备份,因此我们只会为本次发布实现完全备份。

这些更改不会影响 guestagent 的行为或其与其他组件的交互。

实现

负责人

里程碑

Kilo

依赖项

测试

  • 为 CouchDB guestAgent 添加新的单元测试

  • 为端到端功能测试添加集成测试

    - create/delete instance
    - create/restore backups
    - replication
    

文档影响