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,7 +24,10 @@ def __init__(self, request, logger):
2424 )
2525 self .response = protobuf .Message (None , 'response' , response .DESCRIPTOR , response )
2626 self .logger = logger
27- self .parameters = self .request .input .parameters
27+ if single_use :
28+ self .parameters = self .request .observed .composite .resource .spec .parameters
29+ else :
30+ self .parameters = self .request .input .parameters
2831 self .credentials = Credentials (self .request )
2932 self .context = self .response .context
3033 self .environment = self .context ['apiextensions.crossplane.io/environment' ]
@@ -44,7 +47,6 @@ def __init__(self, request, logger):
4447 self .spec = self .observed .spec
4548 self .status = self .desired .status
4649 self .conditions = Conditions (observed , self .response )
47- self .connection = Connection (observed , desired )
4850 self .events = Events (self .response )
4951
5052 @property
@@ -67,6 +69,16 @@ def ttl(self, ttl):
6769 else :
6870 raise ValueError ('ttl must be an int or float' )
6971
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+
7082 @property
7183 def ready (self ):
7284 ready = self .desired ._parent .ready
@@ -190,7 +202,7 @@ def __init__(self, composite, name):
190202 self .observed = observed .resource
191203 self .desired = desired .resource
192204 self .conditions = Conditions (observed )
193- self .connection = Connection ( observed )
205+ self .connection = observed . connection_details
194206 self .unknownsFatal = None
195207 self .autoReady = None
196208 self .usages = None
@@ -555,38 +567,6 @@ def _find_condition(self, create=False):
555567 return self ._conditions ._response .conditions .append (condition )
556568
557569
558- class Connection :
559- def __init__ (self , observed , desired = None ):
560- self .__dict__ ['_observed' ] = observed
561- self .__dict__ ['_desired' ] = desired
562-
563- def __bool__ (self ):
564- if self ._desired is not None and len (self ._desired .connection_details ) > 0 :
565- return True
566- if self ._observed is not None and len (self ._observed .connection_details ) > 0 :
567- return True
568- return False
569-
570- def __getattr__ (self , key ):
571- return self [key ]
572-
573- def __getitem__ (self , key ):
574- value = None
575- if self ._desired is not None and key in self ._desired .connection_details :
576- value = self ._desired .connection_details [key ]
577- if value is None and key in self ._observed .connection_details :
578- value = self ._observed .connection_details [key ]
579- return value
580-
581- def __setattr__ (self , key , value ):
582- self [key ] = value
583-
584- def __setitem__ (self , key , value ):
585- if self ._desired is None :
586- raise ValueError ('Connection is read only' )
587- self ._desired .connection_details [key ] = value
588-
589-
590570class Events :
591571 def __init__ (self , response ):
592572 self ._results = response .results
0 commit comments