1616package configuration
1717
1818import (
19+ "bytes"
20+ "encoding/gob"
1921 "io/ioutil"
2022 "strings"
2123
2224 "github.com/haproxytech/dataplaneapi/log"
2325 "github.com/hashicorp/hcl"
24- "github.com/jinzhu/copier"
2526 "github.com/rodaine/hclencoder"
2627)
2728
@@ -63,17 +64,17 @@ func (s *StorageHCL) SaveAs(filename string) error {
6364 var err error
6465 var hcl []byte
6566 var localCopy StorageDataplaneAPIConfiguration
66- err = copier .Copy (& localCopy , & s .cfg )
67- if err != nil {
67+
68+ var b bytes.Buffer
69+ e := gob .NewEncoder (& b )
70+ if err := e .Encode (s .cfg ); err != nil {
6871 return err
6972 }
70- // check if we have cluster log targets in config file
71- if s .cfg .Cluster != nil && len (s .cfg .Cluster .ClusterLogTargets ) > 0 {
72- // since this can contain " character, escape it
73- for index , value := range localCopy .Cluster .ClusterLogTargets {
74- localCopy .Cluster .ClusterLogTargets [index ].LogFormat = strings .Replace (value .LogFormat , `"` , `\"` , - 1 )
75- }
73+ d := gob .NewDecoder (& b )
74+ if err := d .Decode (& localCopy ); err != nil {
75+ return err
7676 }
77+
7778 // check if we have cluster log targets in config file
7879 if localCopy .Cluster != nil && len (localCopy .Cluster .ClusterLogTargets ) > 0 {
7980 // since this can contain " character, escape it
@@ -84,7 +85,6 @@ func (s *StorageHCL) SaveAs(filename string) error {
8485 if localCopy .LogTargets != nil && len (* localCopy .LogTargets ) > 0 {
8586 var logTargets []log.Target
8687 for _ , value := range * localCopy .LogTargets {
87- value .LogFormat = strings .Replace (value .LogFormat , `"` , `\"` , - 1 )
8888 value .ACLFormat = strings .Replace (value .ACLFormat , `"` , `\"` , - 1 )
8989 logTargets = append (logTargets , value )
9090 }
@@ -95,10 +95,6 @@ func (s *StorageHCL) SaveAs(filename string) error {
9595 aclF := strings .Replace (* localCopy .Log .ACLFormat , `"` , `\"` , - 1 )
9696 localCopy .Log .ACLFormat = & aclF
9797 }
98- if localCopy .Log .LogFormat != nil {
99- logF := strings .Replace (* localCopy .Log .LogFormat , `"` , `\"` , - 1 )
100- localCopy .Log .LogFormat = & logF
101- }
10298 }
10399
104100 hcl , err = hclencoder .Encode (localCopy )
0 commit comments