fix dodgy pointers

This commit is contained in:
upodroid 2020-09-20 15:31:45 +01:00
parent 3f6230470b
commit 9b121e85f9
2 changed files with 15 additions and 17 deletions

View File

@ -70,19 +70,19 @@ func (ots OauthTokenSource) Token() (*oauth2.Token, error) {
} }
func NewClientGCE(account *ServiceAccount, vaultOauth string, impersonatedsa string) (*option.ClientOption, error) { func NewClientGCE(account *ServiceAccount, vaultOauth string, impersonatedsa string) (option.ClientOption, error) {
var err error var err error
var opts *option.ClientOption var opts option.ClientOption
if vaultOauth != "" { if vaultOauth != "" {
// Auth with Vault Oauth // Auth with Vault Oauth
log.Printf("Using Vault to generate Oauth token.") log.Printf("Using Vault to generate Oauth token.")
ts := OauthTokenSource{vaultOauth} ts := OauthTokenSource{vaultOauth}
*opts = option.WithTokenSource(ts) opts = option.WithTokenSource(ts)
} else if impersonatedsa != "" { } else if impersonatedsa != "" {
*opts = option.ImpersonateCredentials(impersonatedsa) opts = option.ImpersonateCredentials(impersonatedsa)
} else if account.jwt != nil && len(account.jwt.PrivateKey) > 0 { } else if account.jwt != nil && len(account.jwt.PrivateKey) > 0 {
// Auth with AccountFile if provided // Auth with AccountFile if provided
log.Printf("[INFO] Requesting Google token via account_file...") log.Printf("[INFO] Requesting Google token via account_file...")
@ -90,14 +90,14 @@ func NewClientGCE(account *ServiceAccount, vaultOauth string, impersonatedsa str
log.Printf("[INFO] -- Scopes: %s", DriverScopes) log.Printf("[INFO] -- Scopes: %s", DriverScopes)
log.Printf("[INFO] -- Private Key Length: %d", len(account.jwt.PrivateKey)) log.Printf("[INFO] -- Private Key Length: %d", len(account.jwt.PrivateKey))
*opts = option.WithCredentialsJSON(account.jsonKey) opts = option.WithCredentialsJSON(account.jsonKey)
} else { } else {
log.Printf("[INFO] Requesting Google token via GCE API Default Client Token Source...") log.Printf("[INFO] Requesting Google token via GCE API Default Client Token Source...")
ts, err := google.DefaultTokenSource(context.TODO(), "https://www.googleapis.com/auth/cloud-platform") ts, err := google.DefaultTokenSource(context.TODO(), "https://www.googleapis.com/auth/cloud-platform")
if err != nil { if err != nil {
return nil, err return nil, err
} }
*opts = option.WithTokenSource(ts) opts = option.WithTokenSource(ts)
// The DefaultClient uses the DefaultTokenSource of the google lib. // The DefaultClient uses the DefaultTokenSource of the google lib.
// The DefaultTokenSource uses the "Application Default Credentials" // The DefaultTokenSource uses the "Application Default Credentials"
// It looks for credentials in the following places, preferring the first location found: // It looks for credentials in the following places, preferring the first location found:
@ -126,13 +126,13 @@ func NewDriverGCE(ui packer.Ui, p string, account *ServiceAccount, impersonateds
} }
log.Printf("[INFO] Instantiating GCE client...") log.Printf("[INFO] Instantiating GCE client...")
service, err := compute.NewService(context.TODO(), *opts) service, err := compute.NewService(context.TODO(), opts)
if err != nil { if err != nil {
return nil, err return nil, err
} }
log.Printf("[INFO] Instantiating OS Login client...") log.Printf("[INFO] Instantiating OS Login client...")
osLoginService, err := oslogin.NewService(context.TODO(), *opts) osLoginService, err := oslogin.NewService(context.TODO(), opts)
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@ -138,7 +138,7 @@ func (p *PostProcessor) PostProcess(ctx context.Context, ui packer.Ui, artifact
} }
p.config.ctx.Data = generatedData p.config.ctx.Data = generatedData
var err error var err error
var opts *option.ClientOption var opts option.ClientOption
opts, err = googlecompute.NewClientGCE(p.config.account, p.config.VaultGCPOauthEngine, p.config.ImpersonatedServiceAccount) opts, err = googlecompute.NewClientGCE(p.config.account, p.config.VaultGCPOauthEngine, p.config.ImpersonatedServiceAccount)
if err != nil { if err != nil {
return nil, false, false, err return nil, false, false, err
@ -179,8 +179,8 @@ func (p *PostProcessor) PostProcess(ctx context.Context, ui packer.Ui, artifact
return gceImageArtifact, false, false, nil return gceImageArtifact, false, false, nil
} }
func UploadToBucket(opts *option.ClientOption, ui packer.Ui, artifact packer.Artifact, bucket string, gcsObjectName string) (string, error) { func UploadToBucket(opts option.ClientOption, ui packer.Ui, artifact packer.Artifact, bucket string, gcsObjectName string) (string, error) {
service, err := storage.NewService(context.TODO(), *opts) service, err := storage.NewService(context.TODO(), opts)
if err != nil { if err != nil {
return "", err return "", err
} }
@ -215,9 +215,8 @@ func UploadToBucket(opts *option.ClientOption, ui packer.Ui, artifact packer.Art
return storageObject.SelfLink, nil return storageObject.SelfLink, nil
} }
func CreateGceImage(opts option.ClientOption, ui packer.Ui, project string, rawImageURL string, imageName string, imageDescription string, imageFamily string, imageLabels map[string]string, imageGuestOsFeatures []string) (packer.Artifact, error) {
func CreateGceImage(opts *option.ClientOption, ui packer.Ui, project string, rawImageURL string, imageName string, imageDescription string, imageFamily string, imageLabels map[string]string, imageGuestOsFeatures []string) (packer.Artifact, error) { service, err := compute.NewService(context.TODO(), opts)
service, err := compute.NewService(context.TODO(), *opts)
if err != nil { if err != nil {
return nil, err return nil, err
@ -271,9 +270,8 @@ func CreateGceImage(opts *option.ClientOption, ui packer.Ui, project string, raw
return &Artifact{paths: []string{op.TargetLink}}, nil return &Artifact{paths: []string{op.TargetLink}}, nil
} }
func DeleteFromBucket(opts option.ClientOption, ui packer.Ui, bucket string, gcsObjectName string) error {
func DeleteFromBucket(opts *option.ClientOption, ui packer.Ui, bucket string, gcsObjectName string) error { service, err := storage.NewService(context.TODO(), opts)
service, err := storage.NewService(context.TODO(), *opts)
if err != nil { if err != nil {
return err return err