Add support for Redis replication

Implements a replication strategy for Redis.  The following
commands have been added to the Redis datastore manager:

create (with --replica_of and --replica_count arguments)
detach-replica
eject-replica-source
promote-to-replica-source

Unit tests were added, along with integration tests.

To run:
./redstack install
./redstack kick-start redis
(vi /etc/trove/test.conf and change volume_support to false)
./redstack int-tests --group=replication (or --group=redis_supported)

DocImpact: Documentation should reflect the newly supported
features for Redis (see above).

Depends-On: I633273d438c22f98bef2fd1535730bcdb5e5cff0
Change-Id: I2f0d53fe9049026faf1f37a40c1b5788abae4428
Implements: blueprint redis-replication
This commit is contained in:
Peter Stachowski
2015-08-07 18:02:16 -04:00
committed by Craig Vyvial
parent b3f62412c2
commit 4987f4af78
22 changed files with 898 additions and 306 deletions

View File

@@ -564,8 +564,12 @@ redis_opts = [
'incremental, the runner will use the default full backup.',
deprecated_name='backup_incremental_strategy',
deprecated_group='DEFAULT'),
cfg.StrOpt('replication_strategy', default=None,
cfg.StrOpt('replication_strategy', default='RedisSyncReplication',
help='Default strategy for replication.'),
cfg.StrOpt('replication_namespace',
default='trove.guestagent.strategies.replication.experimental.'
'redis_sync',
help='Namespace to load replication strategies from.'),
cfg.StrOpt('mount_point', default='/var/lib/redis',
help="Filesystem path for mounting "
"volumes if volume support is enabled."),