Skip to content

Commit ead3548

Browse files
feat: add a manually updated collection of excluded facades
These are facades that python-libjuju does not yet support. They should not be included in client_facades. Update validate test to reflect this.
1 parent 1afdad6 commit ead3548

2 files changed

Lines changed: 10 additions & 1 deletion

File tree

juju/client/connection.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import weakref
1010
from http.client import HTTPSConnection
1111
from dateutil.parser import parse
12+
from typing import Dict, List
1213

1314
import macaroonbakery.bakery as bakery
1415
import macaroonbakery.httpbakery as httpbakery
@@ -20,7 +21,12 @@
2021

2122
log = logging.getLogger('juju.client.connection')
2223

24+
# Manual list of facades present in schemas + codegen which python-libjuju does not yet support
25+
excluded_facades: Dict[str, List[int]] = {
26+
'Charms': [7],
27+
}
2328
# Please keep in alphabetical order
29+
# in future this will likely be generated automatically (perhaps at runtime)
2430
client_facades = {
2531
'Action': {'versions': [7]},
2632
'ActionPruner': {'versions': [1]},
@@ -51,7 +57,7 @@
5157
'CAASUnitProvisioner': {'versions': [2]},
5258
'CharmDownloader': {'versions': [1]},
5359
'CharmRevisionUpdater': {'versions': [2]},
54-
'Charms': {'versions': [6, 7]},
60+
'Charms': {'versions': [6]},
5561
'Cleaner': {'versions': [2]},
5662
'Client': {'versions': [6, 7]},
5763
'Cloud': {'versions': [7]},

tests/validate/test_facades.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,14 @@ def make_client_facades_from_generated_code(project_root: Path) -> ClientFacades
6262
first, *rest = facades_by_version.values()
6363
sorted_facade_names: list[str] = sorted(first.union(*rest))
6464

65+
excluded_facades = connection.excluded_facades
6566
client_facades: ClientFacades = {}
6667
# {facade_name: {'versions': [1, 2, 3, ...]}, ...}
6768
for name in sorted_facade_names:
6869
versions: List[int] = []
6970
for version, facades in facades_by_version.items():
71+
if version in excluded_facades.get(name, []):
72+
continue
7073
if name in facades:
7174
versions.append(version)
7275
client_facades[name] = {'versions': versions}

0 commit comments

Comments
 (0)