Move diff and wait to perform_action (#375)

This primarily moves the diff and wait logic from the various service
methods to perform_action to eliminate code duplication. I also moved
the diff_objects function out of the service object and moved most of
the find_resource logic to a new resource client method. We ended up
with several modules creating a service object just to use one of these
methods, so it seemed to make sense to make these more accessible.
This commit is contained in:
Mike Graves
2022-02-14 08:19:36 -05:00
parent 3bf147580f
commit 25644ac192
11 changed files with 356 additions and 448 deletions

View File

@@ -107,7 +107,7 @@ RESOURCE_PREDICATES = {
def empty_list(resource: ResourceInstance) -> bool:
return resource.kind.endswith("List") and not resource.get("items")
return resource["kind"].endswith("List") and not resource.get("items")
def clock(total: int, interval: int) -> Iterator[int]:
@@ -134,7 +134,7 @@ class Waiter:
namespace: Optional[str] = None,
label_selectors: Optional[List[str]] = None,
field_selectors: Optional[List[str]] = None,
) -> Tuple[bool, Optional[Dict], int]:
) -> Tuple[bool, Dict, int]:
params = {}
if name:
@@ -149,7 +149,7 @@ class Waiter:
if field_selectors:
params["field_selector"] = ",".join(field_selectors)
instance: Optional[Dict] = None
instance = {}
response = None
elapsed = 0
for i in clock(timeout, sleep):