Merge ~adam-collard/maas:lxd-no-proxy into maas:master

Proposed by Adam Collard
Status: Merged
Approved by: Adam Collard
Approved revision: 51b5c92faf5702711e726eb6d8a7fa366e1d6408
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~adam-collard/maas:lxd-no-proxy
Merge into: maas:master
Diff against target: 99 lines (+22/-7)
2 files modified
src/provisioningserver/drivers/pod/lxd.py (+5/-2)
src/provisioningserver/drivers/pod/tests/test_lxd.py (+17/-5)
Reviewer Review Type Date Requested Status
Alberto Donato (community) Approve
MAAS Lander Approve
Review via email: mp+437498@code.launchpad.net

Commit message

Create a Session before instantiating the pylxd Client

To post a comment you must log in.
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b lxd-no-proxy lp:~adam-collard/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: FAILED
LOG: http://maas-ci.internal:8080/job/maas-tester/1983/consoleText
COMMIT: 1905663384d4eedd5f231f5003bda6bb397ed8dd

review: Needs Fixing
Revision history for this message
Adam Collard (adam-collard) wrote :

jenkins: !test

Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b lxd-no-proxy lp:~adam-collard/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: FAILED
LOG: http://maas-ci.internal:8080/job/maas-tester/1987/consoleText
COMMIT: 1905663384d4eedd5f231f5003bda6bb397ed8dd

review: Needs Fixing
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b lxd-no-proxy lp:~adam-collard/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: SUCCESS
COMMIT: 51b5c92faf5702711e726eb6d8a7fa366e1d6408

review: Approve
Revision history for this message
Alberto Donato (ack) wrote :

+1

small nit inline

review: Approve
Revision history for this message
MAAS Lander (maas-lander) wrote :

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/src/provisioningserver/drivers/pod/lxd.py b/src/provisioningserver/drivers/pod/lxd.py
2index 0f67883..571ef0b 100644
3--- a/src/provisioningserver/drivers/pod/lxd.py
4+++ b/src/provisioningserver/drivers/pod/lxd.py
5@@ -13,6 +13,7 @@ from urllib.parse import urlparse
6 import uuid
7
8 from pylxd import Client
9+from pylxd.client import get_session_for_url
10 from pylxd.exceptions import ClientConnectionFailed, LXDAPIException, NotFound
11 import urllib3
12
13@@ -849,14 +850,16 @@ class LXDPodDriver(PodDriver):
14 raise Error("No certificates available")
15
16 def client_with_certs(cert):
17+ session = get_session_for_url(endpoint, cert=cert, verify=False)
18+ # Don't inherit proxy environment variables
19+ session.trust_env = False
20 client = self._pylxd_client_class(
21 endpoint=endpoint,
22 project=project,
23 cert=cert,
24 verify=False,
25+ session=session,
26 )
27- # Don't inherit proxy environment variables
28- client.api.session.trust_env = False
29 if not client.trusted and password:
30 try:
31 client.authenticate(password)
32diff --git a/src/provisioningserver/drivers/pod/tests/test_lxd.py b/src/provisioningserver/drivers/pod/tests/test_lxd.py
33index 1c02b0c..baf0c4a 100644
34--- a/src/provisioningserver/drivers/pod/tests/test_lxd.py
35+++ b/src/provisioningserver/drivers/pod/tests/test_lxd.py
36@@ -127,6 +127,7 @@ class FakeClient:
37 project: str
38 cert: Optional[Tuple[str, str]]
39 verify: bool
40+ session: Session
41
42 _PROXIES = (
43 "host_info",
44@@ -143,7 +144,7 @@ class FakeClient:
45 self.trusted = False
46 self._fail_auth = False
47 self.host_info = self.fake_lxd.host_info
48- self.api = FakeAPINode()
49+ self.api = FakeAPINode(self.session)
50
51 def authenticate(self, password):
52 if self._fail_auth:
53@@ -157,11 +158,11 @@ class FakeClient:
54 raise AttributeError(name)
55
56
57+@dataclasses.dataclass
58 class FakeAPINode:
59 """A fake pylxd.client._APINode"""
60
61- def __init__(self):
62- self.session = Session()
63+ session: Session
64
65
66 class FakeLXD:
67@@ -201,8 +202,16 @@ class FakeLXD:
68 project="default",
69 cert=None,
70 verify=False,
71+ session=None,
72 ):
73- client = FakeClient(self, endpoint, project, cert, verify)
74+ client = FakeClient(
75+ fake_lxd=self,
76+ endpoint=endpoint,
77+ project=project,
78+ cert=cert,
79+ verify=verify,
80+ session=session,
81+ )
82
83 if self._client_behaviors is not None:
84 try:
85@@ -264,10 +273,13 @@ class FakeLXDCluster:
86 project="default",
87 cert=None,
88 verify=False,
89+ session=None,
90 ):
91 if self.client_idx == len(self.clients):
92 self.client_idx = 0
93- client = self.clients[self.client_idx](endpoint, project, cert, verify)
94+ client = self.clients[self.client_idx](
95+ endpoint, project, cert, verify, session
96+ )
97 client._PROXIES += ("cluster", "cluster/members")
98 self.client_idx += 1
99 return client

Subscribers

People subscribed via source and target branches