Merge "Update list_replication_targets"
This commit is contained in:
commit
084b3af44a
@ -215,7 +215,7 @@ volume_opts = [
|
|||||||
"times in a single config section to specify multiple "
|
"times in a single config section to specify multiple "
|
||||||
"replication target devices. Each entry takes the "
|
"replication target devices. Each entry takes the "
|
||||||
"standard dict config form: replication_device = "
|
"standard dict config form: replication_device = "
|
||||||
"device_target_id:<required>,"
|
"target_device_id:<required>,"
|
||||||
"managed_backend_name:<host@backend_name>,"
|
"managed_backend_name:<host@backend_name>,"
|
||||||
"key1:value1,key2:value2..."),
|
"key1:value1,key2:value2..."),
|
||||||
cfg.BoolOpt('image_upload_use_cinder_backend',
|
cfg.BoolOpt('image_upload_use_cinder_backend',
|
||||||
|
@ -3323,28 +3323,22 @@ class VolumeManager(manager.SchedulerDependentManager):
|
|||||||
|
|
||||||
This method is used to query a backend to get the current
|
This method is used to query a backend to get the current
|
||||||
replication config info for the specified volume.
|
replication config info for the specified volume.
|
||||||
|
|
||||||
In the case of a volume that isn't being replicated,
|
In the case of a volume that isn't being replicated,
|
||||||
the driver should return an empty list.
|
the driver should return an empty list.
|
||||||
|
|
||||||
|
There is one required field for configuration of
|
||||||
|
replication, (target_device_id). As such we
|
||||||
|
use that for the response in list_replication_targets.
|
||||||
|
|
||||||
Example response for replicating to a managed backend:
|
Internal methods can be added to extract additional
|
||||||
|
details if needed, but the only detail that should be
|
||||||
|
exposed to an end user is the identifier. In the case
|
||||||
|
of an Admin, (s)he can always cross check the cinder.conf
|
||||||
|
file that they have configured for additional info.
|
||||||
|
|
||||||
|
Example response:
|
||||||
{'volume_id': volume['id'],
|
{'volume_id': volume['id'],
|
||||||
'targets':[{'remote_device_id': 'vendor-id-for-target-device',
|
'targets':[<target-device-id>,...]'
|
||||||
'managed_host': 'backend_name'}...]
|
|
||||||
|
|
||||||
Example response for replicating to an unmanaged backend:
|
|
||||||
{'volume_id': volume['id'], 'targets':[
|
|
||||||
{'remote_device_id': 'vendor-id-for-target-device',
|
|
||||||
'san_ip': '1.1.1.1',
|
|
||||||
'san_login': 'admin'},
|
|
||||||
....]}
|
|
||||||
|
|
||||||
NOTE: It's the responsibility of the driver to mask out any
|
|
||||||
passwords or sensitive information.
|
|
||||||
|
|
||||||
`remote_device_id` is required and is used for drivers to identify
|
|
||||||
the devices they have in use.
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# NOTE(hemna) We intentionally don't enforce the driver being
|
# NOTE(hemna) We intentionally don't enforce the driver being
|
||||||
|
@ -31,9 +31,12 @@ like to configure.
|
|||||||
There are two standardized keys in the config
|
There are two standardized keys in the config
|
||||||
entry, all others are vendor-unique:
|
entry, all others are vendor-unique:
|
||||||
|
|
||||||
* device_target_id:<vendor-identifier-for-rep-target>
|
* target_device_id:<vendor-identifier-for-rep-target>
|
||||||
* managed_backend_name:<cinder-backend-host-entry>,"
|
* managed_backend_name:<cinder-backend-host-entry>,"
|
||||||
|
|
||||||
|
target_device_id is REQUIRED in all configurations
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
An example config entry for a managed replication device
|
An example config entry for a managed replication device
|
||||||
would look like this::
|
would look like this::
|
||||||
@ -209,17 +212,14 @@ act as a toggle, allowing to switch back and forth betweeen primary and secondar
|
|||||||
|
|
||||||
**list_replication_targets**
|
**list_replication_targets**
|
||||||
|
|
||||||
Used by the admin to query a volume for a list of configured replication targets
|
Used by the admin to query a volume for a list of configured replication targets.
|
||||||
The expected return for this call is expected to mimic the form used in the config file.
|
|
||||||
|
|
||||||
For a volume replicating to managed replication targets::
|
The expected response is simply the single required field in replication-device
|
||||||
|
configuration. It's possible that in the future we may want to add a show
|
||||||
{'volume_id': volume['id'], 'targets':[{'type': 'managed',
|
command that provides all the various details about a target replication
|
||||||
'backend_name': 'backend_name'}...]
|
device. This would be of the form:
|
||||||
|
`show_replication_target <target_device_id>`
|
||||||
For a volume replicating to external/unmanaged targets::
|
|
||||||
|
|
||||||
{'volume_id': volume['id'], 'targets':[{'type': 'unmanaged',
|
|
||||||
'san_ip': '127.0.0.1',
|
|
||||||
'san_login': 'admin'...}...]
|
|
||||||
|
|
||||||
|
Example response:
|
||||||
|
{'volume_id': volume['id'],
|
||||||
|
'targets':[<target-device-id>,...]'
|
||||||
|
Loading…
Reference in New Issue
Block a user