sts-sponsors team mailing list archive
-
sts-sponsors team
-
Mailing list archive
-
Message #06254
[Merge] ~troyanov/maas:backport-1f79650-3.2 into maas:3.2
Anton Troyanov has proposed merging ~troyanov/maas:backport-1f79650-3.2 into maas:3.2.
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)
Requested reviews:
MAAS Maintainers (maas-maintainers)
For more details, see:
https://code.launchpad.net/~troyanov/maas/+git/maas/+merge/439281
--
Your team MAAS Maintainers is requested to review the proposed merge of ~troyanov/maas:backport-1f79650-3.2 into maas:3.2.
diff --git a/src/maascli/cli.py b/src/maascli/cli.py
index 36f8601..dcc65cb 100644
--- a/src/maascli/cli.py
+++ b/src/maascli/cli.py
@@ -11,6 +11,8 @@ import pkgutil
import sys
from textwrap import fill
+from OpenSSL import crypto
+
from apiclient.creds import convert_tuple_to_string
from maascli.api import fetch_api_description
from maascli.auth import (
@@ -18,7 +20,7 @@ from maascli.auth import (
obtain_credentials,
UnexpectedResponse,
)
-from maascli.command import Command
+from maascli.command import Command, CommandError
from maascli.config import ProfileConfig
from maascli.init import (
add_candid_options,
@@ -27,7 +29,6 @@ from maascli.init import (
init_maas,
)
from maascli.utils import api_url, parse_docstring, safe_name
-from provisioningserver.certificates import check_certificate
CERTS_DIR = Path("~/.maascli.certs").expanduser()
@@ -96,7 +97,10 @@ class cmd_login(Command):
cacerts_path = None
if options.cacerts is not None:
cacerts = options.cacerts.read()
- check_certificate(cacerts)
+ try:
+ crypto.load_certificate(crypto.FILETYPE_PEM, cacerts)
+ except crypto.Error:
+ raise CommandError("Invalid PEM material")
if not CERTS_DIR.exists():
CERTS_DIR.mkdir()
diff --git a/src/provisioningserver/certificates.py b/src/provisioningserver/certificates.py
index 8cbf6e3..74dd330 100644
--- a/src/provisioningserver/certificates.py
+++ b/src/provisioningserver/certificates.py
@@ -203,11 +203,3 @@ def get_maas_cert_tuple():
if not private_key.exists() or not certificate.exists():
return None
return str(certificate), str(private_key)
-
-
-def check_certificate(material):
- """Check if certificate is a valid PEM format certificate"""
- try:
- crypto.load_certificate(crypto.FILETYPE_PEM, material)
- except crypto.Error:
- raise CertificateError("Invalid PEM material")
diff --git a/utilities/check-imports b/utilities/check-imports
index 451ca7d..153edb3 100755
--- a/utilities/check-imports
+++ b/utilities/check-imports
@@ -180,6 +180,8 @@ def files(*patterns):
APIClient = files("src/apiclient/**/*.py")
+MAASCLI = files("src/maascli/**/*.py")
+
PerfTestHarness = files("src/maastesting/perftest.py")
PerfTestMigrations = files("src/maastesting/migrations/**/*.py")
@@ -384,6 +386,25 @@ checks = [
),
),
#
+ # MAAS CLI
+ #
+ (
+ MAASCLI - Tests,
+ Rule(
+ Allow("maascli|maascli.**"),
+ Allow("apiclient.creds.*"),
+ Allow("apiclient.**"),
+ Allow("httplib2"),
+ Allow("macaroonbakery|macaroonbakery.**"),
+ Allow("netifaces|netifaces.*"),
+ Allow("OpenSSL|OpenSSL.**"),
+ Allow("psycopg2|psycopg2.**"),
+ Allow("tempita"),
+ Allow("yaml"),
+ Allow(StandardLibraries),
+ ),
+ ),
+ #
# PERF TEST HARNESS
#
(
Follow ups