Skip to content

Commit 3466413

Browse files
authored
Merge pull request #1 from ajbosco/segment_config_go_v0.2.0
use segment-config-go v0.2.0
2 parents 8537e3d + fc3b74b commit 3466413

File tree

9 files changed

+74
-75
lines changed

9 files changed

+74
-75
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ A [Terraform](https://www.terraform.io/) provider for [Segment](https://www.segm
77
Create and manage Segment [sources](https://segment.com/docs/sources/)
88
```
99
resource "segment_source" "test_source" {
10-
name = "workspaces/your-workspace/sources/your-source"
10+
source_name = "your-source"
1111
catalog_name = "catalog/sources/javascript"
1212
}
1313
```
@@ -16,7 +16,7 @@ Create and manage Segment [destinations](https://segment.com/docs/destinations/)
1616
```
1717
resource "segment_destination" "test_destination" {
1818
source_name = "test_source"
19-
destination_name = "workspaces/your-workspace/sources/your-source/destinations/google-analytics"
19+
destination_name = "google-analytics"
2020
connection_mode = "CLOUD"
2121
enabled = false
2222
configs = [{

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module github.com/ajbosco/terraform-provider-segment
22

33
require (
4-
github.com/ajbosco/segment-config-go v0.1.0
4+
github.com/ajbosco/segment-config-go v0.2.0
55
github.com/apparentlymart/go-cidr v1.0.0 // indirect
66
github.com/blang/semver v3.5.1+incompatible // indirect
77
github.com/hashicorp/go-getter v0.0.0-20181119194526-bd1edc22f8ea // indirect

go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ github.com/agext/levenshtein v1.2.1 h1:QmvMAjj2aEICytGiWzmxoE0x2KZvE0fvmqMOfy2tj
22
github.com/agext/levenshtein v1.2.1/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558=
33
github.com/ajbosco/segment-config-go v0.1.0 h1:FT2X+DSsBTVl+jL/WXldfvTE4QWIdqLnjmpp2Nfxp8Q=
44
github.com/ajbosco/segment-config-go v0.1.0/go.mod h1:f+rLFCLd9lq60T4ze+oGTMCbL4a9EHxIigR+NyhkfME=
5+
github.com/ajbosco/segment-config-go v0.2.0 h1:qk5Z5yLkEjtysC3YvehLb4a+KvT00KA44W+u/WUVzHU=
6+
github.com/ajbosco/segment-config-go v0.2.0/go.mod h1:f+rLFCLd9lq60T4ze+oGTMCbL4a9EHxIigR+NyhkfME=
57
github.com/apparentlymart/go-cidr v1.0.0 h1:lGDvXx8Lv9QHjrAVP7jyzleG4F9+FkRhJcEsDFxeb8w=
68
github.com/apparentlymart/go-cidr v1.0.0/go.mod h1:EBcsNrHc3zQeuaeCeCtQruQm+n9/YjEn/vI25Lg7Gwc=
79
github.com/apparentlymart/go-dump v0.0.0-20180507223929-23540a00eaa3/go.mod h1:oL81AME2rN47vu18xqj1S1jPIPuN7afo62yKTNn3XMM=

segment/provider.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,6 @@ func Provider() terraform.ResourceProvider {
2626
"segment_source": resourceSegmentSource(),
2727
"segment_destination": resourceSegmentDestination(),
2828
},
29-
// DataSourcesMap: map[string]*schema.Resource{
30-
// "segment_project": dataSourceSegmentProject(),
31-
// },
3229
ConfigureFunc: configureFunc(),
3330
}
3431
}

segment/resource_segment_destination.go

Lines changed: 11 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package segment
22

33
import (
4-
"strings"
5-
64
"github.com/ajbosco/segment-config-go/segment"
75
"github.com/hashicorp/terraform/helper/schema"
86
)
@@ -63,61 +61,43 @@ func resourceSegmentDestinationCreate(r *schema.ResourceData, meta interface{})
6361
enabled := r.Get("enabled").(bool)
6462
configs := r.Get("configs").(*schema.Set)
6563

66-
newDest := segment.Destination{
67-
Name: destName,
68-
Enabled: enabled,
69-
ConnectionMode: connMode,
70-
Configs: extractConfigs(configs),
71-
}
72-
73-
dest, err := client.CreateDestination(srcName, newDest)
64+
dest, err := client.CreateDestination(srcName, destName, connMode, enabled, extractConfigs(configs))
7465
if err != nil {
7566
return err
7667
}
7768

78-
// the id of the destination is the last value in the name path
79-
splitName := strings.Split(dest.Name, "/")
80-
id := splitName[len(splitName)-1]
81-
r.SetId(id)
69+
r.SetId(dest.Name)
8270

8371
return resourceSegmentDestinationRead(r, meta)
8472
}
8573

8674
func resourceSegmentDestinationRead(r *schema.ResourceData, meta interface{}) error {
8775
client := meta.(*segment.Client)
88-
destName := r.Id()
8976
srcName := r.Get("source_name").(string)
77+
id := r.Id()
78+
destName := idToName(id)
9079

9180
d, err := client.GetDestination(srcName, destName)
9281
if err != nil {
9382
return err
9483
}
9584

96-
r.Set("name", d.Name)
97-
r.Set("connection_mod", d.ConnectionMode)
9885
r.Set("enabled", d.Enabled)
9986
r.Set("configs", d.Configs)
87+
r.Set("connection_mode", d.ConnectionMode)
10088

10189
return nil
10290
}
10391

10492
func resourceSegmentDestinationUpdate(r *schema.ResourceData, meta interface{}) error {
10593
client := meta.(*segment.Client)
106-
destID := r.Id()
107-
destName := r.Get("destination_name").(string)
10894
srcName := r.Get("source_name").(string)
10995
configs := r.Get("configs").(*schema.Set)
11096
enabled := r.Get("enabled").(bool)
97+
id := r.Id()
98+
destName := idToName(id)
11199

112-
dest := segment.Destination{
113-
Name: destName,
114-
Enabled: enabled,
115-
Configs: extractConfigs(configs),
116-
}
117-
// updateMask determines which fields Segment will update
118-
updateMask := segment.UpdateMask{Paths: []string{"destination.config", "destination.enabled"}}
119-
120-
_, err := client.UpdateDestination(srcName, destID, dest, updateMask)
100+
_, err := client.UpdateDestination(srcName, destName, enabled, extractConfigs(configs))
121101
if err != nil {
122102
return err
123103
}
@@ -127,10 +107,11 @@ func resourceSegmentDestinationUpdate(r *schema.ResourceData, meta interface{})
127107

128108
func resourceSegmentDestinationDelete(r *schema.ResourceData, meta interface{}) error {
129109
client := meta.(*segment.Client)
130-
destName := r.Id()
131110
srcName := r.Get("source_name").(string)
111+
id := r.Id()
112+
destName := idToName(id)
132113

133-
err := client.DeleteDestinaton(srcName, destName)
114+
err := client.DeleteDestination(srcName, destName)
134115
if err != nil {
135116
return err
136117
}

segment/resource_segment_source.go

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010
func resourceSegmentSource() *schema.Resource {
1111
return &schema.Resource{
1212
Schema: map[string]*schema.Schema{
13-
"name": {
13+
"source_name": {
1414
Type: schema.TypeString,
1515
Required: true,
1616
ForceNew: true,
@@ -29,50 +29,51 @@ func resourceSegmentSource() *schema.Resource {
2929

3030
func resourceSegmentSourceCreate(r *schema.ResourceData, meta interface{}) error {
3131
client := meta.(*segment.Client)
32-
name := r.Get("name").(string)
33-
catalogName := r.Get("catalog_name").(string)
32+
srcName := r.Get("source_name").(string)
33+
catName := r.Get("catalog_name").(string)
3434

35-
newSource := segment.Source{
36-
Name: name,
37-
CatalogName: catalogName,
38-
}
39-
40-
source, err := client.CreateSource(newSource)
35+
source, err := client.CreateSource(srcName, catName)
4136
if err != nil {
4237
return err
4338
}
4439

45-
// the id of the source is the last value in the name path
46-
splitName := strings.Split(source.Name, "/")
47-
id := splitName[len(splitName)-1]
48-
r.SetId(id)
40+
r.SetId(source.Name)
4941

5042
return resourceSegmentSourceRead(r, meta)
5143
}
5244

5345
func resourceSegmentSourceRead(r *schema.ResourceData, meta interface{}) error {
5446
client := meta.(*segment.Client)
55-
name := r.Id()
47+
id := r.Id()
5648

57-
s, err := client.GetSource(name)
49+
srcName := idToName(id)
50+
51+
s, err := client.GetSource(srcName)
5852
if err != nil {
5953
return err
6054
}
6155

62-
r.Set("name", s.Name)
6356
r.Set("catalog_name", s.CatalogName)
6457

6558
return nil
6659
}
6760

6861
func resourceSegmentSourceDelete(r *schema.ResourceData, meta interface{}) error {
6962
client := meta.(*segment.Client)
70-
name := r.Id()
63+
id := r.Id()
64+
65+
srcName := idToName(id)
7166

72-
err := client.DeleteSource(name)
67+
err := client.DeleteSource(srcName)
7368
if err != nil {
7469
return err
7570
}
7671

7772
return nil
7873
}
74+
75+
func idToName(id string) string {
76+
splitID := strings.Split(id, "/")
77+
78+
return splitID[len(splitID)-1]
79+
}

vendor/github.com/ajbosco/segment-config-go/segment/destinations.go

Lines changed: 27 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/ajbosco/segment-config-go/segment/sources.go

Lines changed: 11 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/modules.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# github.com/agext/levenshtein v1.2.1
22
github.com/agext/levenshtein
3-
# github.com/ajbosco/segment-config-go v0.1.0
3+
# github.com/ajbosco/segment-config-go v0.2.0
44
github.com/ajbosco/segment-config-go/segment
55
# github.com/apparentlymart/go-cidr v1.0.0
66
github.com/apparentlymart/go-cidr/cidr

0 commit comments

Comments
 (0)