Skip to content

Commit

Permalink
Merge pull request #22 from jumppad-labs/f-primatives-only
Browse files Browse the repository at this point in the history
Ensure description and module properties are set during parse primative
  • Loading branch information
nicholasjackson committed Apr 27, 2024
2 parents de074f6 + cd99a21 commit 179aebf
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 0 deletions.
17 changes: 17 additions & 0 deletions parse_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1134,4 +1134,21 @@ func TestParseParsesToResourceBase(t *testing.T) {
require.Equal(t, "consul", r.Metadata().Name)
require.Equal(t, "container", r.Metadata().Type)
require.Equal(t, "resource.network.onprem.meta.name", r.Metadata().Links[0])

r, err = c.FindResource("module.consul_2")
require.NoError(t, err)
require.NotNil(t, r)
require.Equal(t, "consul_2", r.Metadata().Name)
require.Equal(t, "module", r.Metadata().Type)

m1 := r.(*resources.Module)
require.Equal(t, "../single", m1.Source)
require.Equal(t, "latest", m1.Version)

r, err = c.FindResource("module.consul_2.output.container_name")
require.NoError(t, err)
require.NotNil(t, r)

o1 := r.(*resources.Output)
require.Equal(t, "This is the name of the container", o1.Description)
}
13 changes: 13 additions & 0 deletions parser.go
Original file line number Diff line number Diff line change
Expand Up @@ -659,6 +659,9 @@ func (p *Parser) parseModule(ctx *hcl.EvalContext, c *Config, file string, b *hc
version = v.AsString()
}

rt.(*resources.Module).Source = src.AsString()
rt.(*resources.Module).Version = version

// src could be a registry url, github repository or a relative folder
// first check if it is a folder, we need to make it absolute relative to the current file
dir := path.Dir(file)
Expand Down Expand Up @@ -950,6 +953,16 @@ func (p *Parser) parseResource(ctx *hcl.EvalContext, c *Config, file string, b *
return &de
}

// if we have an output, get the description
// this is only needed when parsing primatives as
// this value is normally set during walk
if rt.Metadata().Type == resources.TypeOutput && b.Body.Attributes["description"] != nil {
desc, diags := b.Body.Attributes["description"].Expr.Value(ctx)
if !diags.HasErrors() {
rt.(*resources.Output).Description = desc.AsString()
}
}

// disabled is a property of the embedded type we need to add this manually
setDisabled(ctx, rt, b.Body, disabled)

Expand Down
1 change: 1 addition & 0 deletions test_fixtures/single/container.hcl
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ resource "container" "consul" {

output "container_name" {
value = resource.container.consul.meta.name
description = "This is the name of the container"
}

output "container_resources_cpu" {
Expand Down

0 comments on commit 179aebf

Please sign in to comment.