Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

enable gp3 storage_type for aws_db_instance #27670

Merged
merged 21 commits into from
Dec 1, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
6c53f0c
enable gp3 storage_type for aws_db_instance
erz4 Nov 6, 2022
e1a6af0
add changelog
erz4 Nov 6, 2022
bc30371
add support of storage_throughput
erz4 Nov 13, 2022
186f5f9
add support of storage_throughput - changelog
erz4 Nov 13, 2022
f8b32c4
add support of storage_throughput - docs
erz4 Nov 13, 2022
f5e0a98
Merge branch 'main' into HEAD
ewbankkit Nov 30, 2022
17f7ec8
Tweak CHANGELOG entries.
ewbankkit Nov 30, 2022
490d31c
r/aws_db_instance: Tweak documentation.
ewbankkit Nov 30, 2022
7300f41
r/aws_db_instance: Use 'storage_throughput' during resource Create an…
ewbankkit Nov 30, 2022
37d09df
d/aws_db_instance: Add 'storage_throughput' attribute.
ewbankkit Nov 30, 2022
fd8c28c
TestAccRDSInstance_basic: Test 'storage_throughput'.
ewbankkit Nov 30, 2022
34df362
TestAccRDSInstance_separateIopsUpdate: Tidy up acceptance test config…
ewbankkit Nov 30, 2022
1b379d9
TestAccRDSInstance_portUpdate: Tidy up acceptance test configuration.
ewbankkit Nov 30, 2022
2b323b2
Add 'TestAccRDSInstance_gp3'.
ewbankkit Nov 30, 2022
0c9596b
Add 'TestAccRDSInstance_storageThroughput'.
ewbankkit Nov 30, 2022
fa4110b
testAccInstanceConfig_orderableClassMySQLGp3 > testAccInstanceConfig_…
erz4 Dec 1, 2022
084a9ac
fix naming convention caps4/5 docs
erz4 Dec 1, 2022
31ac49c
Revert "fix naming convention caps4/5 docs"
ewbankkit Dec 1, 2022
6a2c015
Merge branch 'main' into HEAD
ewbankkit Dec 1, 2022
7fb66cd
Tidy up namescapslist generator.
ewbankkit Dec 1, 2022
f4fc8a7
'testAccInstanceConfig_orderableClassMySQLGp3' -> 'testAccInstanceCon…
ewbankkit Dec 1, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .changelog/27670.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
```release-note:enhancement
resource/aws_db_instance: Add support for `gp3` `storage_type` value
```

```release-note:enhancement
resource/aws_db_instance: Add `storage_throughput` argument
```

```release-note:enhancement
data-source/aws_db_instance: Add `storage_throughput` attribute
```

```release-note:enhancement
resource/aws_db_instance: Change `iops` to `Computed`
```
4 changes: 2 additions & 2 deletions internal/generate/awsclient/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ func main() {

g.Infof("generating internal/conns/%s\n", filename)

data, err := common.ReadAllNamesData(namesDataFile)
data, err := common.ReadAllCSVData(namesDataFile)

if err != nil {
g.Fatalf("error reading %s: %s", namesDataFile, err.Error())
Expand Down Expand Up @@ -89,7 +89,7 @@ func main() {
return td.Services[i].ProviderNameUpper < td.Services[j].ProviderNameUpper
})

if err := g.ApplyAndWriteTemplate(filename, "awsclient", tmpl, td); err != nil {
if err := g.ApplyAndWriteGoTemplate(filename, "awsclient", tmpl, td); err != nil {
g.Fatalf("error: %s", err.Error())
}
}
Expand Down
4 changes: 2 additions & 2 deletions internal/generate/clientconfig/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ func main() {

g.Infof("generating internal/conns/%s\n", filename)

data, err := common.ReadAllNamesData(namesDataFile)
data, err := common.ReadAllCSVData(namesDataFile)

if err != nil {
g.Fatalf("error reading %s: %s", namesDataFile, err.Error())
Expand Down Expand Up @@ -89,7 +89,7 @@ func main() {
return td.Services[i].ProviderNameUpper < td.Services[j].ProviderNameUpper
})

if err := g.ApplyAndWriteTemplate(filename, "config", tmpl, td); err != nil {
if err := g.ApplyAndWriteGoTemplate(filename, "config", tmpl, td); err != nil {
g.Fatalf("error: %s", err.Error())
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import (
"os"
)

func ReadAllNamesData(filename string) ([][]string, error) {
func ReadAllCSVData(filename string) ([][]string, error) {
f, err := os.Open(filename)

if err != nil {
Expand Down
20 changes: 15 additions & 5 deletions internal/generate/common/generator.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ func NewGenerator() *Generator {
}
}

func (g *Generator) ApplyAndWriteTemplate(filename, templateName, templateBody string, templateData any) error {
func (g *Generator) ApplyAndWriteTemplate(filename, templateName, templateBody string, templateData any, formatter func([]byte) ([]byte, error)) error {
tmpl, err := template.New(templateName).Parse(templateBody)

if err != nil {
Expand All @@ -38,11 +38,17 @@ func (g *Generator) ApplyAndWriteTemplate(filename, templateName, templateBody s
return fmt.Errorf("executing template: %w", err)
}

generatedFileContents, err := format.Source(buffer.Bytes())
var generatedFileContents []byte

if err != nil {
g.Infof("%s", buffer.String())
return fmt.Errorf("formatting generated source code: %w", err)
if formatter != nil {
generatedFileContents, err = formatter(buffer.Bytes())

if err != nil {
g.Infof("%s", buffer.String())
return fmt.Errorf("formatting generated source code: %w", err)
}
} else {
generatedFileContents = buffer.Bytes()
}

f, err := os.OpenFile(filename, os.O_TRUNC|os.O_CREATE|os.O_WRONLY, 0644) //nolint:gomnd
Expand All @@ -62,6 +68,10 @@ func (g *Generator) ApplyAndWriteTemplate(filename, templateName, templateBody s
return nil
}

func (g *Generator) ApplyAndWriteGoTemplate(filename, templateName, templateBody string, templateData any) error {
return g.ApplyAndWriteTemplate(filename, templateName, templateBody, templateData, format.Source)
}

func (g *Generator) Errorf(format string, a ...interface{}) {
g.ui.Error(fmt.Sprintf(format, a...))
}
Expand Down
7 changes: 7 additions & 0 deletions internal/generate/namescapslist/file.tmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
The caps enforced are as follows:

| Wrong | Right | Test# |
| --- | --- | --- |
{{- range .BadCaps }}
| {{ .Wrong }} | {{ .Right }} | {{ .Test }} |
{{- end }}
78 changes: 20 additions & 58 deletions internal/generate/namescapslist/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,20 @@
package main

import (
"bytes"
_ "embed"
"encoding/csv"
"fmt"
"log"
"os"
"sort"
"strings"
"text/template"

"github.com/hashicorp/terraform-provider-aws/internal/generate/common"
)

//go:embed header.tmpl
var header string

//go:embed file.tmpl
var tmpl string

const (
filename = "../../../names/caps.md"
capsDataFile = "../../../names/caps.csv"
Expand All @@ -35,29 +35,29 @@ type TemplateData struct {
}

func main() {
fmt.Printf("Generating %s\n", strings.TrimPrefix(filename, "../../../"))
g := common.NewGenerator()

badCaps := readBadCaps()
g.Infof("Generating %s", strings.TrimPrefix(filename, "../../../"))

td := TemplateData{}
td.BadCaps = badCaps
badCaps, err := readBadCaps(capsDataFile)

writeTemplate(header+tmpl, "namescapslist", td)
}

func readBadCaps() []CapsDatum {
cf, err := os.Open(capsDataFile)
if err != nil {
log.Fatal(err)
g.Fatalf("error reading %s: %s", capsDataFile, err.Error())
}

defer cf.Close()
td := TemplateData{}
td.BadCaps = badCaps

if err := g.ApplyAndWriteTemplate(filename, "namescapslist", header+"\n"+tmpl+"\n", td, nil); err != nil {
g.Fatalf("error: %s", err.Error())
}
}

csvReader := csv.NewReader(cf)
func readBadCaps(filename string) ([]CapsDatum, error) {
caps, err := common.ReadAllCSVData(filename)

caps, err := csvReader.ReadAll()
if err != nil {
log.Fatal(err)
return nil, err
}

var capsList []CapsDatum
Expand Down Expand Up @@ -104,43 +104,5 @@ func readBadCaps() []CapsDatum {
return strings.ToLower(capsList[i].Wrong) < strings.ToLower(capsList[j].Wrong)
})

return capsList
return capsList, nil
}

func writeTemplate(body string, templateName string, td TemplateData) {
// If the file doesn't exist, create it, or truncate the file
f, err := os.OpenFile(filename, os.O_TRUNC|os.O_CREATE|os.O_WRONLY, 0644)
if err != nil {
log.Fatalf("error opening file (%s): %s", filename, err)
}

tplate, err := template.New(templateName).Parse(body)
if err != nil {
log.Fatalf("error parsing template: %s", err)
}

var buffer bytes.Buffer
err = tplate.Execute(&buffer, td)
if err != nil {
log.Fatalf("error executing template: %s", err)
}

if _, err := f.Write(buffer.Bytes()); err != nil {
f.Close()
log.Fatalf("error writing to file (%s): %s", filename, err)
}

if err := f.Close(); err != nil {
log.Fatalf("error closing file (%s): %s", filename, err)
}
}

var tmpl = `
The caps enforced are as follows:

| Wrong | Right | Test# |
| --- | --- | --- |
{{- range .BadCaps }}
| {{ .Wrong }} | {{ .Right }} | {{ .Test }} |
{{- end }}
`
2 changes: 1 addition & 1 deletion internal/generate/servicepackagedata/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ func main() {
PackageName: os.Getenv("GOPACKAGE"),
}

if err := g.ApplyAndWriteTemplate(filename, "servicepackagedata", tmpl, templateData); err != nil {
if err := g.ApplyAndWriteGoTemplate(filename, "servicepackagedata", tmpl, templateData); err != nil {
g.Fatalf("error generating %s service package data: %s", templateData.PackageName, err.Error())
}
}
Expand Down
2 changes: 2 additions & 0 deletions internal/service/rds/consts.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,15 @@ const (
const (
storageTypeStandard = "standard"
storageTypeGP2 = "gp2"
storageTypeGP3 = "gp3"
storageTypeIO1 = "io1"
)

func StorageType_Values() []string {
return []string{
storageTypeStandard,
storageTypeGP2,
storageTypeGP3,
storageTypeIO1,
}
}
Expand Down
Loading