Properly deprecate v1.client and some other client related things
v1.client is already deprecated since 2015-09 [1] but we never said when the code will be eventually removed. It's now explicitly mentioned that v1.client will be removed with the 2.0.0 release of python-manilaclient. Also explicitly mention that some kwargs (for v1.client.Client and v2.client.Client) and the authenticate() method (also for v1 and v2) will be removed with the 2.0.0 release. [1] I3733fe85424e39566addc070d42609e508259f19 Change-Id: I3de36f69c43245a5d27279c5fb7226f0f1cee2e0
This commit is contained in:
parent
a995cd9498
commit
f2948f23c9
@ -10,7 +10,7 @@
|
|||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
import warnings
|
from debtcollector import removals
|
||||||
|
|
||||||
from keystoneauth1 import session
|
from keystoneauth1 import session
|
||||||
from keystoneclient import adapter
|
from keystoneclient import adapter
|
||||||
@ -35,6 +35,8 @@ from manilaclient.v2 import share_types
|
|||||||
from manilaclient.v2 import shares
|
from manilaclient.v2 import shares
|
||||||
|
|
||||||
|
|
||||||
|
@removals.removed_class("Client", message="Please use 'v2.Client' instead",
|
||||||
|
removal_version='2.0.0')
|
||||||
class Client(object):
|
class Client(object):
|
||||||
"""Top-level object to access the OpenStack Manila API.
|
"""Top-level object to access the OpenStack Manila API.
|
||||||
|
|
||||||
@ -60,6 +62,21 @@ class Client(object):
|
|||||||
>>> client.shares.list()
|
>>> client.shares.list()
|
||||||
...
|
...
|
||||||
"""
|
"""
|
||||||
|
@removals.removed_kwarg(
|
||||||
|
'share_service_name', message="Please use 'service_name' instead",
|
||||||
|
removal_version='2.0.0')
|
||||||
|
@removals.removed_kwarg(
|
||||||
|
'proxy_tenant_id', message="This is not used anywhere",
|
||||||
|
removal_version='2.0.0')
|
||||||
|
@removals.removed_kwarg(
|
||||||
|
'proxy_token', message="This is not used anywhere",
|
||||||
|
removal_version='2.0.0')
|
||||||
|
@removals.removed_kwarg(
|
||||||
|
'os_cache', message="Please use 'use_keyring' instead",
|
||||||
|
removal_version='2.0.0')
|
||||||
|
@removals.removed_kwarg(
|
||||||
|
'api_key', message="Please use 'password' instead",
|
||||||
|
removal_version='2.0.0')
|
||||||
def __init__(self, username=None, api_key=None,
|
def __init__(self, username=None, api_key=None,
|
||||||
project_id=None, auth_url=None, insecure=False, timeout=None,
|
project_id=None, auth_url=None, insecure=False, timeout=None,
|
||||||
tenant_id=None, project_name=None, region_name=None,
|
tenant_id=None, project_name=None, region_name=None,
|
||||||
@ -107,32 +124,6 @@ class Client(object):
|
|||||||
|
|
||||||
service_name = kwargs.get("share_service_name", service_name)
|
service_name = kwargs.get("share_service_name", service_name)
|
||||||
|
|
||||||
def check_deprecated_arguments():
|
|
||||||
deprecated = {
|
|
||||||
'share_service_name': 'service_name',
|
|
||||||
'proxy_tenant_id': None,
|
|
||||||
'proxy_token': None,
|
|
||||||
'os_cache': 'use_keyring',
|
|
||||||
'api_key': 'password',
|
|
||||||
}
|
|
||||||
|
|
||||||
for arg, replacement in deprecated.items():
|
|
||||||
if kwargs.get(arg, None) is None:
|
|
||||||
continue
|
|
||||||
|
|
||||||
replacement_msg = ""
|
|
||||||
|
|
||||||
if replacement is not None:
|
|
||||||
replacement_msg = " Use %s instead." % replacement
|
|
||||||
|
|
||||||
msg = "Argument %(arg)s is deprecated.%(repl)s" % {
|
|
||||||
'arg': arg,
|
|
||||||
'repl': replacement_msg
|
|
||||||
}
|
|
||||||
warnings.warn(msg)
|
|
||||||
|
|
||||||
check_deprecated_arguments()
|
|
||||||
|
|
||||||
if input_auth_token and not service_catalog_url:
|
if input_auth_token and not service_catalog_url:
|
||||||
msg = ("For token-based authentication you should "
|
msg = ("For token-based authentication you should "
|
||||||
"provide 'input_auth_token' and 'service_catalog_url'.")
|
"provide 'input_auth_token' and 'service_catalog_url'.")
|
||||||
@ -223,6 +214,10 @@ class Client(object):
|
|||||||
if extension.manager_class:
|
if extension.manager_class:
|
||||||
setattr(self, extension.name, extension.manager_class(self))
|
setattr(self, extension.name, extension.manager_class(self))
|
||||||
|
|
||||||
|
@removals.remove(
|
||||||
|
message="authenticate() method is deprecated. Client automatically "
|
||||||
|
"makes authentication call in the constructor.",
|
||||||
|
removal_version='2.0.0')
|
||||||
def authenticate(self):
|
def authenticate(self):
|
||||||
"""Authenticate against the server.
|
"""Authenticate against the server.
|
||||||
|
|
||||||
@ -232,9 +227,7 @@ class Client(object):
|
|||||||
Returns on success; raises :exc:`exceptions.Unauthorized` if the
|
Returns on success; raises :exc:`exceptions.Unauthorized` if the
|
||||||
credentials are wrong.
|
credentials are wrong.
|
||||||
"""
|
"""
|
||||||
warnings.warn("authenticate() method is deprecated. "
|
pass
|
||||||
"Client automatically makes authentication call "
|
|
||||||
"in the constructor.")
|
|
||||||
|
|
||||||
def _get_keystone_client(self):
|
def _get_keystone_client(self):
|
||||||
# First create a Keystone session
|
# First create a Keystone session
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
import warnings
|
from debtcollector import removals
|
||||||
|
|
||||||
from keystoneauth1 import session
|
from keystoneauth1 import session
|
||||||
from keystoneclient import adapter
|
from keystoneclient import adapter
|
||||||
@ -73,6 +73,21 @@ class Client(object):
|
|||||||
>>> client.shares.list()
|
>>> client.shares.list()
|
||||||
...
|
...
|
||||||
"""
|
"""
|
||||||
|
@removals.removed_kwarg(
|
||||||
|
'share_service_name', message="Please use 'service_name' instead",
|
||||||
|
removal_version='2.0.0')
|
||||||
|
@removals.removed_kwarg(
|
||||||
|
'proxy_tenant_id', message="This is not used anywhere",
|
||||||
|
removal_version='2.0.0')
|
||||||
|
@removals.removed_kwarg(
|
||||||
|
'proxy_token', message="This is not used anywhere",
|
||||||
|
removal_version='2.0.0')
|
||||||
|
@removals.removed_kwarg(
|
||||||
|
'os_cache', message="Please use 'use_keyring' instead",
|
||||||
|
removal_version='2.0.0')
|
||||||
|
@removals.removed_kwarg(
|
||||||
|
'api_key', message="Please use 'password' instead",
|
||||||
|
removal_version='2.0.0')
|
||||||
def __init__(self, username=None, api_key=None,
|
def __init__(self, username=None, api_key=None,
|
||||||
project_id=None, auth_url=None, insecure=False, timeout=None,
|
project_id=None, auth_url=None, insecure=False, timeout=None,
|
||||||
tenant_id=None, project_name=None, region_name=None,
|
tenant_id=None, project_name=None, region_name=None,
|
||||||
@ -120,32 +135,6 @@ class Client(object):
|
|||||||
|
|
||||||
service_name = kwargs.get("share_service_name", service_name)
|
service_name = kwargs.get("share_service_name", service_name)
|
||||||
|
|
||||||
def check_deprecated_arguments():
|
|
||||||
deprecated = {
|
|
||||||
'share_service_name': 'service_name',
|
|
||||||
'proxy_tenant_id': None,
|
|
||||||
'proxy_token': None,
|
|
||||||
'os_cache': 'use_keyring',
|
|
||||||
'api_key': 'password',
|
|
||||||
}
|
|
||||||
|
|
||||||
for arg, replacement in deprecated.items():
|
|
||||||
if kwargs.get(arg, None) is None:
|
|
||||||
continue
|
|
||||||
|
|
||||||
replacement_msg = ""
|
|
||||||
|
|
||||||
if replacement is not None:
|
|
||||||
replacement_msg = " Use %s instead." % replacement
|
|
||||||
|
|
||||||
msg = "Argument %(arg)s is deprecated.%(repl)s" % {
|
|
||||||
'arg': arg,
|
|
||||||
'repl': replacement_msg
|
|
||||||
}
|
|
||||||
warnings.warn(msg)
|
|
||||||
|
|
||||||
check_deprecated_arguments()
|
|
||||||
|
|
||||||
if input_auth_token and not service_catalog_url:
|
if input_auth_token and not service_catalog_url:
|
||||||
msg = ("For token-based authentication you should "
|
msg = ("For token-based authentication you should "
|
||||||
"provide 'input_auth_token' and 'service_catalog_url'.")
|
"provide 'input_auth_token' and 'service_catalog_url'.")
|
||||||
@ -260,6 +249,10 @@ class Client(object):
|
|||||||
if extension.manager_class:
|
if extension.manager_class:
|
||||||
setattr(self, extension.name, extension.manager_class(self))
|
setattr(self, extension.name, extension.manager_class(self))
|
||||||
|
|
||||||
|
@removals.remove(
|
||||||
|
message="authenticate() method is deprecated. Client automatically "
|
||||||
|
"makes authentication call in the constructor.",
|
||||||
|
removal_version='2.0.0')
|
||||||
def authenticate(self):
|
def authenticate(self):
|
||||||
"""Authenticate against the server.
|
"""Authenticate against the server.
|
||||||
|
|
||||||
@ -269,9 +262,7 @@ class Client(object):
|
|||||||
Returns on success; raises :exc:`exceptions.Unauthorized` if the
|
Returns on success; raises :exc:`exceptions.Unauthorized` if the
|
||||||
credentials are wrong.
|
credentials are wrong.
|
||||||
"""
|
"""
|
||||||
warnings.warn("authenticate() method is deprecated. "
|
pass
|
||||||
"Client automatically makes authentication call "
|
|
||||||
"in the constructor.")
|
|
||||||
|
|
||||||
def _get_keystone_client(self):
|
def _get_keystone_client(self):
|
||||||
# First create a Keystone session
|
# First create a Keystone session
|
||||||
|
14
releasenotes/notes/deprecate-v1-a0cfa6fd723c2f46.yaml
Normal file
14
releasenotes/notes/deprecate-v1-a0cfa6fd723c2f46.yaml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
deprecations:
|
||||||
|
- |
|
||||||
|
v1.Client is deprecated and will be removed with the 2.0.0 release of
|
||||||
|
python-manilaclient. Please use v2.Client.
|
||||||
|
- |
|
||||||
|
Some kwargs when creating a Client instance (for v1.Client and v2.Client)
|
||||||
|
are deprecated and will be removed with the 2.0.0 release of
|
||||||
|
python-manilaclient. The arguments are 'share_service_name',
|
||||||
|
'proxy_tenant_id', 'proxy_token', 'os_cache' and 'api_key'.
|
||||||
|
- |
|
||||||
|
The method 'authenticate()' for a v1.Client and v2.Client instance is
|
||||||
|
deprecated and will be removed with the 2.0.0 release of
|
||||||
|
python-manilaclient.
|
@ -16,3 +16,4 @@ simplejson>=3.5.1 # MIT
|
|||||||
Babel!=2.4.0,>=2.3.4 # BSD
|
Babel!=2.4.0,>=2.3.4 # BSD
|
||||||
six>=1.9.0 # MIT
|
six>=1.9.0 # MIT
|
||||||
python-keystoneclient>=3.8.0 # Apache-2.0
|
python-keystoneclient>=3.8.0 # Apache-2.0
|
||||||
|
debtcollector>=1.2.0 # Apache-2.0
|
||||||
|
Loading…
Reference in New Issue
Block a user