cinder/cinder/tests/unit/objects
xing-yang 18744ba199 Tiramisu: replication group support
This patch adds support for replication group.
It is built upon the generic volume groups.
It supports enable replication, disable replication,
failover replication, and list replication targets.

Client side patch is here:
    https://review.openstack.org/#/c/352229/

To test this server side patch using the client side patch:
export OS_VOLUME_API_VERSION=3.38

Make sure the group type has group_replication_enabled or
consistent_group_replication_enabled set in group specs,
and the volume types have replication_enabled set in extra specs
(to be compatible with Cheesecake).

cinder group-type-show my_group_type
+-------------+---------------------------------------+
| Property    | Value                                 |
+-------------+---------------------------------------+
| description | None                                  |
| group_specs | group_replication_enabled : <is> True |
| id          | 66462b5c-38e5-4a1a-88d6-7a7889ffec55  |
| is_public   | True                                  |
| name        | my_group_type                         |
+-------------+---------------------------------------+

cinder type-show my_volume_type
+---------------------------------+--------------------------------------+
| Property                        | Value                                |
+---------------------------------+--------------------------------------+
| description                     | None                                 |
| extra_specs                     | replication_enabled : <is> True      |
| id                              | 09c1ce01-87d5-489e-82c6-9f084107dc5c |
| is_public                       | True                                 |
| name                            | my_volume_type                       |
| os-volume-type-access:is_public | True                                 |
| qos_specs_id                    | None                                 |
+---------------------------------+--------------------------------------+

Create a group:
cinder group-create --name my_group my_group_type my_volume_type
cinder group-show my_group

Enable replication group on the primary storage:
    cinder group-enable-replication my_group
Expected results: replication_status becomes “enabled”.

Failover replication group to the secondary storage.
If secondary-backend-id is not specified, it will go to the
secondary-backend-id configured in cinder.conf:
    cinder group-failover-replication my_group
If secondary-backend-id is specified (not “default”), it will go to
the specified backend id:
    cinder group-failover-replication my_group
--secondary-backend-id <backend_id>
Expected results: replication_status becomes “failed-over”.

Run failover replication group again to fail the group back to
the primary storage:
    cinder group-failover-replication my_group
--secondary-backend-id default
Expected results: replication_status becomes “enabled”.

Disable replication group:
    cinder group-disable-replication my_group
Expected results: replication_status becomes “disabled”.

APIImpact
DocImpact
Implements: blueprint replication-cg

Change-Id: I4d488252bd670b3ebabbcc9f5e29e0e4e913765a
2017-04-30 22:49:13 -04:00
..
__init__.py Make c-vol use workers table for cleanup 2016-11-03 10:17:38 +01:00
test_backup.py Convert backup_device to OVO 2016-11-08 16:49:53 +01:00
test_base.py Add VolumeAttachStatus Enum 2016-11-09 17:10:27 -06:00
test_cgsnapshot.py Update OVO instance on destroy method call 2016-07-22 17:54:00 +02:00
test_cleanable.py Prevent claiming and updating races on worker 2017-01-19 10:42:24 +01:00
test_cleanup_request.py Add cleanable base object and cleanup request VO 2016-10-04 15:17:31 +02:00
test_cluster.py Remove duplicate key from dictionary 2017-03-09 17:19:57 +05:30
test_consistencygroup.py Remove cgsnapshot_id before snapshot.save 2016-12-03 16:23:43 -05:00
test_fields.py Add VolumeAttachStatus Enum 2016-11-09 17:10:27 -06:00
test_group.py Rolling Upgrades: Fix Group OVO 2017-05-25 13:57:24 +02:00
test_group_snapshot.py Add group snapshots - db and objects 2016-07-18 22:19:10 -04:00
test_group_type.py Add group type and group specs 2016-07-08 14:26:39 -04:00
test_manageable_volumes_snapshots.py Switch ManageableSnaphots & ManageableVolumes list to OVO 2017-01-25 00:41:30 +00:00
test_objects.py Tiramisu: replication group support 2017-04-30 22:49:13 -04:00
test_qos.py Test: Fix assert_has_calls dict order bug (QoS) 2017-01-23 10:58:28 -05:00
test_service.py Add is_up property to service and cluster objects 2016-11-29 12:33:16 +02:00
test_snapshot.py Merge "Don't change volume's status when create backups from snapshots" 2017-03-28 14:09:24 +00:00
test_volume.py Add is_replicated() to Volume and VolumeType OVOs 2017-05-30 10:16:05 +02:00
test_volume_attachment.py Rolling Upgrades: Fix VolumeAttachment 2017-05-19 11:55:29 +02:00
test_volume_type.py Add is_replicated() to Volume and VolumeType OVOs 2017-05-30 10:16:05 +02:00