@@ -32,7 +32,7 @@ def __init__(self, request, response, logger):
3232 self .status = Status (self .observed .status , self .desired .status )
3333 self .conditions = Conditions (observed , self .response )
3434 self .connection = Connection (observed , desired )
35- self .results = Results (self .response )
35+ self .events = Events (self .response )
3636
3737 @property
3838 def ttl (self ):
@@ -235,6 +235,33 @@ def __getattr__(self, key):
235235 def __getitem__ (self , key ):
236236 return RequiredResources (self ._composite , key )
237237
238+ def __bool__ (self ):
239+ return bool (len (self ))
240+
241+ def __len__ (self ):
242+ names = set ()
243+ for name , resource in self ._composite .request .extra_resources :
244+ names .add (name )
245+ for name , resource in self ._composite .response .requirements .extra_resources :
246+ names .add (name )
247+ return len (names )
248+
249+ def __contains__ (self , key ):
250+ if key in self ._composite .request .extra_resources :
251+ return True
252+ if key in self ._composite .response .desired .resources :
253+ return True
254+ return False
255+
256+ def __iter__ (self ):
257+ names = set ()
258+ for name , resource in self ._composite .request .extra_resources :
259+ names .add (name )
260+ for name , resource in self ._composite .response .requirements .extra_resources :
261+ names .add (name )
262+ for name in sorted (names ):
263+ yield name , self [name ]
264+
238265
239266class RequiredResources :
240267 def __init__ (self , composite , name ):
@@ -384,14 +411,14 @@ def _protobuf_value(self):
384411 value ['lastTransitionTime' ] = time .isoformat ().replace ('+00:00' , 'Z' )
385412 return value
386413
387- def __call__ (self , status = _notset , reason = _notset , message = _notset , claim = _notset ):
414+ def __call__ (self , reason = _notset , message = _notset , status = _notset , claim = _notset ):
388415 self ._find_condition (True )
389- if status != _notset :
390- self .status = status
391416 if reason != _notset :
392417 self .reason = reason
393418 if message != _notset :
394419 self .message = message
420+ if status != _notset :
421+ self .status = status
395422 if claim != _notset :
396423 self .claim = claim
397424 return self
@@ -514,39 +541,42 @@ def __setitem__(self, key, value):
514541 self ._desired .connection_details [key ] = value
515542
516543
517- class Results :
544+ class Events :
518545 def __init__ (self , response ):
519546 self ._results = response .results
520547
521- def info (self , message , reason = _notset , claim = _notset ):
522- result = Result (self ._results .append ())
523- result .info = True
524- result .message = message
548+ def info (self , reason = _notset , message = _notset , claim = _notset ):
549+ event = Event (self ._results .append ())
550+ event .info = True
525551 if reason != _notset :
526- result .reason = reason
552+ event .reason = reason
553+ if message != _notset :
554+ event .message = message
527555 if claim != _notset :
528- result .claim = claim
529- return result
556+ event .claim = claim
557+ return event
530558
531- def warning (self , message , reason = _notset , claim = _notset ):
532- result = Result (self ._results .append ())
533- result .warning = True
534- result .message = message
559+ def warning (self , reason = _notset , message = _notset , claim = _notset ):
560+ event = Event (self ._results .append ())
561+ event .warning = True
535562 if reason != _notset :
536- result .reason = reason
563+ event .reason = reason
564+ if message != _notset :
565+ event .message = message
537566 if claim != _notset :
538- result .claim = claim
539- return result
567+ event .claim = claim
568+ return event
540569
541- def fatal (self , message , reason = _notset , claim = _notset ):
542- result = Result (self ._results .append ())
543- result .fatal = True
544- result .message = message
570+ def fatal (self , reason = _notset , message = _notset , claim = _notset ):
571+ event = Event (self ._results .append ())
572+ event .fatal = True
545573 if reason != _notset :
546- result .reason = reason
574+ event .reason = reason
575+ if message != _notset :
576+ event .message = message
547577 if claim != _notset :
548- result .claim = claim
549- return result
578+ event .claim = claim
579+ return event
550580
551581 def __bool__ (self ):
552582 return len (self ) > 0
@@ -556,15 +586,15 @@ def __len__(self):
556586
557587 def __getitem__ (self , key ):
558588 if key >= len (self ._results ):
559- return Result ()
560- return Result (self ._results [ix ])
589+ return Event ()
590+ return Event (self ._results [ix ])
561591
562592 def __iter__ (self ):
563593 for ix in range (len (self ._results )):
564594 yield self [ix ]
565595
566596
567- class Result :
597+ class Event :
568598 def __init__ (self , result = None ):
569599 self ._result = result
570600
0 commit comments