Merge ~troyanov/maas:backport-1f79650-3.2 into maas:3.2

Proposed by Anton Troyanov
Status: Merged
Approved by: Anton Troyanov
Approved revision: 8b5293e3e44390a0314934a04af8743ab7047a50
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~troyanov/maas:backport-1f79650-3.2
Merge into: maas:3.2
Diff against target: 97 lines (+28/-11)
3 files modified
src/maascli/cli.py (+7/-3)
src/provisioningserver/certificates.py (+0/-8)
utilities/check-imports (+21/-0)
Reviewer Review Type Date Requested Status
Anton Troyanov Approve
MAAS Lander Approve
Review via email: mp+439281@code.launchpad.net

Commit message

fix(cli): follow maascli import boundaries

- Remove provisioningserver related import
- Update utilities/check-imports for maascli

Resolves LP:1986590

(partially cherry picked from commit 1f7965043fb2c1586f7d4ba17d3645ffa5a0f8e2)

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

UNIT TESTS
-b backport-1f79650-3.2 lp:~troyanov/maas/+git/maas into -b 3.2 lp:~maas-committers/maas

STATUS: SUCCESS
COMMIT: 8b5293e3e44390a0314934a04af8743ab7047a50

review: Approve
Revision history for this message
Anton Troyanov (troyanov) wrote :

Self approve backport to 3.2

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/src/maascli/cli.py b/src/maascli/cli.py
2index 36f8601..dcc65cb 100644
3--- a/src/maascli/cli.py
4+++ b/src/maascli/cli.py
5@@ -11,6 +11,8 @@ import pkgutil
6 import sys
7 from textwrap import fill
8
9+from OpenSSL import crypto
10+
11 from apiclient.creds import convert_tuple_to_string
12 from maascli.api import fetch_api_description
13 from maascli.auth import (
14@@ -18,7 +20,7 @@ from maascli.auth import (
15 obtain_credentials,
16 UnexpectedResponse,
17 )
18-from maascli.command import Command
19+from maascli.command import Command, CommandError
20 from maascli.config import ProfileConfig
21 from maascli.init import (
22 add_candid_options,
23@@ -27,7 +29,6 @@ from maascli.init import (
24 init_maas,
25 )
26 from maascli.utils import api_url, parse_docstring, safe_name
27-from provisioningserver.certificates import check_certificate
28
29 CERTS_DIR = Path("~/.maascli.certs").expanduser()
30
31@@ -96,7 +97,10 @@ class cmd_login(Command):
32 cacerts_path = None
33 if options.cacerts is not None:
34 cacerts = options.cacerts.read()
35- check_certificate(cacerts)
36+ try:
37+ crypto.load_certificate(crypto.FILETYPE_PEM, cacerts)
38+ except crypto.Error:
39+ raise CommandError("Invalid PEM material")
40
41 if not CERTS_DIR.exists():
42 CERTS_DIR.mkdir()
43diff --git a/src/provisioningserver/certificates.py b/src/provisioningserver/certificates.py
44index 8cbf6e3..74dd330 100644
45--- a/src/provisioningserver/certificates.py
46+++ b/src/provisioningserver/certificates.py
47@@ -203,11 +203,3 @@ def get_maas_cert_tuple():
48 if not private_key.exists() or not certificate.exists():
49 return None
50 return str(certificate), str(private_key)
51-
52-
53-def check_certificate(material):
54- """Check if certificate is a valid PEM format certificate"""
55- try:
56- crypto.load_certificate(crypto.FILETYPE_PEM, material)
57- except crypto.Error:
58- raise CertificateError("Invalid PEM material")
59diff --git a/utilities/check-imports b/utilities/check-imports
60index 451ca7d..153edb3 100755
61--- a/utilities/check-imports
62+++ b/utilities/check-imports
63@@ -180,6 +180,8 @@ def files(*patterns):
64
65
66 APIClient = files("src/apiclient/**/*.py")
67+MAASCLI = files("src/maascli/**/*.py")
68+
69
70 PerfTestHarness = files("src/maastesting/perftest.py")
71 PerfTestMigrations = files("src/maastesting/migrations/**/*.py")
72@@ -384,6 +386,25 @@ checks = [
73 ),
74 ),
75 #
76+ # MAAS CLI
77+ #
78+ (
79+ MAASCLI - Tests,
80+ Rule(
81+ Allow("maascli|maascli.**"),
82+ Allow("apiclient.creds.*"),
83+ Allow("apiclient.**"),
84+ Allow("httplib2"),
85+ Allow("macaroonbakery|macaroonbakery.**"),
86+ Allow("netifaces|netifaces.*"),
87+ Allow("OpenSSL|OpenSSL.**"),
88+ Allow("psycopg2|psycopg2.**"),
89+ Allow("tempita"),
90+ Allow("yaml"),
91+ Allow(StandardLibraries),
92+ ),
93+ ),
94+ #
95 # PERF TEST HARNESS
96 #
97 (

Subscribers

People subscribed via source and target branches