Deprecate CG APIs

This patch prints a deprecation message when CG APIs are used and
prompts users to swich to Generic Volume Group APIs instead. CG APIs
are also marked as deprecated in API reference docs. CG APIs will be
removed in a future release when it is appropriate and will be
decided by the Cinder team. This was communicated in Pike.

Change-Id: Ib6751fae6b5fb78de98a2ea62f507f9102f71b76
This commit is contained in:
Xing Yang 2017-12-10 09:23:18 -08:00 committed by xing-yang
parent 7bbc95344d
commit 556ae86d38
5 changed files with 28 additions and 4 deletions

View File

@ -1,7 +1,7 @@
.. -*- rst -*-
Consistency groups
==================
Consistency groups (DEPRECATED)
===============================
Consistency groups enable you to create snapshots at the exact same
point in time from multiple volumes. For example, a database might

View File

@ -1,7 +1,7 @@
.. -*- rst -*-
Consistency group snapshots
===========================
Consistency group snapshots (DEPRECATED)
========================================
Lists all, lists all with details, shows details for, creates, and
deletes consistency group snapshots.

View File

@ -16,6 +16,7 @@
"""The cgsnapshots api."""
from oslo_log import log as logging
from oslo_log import versionutils
import six
from six.moves import http_client
import webob
@ -30,6 +31,8 @@ from cinder import group as group_api
from cinder.i18n import _
LOG = logging.getLogger(__name__)
DEPRECATE_CGSNAP_API_MSG = ("Consistency Group Snapshot APIs are deprecated. "
"Use Generic Volume Group Snapshot APIs instead.")
class CgsnapshotsController(wsgi.Controller):
@ -43,6 +46,7 @@ class CgsnapshotsController(wsgi.Controller):
def show(self, req, id):
"""Return data about the given cgsnapshot."""
versionutils.report_deprecated_feature(LOG, DEPRECATE_CGSNAP_API_MSG)
LOG.debug('show called for member %s', id)
context = req.environ['cinder.context']
@ -53,6 +57,7 @@ class CgsnapshotsController(wsgi.Controller):
def delete(self, req, id):
"""Delete a cgsnapshot."""
versionutils.report_deprecated_feature(LOG, DEPRECATE_CGSNAP_API_MSG)
LOG.debug('delete called for member %s', id)
context = req.environ['cinder.context']
@ -74,10 +79,12 @@ class CgsnapshotsController(wsgi.Controller):
def index(self, req):
"""Returns a summary list of cgsnapshots."""
versionutils.report_deprecated_feature(LOG, DEPRECATE_CGSNAP_API_MSG)
return self._get_cgsnapshots(req, is_detail=False)
def detail(self, req):
"""Returns a detailed list of cgsnapshots."""
versionutils.report_deprecated_feature(LOG, DEPRECATE_CGSNAP_API_MSG)
return self._get_cgsnapshots(req, is_detail=True)
def _get_cg(self, context, id):
@ -112,6 +119,7 @@ class CgsnapshotsController(wsgi.Controller):
@wsgi.response(http_client.ACCEPTED)
def create(self, req, body):
"""Create a new cgsnapshot."""
versionutils.report_deprecated_feature(LOG, DEPRECATE_CGSNAP_API_MSG)
LOG.debug('Creating new cgsnapshot %s', body)
self.assert_valid_body(body, 'cgsnapshot')

View File

@ -16,6 +16,7 @@
"""The consistencygroups api."""
from oslo_log import log as logging
from oslo_log import versionutils
from oslo_utils import strutils
from six.moves import http_client
import webob
@ -33,6 +34,8 @@ from cinder.policies import groups as group_policy
from cinder.volume import group_types
LOG = logging.getLogger(__name__)
DEPRECATE_CG_API_MSG = ("Consistency Group APIs are deprecated. "
"Use Generic Volume Group APIs instead.")
class ConsistencyGroupsController(wsgi.Controller):
@ -46,6 +49,7 @@ class ConsistencyGroupsController(wsgi.Controller):
def show(self, req, id):
"""Return data about the given consistency group."""
versionutils.report_deprecated_feature(LOG, DEPRECATE_CG_API_MSG)
LOG.debug('show called for member %s', id)
context = req.environ['cinder.context']
@ -56,6 +60,7 @@ class ConsistencyGroupsController(wsgi.Controller):
def delete(self, req, id, body):
"""Delete a consistency group."""
versionutils.report_deprecated_feature(LOG, DEPRECATE_CG_API_MSG)
LOG.debug('delete called for member %s', id)
context = req.environ['cinder.context']
force = False
@ -84,10 +89,12 @@ class ConsistencyGroupsController(wsgi.Controller):
def index(self, req):
"""Returns a summary list of consistency groups."""
versionutils.report_deprecated_feature(LOG, DEPRECATE_CG_API_MSG)
return self._get_consistencygroups(req, is_detail=False)
def detail(self, req):
"""Returns a detailed list of consistency groups."""
versionutils.report_deprecated_feature(LOG, DEPRECATE_CG_API_MSG)
return self._get_consistencygroups(req, is_detail=True)
def _get(self, context, id):
@ -129,6 +136,7 @@ class ConsistencyGroupsController(wsgi.Controller):
@wsgi.response(http_client.ACCEPTED)
def create(self, req, body):
"""Create a new consistency group."""
versionutils.report_deprecated_feature(LOG, DEPRECATE_CG_API_MSG)
LOG.debug('Creating new consistency group %s', body)
self.assert_valid_body(body, 'consistencygroup')
@ -179,6 +187,7 @@ class ConsistencyGroupsController(wsgi.Controller):
this does not require volume_types as the "create"
API above.
"""
versionutils.report_deprecated_feature(LOG, DEPRECATE_CG_API_MSG)
LOG.debug('Creating new consistency group %s.', body)
self.assert_valid_body(body, 'consistencygroup-from-src')
@ -267,6 +276,7 @@ class ConsistencyGroupsController(wsgi.Controller):
}
"""
versionutils.report_deprecated_feature(LOG, DEPRECATE_CG_API_MSG)
LOG.debug('Update called for consistency group %s.', id)
if not body:
msg = _("Missing request body.")

View File

@ -0,0 +1,6 @@
---
deprecations:
- |
The Consistency Group APIs have now been marked as deprecated and
will be removed in a future release. Generic Volume Group APIs should
be used instead.