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
}