Skip to content

Commit adc9971

Browse files
committed
support version in error message
1 parent d7b336f commit adc9971

File tree

3 files changed

+25
-3
lines changed

3 files changed

+25
-3
lines changed

GNUmakefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ TEST?=./...
44
GOFMT_FILES?=$(if $(SERVICE), $$(find . -name '$(SERVICE)*.go' |grep -v vendor), $$(find . -name '*.go' |grep -v vendor))
55
PKG_NAME=oci
66
WEBSITE_REPO=github.com/hashicorp/terraform-website
7+
release_date=$(shell date -v +5d +%F)
78

89
prefix := $(if $(debug),TF_LOG=DEBUG OCI_GO_SDK_DEBUG=v, )
910
timeout := $(if $(timeout), $(timeout), 120m)
@@ -99,6 +100,7 @@ get: ;go get golang.org/x/tools/cmd/goimports; go get github.com/mitchellh/gox
99100
### `make update-version version=2.0.1`
100101
update-version:
101102
ifdef version
103+
sed -i -e 's/ReleaseDate = ".*"/ReleaseDate = "$(release_date)"/g' oci/version.go
102104
sed -i -e 's/Version = ".*"/Version = "$(version)"/g' oci/version.go && rm -f oci/version.go-e
103105
else
104106
@echo Err! `make update-version` requires a version argument

oci/errors.go

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"log"
99
"reflect"
1010
"strings"
11+
"time"
1112

1213
oci_common "github.com/oracle/oci-go-sdk/v36/common"
1314
)
@@ -30,6 +31,7 @@ type customError struct {
3031
OpcRequestID string
3132
ResourceOCID string
3233
Suggestion string
34+
VersionError string
3335
}
3436

3537
// Create new error format for Terraform output
@@ -68,6 +70,7 @@ func newCustomError(sync interface{}, err error) error {
6870
return err
6971
}
7072

73+
tfError.VersionError = getVersionAndDateError()
7174
tfError.Suggestion = getSuggestionFromError(tfError)
7275
return tfError.Error()
7376
}
@@ -76,24 +79,27 @@ func (tfE customError) Error() error {
7679
switch tfE.TypeOfError {
7780
case ServiceError:
7881
return fmt.Errorf("%d-%s \n"+
82+
"%s \n"+
7983
"Service: %s \n"+
8084
"Error Message: %s \n"+
8185
"OPC request ID: %s \n"+
8286
"Suggestion: %s\n",
83-
tfE.ErrorCode, tfE.ErrorCodeName, tfE.Service, tfE.Message, tfE.OpcRequestID, tfE.Suggestion)
87+
tfE.ErrorCode, tfE.ErrorCodeName, tfE.VersionError, tfE.Service, tfE.Message, tfE.OpcRequestID, tfE.Suggestion)
8488
case TimeoutError:
8589
return fmt.Errorf("%s \n"+
90+
"%s \n"+
8691
"Service: %s \n"+
8792
"Error Message: %s \n"+
8893
"Suggestion: %s\n",
89-
tfE.ErrorCodeName, tfE.Service, tfE.Message, tfE.Suggestion)
94+
tfE.ErrorCodeName, tfE.VersionError, tfE.Service, tfE.Message, tfE.Suggestion)
9095
case UnexpectedStateError:
9196
return fmt.Errorf("%s \n"+
97+
"%s \n"+
9298
"Service: %s \n"+
9399
"Error Message: %s \n"+
94100
"Resource OCID: %s \n"+
95101
"Suggestion: %s\n",
96-
tfE.ErrorCodeName, tfE.Service, tfE.Message, tfE.ResourceOCID, tfE.Suggestion)
102+
tfE.ErrorCodeName, tfE.VersionError, tfE.Service, tfE.Message, tfE.ResourceOCID, tfE.Suggestion)
97103
default:
98104
return fmt.Errorf(tfE.Message)
99105
}
@@ -144,3 +150,16 @@ func getResourceOCID(sync interface{}) string {
144150
}
145151
return ""
146152
}
153+
154+
func getVersionAndDateError() string {
155+
result := fmt.Sprintf("Provider version: %s, released on %s. ", Version, ReleaseDate)
156+
today := time.Now()
157+
releaseDate, _ := time.Parse("2006-01-02", ReleaseDate)
158+
days := today.Sub(releaseDate).Hours() / 24
159+
160+
if days > 7 {
161+
versionOld := int(days / 7)
162+
result += fmt.Sprintf("This provider is %v updates behind to current.", versionOld)
163+
}
164+
return result
165+
}

oci/version.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
)
99

1010
const Version = "4.18.0"
11+
const ReleaseDate = "2021-03-24"
1112

1213
func PrintVersion() {
1314
log.Printf("[INFO] terraform-provider-oci %s\n", Version)

0 commit comments

Comments
 (0)