mirror of
https://github.com/hashicorp/packer.git
synced 2026-09-20 23:11:40 -04:00
* Add working registry pkg * Add custom error for handling the loading of PAR environment variables * Working Publish to Build, with proper error handling for bucket names * Update hcp-sdk-go to use branch instead of mod replace directive * Update Packer build status configuration * Add support for HCP_PACKER_BUILD_FINGERPRINT env * Add support for publishing one or more PARtifacts from a single build * add git shas to this branch * Add ability to set provider name if available * Add working RegistryBuilder type * Add RegistryPostProcessor as wrapper post-processor * When in PAR mode a empty RegistryPostProcessor is added to the end of the post-processor list to publish all final image data. * Add support for updating a build from PAR that is not in a DONE state * Fix a small issue with creation the initial builds for an empty iteration. * Add PAR URL to post-processor display * Implement hcp_packer_registry block (#11168) * Update vendored Amazon plugin to v1.0.1-dev * Fix panic when running a Packer registry build in a clean directory * Remove the publishing of post-processor metadata from the registry post-processor. * Remove metadata add from registry_builder * Update registry builder to skip a build that was found to be DONE Co-authored-by: Megan Marsh <[email protected]> Co-authored-by: Sylvia Moss <[email protected]>
37 lines
904 B
Go
37 lines
904 B
Go
package packer_registry
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
|
|
"google.golang.org/grpc/codes"
|
|
)
|
|
|
|
const (
|
|
_ = iota
|
|
InvalidClientConfig
|
|
)
|
|
|
|
// ClientError represents a generic error for the Cloud Packer Service client.
|
|
type ClientError struct {
|
|
StatusCode uint
|
|
Err error
|
|
}
|
|
|
|
// Error returns the string message for some ClientError.
|
|
func (c *ClientError) Error() string {
|
|
return fmt.Sprintf("status %d: err %v", c.StatusCode, c.Err)
|
|
}
|
|
|
|
// checkErrorCode checks the error string for err for some code and returns true if the code is found.
|
|
// Ideally this function should use status.FromError https://pkg.go.dev/google.golang.org/grpc/status#pkg-functions
|
|
// but that doesn't appear to work for all of the Cloud Packer Service response errors.
|
|
func checkErrorCode(err error, code codes.Code) bool {
|
|
if err == nil {
|
|
return false
|
|
}
|
|
|
|
return strings.Contains(err.Error(), fmt.Sprintf("Code:%d", code))
|
|
|
|
}
|