Skip to content

Commit 4faeabf

Browse files
raphinkstack72
authored andcommitted
Better comparison of compose files (hashicorp#12561)
* Better comparison of compose files * Add github.com/docker/libcompose/config and deps to vendor
1 parent 3daed73 commit 4faeabf

57 files changed

Lines changed: 9740 additions & 9 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

builtin/providers/rancher/resource_rancher_stack.go

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@ package rancher
33
import (
44
"fmt"
55
"log"
6+
"reflect"
67
"strings"
78
"time"
89

10+
compose "github.com/docker/libcompose/config"
911
"github.com/hashicorp/terraform/helper/resource"
1012
"github.com/hashicorp/terraform/helper/schema"
1113
"github.com/hashicorp/terraform/helper/validation"
@@ -41,12 +43,14 @@ func resourceRancherStack() *schema.Resource {
4143
ForceNew: true,
4244
},
4345
"docker_compose": {
44-
Type: schema.TypeString,
45-
Optional: true,
46+
Type: schema.TypeString,
47+
Optional: true,
48+
DiffSuppressFunc: suppressComposeDiff,
4649
},
4750
"rancher_compose": {
48-
Type: schema.TypeString,
49-
Optional: true,
51+
Type: schema.TypeString,
52+
Optional: true,
53+
DiffSuppressFunc: suppressComposeDiff,
5054
},
5155
"environment": {
5256
Type: schema.TypeMap,
@@ -72,12 +76,14 @@ func resourceRancherStack() *schema.Resource {
7276
Optional: true,
7377
},
7478
"rendered_docker_compose": {
75-
Type: schema.TypeString,
76-
Computed: true,
79+
Type: schema.TypeString,
80+
Computed: true,
81+
DiffSuppressFunc: suppressComposeDiff,
7782
},
7883
"rendered_rancher_compose": {
79-
Type: schema.TypeString,
80-
Computed: true,
84+
Type: schema.TypeString,
85+
Computed: true,
86+
DiffSuppressFunc: suppressComposeDiff,
8187
},
8288
},
8389
}
@@ -432,3 +438,19 @@ func makeStackData(d *schema.ResourceData, meta interface{}) (data map[string]in
432438

433439
return data, nil
434440
}
441+
442+
func suppressComposeDiff(k, old, new string, d *schema.ResourceData) bool {
443+
cOld, err := compose.CreateConfig([]byte(old))
444+
if err != nil {
445+
// TODO: log?
446+
return false
447+
}
448+
449+
cNew, err := compose.CreateConfig([]byte(new))
450+
if err != nil {
451+
// TODO: log?
452+
return false
453+
}
454+
455+
return reflect.DeepEqual(cOld, cNew)
456+
}

vendor/github.com/docker/docker/NOTICE

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/docker/docker/api/types/strslice/strslice.go

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

vendor/github.com/docker/docker/pkg/urlutil/urlutil.go

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

vendor/github.com/docker/go-connections/LICENSE

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

0 commit comments

Comments
 (0)