Correct documenting constructor parameters
When the docs are rendered to HTML, any docs on __init__ are not displayed. The parameters to the constructor have to be documented on the class rather than on the __init__ method. Also, corrected other minor issues in the same areas. Change-Id: Ic56da33f6b99fe5efb636c289e3c4e1569f0c84c
This commit is contained in:
@@ -23,6 +23,23 @@ class Adapter(object):
|
||||
state such as the service type and region_name that are only relevant to a
|
||||
particular client that is using the session. An adapter provides a wrapper
|
||||
of client local data around the global session object.
|
||||
|
||||
:param session: The session object to wrap.
|
||||
:type session: keystoneclient.session.Session
|
||||
:param str service_type: The default service_type for URL discovery.
|
||||
:param str service_name: The default service_name for URL discovery.
|
||||
:param str interface: The default interface for URL discovery.
|
||||
:param str region_name: The default region_name for URL discovery.
|
||||
:param str endpoint_override: Always use this endpoint URL for requests
|
||||
for this client.
|
||||
:param tuple version: The version that this API targets.
|
||||
:param auth: An auth plugin to use instead of the session one.
|
||||
:type auth: keystoneclient.auth.base.BaseAuthPlugin
|
||||
:param str user_agent: The User-Agent string to set.
|
||||
:param int connect_retries: the maximum number of retries that should
|
||||
be attempted for connection errors.
|
||||
Default None - use session default which
|
||||
is don't retry.
|
||||
"""
|
||||
|
||||
@utils.positional()
|
||||
@@ -30,24 +47,6 @@ class Adapter(object):
|
||||
interface=None, region_name=None, endpoint_override=None,
|
||||
version=None, auth=None, user_agent=None,
|
||||
connect_retries=None):
|
||||
"""Create a new adapter.
|
||||
|
||||
:param Session session: The session object to wrap.
|
||||
:param str service_type: The default service_type for URL discovery.
|
||||
:param str service_name: The default service_name for URL discovery.
|
||||
:param str interface: The default interface for URL discovery.
|
||||
:param str region_name: The default region_name for URL discovery.
|
||||
:param str endpoint_override: Always use this endpoint URL for requests
|
||||
for this client.
|
||||
:param tuple version: The version that this API targets.
|
||||
:param auth.BaseAuthPlugin auth: An auth plugin to use instead of the
|
||||
session one.
|
||||
:param str user_agent: The User-Agent string to set.
|
||||
:param int connect_retries: the maximum number of retries that should
|
||||
be attempted for connection errors.
|
||||
Default None - use session default which
|
||||
is don't retry.
|
||||
"""
|
||||
self.session = session
|
||||
self.service_type = service_type
|
||||
self.service_name = service_name
|
||||
|
||||
@@ -34,19 +34,19 @@ def get_options():
|
||||
|
||||
|
||||
class Password(base.BaseGenericPlugin):
|
||||
"""A common user/password authentication plugin."""
|
||||
"""A common user/password authentication plugin.
|
||||
|
||||
:param string username: Username for authentication.
|
||||
:param string user_id: User ID for authentication.
|
||||
:param string password: Password for authentication.
|
||||
:param string user_domain_id: User's domain ID for authentication.
|
||||
:param string user_domain_name: User's domain name for authentication.
|
||||
|
||||
"""
|
||||
|
||||
@utils.positional()
|
||||
def __init__(self, auth_url, username=None, user_id=None, password=None,
|
||||
user_domain_id=None, user_domain_name=None, **kwargs):
|
||||
"""Construct plugin.
|
||||
|
||||
:param string username: Username for authentication.
|
||||
:param string user_id: User ID for authentication.
|
||||
:param string password: Password for authentication.
|
||||
:param string user_domain_id: User's domain ID for authentication.
|
||||
:param string user_domain_name: User's domain name for authentication.
|
||||
"""
|
||||
super(Password, self).__init__(auth_url=auth_url, **kwargs)
|
||||
|
||||
self._username = username
|
||||
|
||||
@@ -29,12 +29,12 @@ def get_options():
|
||||
|
||||
|
||||
class Token(base.BaseGenericPlugin):
|
||||
"""Generic token auth plugin.
|
||||
|
||||
:param string token: Token for authentication.
|
||||
"""
|
||||
|
||||
def __init__(self, auth_url, token=None, **kwargs):
|
||||
"""Construct a plugin.
|
||||
|
||||
:param string token: Token for authentication.
|
||||
"""
|
||||
super(Token, self).__init__(auth_url, **kwargs)
|
||||
self._token = token
|
||||
|
||||
|
||||
@@ -26,6 +26,15 @@ _logger = logging.getLogger(__name__)
|
||||
|
||||
@six.add_metaclass(abc.ABCMeta)
|
||||
class Auth(base.BaseIdentityPlugin):
|
||||
"""Identity V2 Authentication Plugin.
|
||||
|
||||
:param string auth_url: Identity service endpoint for authorization.
|
||||
:param string trust_id: Trust ID for trust scoping.
|
||||
:param string tenant_id: Tenant ID for project scoping.
|
||||
:param string tenant_name: Tenant name for project scoping.
|
||||
:param bool reauthenticate: Allow fetching a new token if the current one
|
||||
is going to expire. (optional) default True
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def get_options(cls):
|
||||
@@ -45,16 +54,6 @@ class Auth(base.BaseIdentityPlugin):
|
||||
tenant_id=None,
|
||||
tenant_name=None,
|
||||
reauthenticate=True):
|
||||
"""Construct an Identity V2 Authentication Plugin.
|
||||
|
||||
:param string auth_url: Identity service endpoint for authorization.
|
||||
:param string trust_id: Trust ID for trust scoping.
|
||||
:param string tenant_id: Tenant ID for project scoping.
|
||||
:param string tenant_name: Tenant name for project scoping.
|
||||
:param bool reauthenticate: Allow fetching a new token if the current
|
||||
one is going to expire.
|
||||
(optional) default True
|
||||
"""
|
||||
super(Auth, self).__init__(auth_url=auth_url,
|
||||
reauthenticate=reauthenticate)
|
||||
|
||||
@@ -100,21 +99,21 @@ _NOT_PASSED = object()
|
||||
|
||||
|
||||
class Password(Auth):
|
||||
"""A plugin for authenticating with a username and password.
|
||||
|
||||
A username or user_id must be provided.
|
||||
|
||||
:param string auth_url: Identity service endpoint for authorization.
|
||||
:param string username: Username for authentication.
|
||||
:param string password: Password for authentication.
|
||||
:param string user_id: User ID for authentication.
|
||||
|
||||
:raises TypeError: if a user_id or username is not provided.
|
||||
"""
|
||||
|
||||
@utils.positional(4)
|
||||
def __init__(self, auth_url, username=_NOT_PASSED, password=None,
|
||||
user_id=_NOT_PASSED, **kwargs):
|
||||
"""A plugin for authenticating with a username and password.
|
||||
|
||||
A username or user_id must be provided.
|
||||
|
||||
:param string auth_url: Identity service endpoint for authorization.
|
||||
:param string username: Username for authentication.
|
||||
:param string password: Password for authentication.
|
||||
:param string user_id: User ID for authentication.
|
||||
|
||||
:raises TypeError: if a user_id or username is not provided.
|
||||
"""
|
||||
super(Password, self).__init__(auth_url, **kwargs)
|
||||
|
||||
if username is _NOT_PASSED and user_id is _NOT_PASSED:
|
||||
@@ -157,13 +156,13 @@ class Password(Auth):
|
||||
|
||||
|
||||
class Token(Auth):
|
||||
"""A plugin for authenticating with an existing token.
|
||||
|
||||
:param string auth_url: Identity service endpoint for authorization.
|
||||
:param string token: Existing token for authentication.
|
||||
"""
|
||||
|
||||
def __init__(self, auth_url, token, **kwargs):
|
||||
"""A plugin for authenticating with an existing token.
|
||||
|
||||
:param string auth_url: Identity service endpoint for authorization.
|
||||
:param string token: Existing token for authentication.
|
||||
"""
|
||||
super(Token, self).__init__(auth_url, **kwargs)
|
||||
self.token = token
|
||||
|
||||
|
||||
@@ -26,6 +26,20 @@ _logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class Auth(base.BaseIdentityPlugin):
|
||||
"""Identity V3 Authentication Plugin.
|
||||
|
||||
:param string auth_url: Identity service endpoint for authentication.
|
||||
:param list auth_methods: A collection of methods to authenticate with.
|
||||
:param string trust_id: Trust ID for trust scoping.
|
||||
:param string domain_id: Domain ID for domain scoping.
|
||||
:param string domain_name: Domain name for domain scoping.
|
||||
:param string project_id: Project ID for project scoping.
|
||||
:param string project_name: Project name for project scoping.
|
||||
:param string project_domain_id: Project's domain ID for project.
|
||||
:param string project_domain_name: Project's domain name for project.
|
||||
:param bool reauthenticate: Allow fetching a new token if the current one
|
||||
is going to expire. (optional) default True
|
||||
"""
|
||||
|
||||
@utils.positional()
|
||||
def __init__(self, auth_url, auth_methods,
|
||||
@@ -37,22 +51,6 @@ class Auth(base.BaseIdentityPlugin):
|
||||
project_domain_id=None,
|
||||
project_domain_name=None,
|
||||
reauthenticate=True):
|
||||
"""Construct an Identity V3 Authentication Plugin.
|
||||
|
||||
:param string auth_url: Identity service endpoint for authentication.
|
||||
:param list auth_methods: A collection of methods to authenticate with.
|
||||
:param string trust_id: Trust ID for trust scoping.
|
||||
:param string domain_id: Domain ID for domain scoping.
|
||||
:param string domain_name: Domain name for domain scoping.
|
||||
:param string project_id: Project ID for project scoping.
|
||||
:param string project_name: Project name for project scoping.
|
||||
:param string project_domain_id: Project's domain ID for project.
|
||||
:param string project_domain_name: Project's domain name for project.
|
||||
:param bool reauthenticate: Allow fetching a new token if the current
|
||||
one is going to expire.
|
||||
(optional) default True
|
||||
"""
|
||||
|
||||
super(Auth, self).__init__(auth_url=auth_url,
|
||||
reauthenticate=reauthenticate)
|
||||
|
||||
@@ -207,6 +205,14 @@ class AuthConstructor(Auth):
|
||||
|
||||
|
||||
class PasswordMethod(AuthMethod):
|
||||
"""Construct a User/Password based authentication method.
|
||||
|
||||
:param string password: Password for authentication.
|
||||
:param string username: Username for authentication.
|
||||
:param string user_id: User ID for authentication.
|
||||
:param string user_domain_id: User's domain ID for authentication.
|
||||
:param string user_domain_name: User's domain name for authentication.
|
||||
"""
|
||||
|
||||
_method_parameters = ['user_id',
|
||||
'username',
|
||||
@@ -214,17 +220,6 @@ class PasswordMethod(AuthMethod):
|
||||
'user_domain_name',
|
||||
'password']
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
"""Construct a User/Password based authentication method.
|
||||
|
||||
:param string password: Password for authentication.
|
||||
:param string username: Username for authentication.
|
||||
:param string user_id: User ID for authentication.
|
||||
:param string user_domain_id: User's domain ID for authentication.
|
||||
:param string user_domain_name: User's domain name for authentication.
|
||||
"""
|
||||
super(PasswordMethod, self).__init__(**kwargs)
|
||||
|
||||
def get_auth_data(self, session, auth, headers, **kwargs):
|
||||
user = {'password': self.password}
|
||||
|
||||
@@ -261,16 +256,13 @@ class Password(AuthConstructor):
|
||||
|
||||
|
||||
class TokenMethod(AuthMethod):
|
||||
"""Construct an Auth plugin to fetch a token from a token.
|
||||
|
||||
:param string token: Token for authentication.
|
||||
"""
|
||||
|
||||
_method_parameters = ['token']
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
"""Construct an Auth plugin to fetch a token from a token.
|
||||
|
||||
:param string token: Token for authentication.
|
||||
"""
|
||||
super(TokenMethod, self).__init__(**kwargs)
|
||||
|
||||
def get_auth_data(self, session, auth, headers, **kwargs):
|
||||
headers['X-Auth-Token'] = self.token
|
||||
return 'token', {'id': self.token}
|
||||
|
||||
@@ -79,14 +79,13 @@ class Manager(object):
|
||||
|
||||
Managers interact with a particular type of API (servers, flavors, images,
|
||||
etc.) and provide CRUD operations for them.
|
||||
|
||||
:param client: instance of BaseClient descendant for HTTP requests
|
||||
|
||||
"""
|
||||
resource_class = None
|
||||
|
||||
def __init__(self, client):
|
||||
"""Initializes Manager with `client`.
|
||||
|
||||
:param client: instance of BaseClient descendant for HTTP requests
|
||||
"""
|
||||
super(Manager, self).__init__()
|
||||
self.client = client
|
||||
|
||||
|
||||
@@ -88,20 +88,38 @@ class Saml2UnscopedTokenAuthMethod(v3.AuthMethod):
|
||||
class Saml2UnscopedToken(_BaseSAMLPlugin):
|
||||
"""Implement authentication plugin for SAML2 protocol.
|
||||
|
||||
ECP stands for ``Enhanced Client or Proxy`` and is a SAML2 extension
|
||||
ECP stands for `Enhanced Client or Proxy` and is a SAML2 extension
|
||||
for federated authentication where a transportation layer consists of
|
||||
HTTP protocol and XML SOAP messages.
|
||||
|
||||
Read for more information::
|
||||
``https://wiki.shibboleth.net/confluence/display/SHIB2/ECP``
|
||||
`Read for more information
|
||||
<https://wiki.shibboleth.net/confluence/display/SHIB2/ECP>`_ on ECP.
|
||||
|
||||
The SAML2 ECP specification can be found at::
|
||||
``https://www.oasis-open.org/committees/download.php/
|
||||
49979/saml-ecp-v2.0-wd09.pdf``
|
||||
Reference the `SAML2 ECP specification <https://www.oasis-open.org/\
|
||||
committees/download.php/49979/saml-ecp-v2.0-wd09.pdf>`_.
|
||||
|
||||
Currently only HTTPBasicAuth mechanism is available for the IdP
|
||||
authenication.
|
||||
|
||||
:param auth_url: URL of the Identity Service
|
||||
:type auth_url: string
|
||||
|
||||
:param identity_provider: name of the Identity Provider the client will
|
||||
authenticate against. This parameter will be used
|
||||
to build a dynamic URL used to obtain unscoped
|
||||
OpenStack token.
|
||||
:type identity_provider: string
|
||||
|
||||
:param identity_provider_url: An Identity Provider URL, where the SAML2
|
||||
authn request will be sent.
|
||||
:type identity_provider_url: string
|
||||
|
||||
:param username: User's login
|
||||
:type username: string
|
||||
|
||||
:param password: User's password
|
||||
:type password: string
|
||||
|
||||
"""
|
||||
|
||||
_auth_method_class = Saml2UnscopedTokenAuthMethod
|
||||
@@ -149,27 +167,6 @@ class Saml2UnscopedToken(_BaseSAMLPlugin):
|
||||
identity_provider_url,
|
||||
username, password,
|
||||
**kwargs):
|
||||
"""Class constructor accepting following parameters:
|
||||
:param auth_url: URL of the Identity Service
|
||||
:type auth_url: string
|
||||
|
||||
:param identity_provider: name of the Identity Provider the client
|
||||
will authenticate against. This parameter
|
||||
will be used to build a dynamic URL used to
|
||||
obtain unscoped OpenStack token.
|
||||
:type identity_provider: string
|
||||
|
||||
:param identity_provider_url: An Identity Provider URL, where the SAML2
|
||||
authn request will be sent.
|
||||
:type identity_provider_url: string
|
||||
|
||||
:param username: User's login
|
||||
:type username: string
|
||||
|
||||
:param password: User's password
|
||||
:type password: string
|
||||
|
||||
"""
|
||||
super(Saml2UnscopedToken, self).__init__(auth_url=auth_url, **kwargs)
|
||||
self.identity_provider = identity_provider
|
||||
self.identity_provider_url = identity_provider_url
|
||||
@@ -438,7 +435,32 @@ class Saml2UnscopedToken(_BaseSAMLPlugin):
|
||||
|
||||
|
||||
class ADFSUnscopedToken(_BaseSAMLPlugin):
|
||||
"""Authentication plugin for Microsoft ADFS2.0 IdPs."""
|
||||
"""Authentication plugin for Microsoft ADFS2.0 IdPs.
|
||||
|
||||
:param auth_url: URL of the Identity Service
|
||||
:type auth_url: string
|
||||
|
||||
:param identity_provider: name of the Identity Provider the client will
|
||||
authenticate against. This parameter will be used
|
||||
to build a dynamic URL used to obtain unscoped
|
||||
OpenStack token.
|
||||
:type identity_provider: string
|
||||
|
||||
:param identity_provider_url: An Identity Provider URL, where the SAML2
|
||||
authentication request will be sent.
|
||||
:type identity_provider_url: string
|
||||
|
||||
:param service_provider_endpoint: Endpoint where an assertion is being
|
||||
sent, for instance: ``https://host.domain/Shibboleth.sso/ADFS``
|
||||
:type service_provider_endpoint: string
|
||||
|
||||
:param username: User's login
|
||||
:type username: string
|
||||
|
||||
:param password: User's password
|
||||
:type password: string
|
||||
|
||||
"""
|
||||
|
||||
_auth_method_class = Saml2UnscopedTokenAuthMethod
|
||||
|
||||
@@ -464,33 +486,6 @@ class ADFSUnscopedToken(_BaseSAMLPlugin):
|
||||
|
||||
def __init__(self, auth_url, identity_provider, identity_provider_url,
|
||||
service_provider_endpoint, username, password, **kwargs):
|
||||
"""Constructor for ``ADFSUnscopedToken``.
|
||||
|
||||
:param auth_url: URL of the Identity Service
|
||||
:type auth_url: string
|
||||
|
||||
:param identity_provider: name of the Identity Provider the client
|
||||
will authenticate against. This parameter
|
||||
will be used to build a dynamic URL used to
|
||||
obtain unscoped OpenStack token.
|
||||
:type identity_provider: string
|
||||
|
||||
:param identity_provider_url: An Identity Provider URL, where the SAML2
|
||||
authentication request will be sent.
|
||||
:type identity_provider_url: string
|
||||
|
||||
:param service_provider_endpoint: Endpoint where an assertion is being
|
||||
sent, for instance: ``https://host.domain/Shibboleth.sso/ADFS``
|
||||
:type service_provider_endpoint: string
|
||||
|
||||
:param username: User's login
|
||||
:type username: string
|
||||
|
||||
:param password: User's password
|
||||
:type password: string
|
||||
|
||||
"""
|
||||
|
||||
super(ADFSUnscopedToken, self).__init__(auth_url=auth_url, **kwargs)
|
||||
self.identity_provider = identity_provider
|
||||
self.identity_provider_url = identity_provider_url
|
||||
|
||||
@@ -44,69 +44,63 @@ class Discover(_discover.Discover):
|
||||
|
||||
Querying the server is done on object creation and every subsequent method
|
||||
operates upon the data that was retrieved.
|
||||
|
||||
The connection parameters associated with this method are the same format
|
||||
and name as those used by a client (see
|
||||
:py:class:`keystoneclient.v2_0.client.Client` and
|
||||
:py:class:`keystoneclient.v3.client.Client`). If not overridden in
|
||||
subsequent methods they will also be what is passed to the constructed
|
||||
client.
|
||||
|
||||
In the event that auth_url and endpoint is provided then auth_url will be
|
||||
used in accordance with how the client operates.
|
||||
|
||||
:param session: A session object that will be used for communication.
|
||||
Clients will also be constructed with this session.
|
||||
:type session: keystoneclient.session.Session
|
||||
:param string auth_url: Identity service endpoint for authorization.
|
||||
(optional)
|
||||
:param string endpoint: A user-supplied endpoint URL for the identity
|
||||
service. (optional)
|
||||
:param string original_ip: The original IP of the requesting user which
|
||||
will be sent to identity service in a
|
||||
'Forwarded' header. (optional) DEPRECATED: use
|
||||
the session object. This is ignored if a session
|
||||
is provided.
|
||||
:param boolean debug: Enables debug logging of all request and responses to
|
||||
the identity service. default False (optional)
|
||||
DEPRECATED: use the session object. This is ignored
|
||||
if a session is provided.
|
||||
:param string cacert: Path to the Privacy Enhanced Mail (PEM) file which
|
||||
contains the trusted authority X.509 certificates
|
||||
needed to established SSL connection with the
|
||||
identity service. (optional) DEPRECATED: use the
|
||||
session object. This is ignored if a session is
|
||||
provided.
|
||||
:param string key: Path to the Privacy Enhanced Mail (PEM) file which
|
||||
contains the unencrypted client private key needed to
|
||||
established two-way SSL connection with the identity
|
||||
service. (optional) DEPRECATED: use the session object.
|
||||
This is ignored if a session is provided.
|
||||
:param string cert: Path to the Privacy Enhanced Mail (PEM) file which
|
||||
contains the corresponding X.509 client certificate
|
||||
needed to established two-way SSL connection with the
|
||||
identity service. (optional) DEPRECATED: use the
|
||||
session object. This is ignored if a session is
|
||||
provided.
|
||||
:param boolean insecure: Does not perform X.509 certificate validation when
|
||||
establishing SSL connection with identity service.
|
||||
default: False (optional) DEPRECATED: use the
|
||||
session object. This is ignored if a session is
|
||||
provided.
|
||||
:param bool authenticated: Should a token be used to perform the initial
|
||||
discovery operations. default: None (attach a
|
||||
token if an auth plugin is available).
|
||||
|
||||
"""
|
||||
|
||||
@utils.positional(2)
|
||||
def __init__(self, session=None, authenticated=None, **kwargs):
|
||||
"""Construct a new discovery object.
|
||||
|
||||
The connection parameters associated with this method are the same
|
||||
format and name as those used by a client (see
|
||||
keystoneclient.v2_0.client.Client and keystoneclient.v3.client.Client).
|
||||
If not overridden in subsequent methods they will also be what is
|
||||
passed to the constructed client.
|
||||
|
||||
In the event that auth_url and endpoint is provided then auth_url will
|
||||
be used in accordance with how the client operates.
|
||||
|
||||
The initialization process also queries the server.
|
||||
|
||||
:param Session session: A session object that will be used for
|
||||
communication. Clients will also be constructed
|
||||
with this session.
|
||||
:param string auth_url: Identity service endpoint for authorization.
|
||||
(optional)
|
||||
:param string endpoint: A user-supplied endpoint URL for the identity
|
||||
service. (optional)
|
||||
:param string original_ip: The original IP of the requesting user
|
||||
which will be sent to identity service in a
|
||||
'Forwarded' header. (optional)
|
||||
DEPRECATED: use the session object. This is
|
||||
ignored if a session is provided.
|
||||
:param boolean debug: Enables debug logging of all request and
|
||||
responses to the identity service.
|
||||
default False (optional)
|
||||
DEPRECATED: use the session object. This is
|
||||
ignored if a session is provided.
|
||||
:param string cacert: Path to the Privacy Enhanced Mail (PEM) file
|
||||
which contains the trusted authority X.509
|
||||
certificates needed to established SSL connection
|
||||
with the identity service. (optional)
|
||||
DEPRECATED: use the session object. This is
|
||||
ignored if a session is provided.
|
||||
:param string key: Path to the Privacy Enhanced Mail (PEM) file which
|
||||
contains the unencrypted client private key needed
|
||||
to established two-way SSL connection with the
|
||||
identity service. (optional)
|
||||
DEPRECATED: use the session object. This is
|
||||
ignored if a session is provided.
|
||||
:param string cert: Path to the Privacy Enhanced Mail (PEM) file which
|
||||
contains the corresponding X.509 client certificate
|
||||
needed to established two-way SSL connection with
|
||||
the identity service. (optional)
|
||||
DEPRECATED: use the session object. This is
|
||||
ignored if a session is provided.
|
||||
:param boolean insecure: Does not perform X.509 certificate validation
|
||||
when establishing SSL connection with identity
|
||||
service. default: False (optional)
|
||||
DEPRECATED: use the session object. This is
|
||||
ignored if a session is provided.
|
||||
:param bool authenticated: Should a token be used to perform the
|
||||
initial discovery operations.
|
||||
default: None (attach a token if an auth
|
||||
plugin is available).
|
||||
"""
|
||||
|
||||
if not session:
|
||||
session = client_session.Session.construct(kwargs)
|
||||
kwargs['session'] = session
|
||||
|
||||
@@ -28,16 +28,14 @@ class DiscoveryBase(dict):
|
||||
"""The basic version discovery structure.
|
||||
|
||||
All version discovery elements should have access to these values.
|
||||
|
||||
:param string id: The version id for this version entry.
|
||||
:param string status: The status of this entry.
|
||||
:param DateTime updated: When the API was last updated.
|
||||
"""
|
||||
|
||||
@utils.positional()
|
||||
def __init__(self, id, status=None, updated=None):
|
||||
"""Create a new structure.
|
||||
|
||||
:param string id: The version id for this version entry.
|
||||
:param string status: The status of this entry.
|
||||
:param DateTime updated: When the API was last updated.
|
||||
"""
|
||||
super(DiscoveryBase, self).__init__()
|
||||
|
||||
self.id = id
|
||||
@@ -106,20 +104,19 @@ class V2Discovery(DiscoveryBase):
|
||||
Provides some default values and helper methods for creating a v2.0
|
||||
endpoint version structure. Clients should use this instead of creating
|
||||
their own structures.
|
||||
|
||||
:param string href: The url that this entry should point to.
|
||||
:param string id: The version id that should be reported. (optional)
|
||||
Defaults to 'v2.0'.
|
||||
:param bool html: Add HTML describedby links to the structure.
|
||||
:param bool pdf: Add PDF describedby links to the structure.
|
||||
|
||||
"""
|
||||
|
||||
_DESC_URL = 'http://docs.openstack.org/api/openstack-identity-service/2.0/'
|
||||
|
||||
@utils.positional()
|
||||
def __init__(self, href, id=None, html=True, pdf=True, **kwargs):
|
||||
"""Create a new structure.
|
||||
|
||||
:param string href: The url that this entry should point to.
|
||||
:param string id: The version id that should be reported. (optional)
|
||||
Defaults to 'v2.0'.
|
||||
:param bool html: Add HTML describedby links to the structure.
|
||||
:param bool pdf: Add PDF describedby links to the structure.
|
||||
"""
|
||||
super(V2Discovery, self).__init__(id or 'v2.0', **kwargs)
|
||||
|
||||
self.add_link(href)
|
||||
@@ -156,18 +153,16 @@ class V3Discovery(DiscoveryBase):
|
||||
Provides some default values and helper methods for creating a v3
|
||||
endpoint version structure. Clients should use this instead of creating
|
||||
their own structures.
|
||||
|
||||
:param href: The url that this entry should point to.
|
||||
:param string id: The version id that should be reported. (optional)
|
||||
Defaults to 'v3.0'.
|
||||
:param bool json: Add JSON media-type elements to the structure.
|
||||
:param bool xml: Add XML media-type elements to the structure.
|
||||
"""
|
||||
|
||||
@utils.positional()
|
||||
def __init__(self, href, id=None, json=True, xml=True, **kwargs):
|
||||
"""Create a new structure.
|
||||
|
||||
:param href: The url that this entry should point to.
|
||||
:param string id: The version id that should be reported. (optional)
|
||||
Defaults to 'v3.0'.
|
||||
:param bool json: Add JSON media-type elements to the structure.
|
||||
:param bool xml: Add XML media-type elements to the structure.
|
||||
"""
|
||||
super(V3Discovery, self).__init__(id or 'v3.0', **kwargs)
|
||||
|
||||
self.add_link(href)
|
||||
@@ -201,6 +196,18 @@ class DiscoveryList(dict):
|
||||
|
||||
Creates a correctly structured list of identity service endpoints for
|
||||
use in testing with discovery.
|
||||
|
||||
:param string href: The url that this should be based at.
|
||||
:param bool v2: Add a v2 element.
|
||||
:param bool v3: Add a v3 element.
|
||||
:param string v2_status: The status to use for the v2 element.
|
||||
:param DateTime v2_updated: The update time to use for the v2 element.
|
||||
:param bool v2_html: True to add a html link to the v2 element.
|
||||
:param bool v2_pdf: True to add a pdf link to the v2 element.
|
||||
:param string v3_status: The status to use for the v3 element.
|
||||
:param DateTime v3_updated: The update time to use for the v3 element.
|
||||
:param bool v3_json: True to add a html link to the v2 element.
|
||||
:param bool v3_xml: True to add a pdf link to the v2 element.
|
||||
"""
|
||||
|
||||
TEST_URL = 'http://keystone.host:5000/'
|
||||
@@ -209,21 +216,6 @@ class DiscoveryList(dict):
|
||||
def __init__(self, href=None, v2=True, v3=True, v2_id=None, v3_id=None,
|
||||
v2_status=None, v2_updated=None, v2_html=True, v2_pdf=True,
|
||||
v3_status=None, v3_updated=None, v3_json=True, v3_xml=True):
|
||||
"""Create a new structure.
|
||||
|
||||
:param string href: The url that this should be based at.
|
||||
:param bool v2: Add a v2 element.
|
||||
:param bool v3: Add a v3 element.
|
||||
:param string v2_status: The status to use for the v2 element.
|
||||
:param DateTime v2_updated: The update time to use for the v2 element.
|
||||
:param bool v2_html: True to add a html link to the v2 element.
|
||||
:param bool v2_pdf: True to add a pdf link to the v2 element.
|
||||
:param string v3_status: The status to use for the v3 element.
|
||||
:param DateTime v3_updated: The update time to use for the v3 element.
|
||||
:param bool v3_json: True to add a html link to the v2 element.
|
||||
:param bool v3_xml: True to add a pdf link to the v2 element.
|
||||
"""
|
||||
|
||||
super(DiscoveryList, self).__init__(versions={'values': []})
|
||||
|
||||
href = href or self.TEST_URL
|
||||
|
||||
@@ -131,6 +131,62 @@ class _KeystoneAdapter(adapter.LegacyJsonAdapter):
|
||||
|
||||
|
||||
class HTTPClient(baseclient.Client, base.BaseAuthPlugin):
|
||||
"""HTTP client
|
||||
|
||||
:param string user_id: User ID for authentication. (optional)
|
||||
:param string username: Username for authentication. (optional)
|
||||
:param string user_domain_id: User's domain ID for authentication.
|
||||
(optional)
|
||||
:param string user_domain_name: User's domain name for authentication.
|
||||
(optional)
|
||||
:param string password: Password for authentication. (optional)
|
||||
:param string domain_id: Domain ID for domain scoping. (optional)
|
||||
:param string domain_name: Domain name for domain scoping. (optional)
|
||||
:param string project_id: Project ID for project scoping. (optional)
|
||||
:param string project_name: Project name for project scoping. (optional)
|
||||
:param string project_domain_id: Project's domain ID for project scoping.
|
||||
(optional)
|
||||
:param string project_domain_name: Project's domain name for project
|
||||
scoping. (optional)
|
||||
:param string auth_url: Identity service endpoint for authorization.
|
||||
:param string region_name: Name of a region to select when choosing an
|
||||
endpoint from the service catalog.
|
||||
:param integer timeout: DEPRECATED: use session. (optional)
|
||||
:param string endpoint: A user-supplied endpoint URL for the identity
|
||||
service. Lazy-authentication is possible for API
|
||||
service calls if endpoint is set at instantiation.
|
||||
(optional)
|
||||
:param string token: Token for authentication. (optional)
|
||||
:param string cacert: DEPRECATED: use session. (optional)
|
||||
:param string key: DEPRECATED: use session. (optional)
|
||||
:param string cert: DEPRECATED: use session. (optional)
|
||||
:param boolean insecure: DEPRECATED: use session. (optional)
|
||||
:param string original_ip: DEPRECATED: use session. (optional)
|
||||
:param boolean debug: DEPRECATED: use logging configuration. (optional)
|
||||
:param dict auth_ref: To allow for consumers of the client to manage their
|
||||
own caching strategy, you may initialize a client
|
||||
with a previously captured auth_reference (token). If
|
||||
there are keyword arguments passed that also exist in
|
||||
auth_ref, the value from the argument will take
|
||||
precedence.
|
||||
:param boolean use_keyring: Enables caching auth_ref into keyring.
|
||||
default: False (optional)
|
||||
:param boolean force_new_token: Keyring related parameter, forces request
|
||||
for new token. default: False (optional)
|
||||
:param integer stale_duration: Gap in seconds to determine if token from
|
||||
keyring is about to expire. default: 30
|
||||
(optional)
|
||||
:param string tenant_name: Tenant name. (optional) The tenant_name keyword
|
||||
argument is deprecated, use project_name
|
||||
instead.
|
||||
:param string tenant_id: Tenant id. (optional) The tenant_id keyword
|
||||
argument is deprecated, use project_id instead.
|
||||
:param string trust_id: Trust ID for trust scoping. (optional)
|
||||
:param object session: A Session object to be used for
|
||||
communicating with the identity service.
|
||||
:type session: keystoneclient.session.Session
|
||||
|
||||
"""
|
||||
|
||||
version = None
|
||||
|
||||
@@ -143,64 +199,6 @@ class HTTPClient(baseclient.Client, base.BaseAuthPlugin):
|
||||
domain_name=None, project_id=None, project_name=None,
|
||||
project_domain_id=None, project_domain_name=None,
|
||||
trust_id=None, session=None, **kwargs):
|
||||
"""Construct a new http client
|
||||
|
||||
:param string user_id: User ID for authentication. (optional)
|
||||
:param string username: Username for authentication. (optional)
|
||||
:param string user_domain_id: User's domain ID for authentication.
|
||||
(optional)
|
||||
:param string user_domain_name: User's domain name for authentication.
|
||||
(optional)
|
||||
:param string password: Password for authentication. (optional)
|
||||
:param string domain_id: Domain ID for domain scoping. (optional)
|
||||
:param string domain_name: Domain name for domain scoping. (optional)
|
||||
:param string project_id: Project ID for project scoping. (optional)
|
||||
:param string project_name: Project name for project scoping.
|
||||
(optional)
|
||||
:param string project_domain_id: Project's domain ID for project
|
||||
scoping. (optional)
|
||||
:param string project_domain_name: Project's domain name for project
|
||||
scoping. (optional)
|
||||
:param string auth_url: Identity service endpoint for authorization.
|
||||
:param string region_name: Name of a region to select when choosing an
|
||||
endpoint from the service catalog.
|
||||
:param integer timeout: DEPRECATED: use session. (optional)
|
||||
:param string endpoint: A user-supplied endpoint URL for the identity
|
||||
service. Lazy-authentication is possible for
|
||||
API service calls if endpoint is set at
|
||||
instantiation. (optional)
|
||||
:param string token: Token for authentication. (optional)
|
||||
:param string cacert: DEPRECATED: use session. (optional)
|
||||
:param string key: DEPRECATED: use session. (optional)
|
||||
:param string cert: DEPRECATED: use session. (optional)
|
||||
:param boolean insecure: DEPRECATED: use session. (optional)
|
||||
:param string original_ip: DEPRECATED: use session. (optional)
|
||||
:param boolean debug: DEPRECATED: use logging configuration. (optional)
|
||||
:param dict auth_ref: To allow for consumers of the client to manage
|
||||
their own caching strategy, you may initialize a
|
||||
client with a previously captured auth_reference
|
||||
(token). If there are keyword arguments passed
|
||||
that also exist in auth_ref, the value from the
|
||||
argument will take precedence.
|
||||
:param boolean use_keyring: Enables caching auth_ref into keyring.
|
||||
default: False (optional)
|
||||
:param boolean force_new_token: Keyring related parameter, forces
|
||||
request for new token.
|
||||
default: False (optional)
|
||||
:param integer stale_duration: Gap in seconds to determine if token
|
||||
from keyring is about to expire.
|
||||
default: 30 (optional)
|
||||
:param string tenant_name: Tenant name. (optional)
|
||||
The tenant_name keyword argument is
|
||||
deprecated, use project_name instead.
|
||||
:param string tenant_id: Tenant id. (optional)
|
||||
The tenant_id keyword argument is
|
||||
deprecated, use project_id instead.
|
||||
:param string trust_id: Trust ID for trust scoping. (optional)
|
||||
:param object session: A Session object to be used for
|
||||
communicating with the identity service.
|
||||
|
||||
"""
|
||||
# set baseline defaults
|
||||
self.user_id = None
|
||||
self.username = None
|
||||
|
||||
@@ -20,18 +20,18 @@ except ImportError:
|
||||
|
||||
|
||||
class OAuthMethod(v3.AuthMethod):
|
||||
"""OAuth based authentication method.
|
||||
|
||||
:param string consumer_key: Consumer key.
|
||||
:param string consumer_secret: Consumer secret.
|
||||
:param string access_key: Access token key.
|
||||
:param string access_secret: Access token secret.
|
||||
"""
|
||||
|
||||
_method_parameters = ['consumer_key', 'consumer_secret',
|
||||
'access_key', 'access_secret']
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
"""Construct an OAuth based authentication method.
|
||||
|
||||
:param string consumer_key: Consumer key.
|
||||
:param string consumer_secret: Consumer secret.
|
||||
:param string access_key: Access token key.
|
||||
:param string access_secret: Access token secret.
|
||||
"""
|
||||
super(OAuthMethod, self).__init__(**kwargs)
|
||||
if oauth1 is None:
|
||||
raise NotImplementedError('optional package oauthlib'
|
||||
|
||||
Reference in New Issue
Block a user