1 # Copyright 2012 OpenStack Foundation
4 # Licensed under the Apache License, Version 2.0 (the "License"); you may
5 # not use this file except in compliance with the License. You may obtain
6 # a copy of the License at
8 # http://www.apache.org/licenses/LICENSE-2.0
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13 # License for the specific language governing permissions and limitations
18 from escalatorclient.common import utils
21 def Client(version=None, endpoint=None, *args, **kwargs):
22 if version is not None:
23 warnings.warn(("`version` keyword is being deprecated. Please pass the"
24 " version as part of the URL. "
25 "http://$HOST:$PORT/v$VERSION_NUMBER"),
28 endpoint, url_version = utils.strip_version(endpoint)
30 if not url_version and not version:
31 msg = ("Please provide either the version or an url with the form "
32 "http://$HOST:$PORT/v$VERSION_NUMBER")
33 raise RuntimeError(msg)
35 version = int(version or url_version)
37 module = utils.import_versioned_module(version, 'client')
38 client_class = getattr(module, 'Client')
39 return client_class(endpoint, *args, **kwargs)