@@ -111,9 +111,9 @@ def __init__(self, crossplane_v1, request, single_use, logger):
111111 self .environment = self .context ['apiextensions.crossplane.io/environment' ]
112112 self .requireds = Requireds (self )
113113 self .resources = Resources (self )
114- self .unknownsFatal = True
115114 self .autoReady = True
116115 self .usages = False
116+ self .unknownsFatal = False
117117
118118 observed = self .request .observed .composite
119119 desired = self .response .desired .composite
@@ -238,16 +238,22 @@ def __init__(self, composite, name):
238238 self .desired = desired .resource
239239 self .conditions = Conditions (observed )
240240 self .connection = observed .connection_details
241- self .unknownsFatal = None
242241 self .autoReady = None
243242 self .usages = None
243+ self .unknownsFatal = None
244244
245- def __call__ (self , apiVersion = _notset , kind = _notset , namespace = _notset , name = _notset ):
245+ def __call__ (self , kind = _notset , apiVersion = _notset , namespace = _notset , name = _notset ):
246246 self .desired ()
247+ if kind != _notset :
248+ # Allow for apiVersion in the first arg and kind in the second arg
249+ if '/' in kind or kind == 'v1' :
250+ if apiVersion != _notset :
251+ self .kind = apiVersion
252+ apiVersion = kind
253+ else :
254+ self .kind = kind
247255 if apiVersion != _notset :
248256 self .apiVersion = apiVersion
249- if kind != _notset :
250- self .kind = kind
251257 if namespace != _notset :
252258 self .metadata .namespace = namespace
253259 if name != _notset :
@@ -408,12 +414,18 @@ def __init__(self, composite, name):
408414 self ._resources = composite .request .required_resources [name ]
409415 self ._cache = {}
410416
411- def __call__ (self , apiVersion = _notset , kind = _notset , namespace = _notset , name = _notset , labels = _notset ):
417+ def __call__ (self , kind = _notset , apiVersion = _notset , namespace = _notset , name = _notset , labels = _notset ):
412418 self ._selector ()
419+ if kind != _notset :
420+ # Allow for apiVersion in the first arg and kind in the second arg
421+ if '/' in kind or kind == 'v1' :
422+ if apiVersion != _notset :
423+ self .kind = apiVersion
424+ apiVersion = kind
425+ else :
426+ self .kind = kind
413427 if apiVersion != _notset :
414428 self .apiVersion = apiVersion
415- if kind != _notset :
416- self .kind = kind
417429 if namespace != _notset :
418430 self .namespace = namespace
419431 if name != _notset :
@@ -802,60 +814,36 @@ def _resource_name(self):
802814
803815 @property
804816 def observed (self ):
805- if self ._composite .crossplane_v1 :
806- return self ._composite .response .observed .composite .connection_details
807- data = protobuf .Map ()
808- for key , value in self ._composite .resources [self ._resource_name ].observed .data :
809- data [key ] = protobuf .B64Decode (value )
810- return data
817+ return self ._composite .response .observed .composite .connection_details
811818
812819 def __getattr__ (self , key ):
813820 return self [key ]
814821
815822 def __getitem__ (self , key ):
816- if self ._composite .crossplane_v1 :
817- return self ._composite .response .desired .composite .connection_details [key ]
818- value = self ._composite .resources [self ._resource_name ].data [key ]
819- if value :
820- value = protobuf .B64Decode (value )
821- return value
823+ return self ._composite .response .desired .composite .connection_details [key ]
822824
823825 def __bool__ (self ):
824- if self ._composite .crossplane_v1 :
825- return bool (self ._composite .response .desired .composite .connection_details )
826- return bool (self ._composite .resources [self ._resource_name ].data )
826+ return bool (self ._composite .response .desired .composite .connection_details )
827827
828828 def __len__ (self ):
829- if self ._composite .crossplane_v1 :
830- return len (self ._composite .response .desired .composite .connection_details )
831- return len (self ._composite .resources [self ._resource_name ].data )
829+ return len (self ._composite .response .desired .composite .connection_details )
832830
833831 def __contains__ (self , key ):
834- if self ._composite .crossplane_v1 :
835- return key in self ._composite .response .desired .composite .connection_details
832+ return key in self ._composite .response .desired .composite .connection_details
836833
837834 def __iter__ (self ):
838- keys = set ()
839- if self ._composite .crossplane_v1 :
840- for key , value in self ._composite .response .desired .composite .connection_details :
841- yield key , value
842- for key , value in self ._composite .resources [self ._resource_name ].data :
843- yield key , protobuf .B64Decode (value )
835+ for key , value in self ._composite .response .desired .composite .connection_details :
836+ yield key , value
844837
845838 def __str__ (self ):
846839 return format (self )
847840
848841 def __format__ (self , spec = 'yaml' ):
849- if self ._composite .crossplane_v1 :
850- return format (self ._composite .response .desired .composite .connection_details , spec )
851- data = protobuf .Map ()
852- for key , value in self ._composite .resources [self ._resource_name ].data :
853- data [key ] = protobuf .B64Decode (value )
854- return format (data , spec )
842+ return format (self ._composite .response .desired .composite .connection_details , spec )
855843
856844 def __call__ (self , ** kwargs ):
845+ self ._composite .response .desired .composite .connection_details (** kwargs )
857846 if self ._composite_v1 :
858- self ._composite .response .desired .composite .connection_details (** kwargs )
859847 return
860848 del self ._composite .resources [self ._resource_name ]
861849 for key , value in kwargs :
@@ -872,16 +860,13 @@ def __setitem__(self, key, value):
872860 if not value :
873861 return
874862 value = str (value )
875- if self ._composite .crossplane_v1 :
876- self ._composite .response . desired . composite . connection_details [ key ] = value
863+ self ._composite .response . desired . composite . connection_details [ key ] = value
864+ if self . _composite . crossplane_v1 or not self ._composite .connectionSecret . name :
877865 return
878- #if not self._composite.connectionSecret.name:
879- # return
880866 if self ._resource_name in self ._composite .resources :
881867 secret = self ._composite .resources [self ._resource_name ]
882868 else :
883869 secret = self ._composite .resources [self ._resource_name ]('v1' , 'Secret' )
884- print (bool (self ._composite .connectionSecret .name ), len (self ._composite .connectionSecret .name ))
885870 if self ._composite .connectionSecret .name and len (self ._composite .connectionSecret .name ):
886871 secret .metadata .name = self ._composite .connectionSecret .name
887872 if not self ._composite .metadata .namespace :
@@ -896,8 +881,8 @@ def __delattr__(self, key):
896881 del self [key ]
897882
898883 def __delitem__ (self , key ):
884+ del self ._composite .response .desired .composite .connection_details [key ]
899885 if self ._composite .crossplane_v1 :
900- del self ._composite .response .desired .composite .connection_details [key ]
901886 return
902887 if self ._resource_name in self ._composite .resources :
903888 del self ._composite .resources [self ._resource_name ].data [key ]
0 commit comments