Merge lp:~maxiberta/mojo/ignore-app-wait-support into lp:~verterok/mojo/ignore-app-wait-support

Proposed by Maximiliano Bertacchini
Status: Merged
Merged at revision: 606
Proposed branch: lp:~maxiberta/mojo/ignore-app-wait-support
Merge into: lp:~verterok/mojo/ignore-app-wait-support
Diff against target: 98 lines (+13/-11)
2 files modified
mojo/juju/status.py (+11/-11)
mojo/juju/wait.py (+2/-0)
To merge this branch: bzr merge lp:~maxiberta/mojo/ignore-app-wait-support
Reviewer Review Type Date Requested Status
Guillermo Gonzalez Pending
Review via email: mp+462511@code.launchpad.net

Commit message

Fix mutable default args related to ignore-applications-wait

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'mojo/juju/status.py'
2--- mojo/juju/status.py 2024-03-13 18:40:32 +0000
3+++ mojo/juju/status.py 2024-03-15 16:22:35 +0000
4@@ -457,11 +457,11 @@
5
6 return list(units.keys())
7
8- def applications_ready(self, ignore_applications=[]):
9+ def applications_ready(self, ignore_applications=None):
10 """Check status of all applications, raise JujuStatusError for an error state.
11 Returns: True if the applications in the status are in a good state, False if they are busy.
12 """
13- applications = self.yaml_status(ignore_applications=ignore_applications)["applications"]
14+ applications = self.yaml_status(ignore_applications=ignore_applications or [])["applications"]
15
16 for name in applications:
17 application = applications[name]
18@@ -542,11 +542,11 @@
19 return None
20 return machine.get("instance-id")
21
22- def machines_ready(self, ignore_applications=[]):
23+ def machines_ready(self, ignore_applications=None):
24 """Check status of all machines, raise JujuStatusError for an error state.
25 Returns: True if the machines in the status are in a good state, False if they are busy.
26 """
27- machines = self.yaml_status(ignore_applications=ignore_applications)["machines"]
28+ machines = self.yaml_status(ignore_applications=ignore_applications or [])["machines"]
29
30 for num in machines:
31 machine = machines[num]
32@@ -602,11 +602,11 @@
33 self._cached_status = None
34 return self._raw_status
35
36- def subordinates_ready(self, ignore_applications=[]):
37+ def subordinates_ready(self, ignore_applications=None):
38 """Check status of all subordinate units, raise JujuStatusError for an error state.
39 Returns: True if the subordinate in the status are in a good state, False if they are busy.
40 """
41- applications = self.yaml_status(ignore_applications=ignore_applications)["applications"]
42+ applications = self.yaml_status(ignore_applications=ignore_applications or [])["applications"]
43
44 for app in applications:
45 units = self._get_units(app)
46@@ -620,7 +620,7 @@
47
48 for name in subordinates:
49 # skip ignored applications
50- if name.split('/')[0] in ignore_applications:
51+ if name.split('/')[0] in (ignore_applications or []):
52 continue
53 subordinate = subordinates[name]
54
55@@ -637,11 +637,11 @@
56
57 return True
58
59- def units_ready(self, ignore_applications=[]):
60+ def units_ready(self, ignore_applications=None):
61 """Check status of all units, raise JujuStatusError for an error state.
62 Returns: True if the units in the status are in a good state, False if they are busy.
63 """
64- applications = self.yaml_status(ignore_applications=ignore_applications)["applications"]
65+ applications = self.yaml_status(ignore_applications=ignore_applications or [])["applications"]
66
67 for app in applications:
68 units = self._get_units(app)
69@@ -658,7 +658,7 @@
70
71 return True
72
73- def yaml_status(self, force_update=False, ignore_applications=[]):
74+ def yaml_status(self, force_update=False, ignore_applications=None):
75 """
76 Args:
77 force_update: If true update from Juju.
78@@ -667,7 +667,7 @@
79 if not self._cached_status or force_update:
80 self._cached_status = yaml.safe_load(self.status(force_update))
81 # remove snapstore-admin application
82- for to_ignore in ignore_applications:
83+ for to_ignore in (ignore_applications or []):
84 removed = self._cached_status["applications"].pop(to_ignore, None)
85 if removed:
86 if "subordinate-to" in removed:
87
88=== modified file 'mojo/juju/wait.py'
89--- mojo/juju/wait.py 2024-03-13 18:40:32 +0000
90+++ mojo/juju/wait.py 2024-03-15 16:22:35 +0000
91@@ -258,6 +258,8 @@
92 # worth of setup hooks to run before it is complete. wait_for_workload
93 # does allow you to ignore infinite hook loops and other similar bugs
94 # in your charms.
95+ ignore_applications = ignore_applications or []
96+
97 if log is None:
98 log = logging.getLogger()
99

Subscribers

People subscribed via source and target branches