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

Proposed by Adam Collard
Status: Merged
Approved by: Adam Collard
Approved revision: 496278df243535f57c80275983886a258604a005
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: 71 lines (+17/-0)
3 files modified
src/provisioningserver/drivers/pod/lxd.py (+2/-0)
src/provisioningserver/drivers/pod/tests/test_lxd.py (+14/-0)
utilities/check-imports (+1/-0)
Reviewer Review Type Date Requested Status
Alexsander de Souza Approve
MAAS Lander Approve
Review via email: mp+437278@code.launchpad.net

Commit message

Set pylxd session to not trust the environment

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/1939/consoleText
COMMIT: 3f7dd5423c58e39bb97f6fe25cdce6eb13e37dbb

review: Needs Fixing
~adam-collard/maas:lxd-no-proxy updated
496278d... by Adam Collard

Allow requests to be imported by provisioningserver tests

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: 496278df243535f57c80275983886a258604a005

review: Approve
Revision history for this message
Alexsander de Souza (alexsander-souza) wrote :

+1

review: Approve

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 9640c10..0f67883 100644
3--- a/src/provisioningserver/drivers/pod/lxd.py
4+++ b/src/provisioningserver/drivers/pod/lxd.py
5@@ -855,6 +855,8 @@ class LXDPodDriver(PodDriver):
6 cert=cert,
7 verify=False,
8 )
9+ # Don't inherit proxy environment variables
10+ client.api.session.trust_env = False
11 if not client.trusted and password:
12 try:
13 client.authenticate(password)
14diff --git a/src/provisioningserver/drivers/pod/tests/test_lxd.py b/src/provisioningserver/drivers/pod/tests/test_lxd.py
15index 2a69eea..1c02b0c 100644
16--- a/src/provisioningserver/drivers/pod/tests/test_lxd.py
17+++ b/src/provisioningserver/drivers/pod/tests/test_lxd.py
18@@ -12,6 +12,7 @@ from unittest.mock import ANY, MagicMock, Mock, PropertyMock, sentinel
19
20 from fixtures import EnvironmentVariable, TempDir
21 from pylxd.exceptions import ClientConnectionFailed, LXDAPIException, NotFound
22+from requests import Session
23 from testtools.testcase import ExpectedException
24 from twisted.internet.defer import inlineCallbacks
25
26@@ -142,6 +143,7 @@ class FakeClient:
27 self.trusted = False
28 self._fail_auth = False
29 self.host_info = self.fake_lxd.host_info
30+ self.api = FakeAPINode()
31
32 def authenticate(self, password):
33 if self._fail_auth:
34@@ -155,6 +157,13 @@ class FakeClient:
35 raise AttributeError(name)
36
37
38+class FakeAPINode:
39+ """A fake pylxd.client._APINode"""
40+
41+ def __init__(self):
42+ self.session = Session()
43+
44+
45 class FakeLXD:
46 """A fake LXD server."""
47
48@@ -461,6 +470,11 @@ class TestLXDPodDriver(MAASTestCase):
49 self.assertIsInstance(client.cert, tuple)
50 self.assertFalse(client.verify)
51
52+ def test_get_client_should_not_trust_environment(self):
53+ context = self.make_context()
54+ with self.driver._get_client(None, context) as client:
55+ self.assertFalse(client.api.session.trust_env)
56+
57 def test_get_client_no_certificates_no_password(self):
58 context = self.make_context(with_cert=False, with_password=False)
59 pod_id = factory.make_name("pod_id")
60diff --git a/utilities/check-imports b/utilities/check-imports
61index fb59c92..5884de4 100755
62--- a/utilities/check-imports
63+++ b/utilities/check-imports
64@@ -418,6 +418,7 @@ checks = [
65 RackControllerRule
66 | Rule(
67 Allow("apiclient.testing.credentials.make_api_credentials"),
68+ Allow("requests|requests.**"),
69 Allow(StandardLibraries),
70 Allow(TestingLibraries),
71 ),

Subscribers

People subscribed via source and target branches