def available_modules():
 extra_service_versions = set([])
 _tempest_modules = set(tempest_modules())
 plugin_services = ClientsRegistry().get_service_clients()
 for plugin_name in plugin_services:
  plug_service_versions = set([x['service_version'] for x in plugin_services[plugin_name]])
  if plug_service_versions:
   if (not plug_service_versions.isdisjoint(extra_service_versions)):
    detailed_error = ('Plugin %s is trying to register a service %s already claimed by another one' % (plugin_name, (extra_service_versions & plug_service_versions)))
    raise exceptions.PluginRegistrationException(name=plugin_name, detailed_error=detailed_error)
   if (not plug_service_versions.isdisjoint(_tempest_internal_modules())):
    detailed_error = ('Plugin %s is trying to register a service %s already claimed by a Tempest one' % (plugin_name, (_tempest_internal_modules() & plug_service_versions)))
    raise exceptions.PluginRegistrationException(name=plugin_name, detailed_error=detailed_error)
  extra_service_versions |= plug_service_versions
 return (_tempest_modules | extra_service_versions)

def available_modules ( ) : extra_service_versions = set ( [ ] ) _tempest_modules = set ( tempest_modules ( ) ) plugin_services = ClientsRegistry ( ) . get_service_clients ( ) for plugin_name in plugin_services : plug_service_versions = set ( [ x [ 'service_version' ] for x in plugin_services [ plugin_name ] ] ) if plug_service_versions : if ( not plug_service_versions . isdisjoint ( extra_service_versions ) ) : detailed_error = ( 'Plugin %s is trying to register a service %s already claimed by another one' % ( plugin_name , ( extra_service_versions & plug_service_versions ) ) ) raise exceptions . PluginRegistrationException ( name = plugin_name , detailed_error = detailed_error ) if ( not plug_service_versions . isdisjoint ( _tempest_internal_modules ( ) ) ) : detailed_error = ( 'Plugin %s is trying to register a service %s already claimed by a Tempest one' % ( plugin_name , ( _tempest_internal_modules ( ) & plug_service_versions ) ) ) raise exceptions . PluginRegistrationException ( name = plugin_name , detailed_error = detailed_error ) extra_service_versions |= plug_service_versions return ( _tempest_modules | extra_service_versions )
set of service client modules available in tempest and plugins set of stable service clients from tempest and service clients exposed by plugins .