ServiceFilter¶
The ServiceFilter
is the base class
for service identifiers and user service preferences. Each
Resource
has a service identifier to
associate the resource with a service. An example of a service identifier
would be openstack.compute.compute_service.ComputeService
.
The preferences are stored in the
Profile
object.
The service preference and the service identifier are joined to create a
filter to match a service.
Examples¶
The ServiceFilter
class can be built
with a service type, interface, region, name, and version.
Create a service filter¶
Create a compute service and service preference. Join the services and match:
from openstack import service_filter
from openstack.compute import compute_service
default = compute_service.ComputeService()
preference = service_filter.ServiceFilter('compute', version='v2')
result = preference.join(default)
matches = (result.match_service_type('compute') and
result.match_service_name('Hal9000') and
result.match_region('DiscoveryOne') and
result.match_interface('public'))
print(str(result))
print("matches=" + str(matches))
The resulting output from the code:
service_type=compute,interface=public,version=v2
matches=True
ServiceFilter object¶
-
class
openstack.service_filter.
ServiceFilter
(service_type, interface='public', region=None, service_name=None, version=None, api_version=None, requires_project_id=False)¶ Create a service identifier.
Parameters: - service_type (string) – The desired type of service.
- interface (string) – The exposure of the endpoint. Should be public (default), internal or admin.
- region (string) – The desired region (optional).
- service_name (string) – Name of the service
- version (string) – Version of service to use.
- api_version (string) – Microversion of service supported.
- requires_project_id (bool) – True if this service’s endpoint expects project id to be included.
-
get_module
()¶ Get the full module name associated with the service.
-
get_service_module
()¶ Get the module version of the service name.
This would often be the same as the service type except in cases like object store where the service type is object-store and the module is object_store.