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
=== modified file 'mojo/juju/status.py'
--- mojo/juju/status.py 2024-03-13 18:40:32 +0000
+++ mojo/juju/status.py 2024-03-15 16:22:35 +0000
@@ -457,11 +457,11 @@
457457
458 return list(units.keys())458 return list(units.keys())
459459
460 def applications_ready(self, ignore_applications=[]):460 def applications_ready(self, ignore_applications=None):
461 """Check status of all applications, raise JujuStatusError for an error state.461 """Check status of all applications, raise JujuStatusError for an error state.
462 Returns: True if the applications in the status are in a good state, False if they are busy.462 Returns: True if the applications in the status are in a good state, False if they are busy.
463 """463 """
464 applications = self.yaml_status(ignore_applications=ignore_applications)["applications"]464 applications = self.yaml_status(ignore_applications=ignore_applications or [])["applications"]
465465
466 for name in applications:466 for name in applications:
467 application = applications[name]467 application = applications[name]
@@ -542,11 +542,11 @@
542 return None542 return None
543 return machine.get("instance-id")543 return machine.get("instance-id")
544544
545 def machines_ready(self, ignore_applications=[]):545 def machines_ready(self, ignore_applications=None):
546 """Check status of all machines, raise JujuStatusError for an error state.546 """Check status of all machines, raise JujuStatusError for an error state.
547 Returns: True if the machines in the status are in a good state, False if they are busy.547 Returns: True if the machines in the status are in a good state, False if they are busy.
548 """548 """
549 machines = self.yaml_status(ignore_applications=ignore_applications)["machines"]549 machines = self.yaml_status(ignore_applications=ignore_applications or [])["machines"]
550550
551 for num in machines:551 for num in machines:
552 machine = machines[num]552 machine = machines[num]
@@ -602,11 +602,11 @@
602 self._cached_status = None602 self._cached_status = None
603 return self._raw_status603 return self._raw_status
604604
605 def subordinates_ready(self, ignore_applications=[]):605 def subordinates_ready(self, ignore_applications=None):
606 """Check status of all subordinate units, raise JujuStatusError for an error state.606 """Check status of all subordinate units, raise JujuStatusError for an error state.
607 Returns: True if the subordinate in the status are in a good state, False if they are busy.607 Returns: True if the subordinate in the status are in a good state, False if they are busy.
608 """608 """
609 applications = self.yaml_status(ignore_applications=ignore_applications)["applications"]609 applications = self.yaml_status(ignore_applications=ignore_applications or [])["applications"]
610610
611 for app in applications:611 for app in applications:
612 units = self._get_units(app)612 units = self._get_units(app)
@@ -620,7 +620,7 @@
620620
621 for name in subordinates:621 for name in subordinates:
622 # skip ignored applications622 # skip ignored applications
623 if name.split('/')[0] in ignore_applications:623 if name.split('/')[0] in (ignore_applications or []):
624 continue624 continue
625 subordinate = subordinates[name]625 subordinate = subordinates[name]
626626
@@ -637,11 +637,11 @@
637637
638 return True638 return True
639639
640 def units_ready(self, ignore_applications=[]):640 def units_ready(self, ignore_applications=None):
641 """Check status of all units, raise JujuStatusError for an error state.641 """Check status of all units, raise JujuStatusError for an error state.
642 Returns: True if the units in the status are in a good state, False if they are busy.642 Returns: True if the units in the status are in a good state, False if they are busy.
643 """643 """
644 applications = self.yaml_status(ignore_applications=ignore_applications)["applications"]644 applications = self.yaml_status(ignore_applications=ignore_applications or [])["applications"]
645645
646 for app in applications:646 for app in applications:
647 units = self._get_units(app)647 units = self._get_units(app)
@@ -658,7 +658,7 @@
658658
659 return True659 return True
660660
661 def yaml_status(self, force_update=False, ignore_applications=[]):661 def yaml_status(self, force_update=False, ignore_applications=None):
662 """662 """
663 Args:663 Args:
664 force_update: If true update from Juju.664 force_update: If true update from Juju.
@@ -667,7 +667,7 @@
667 if not self._cached_status or force_update:667 if not self._cached_status or force_update:
668 self._cached_status = yaml.safe_load(self.status(force_update))668 self._cached_status = yaml.safe_load(self.status(force_update))
669 # remove snapstore-admin application669 # remove snapstore-admin application
670 for to_ignore in ignore_applications:670 for to_ignore in (ignore_applications or []):
671 removed = self._cached_status["applications"].pop(to_ignore, None)671 removed = self._cached_status["applications"].pop(to_ignore, None)
672 if removed:672 if removed:
673 if "subordinate-to" in removed:673 if "subordinate-to" in removed:
674674
=== modified file 'mojo/juju/wait.py'
--- mojo/juju/wait.py 2024-03-13 18:40:32 +0000
+++ mojo/juju/wait.py 2024-03-15 16:22:35 +0000
@@ -258,6 +258,8 @@
258 # worth of setup hooks to run before it is complete. wait_for_workload258 # worth of setup hooks to run before it is complete. wait_for_workload
259 # does allow you to ignore infinite hook loops and other similar bugs259 # does allow you to ignore infinite hook loops and other similar bugs
260 # in your charms.260 # in your charms.
261 ignore_applications = ignore_applications or []
262
261 if log is None:263 if log is None:
262 log = logging.getLogger()264 log = logging.getLogger()
263265

Subscribers

People subscribed via source and target branches