Fix diff alignment and remove no change DC
Old Output: ``` +/- Job: "example" Datacenters { Datacenters: "dc1" } +/- Task Group: "cache" (1 create/destroy update) +/- RestartPolicy { +/- Attempts: "10" => "9" Delay: "25000000000" Interval: "300000000000" Mode: "delay" } +/- EphemeralDisk { Migrate: "false" +/- SizeMB: "300" => "301" Sticky: "false" } +/- Task: "redis" (forces create/destroy update) + Meta[key]: "value" +/- Config { image: "redis:3.2" +/- port_map[0][db]: "6379" => "6380" } +/- Resources { CPU: "500" DiskMB: "0" IOPS: "0" +/- MemoryMB: "256" => "257" } +/- Service { Name: "global-redis-check" PortLabel: "db" +/- Check { Command: "" InitialStatus: "" Interval: "10000000000" Name: "alive" Path: "" PortLabel: "" Protocol: "" +/- Timeout: "2000000000" => "3000000000" Type: "tcp" } } ``` New Output: ``` +/- Job: "example" +/- Task Group: "cache" (1 create/destroy update) +/- RestartPolicy { +/- Attempts: "10" => "9" Delay: "25000000000" Interval: "300000000000" Mode: "delay" } +/- EphemeralDisk { Migrate: "false" +/- SizeMB: "300" => "301" Sticky: "false" } +/- Task: "redis" (forces create/destroy update) + Meta[key]: "value" +/- Config { image: "redis:3.2" +/- port_map[0][db]: "6379" => "6380" } +/- Resources { CPU: "500" DiskMB: "0" IOPS: "0" +/- MemoryMB: "256" => "257" } +/- Service { Name: "global-redis-check" PortLabel: "db" +/- Check { Command: "" InitialStatus: "" Interval: "10000000000" Name: "alive" Path: "" PortLabel: "" Protocol: "" +/- Timeout: "2000000000" => "3000000000" Type: "tcp" } } ```
This commit is contained in:
parent
df9ce2680b
commit
3b323603b5
|
@ -98,7 +98,7 @@ func (j *Job) Diff(other *Job, contextual bool) (*JobDiff, error) {
|
||||||
diff.Fields = fieldDiffs(oldPrimitiveFlat, newPrimitiveFlat, false)
|
diff.Fields = fieldDiffs(oldPrimitiveFlat, newPrimitiveFlat, false)
|
||||||
|
|
||||||
// Datacenters diff
|
// Datacenters diff
|
||||||
if setDiff := stringSetDiff(j.Datacenters, other.Datacenters, "Datacenters", false); setDiff != nil {
|
if setDiff := stringSetDiff(j.Datacenters, other.Datacenters, "Datacenters", contextual); setDiff != nil && setDiff.Type != DiffTypeNone {
|
||||||
diff.Objects = append(diff.Objects, setDiff)
|
diff.Objects = append(diff.Objects, setDiff)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -397,7 +397,7 @@ func TestJobDiff(t *testing.T) {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
// Datacenter contextual
|
// Datacenter contextual no change
|
||||||
Contextual: true,
|
Contextual: true,
|
||||||
Old: &Job{
|
Old: &Job{
|
||||||
Datacenters: []string{"foo", "bar"},
|
Datacenters: []string{"foo", "bar"},
|
||||||
|
@ -409,6 +409,45 @@ func TestJobDiff(t *testing.T) {
|
||||||
Type: DiffTypeNone,
|
Type: DiffTypeNone,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
// Datacenter contextual
|
||||||
|
Contextual: true,
|
||||||
|
Old: &Job{
|
||||||
|
Datacenters: []string{"foo", "bar"},
|
||||||
|
},
|
||||||
|
New: &Job{
|
||||||
|
Datacenters: []string{"foo", "bar", "baz"},
|
||||||
|
},
|
||||||
|
Expected: &JobDiff{
|
||||||
|
Type: DiffTypeEdited,
|
||||||
|
Objects: []*ObjectDiff{
|
||||||
|
{
|
||||||
|
Type: DiffTypeAdded,
|
||||||
|
Name: "Datacenters",
|
||||||
|
Fields: []*FieldDiff{
|
||||||
|
{
|
||||||
|
Type: DiffTypeAdded,
|
||||||
|
Name: "Datacenters",
|
||||||
|
Old: "",
|
||||||
|
New: "baz",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Type: DiffTypeNone,
|
||||||
|
Name: "Datacenters",
|
||||||
|
Old: "bar",
|
||||||
|
New: "bar",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Type: DiffTypeNone,
|
||||||
|
Name: "Datacenters",
|
||||||
|
Old: "foo",
|
||||||
|
New: "foo",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
// Update strategy edited
|
// Update strategy edited
|
||||||
Old: &Job{
|
Old: &Job{
|
||||||
|
|
Loading…
Reference in New Issue