Skip to content

Commit

Permalink
provider/null: null_data_source data source
Browse files Browse the repository at this point in the history
A companion to the null_resource resource, this is here primarily to
enable manual quick testing of data sources workflows without depending
on any external services.

The "inputs" map gets copied to the computed "outputs" map on read,
"rand" gives a random number to exercise cases with constantly-changing
values (an anti-pattern!), and "has_computed_default" is settable in
config but computed if not set.
  • Loading branch information
apparentlymart committed May 11, 2016
1 parent 14c3ae1 commit b48374c
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 0 deletions.
54 changes: 54 additions & 0 deletions builtin/providers/null/data_source.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package null

import (
"fmt"
"math/rand"
"time"

"github.com/hashicorp/terraform/helper/schema"
)

func init() {
rand.Seed(time.Now().Unix())
}

func dataSource() *schema.Resource {
return &schema.Resource{
Read: dataSourceRead,

Schema: map[string]*schema.Schema{
"inputs": &schema.Schema{
Type: schema.TypeMap,
Optional: true,
},
"outputs": &schema.Schema{
Type: schema.TypeMap,
Computed: true,
},
"random": &schema.Schema{
Type: schema.TypeString,
Computed: true,
},
"has_computed_default": &schema.Schema{
Type: schema.TypeString,
Optional: true,
Computed: true,
},
},
}
}

func dataSourceRead(d *schema.ResourceData, meta interface{}) error {

inputs := d.Get("inputs")
d.Set("outputs", inputs)

d.Set("random", fmt.Sprintf("%d", rand.Int()))
if d.Get("has_computed_default") == "" {
d.Set("has_computed_default", "default")
}

d.SetId("static")

return nil
}
4 changes: 4 additions & 0 deletions builtin/providers/null/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,9 @@ func Provider() terraform.ResourceProvider {
ResourcesMap: map[string]*schema.Resource{
"null_resource": resource(),
},

DataSourcesMap: map[string]*schema.Resource{
"null_data_source": dataSource(),
},
}
}

0 comments on commit b48374c

Please sign in to comment.