From c1e5cc6bb26b7232b4bd88e9e41ca65531131884 Mon Sep 17 00:00:00 2001 From: Yufei Li Date: Tue, 17 Oct 2023 19:42:25 +0800 Subject: [PATCH] refactor: Add version for terraform template (#22) --- .../terraform/{ => v1}/builder/model.cue | 28 +++++++++---------- .../terraform/{ => v1}/builder/schema.cue | 0 templates/terraform/{ => v1}/consts.cue | 2 +- .../{ => v1}/datasource/datasource.cue | 0 .../terraform/{ => v1}/datasource/doc.cue | 0 .../terraform/{ => v1}/datasource/list.cue | 0 .../terraform/{ => v1}/datasource/model.cue | 10 +++---- .../{ => v1}/datasource/operation.cue | 0 .../terraform/{ => v1}/datasource/schema.cue | 10 +++---- templates/terraform/{ => v1}/manifest.cue | 6 ++-- templates/terraform/{ => v1}/resource/doc.cue | 0 .../terraform/{ => v1}/resource/list.cue | 2 +- .../terraform/{ => v1}/resource/model.cue | 8 +++--- .../terraform/{ => v1}/resource/operation.cue | 2 +- .../terraform/{ => v1}/resource/resource.cue | 0 .../terraform/{ => v1}/resource/schema.cue | 8 +++--- .../terraform/{ => v1}/tests/manifest.cue | 2 +- 17 files changed, 39 insertions(+), 39 deletions(-) rename templates/terraform/{ => v1}/builder/model.cue (89%) rename templates/terraform/{ => v1}/builder/schema.cue (100%) rename templates/terraform/{ => v1}/consts.cue (96%) rename templates/terraform/{ => v1}/datasource/datasource.cue (100%) rename templates/terraform/{ => v1}/datasource/doc.cue (100%) rename templates/terraform/{ => v1}/datasource/list.cue (100%) rename templates/terraform/{ => v1}/datasource/model.cue (71%) rename templates/terraform/{ => v1}/datasource/operation.cue (100%) rename templates/terraform/{ => v1}/datasource/schema.cue (71%) rename templates/terraform/{ => v1}/manifest.cue (64%) rename templates/terraform/{ => v1}/resource/doc.cue (100%) rename templates/terraform/{ => v1}/resource/list.cue (98%) rename templates/terraform/{ => v1}/resource/model.cue (73%) rename templates/terraform/{ => v1}/resource/operation.cue (99%) rename templates/terraform/{ => v1}/resource/resource.cue (100%) rename templates/terraform/{ => v1}/resource/schema.cue (72%) rename templates/terraform/{ => v1}/tests/manifest.cue (81%) diff --git a/templates/terraform/builder/model.cue b/templates/terraform/v1/builder/model.cue similarity index 89% rename from templates/terraform/builder/model.cue rename to templates/terraform/v1/builder/model.cue index 36a67b3..473bc82 100644 --- a/templates/terraform/builder/model.cue +++ b/templates/terraform/v1/builder/model.cue @@ -120,13 +120,13 @@ import ( _resource: gotemplate.Execute(_resource_template, { "name": naming.#UpperCamel & {"name": name} "pkg": pkg - v: rs + "v": rs properties: [ for i, pinfo in rs.models[name].properties { gotemplate.Execute(_prop_template, { - name: naming.#Snake & {"name": pinfo.name} - v: pinfo - index: i + 1 + "name": naming.#Snake & {"name": pinfo.name} + "v": pinfo + "index": i + 1 }) }, ] @@ -135,29 +135,29 @@ import ( _data_source: gotemplate.Execute(_data_source_template, { "name": naming.#UpperCamel & {"name": name} "pkg": pkg - v: rs + "v": rs properties: [ for i, pinfo in rs.models[name].properties { gotemplate.Execute(_prop_template, { - name: naming.#Snake & {"name": pinfo.name} - v: pinfo - index: i + 1 + "name": naming.#Snake & {"name": pinfo.name} + "v": pinfo + "index": i + 1 }) }, ] }) _models: [ - for mname, minfo in rs.models if mname != name { + for mname, minfo in (rs.models | *{}) if mname != name { gotemplate.Execute(_model_template, { - name: naming.#UpperCamel & {"name": mname} - v: minfo + "name": naming.#UpperCamel & {"name": mname} + "v": minfo properties: [ for i, pinfo in minfo.properties { gotemplate.Execute(_prop_template, { - name: naming.#Snake & {"name": pinfo.name} - v: pinfo - index: i + 1 + "name": naming.#Snake & {"name": pinfo.name} + "v": pinfo + "index": i + 1 }) }, ] diff --git a/templates/terraform/builder/schema.cue b/templates/terraform/v1/builder/schema.cue similarity index 100% rename from templates/terraform/builder/schema.cue rename to templates/terraform/v1/builder/schema.cue diff --git a/templates/terraform/consts.cue b/templates/terraform/v1/consts.cue similarity index 96% rename from templates/terraform/consts.cue rename to templates/terraform/v1/consts.cue index 2086f01..9bae1df 100644 --- a/templates/terraform/consts.cue +++ b/templates/terraform/v1/consts.cue @@ -1,4 +1,4 @@ -package terraform +package v1 import ( gotemplate "text/template" diff --git a/templates/terraform/datasource/datasource.cue b/templates/terraform/v1/datasource/datasource.cue similarity index 100% rename from templates/terraform/datasource/datasource.cue rename to templates/terraform/v1/datasource/datasource.cue diff --git a/templates/terraform/datasource/doc.cue b/templates/terraform/v1/datasource/doc.cue similarity index 100% rename from templates/terraform/datasource/doc.cue rename to templates/terraform/v1/datasource/doc.cue diff --git a/templates/terraform/datasource/list.cue b/templates/terraform/v1/datasource/list.cue similarity index 100% rename from templates/terraform/datasource/list.cue rename to templates/terraform/v1/datasource/list.cue diff --git a/templates/terraform/datasource/model.cue b/templates/terraform/v1/datasource/model.cue similarity index 71% rename from templates/terraform/datasource/model.cue rename to templates/terraform/v1/datasource/model.cue index b8a84b8..d53700a 100644 --- a/templates/terraform/datasource/model.cue +++ b/templates/terraform/v1/datasource/model.cue @@ -3,7 +3,7 @@ package datasource import ( template "github.com/GuanceCloud/iacker/pkg/template/v1" naming "github.com/GuanceCloud/iacker/pkg/helpers/naming" - builder "github.com/GuanceCloud/iacker/templates/terraform/builder" + builder "github.com/GuanceCloud/iacker/templates/terraform/v1/builder" ) // Generate go types of resource model @@ -11,10 +11,10 @@ for rsname, rsinfo in inputs.resources { if (*rsinfo.meta.datasource | false) { outputs: files: "internal/datasources/\((naming.#Snake & {"name": rsinfo.plural}).lower)/model.go": template.#File & { _builder: builder.#StructBuilder & { - pkg: (naming.#Snake & {"name": rsinfo.plural}).lower - name: rsname - rs: rsinfo - isds: true + "pkg": (naming.#Snake & {"name": rsinfo.plural}).lower + "name": rsname + "rs": rsinfo + "isds": true } content: _builder.output } diff --git a/templates/terraform/datasource/operation.cue b/templates/terraform/v1/datasource/operation.cue similarity index 100% rename from templates/terraform/datasource/operation.cue rename to templates/terraform/v1/datasource/operation.cue diff --git a/templates/terraform/datasource/schema.cue b/templates/terraform/v1/datasource/schema.cue similarity index 71% rename from templates/terraform/datasource/schema.cue rename to templates/terraform/v1/datasource/schema.cue index 6359099..81cf544 100644 --- a/templates/terraform/datasource/schema.cue +++ b/templates/terraform/v1/datasource/schema.cue @@ -3,7 +3,7 @@ package schema import ( template "github.com/GuanceCloud/iacker/pkg/template/v1" naming "github.com/GuanceCloud/iacker/pkg/helpers/naming" - builder "github.com/GuanceCloud/iacker/templates/terraform/builder" + builder "github.com/GuanceCloud/iacker/templates/terraform/v1/builder" ) // Generate Terraform schema @@ -11,10 +11,10 @@ for rsname, rsinfo in inputs.resources { if (*rsinfo.meta.datasource | false) { outputs: files: "internal/datasources/\((naming.#Snake & {"name": rsinfo.plural}).lower)/schema.go": template.#File & { _builder: builder.#SchemaBuilder & { - pkg: (naming.#Snake & {"name": rsinfo.plural}).lower - name: rsname - rs: rsinfo - isds: true + "pkg": (naming.#Snake & {"name": rsinfo.plural}).lower + "name": rsname + "rs": rsinfo + "isds": true } content: _builder.output } diff --git a/templates/terraform/manifest.cue b/templates/terraform/v1/manifest.cue similarity index 64% rename from templates/terraform/manifest.cue rename to templates/terraform/v1/manifest.cue index dacd4aa..ad7ad83 100644 --- a/templates/terraform/manifest.cue +++ b/templates/terraform/v1/manifest.cue @@ -1,9 +1,9 @@ -package terraform +package v1 import ( template "github.com/GuanceCloud/iacker/pkg/template/v1" - resource "github.com/GuanceCloud/iacker/templates/terraform/resource" - datasource "github.com/GuanceCloud/iacker/templates/terraform/datasource" + resource "github.com/GuanceCloud/iacker/templates/terraform/v1/resource" + datasource "github.com/GuanceCloud/iacker/templates/terraform/v1/datasource" ) name: "terraform" diff --git a/templates/terraform/resource/doc.cue b/templates/terraform/v1/resource/doc.cue similarity index 100% rename from templates/terraform/resource/doc.cue rename to templates/terraform/v1/resource/doc.cue diff --git a/templates/terraform/resource/list.cue b/templates/terraform/v1/resource/list.cue similarity index 98% rename from templates/terraform/resource/list.cue rename to templates/terraform/v1/resource/list.cue index 8bb392a..21d63e5 100644 --- a/templates/terraform/resource/list.cue +++ b/templates/terraform/v1/resource/list.cue @@ -37,7 +37,7 @@ outputs: files: "\(provider)/resources.go": template.#File & { for rsname, rsinfo in inputs.resources { if !(*rsinfo.meta.datasource | false) { (rsname): naming.#UpperCamel & { - name: rsname + "name": rsname } } } diff --git a/templates/terraform/resource/model.cue b/templates/terraform/v1/resource/model.cue similarity index 73% rename from templates/terraform/resource/model.cue rename to templates/terraform/v1/resource/model.cue index fabfb07..f86bcd5 100644 --- a/templates/terraform/resource/model.cue +++ b/templates/terraform/v1/resource/model.cue @@ -4,7 +4,7 @@ import ( "strings" template "github.com/GuanceCloud/iacker/pkg/template/v1" - builder "github.com/GuanceCloud/iacker/templates/terraform/builder" + builder "github.com/GuanceCloud/iacker/templates/terraform/v1/builder" ) // Generate go types of resource model @@ -12,9 +12,9 @@ for rsname, rsinfo in inputs.resources { if !(*rsinfo.meta.datasource | false) { outputs: files: "internal/resources/\(strings.ToLower(rsname))/model.go": template.#File & { _builder: builder.#StructBuilder & { - pkg: strings.ToLower(rsname) - name: rsname - rs: rsinfo + "pkg": strings.ToLower(rsname) + "name": rsname + "rs": rsinfo } content: _builder.output } diff --git a/templates/terraform/resource/operation.cue b/templates/terraform/v1/resource/operation.cue similarity index 99% rename from templates/terraform/resource/operation.cue rename to templates/terraform/v1/resource/operation.cue index e7ae5a6..e64a829 100644 --- a/templates/terraform/resource/operation.cue +++ b/templates/terraform/v1/resource/operation.cue @@ -178,7 +178,7 @@ for rsname, rsinfo in inputs.resources { if !(*rsinfo.meta.datasource | false) { outputs: files: "internal/resources/\(strings.ToLower(rsname))/resource.go": template.#File & { content: gotemplate.Execute(_resource_operation_template, { - name: naming.#UpperCamel & {"name": rsname} + "name": naming.#UpperCamel & {"name": rsname} }) } } diff --git a/templates/terraform/resource/resource.cue b/templates/terraform/v1/resource/resource.cue similarity index 100% rename from templates/terraform/resource/resource.cue rename to templates/terraform/v1/resource/resource.cue diff --git a/templates/terraform/resource/schema.cue b/templates/terraform/v1/resource/schema.cue similarity index 72% rename from templates/terraform/resource/schema.cue rename to templates/terraform/v1/resource/schema.cue index ca2d668..5b3ec7e 100644 --- a/templates/terraform/resource/schema.cue +++ b/templates/terraform/v1/resource/schema.cue @@ -4,7 +4,7 @@ import ( "strings" template "github.com/GuanceCloud/iacker/pkg/template/v1" - builder "github.com/GuanceCloud/iacker/templates/terraform/builder" + builder "github.com/GuanceCloud/iacker/templates/terraform/v1/builder" ) // Generate Terraform schema @@ -12,9 +12,9 @@ for rsname, rsinfo in inputs.resources { if !(*rsinfo.meta.datasource | false) { outputs: files: "internal/resources/\(strings.ToLower(rsname))/schema.go": template.#File & { _builder: builder.#SchemaBuilder & { - pkg: strings.ToLower(rsname) - name: rsname - rs: rsinfo + "name": rsname + "pkg": strings.ToLower(rsname) + "rs": rsinfo } content: _builder.output } diff --git a/templates/terraform/tests/manifest.cue b/templates/terraform/v1/tests/manifest.cue similarity index 81% rename from templates/terraform/tests/manifest.cue rename to templates/terraform/v1/tests/manifest.cue index 5bcb526..cc48987 100644 --- a/templates/terraform/tests/manifest.cue +++ b/templates/terraform/v1/tests/manifest.cue @@ -2,7 +2,7 @@ package tests import ( "github.com/GuanceCloud/iacker/examples/petstore" - "github.com/GuanceCloud/iacker/templates/terraform" + "github.com/GuanceCloud/iacker/templates/terraform/v1" ) resources: petstore.resources