in dubbo_client/registry.py [0:0]
def _set_provider_configuration(self, interface, nodes):
"""
设置provider配置
:param interface:
:param nodes:
:return:
"""
if not nodes:
return
try:
configuration_dict = {}
for _child_node in nodes:
_node = urllib.unquote(_child_node).decode('utf8')
if _node.startswith('override'):
service_url = ServiceURL(_node)
key = self._to_key(interface, service_url.version, service_url.group)
if key not in configuration_dict:
configuration_dict[key] = {}
if service_url.location not in configuration_dict[key]:
configuration_dict[key][service_url.location] = []
configuration_dict[key][service_url.location].append(_node)
if interface in self._service_providers:
provider_dict = self._service_providers.get(interface)
for provider_key, second_dict in provider_dict.iteritems():
for service_location, service_url in second_dict.iteritems():
configuration_service_urls = configuration_dict.get(provider_key, {}).get(service_location)
if not configuration_service_urls:
service_url.init_default_config()
else:
service_url.set_config(configuration_service_urls)
except Exception as e:
logger.warn('set provider configuration error %s', str(e))