Commit Graph

18 Commits (master)

Author SHA1 Message Date
Stephen Finucane 192a27ae5f Remove six
This is no longer necessary since we only support Python 3.x.

A note is removed from requirements.txt since it's no longer relevant:
pip 20.3+ has a real dependency resolver.

Change-Id: Ie3006813a79fef1f128d388b906e4f1752347fa4
Signed-off-by: Stephen Finucane <>
Co-Authored-By: Grzegorz Grasza <>
6 months ago
Monty Taylor 79cd91e755
Implement service_type alias lookups
The Service Types Authority has grown support for aliases, and the
os-service-types library exposes the data. Add support for matching
known aliases when matching endpoints for a user.

Change-Id: Ie90c265cb17905981d877abfaaa52354a3e63692
5 years ago
Monty Taylor 2e209e917d
Allow tuples and sets in interface list
While writing an SDK patch, I accidentaly sent a tuple for interface and
things went boom. We already accept a list, so go ahead and accept
tuples and sets too.

Change-Id: I4b14792c7eda4e489c53fdc95e40bde14a61c052
5 years ago
Monty Taylor dc667f7354 Fix masked variable name
The loop variable service_type masks the parameter service_type. It's
not a problem in this patch, but becomes a redefinition in the next
patch. It's pulled out here to not mix concerns.

Change-Id: I489d7ecad3f38b15eaa71449461cdd83782bac7a
5 years ago
Morgan Fainberg 335a8cdf03 Remove use of positional decorator
The positional decorator results in poorly maintainable code in
a misguided effort to emulate python3's key-word-arg only notation
and functionality. This patch removes keysteonauth's dependance
on the positional decorator.

Change-Id: I20106345747860365cd0203ba1b33a2900e045b9
6 years ago
Jenkins c31240b5b3 Merge "Minor cleanup" 6 years ago
Eric Fried 0007f373ce Minor cleanup
Couple of docstring typos.

Change-Id: Ie3b7fcefde33adc3e4576ecb1a2a96ba47f8400e
6 years ago
Monty Taylor 2b949de8e9
Support a list of interface values
Sometimes, especially in places like service-to-service defaults, it's
very helpful to express a list of values. For instance, when thinking
about nova connecting to ironic, nova would like to have the default
value of "interface" be ['internal', 'public'] - which is to say, use
internal if it's there, but otherwise use public. This use case is covered
in the API-WG specs on discoverability.

Change-Id: I9102155c2d4ef1ef8bbb1d0fa26a5b5838108a4c
6 years ago
Monty Taylor c6b915306b
Rework EndpointData construction to normalize catalog first
For the new EndpointData object, in the (admittedly uncommon) case where
the user is not providing an interface and the catalog is v2, the user
would wind up with an EndpointData with no url or interface, rather than
an EndpointData for each v2 endpoint_type found with url and interface
set properly.

This normalizes into v3 format so that the construction and be
straightforward, and introduces a denormalize used in the
ServiceCatalogV2 to re-combine the entries into the format expected by
V2 users of get_endpoints().

Change-Id: Ieb77880917e8efdf436b635aea1679c98a314404
6 years ago
Monty Taylor 337e5af637
Add returning EndpointData objects from discovery
The existing version discovery process is awesome, but in the normal flows it
ultimately returns urls, not the full endpoint data, so it's not
possible to know what version was discovered.

Make an EndpointData object that gets created and plumb that through the
stack so that it's possible to request EndpointData instead of just
endpoints. The existing discovery logic is unchanged, and the existing
methods continue to return the data they returned before.

Change-Id: Id48861e7d6d20be16f61cb375a21bca4a43a2500
6 years ago
Kristi Nikolla e57547c366 Renamed endpoint to interface in docstring
The parameter was called 'endpoint_type' in keystoneclient. Moving to
keystoneauth1 the parameter was renamed to 'interface'. Updated the
docstring in service_catalog to reflect that.

Change-Id: Iedbc77ec7a856653ffc9e0282d4ce97da36c3c87
7 years ago
Jamie Lennox f21def7061 Use positional library instead of our own copy
The positional library was spun directly out of what keystoneauth1 was
using so this is a fairly trivial change.

Change-Id: I7931ed1547d2a05e2d248bc3240a576dc68a0a40
7 years ago
lin-hua-cheng 63429aeca8 Address hacking check H405
Previously, there were a string of commits to keystone that addresed ignored
hacking checks. This commit does the same for H405 in keystoneauth. This
also modifies our tox.ini so that we no longer ignore H405 violations.

Change-Id: I0ac1165f309edd486639e2729c18330b1d062eb3
Closes-Bug: 1482773
8 years ago
Monty Taylor 78c7d6448c Add accessor method for raw catalog content
There are cases, such as os_auth in ansible, where a user wants to
be able to get at the raw catalog content. This is often extremely
useful when debugging cloud applications.

Change-Id: Ibe51b5f1a4b1d93efb6076b5f97b0fd10376cd16
8 years ago
Jamie Lennox d227f6d237 Replace endpoint_type with interface in catalog
We've been trying to move people onto using interface rather than
endpoint_type for a while as interface is what is talked about in all
the API docs and is what is exposed by the clients.

Rename all occurrences of endpoint_type with interface.

Change-Id: If18d8e27e499c294cb4dc94521da843341287362
8 years ago
Jamie Lennox 65cbe5012d Remove service_type requirement from catalog searching
The standard reason to search the catalog is that you want to know how
to find a particular service type. However with service_id and
endpoint_id you may not want to specify a service_type.

Allow searching for a url without specifying a service_type.

Change-Id: I038fe5b0e04b689f1072db659219639d5193f558
8 years ago
Jamie Lennox 2aa4d8384d Allow searching a catalog on service or endpoint id
endpoint_id and service_id are parts of both the v2 and v3 tokens. We
should allow finding urls for them in the same way as other attributes.

Change-Id: I22b5f4bd44e9a493017de89e14a705699df24280
8 years ago
Jamie Lennox 9973144625 Move AccessInfo objects into own module
The ServiceCatalog and ServiceProviders should not really be needed in a
standalone sense. They are there to make it easier to work with an
AccessInfo. Therefore move all of this into a standalone access module.

Change-Id: Idc6856d89c2131855657d01114cc72372b3b11f4
8 years ago