1010
1111
1212class BaseComposite :
13- def __init__ (self , request , logger ):
13+ def __init__ (self , request , single_use , logger ):
1414 self .request = protobuf .Message (None , 'request' , request .DESCRIPTOR , request , 'Function Request' )
1515 response = fnv1 .RunFunctionResponse (
1616 meta = fnv1 .ResponseMeta (
@@ -24,6 +24,10 @@ def __init__(self, request, logger):
2424 )
2525 self .response = protobuf .Message (None , 'response' , response .DESCRIPTOR , response )
2626 self .logger = logger
27+ if single_use :
28+ self .parameters = self .request .observed .composite .resource .spec .parameters
29+ else :
30+ self .parameters = self .request .input .parameters
2731 self .credentials = Credentials (self .request )
2832 self .context = self .response .context
2933 self .environment = self .context ['apiextensions.crossplane.io/environment' ]
@@ -43,7 +47,6 @@ def __init__(self, request, logger):
4347 self .spec = self .observed .spec
4448 self .status = self .desired .status
4549 self .conditions = Conditions (observed , self .response )
46- self .connection = Connection (observed , desired )
4750 self .events = Events (self .response )
4851
4952 @property
@@ -66,6 +69,16 @@ def ttl(self, ttl):
6669 else :
6770 raise ValueError ('ttl must be an int or float' )
6871
72+ @property
73+ def connection (self ):
74+ return self .response .desired .composite .connection_details
75+
76+ @connection .setter
77+ def connection (self , connection ):
78+ self .response .desired .composite .connection_details ()
79+ for key , value in connection :
80+ self .response .desired .composite .connection_details [key ] = value
81+
6982 @property
7083 def ready (self ):
7184 ready = self .desired ._parent .ready
@@ -189,7 +202,7 @@ def __init__(self, composite, name):
189202 self .observed = observed .resource
190203 self .desired = desired .resource
191204 self .conditions = Conditions (observed )
192- self .connection = Connection ( observed )
205+ self .connection = observed . connection_details
193206 self .unknownsFatal = None
194207 self .autoReady = None
195208 self .usages = None
@@ -554,38 +567,6 @@ def _find_condition(self, create=False):
554567 return self ._conditions ._response .conditions .append (condition )
555568
556569
557- class Connection :
558- def __init__ (self , observed , desired = None ):
559- self .__dict__ ['_observed' ] = observed
560- self .__dict__ ['_desired' ] = desired
561-
562- def __bool__ (self ):
563- if self ._desired is not None and len (self ._desired .connection_details ) > 0 :
564- return True
565- if self ._observed is not None and len (self ._observed .connection_details ) > 0 :
566- return True
567- return False
568-
569- def __getattr__ (self , key ):
570- return self [key ]
571-
572- def __getitem__ (self , key ):
573- value = None
574- if self ._desired is not None and key in self ._desired .connection_details :
575- value = self ._desired .connection_details [key ]
576- if value is None and key in self ._observed .connection_details :
577- value = self ._observed .connection_details [key ]
578- return value
579-
580- def __setattr__ (self , key , value ):
581- self [key ] = value
582-
583- def __setitem__ (self , key , value ):
584- if self ._desired is None :
585- raise ValueError ('Connection is read only' )
586- self ._desired .connection_details [key ] = value
587-
588-
589570class Events :
590571 def __init__ (self , response ):
591572 self ._results = response .results
0 commit comments