2
0
mirror of https://github.com/xcat2/confluent.git synced 2026-10-20 14:45:45 +00:00

Change to asyncio based name lookup in various places

This commit is contained in:
Jarrod Johnson
2026-08-19 10:28:55 -04:00
parent 31647a52e1
commit ec64a6d46c
12 changed files with 31 additions and 24 deletions
+2 -2
View File
@@ -400,8 +400,8 @@ class Command(object):
async def _connect_tls(self):
server, port = _parseserver(self.serverloc)
for res in socket.getaddrinfo(server, port, socket.AF_UNSPEC,
socket.SOCK_STREAM):
for res in await asyncio.get_running_loop().getaddrinfo(
server, port, socket.AF_UNSPEC, socket.SOCK_STREAM):
af, socktype, proto, canonname, sa = res
try:
self.connection = socket.socket(af, socktype, proto)
@@ -1158,7 +1158,7 @@ class OEMHandler(generic.OEMHandler):
if domain is not None:
await self._set_ris_string(6, domain)
await self._set_ris_string(1, path)
ip = util.get_ipv4(host)[0]
ip = await util.get_ipv4(host)[0]
await self._set_short_ris_string(2, ip)
await self._set_short_ris_string(5, proto)
# now to restart RIS to have changes take effect...
@@ -1930,10 +1930,11 @@ class Session(object):
self.allsockaddrs = []
myport = self.socket.getsockname()[1]
try:
for res in socket.getaddrinfo(self.bmc,
self.port,
0,
socket.SOCK_DGRAM):
loop = asyncio.get_running_loop()
addrinfo = await loop.getaddrinfo(self.bmc,
self.port,
type=socket.SOCK_DGRAM)
for res in addrinfo:
sockaddr = res[4]
if ipv6support and res[0] == socket.AF_INET:
# convert the sockaddr to AF_INET6
+4 -3
View File
@@ -12,6 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import asyncio
import ctypes
import functools
import os
@@ -70,12 +71,12 @@ def urlsplit(url):
return proto, host, rest
def get_ipv4(hostname):
async def get_ipv4(hostname):
"""Get list of ipv4 addresses for hostname
"""
addrinfo = socket.getaddrinfo(hostname, None, socket.AF_INET,
socket.SOCK_STREAM)
addrinfo = await asyncio.get_running_loop().getaddrinfo(
hostname, None, socket.AF_INET, socket.SOCK_STREAM)
return [addrinfo[x][4][0] for x in range(len(addrinfo))]
+3 -1
View File
@@ -181,7 +181,9 @@ class Command(object):
self._bmcv4ip = None
self._bmcv6ip = None
self.xauthtoken = None
for addrinf in socket.getaddrinfo(bmc, 0, 0, socket.SOCK_STREAM):
addrinfo = await asyncio.get_running_loop().getaddrinfo(
bmc, 0, family=0, type=socket.SOCK_STREAM)
for addrinf in addrinfo:
if addrinf[0] == socket.AF_INET:
self._bmcv4ip = socket.inet_pton(addrinf[0], addrinf[-1][0])
elif addrinf[0] == socket.AF_INET6:
+3 -1
View File
@@ -1,3 +1,4 @@
import asyncio
import os
if __name__ == '__main__':
import sys
@@ -363,7 +364,8 @@ async def create_certificate(keyout=None, certout=None, csrfile=None, subj=None,
dnsnames.add(longname)
break
for currip in ipaddrs:
currname = socket.getnameinfo((currip, 0), 0)[0]
currname = (await asyncio.get_running_loop().getnameinfo(
(currip, 0), 0))[0]
for suffix in permitdomains:
if currname.endswith(suffix):
dnsnames.add(currname)
+2 -1
View File
@@ -1509,7 +1509,8 @@ async def discover_node(cfg, handler, info, nodename, manual):
else:
bmcaddr = bmcaddr.split('/', 1)[0]
await wait_for_connection(bmcaddr)
socket.getaddrinfo(bmcaddr, 443)
loop = asyncio.get_running_loop()
await loop.getaddrinfo(bmcaddr, 443)
if nodeconfig:
await util.check_call(['/opt/confluent/bin/nodeconfig', nodename] + nodeconfig)
log.log({'info': 'Configured {0} ({1})'.format(nodename,
@@ -21,7 +21,7 @@ import confluent.netutil as netutil
import aiohmi.exceptions as pygexc
import aiohmi.ipmi.command as ipmicommand
import socket
import asyncio
class NodeHandler(generic.NodeHandler):
DEFAULT_USER = 'USERID'
@@ -156,7 +156,8 @@ class NodeHandler(generic.NodeHandler):
'fe80::')):
newip = cd['hardwaremanagement.manager']['value']
newip = newip.split('/', 1)[0]
newipinfo = socket.getaddrinfo(newip, 0)[0]
newipinfo = (await asyncio.get_running_loop().getaddrinfo(
newip, 0))[0]
# This getaddrinfo is repeated in get_nic_config, could be
# optimized, albeit with a more convoluted api..
newip = newipinfo[-1][0]
@@ -20,8 +20,6 @@ import confluent.util as util
import json
from socket import getaddrinfo
import aiohmi.util.webclient as webclient
async def get_host_interface_urls(wc, mginfo):
@@ -259,7 +257,7 @@ class NodeHandler(generic.NodeHandler):
'fe80::')):
newip = cd['hardwaremanagement.manager']['value']
newip = newip.split('/', 1)[0]
newipinfo = getaddrinfo(newip, 0)[0]
newipinfo = (await asyncio.get_running_loop().getaddrinfo(newip, 0))[0]
newip = newipinfo[-1][0]
if ':' in newip:
raise exc.NotImplementedException('IPv6 remote config TODO')
@@ -342,7 +340,7 @@ async def remote_nodecfg(nodename, cfm):
ipaddr = cfg.get(nodename, {}).get('hardwaremanagement.manager', {}).get(
'value', None)
ipaddr = ipaddr.split('/', 1)[0]
ipaddr = getaddrinfo(ipaddr, 0)[0][-1]
ipaddr = (await asyncio.get_running_loop().getaddrinfo(ipaddr, 0))[0][-1]
if not ipaddr:
raise Exception('Cannot remote configure a system without known '
'address')
@@ -194,7 +194,7 @@ class NodeHandler(generic.NodeHandler):
'fe80::')):
newip = cd['hardwaremanagement.manager']['value']
newip = newip.split('/', 1)[0]
newipinfo = socket.getaddrinfo(newip, 0)[0]
newipinfo = (await asyncio.get_running_loop().getaddrinfo(newip, 0))[0]
newip = newipinfo[-1][0]
if ':' in newip:
raise exc.NotImplementedException('IPv6 remote config TODO')
@@ -231,7 +231,7 @@ async def remote_nodecfg(nodename, cfm):
ipaddr = cfg.get(nodename, {}).get('hardwaremanagement.manager', {}).get(
'value', None)
ipaddr = ipaddr.split('/', 1)[0]
ipaddr = socket.getaddrinfo(ipaddr, 0)[0][-1]
ipaddr = (await asyncio.get_running_loop().getaddrinfo(ipaddr, 0))[0][-1]
if not ipaddr:
raise Exception('Cannot remote configure a system without known '
'address')
@@ -97,7 +97,7 @@ async def remote_nodecfg(nodename, cfm):
ipaddr = cfg.get(nodename, {}).get('hardwaremanagement.manager', {}).get(
'value', None)
ipaddr = ipaddr.split('/', 1)[0]
ipaddr = socket.getaddrinfo(ipaddr, 0)[0][-1]
ipaddr = (await asyncio.get_running_loop().getaddrinfo(ipaddr, 0))[0][-1]
if not ipaddr:
raise Exception('Cannot remote configure a system without known '
'address')
+3 -2
View File
@@ -834,7 +834,8 @@ async def resourcehandler_backend(req, make_response):
targip = targip.split('/', 1)[0]
if default:
try:
ip_info = socket.getaddrinfo(targip, 0, 0, socket.SOCK_STREAM)
loop = asyncio.get_running_loop()
ip_info = await loop.getaddrinfo(targip, 0, 0, socket.SOCK_STREAM)
except socket.gaierror:
rsp = await make_response('text/plain', 404)
await rsp.write(b'hardwaremanagement.manager definition could not be resolved')
@@ -1244,7 +1245,7 @@ async def serve(bind_host, bind_port, bind_group, bind_perms):
os.umask(oldumask)
bind_arg = bind_host
else:
bindinfo = socket.getaddrinfo(
bindinfo = await asyncio.get_running_loop().getaddrinfo(
bind_host, bind_port, 0, socket.SOCK_STREAM)
if bindinfo[0][0] == socket.AF_INET:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)