func()

in pkg/cloud/rgraph/rnode/backendservice/builder.go [67:129]


func (b *builder) OutRefs() ([]rnode.ResourceRef, error) {
	if b.resource == nil {
		return nil, nil
	}

	obj, _ := b.resource.ToGA()

	var ret []rnode.ResourceRef

	// Backends[].Group
	for idx, backend := range obj.Backends {
		id, err := cloud.ParseResourceURL(backend.Group)
		if err != nil {
			return nil, fmt.Errorf("BackendServiceNode Group: %w", err)
		}
		ret = append(ret, rnode.ResourceRef{
			From: b.ID(),
			Path: api.Path{}.Field("Backends").Index(idx).Field("Group"),
			To:   id,
		})
	}

	// Healthchecks[]
	for idx, hc := range obj.HealthChecks {
		id, err := cloud.ParseResourceURL(hc)
		if err != nil {
			return nil, fmt.Errorf("BackendServiceNode HealthChecks: %w", err)
		}
		ret = append(ret, rnode.ResourceRef{
			From: b.ID(),
			Path: api.Path{}.Field("HealthChecks").Index(idx),
			To:   id,
		})
	}

	// SecurityPolicy
	if obj.SecurityPolicy != "" {
		id, err := cloud.ParseResourceURL(obj.SecurityPolicy)
		if err != nil {
			return nil, fmt.Errorf("BackendServiceNode SecurityPolicy: %w", err)
		}
		ret = append(ret, rnode.ResourceRef{
			From: b.ID(),
			Path: api.Path{}.Field("SecurityPolicy"),
			To:   id,
		})
	}

	// EdgeSecurityPolicy
	if obj.EdgeSecurityPolicy != "" {
		id, err := cloud.ParseResourceURL(obj.EdgeSecurityPolicy)
		if err != nil {
			return nil, fmt.Errorf("BackendServiceNode SecurityPolicy: %w", err)
		}
		ret = append(ret, rnode.ResourceRef{
			From: b.ID(),
			Path: api.Path{}.Field("EdgeSecurityPolicy"),
			To:   id,
		})
	}

	return ret, nil
}