[node operator] GCP: use canonical references

This commit is contained in:
Malte Poll 2022-08-05 12:15:06 +02:00 committed by Malte Poll
parent 51cf638361
commit 80ebfab164
9 changed files with 151 additions and 3 deletions

View file

@ -1,6 +1,7 @@
package client
import (
"context"
"fmt"
"regexp"
)
@ -11,6 +12,18 @@ var (
workerInstanceGroupNameRegex = regexp.MustCompile(`^(.*)worker(.*)$`)
)
func (c *Client) canonicalInstanceGroupID(ctx context.Context, instanceGroupID string) (string, error) {
project, zone, instanceGroup, err := splitInstanceGroupID(uriNormalize(instanceGroupID))
if err != nil {
return "", err
}
project, err = c.canonicalProjectID(ctx, project)
if err != nil {
return "", err
}
return fmt.Sprintf("projects/%s/zones/%s/instanceGroupManagers/%s", project, zone, instanceGroup), nil
}
// splitInstanceGroupID splits an instance group ID into core components.
func splitInstanceGroupID(instanceGroupID string) (project, zone, instanceGroup string, err error) {
matches := instanceGroupIDRegex.FindStringSubmatch(instanceGroupID)