def domains_configured(f):
 @functools.wraps(f)
 def wrapper(self, *args, **kwargs):
  if ((not self.domain_configs.configured) and CONF.identity.domain_specific_drivers_enabled):
   with self.domain_configs.lock:
    if (not self.domain_configs.configured):
     self.domain_configs.setup_domain_drivers(self.driver, self.resource_api)
  return f(self, *args, **kwargs)
 return wrapper

def domains_configured ( f ) : @ functools . wraps ( f ) def wrapper ( self , * args , ** kwargs ) : if ( ( not self . domain_configs . configured ) and CONF . identity . domain_specific_drivers_enabled ) : with self . domain_configs . lock : if ( not self . domain_configs . configured ) : self . domain_configs . setup_domain_drivers ( self . driver , self . resource_api ) return f ( self , * args , ** kwargs ) return wrapper
wrap api calls to lazy load domain configs after init .