Skip to content

Commit 51ca0e3

Browse files
committed
Fix issues during enabling ipv6
1 parent 3a18163 commit 51ca0e3

File tree

3 files changed

+19
-14
lines changed

3 files changed

+19
-14
lines changed

lisa/sut_orchestrator/azure/arm_template.bicep

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -273,11 +273,11 @@ resource nodes_public_ip 'Microsoft.Network/publicIPAddresses@2020-05-01' = [for
273273
tags: tags
274274
name: '${nodes[i].name}-public-ip'
275275
properties: {
276-
publicIPAllocationMethod: ((is_ultradisk || use_availability_zones) ? 'Static' : 'Dynamic')
276+
publicIPAllocationMethod: ((is_ultradisk || use_availability_zones || use_ipv6) ? 'Static' : 'Dynamic')
277277
ipTags: (empty(ip_tags) ? null : ip_tags)
278278
}
279279
sku: {
280-
name: ((is_ultradisk || use_availability_zones) ? 'Standard' : 'Basic')
280+
name: ((is_ultradisk || use_availability_zones || use_ipv6) ? 'Standard' : 'Basic')
281281
}
282282
zones: (use_availability_zones ? availability_zones : null)
283283
}]

lisa/sut_orchestrator/azure/autogen_arm_template.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"_generator": {
77
"name": "bicep",
88
"version": "0.34.1.11899",
9-
"templateHash": "13761993183944386189"
9+
"templateHash": "6209161677269277510"
1010
}
1111
},
1212
"functions": [
@@ -607,11 +607,11 @@
607607
"location": "[parameters('location')]",
608608
"tags": "[parameters('tags')]",
609609
"properties": {
610-
"publicIPAllocationMethod": "[if(or(parameters('is_ultradisk'), variables('use_availability_zones')), 'Static', 'Dynamic')]",
610+
"publicIPAllocationMethod": "[if(or(or(parameters('is_ultradisk'), variables('use_availability_zones')), parameters('use_ipv6')), 'Static', 'Dynamic')]",
611611
"ipTags": "[if(empty(variables('ip_tags')), null(), variables('ip_tags'))]"
612612
},
613613
"sku": {
614-
"name": "[if(or(parameters('is_ultradisk'), variables('use_availability_zones')), 'Standard', 'Basic')]"
614+
"name": "[if(or(or(parameters('is_ultradisk'), variables('use_availability_zones')), parameters('use_ipv6')), 'Standard', 'Basic')]"
615615
},
616616
"zones": "[if(variables('use_availability_zones'), variables('availability_zones'), null())]"
617617
},

lisa/util/shell.py

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
# Copyright (c) Microsoft Corporation.
22
# Licensed under the MIT license.
33

4-
import ipaddress
54
import logging
65
import os
76
import re
@@ -78,9 +77,7 @@ def wait_tcp_port_ready(
7877
# If it's True, it means the direct connection doesn't work. Return a
7978
# mock value for test purpose.
8079
return True, 0
81-
address_family = socket.AF_INET
82-
if _is_valid_ipv6(address):
83-
address_family = socket.AF_INET6
80+
address_family = _get_address_family(address)
8481
timeout_timer = create_timer()
8582
while timeout_timer.elapsed(False) < timeout:
8683
with socket.socket(address_family, socket.SOCK_STREAM) as tcp_socket:
@@ -104,12 +101,20 @@ def wait_tcp_port_ready(
104101
return is_ready, result
105102

106103

107-
def _is_valid_ipv6(address: str) -> bool:
104+
def _get_address_family(address: str) -> Any:
108105
try:
109-
ipaddress.IPv4Address(address)
110-
return False
111-
except ipaddress.AddressValueError:
112-
return True
106+
addr_info = socket.getaddrinfo(address, None)
107+
for info in addr_info:
108+
family = info[0]
109+
if family == socket.AF_INET:
110+
return socket.AF_INET
111+
elif family == socket.AF_INET6:
112+
return socket.AF_INET6
113+
return socket.AF_INET
114+
except socket.gaierror:
115+
return socket.AF_INET
116+
except Exception:
117+
return socket.AF_INET
113118

114119

115120
class WindowsShellType(object):

0 commit comments

Comments
 (0)