40 lines
1.1 KiB
Go
40 lines
1.1 KiB
Go
package rules
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"io/ioutil"
|
|
"net/url"
|
|
"time"
|
|
|
|
"github.com/google/uuid"
|
|
log "github.com/sirupsen/logrus"
|
|
"github.com/spf13/viper"
|
|
"iwarma.ru/console/correlator/config"
|
|
)
|
|
|
|
// DumpNetwork Dump network request/response for debug purpose
|
|
func DumpNetwork(action string, url url.URL, request map[string]interface{}, response []byte, status int) {
|
|
data := make(map[string]interface{})
|
|
|
|
data["url"] = url
|
|
data["request"] = request
|
|
data["response"] = string(response)
|
|
data["status"] = status
|
|
|
|
dumpData, err := json.MarshalIndent(data, "", "\t")
|
|
if err != nil {
|
|
log.Errorf("Can't dump request: %v", err)
|
|
log.Debugf("Sending request: %v", request)
|
|
log.Debugf("Got response: %v", string(response))
|
|
}
|
|
|
|
fileName := fmt.Sprintf("%v/correlator_debug-%v_%v_action_%v.json", viper.GetString(config.DebugDumpPath), uuid.New(), action, time.Now().Unix())
|
|
|
|
err = ioutil.WriteFile(fileName, dumpData, 0644)
|
|
if err != nil {
|
|
log.Errorf("Can't dump request: %v", err)
|
|
log.Debugf("Sending request: %v", request)
|
|
log.Debugf("Got response: %v", string(response))
|
|
}
|
|
}
|