diff --git a/request/request.go b/request/request.go index bcb268f..740632d 100644 --- a/request/request.go +++ b/request/request.go @@ -44,8 +44,8 @@ func GetObservedCompositeResource(req *v1beta1.RunFunctionRequest) (*resource.Co } // GetObservedComposedResources from the supplied request. -func GetObservedComposedResources(req *v1beta1.RunFunctionRequest) (resource.ObservedComposedResources, error) { - ocds := resource.ObservedComposedResources{} +func GetObservedComposedResources(req *v1beta1.RunFunctionRequest) (map[resource.Name]resource.ObservedComposed, error) { + ocds := map[resource.Name]resource.ObservedComposed{} for name, r := range req.GetObserved().GetResources() { ocd := resource.ObservedComposed{Resource: composed.New(), ConnectionDetails: r.GetConnectionDetails()} if err := resource.AsObject(r.GetResource(), ocd.Resource); err != nil { @@ -67,14 +67,14 @@ func GetDesiredCompositeResource(req *v1beta1.RunFunctionRequest) (*resource.Com } // GetDesiredComposedResources from the supplied request. -func GetDesiredComposedResources(req *v1beta1.RunFunctionRequest) (resource.DesiredComposedResources, error) { - ocds := resource.DesiredComposedResources{} +func GetDesiredComposedResources(req *v1beta1.RunFunctionRequest) (map[resource.Name]*resource.DesiredComposed, error) { + dcds := map[resource.Name]*resource.DesiredComposed{} for name, r := range req.GetDesired().GetResources() { - ocd := resource.DesiredComposed{Resource: composed.New()} - if err := resource.AsObject(r.GetResource(), ocd.Resource); err != nil { + dcd := &resource.DesiredComposed{Resource: composed.New()} + if err := resource.AsObject(r.GetResource(), dcd.Resource); err != nil { return nil, err } - ocds[resource.Name(name)] = ocd + dcds[resource.Name(name)] = dcd } - return ocds, nil + return dcds, nil } diff --git a/resource/resource.go b/resource/resource.go index ff68471..f531dca 100644 --- a/resource/resource.go +++ b/resource/resource.go @@ -68,18 +68,12 @@ func NewDesiredComposedResource() DesiredComposed { return DesiredComposed{Resource: composed.New()} } -// DesiredComposedResources indexed by resource name. -type DesiredComposedResources map[Name]DesiredComposed - // ObservedComposed reflects the observed state of a composed resource. type ObservedComposed struct { Resource *composed.Unstructured ConnectionDetails ConnectionDetails } -// ObservedComposedResources indexed by resource name. -type ObservedComposedResources map[Name]ObservedComposed - // AsObject gets the supplied Kubernetes object from the supplied struct. func AsObject(s *structpb.Struct, o runtime.Object) error { // We try to avoid a JSON round-trip if o is backed by unstructured data. diff --git a/response/response.go b/response/response.go index 1f3dadd..7b98996 100644 --- a/response/response.go +++ b/response/response.go @@ -61,7 +61,7 @@ func SetDesiredCompositeResource(rsp *v1beta1.RunFunctionResponse, xr *resource. // supplied response. The caller must be sure to avoid overwriting the desired // state that may have been accumulated by previous Functions in the pipeline, // unless they intend to. -func SetDesiredComposedResources(rsp *v1beta1.RunFunctionResponse, dcds resource.DesiredComposedResources) error { +func SetDesiredComposedResources(rsp *v1beta1.RunFunctionResponse, dcds map[resource.Name]*resource.DesiredComposed) error { if rsp.Desired == nil { rsp.Desired = &v1beta1.State{} }