mirror of
https://github.com/edgelesssys/constellation.git
synced 2025-05-02 06:16:08 -04:00
[node operator] GCP: use canonical references
This commit is contained in:
parent
51cf638361
commit
80ebfab164
9 changed files with 151 additions and 3 deletions
|
@ -0,0 +1,26 @@
|
|||
package client
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"regexp"
|
||||
|
||||
"google.golang.org/genproto/googleapis/cloud/compute/v1"
|
||||
)
|
||||
|
||||
var numericProjectIDRegex = regexp.MustCompile(`^\d+$`)
|
||||
|
||||
// canonicalProjectID returns the project id for a given project id or project number.
|
||||
func (c *Client) canonicalProjectID(ctx context.Context, project string) (string, error) {
|
||||
if !numericProjectIDRegex.MatchString(project) {
|
||||
return project, nil
|
||||
}
|
||||
computeProject, err := c.projectAPI.Get(ctx, &compute.GetProjectRequest{Project: project})
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
if computeProject == nil || computeProject.Name == nil {
|
||||
return "", errors.New("invalid project")
|
||||
}
|
||||
return *computeProject.Name, nil
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue