feat: check md5 sum
This commit is contained in:
23
http.go
23
http.go
@@ -1,8 +1,8 @@
|
|||||||
package cachet
|
package cachet
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
|
||||||
"crypto/tls"
|
"crypto/tls"
|
||||||
|
"crypto/md5"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"net/http"
|
"net/http"
|
||||||
"regexp"
|
"regexp"
|
||||||
@@ -41,24 +41,24 @@ type HTTPMonitor struct {
|
|||||||
ExpectedBody string `mapstructure:"expected_body"`
|
ExpectedBody string `mapstructure:"expected_body"`
|
||||||
bodyRegexp *regexp.Regexp
|
bodyRegexp *regexp.Regexp
|
||||||
|
|
||||||
// JSON data
|
// data
|
||||||
Data string `mapstructure:"data"`
|
Data string `mapstructure:"data"`
|
||||||
|
ExpectedMd5Sum string `mapstructure:"expected_md5sum"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: test
|
// TODO: test
|
||||||
func (monitor *HTTPMonitor) test() bool {
|
func (monitor *HTTPMonitor) test() bool {
|
||||||
var dataBuffer *bytes.Buffer = nil
|
|
||||||
var req *http.Request
|
var req *http.Request
|
||||||
var err error
|
var err error
|
||||||
if monitor.Data != "" {
|
if monitor.Data != "" {
|
||||||
fmt.Println("Data: ", monitor.Data)
|
fmt.Println("Data: ", monitor.Data)
|
||||||
dataBuffer = bytes.NewBuffer([]byte(monitor.Data))
|
dataBuffer := strings.NewReader(monitor.Data)
|
||||||
req, err = http.NewRequest(monitor.Method, monitor.Target, dataBuffer)
|
req, err = http.NewRequest(monitor.Method, monitor.Target, dataBuffer)
|
||||||
|
fmt.Println("Target: ", dataBuffer)
|
||||||
} else {
|
} else {
|
||||||
req, err = http.NewRequest(monitor.Method, monitor.Target, nil)
|
req, err = http.NewRequest(monitor.Method, monitor.Target, nil)
|
||||||
}
|
}
|
||||||
fmt.Println("Target: ", monitor.Target)
|
fmt.Println("Target: ", monitor.Target)
|
||||||
fmt.Println("Target: ", dataBuffer)
|
|
||||||
for k, v := range monitor.Headers {
|
for k, v := range monitor.Headers {
|
||||||
fmt.Println(k, ": ", v)
|
fmt.Println(k, ": ", v)
|
||||||
req.Header.Add(k, v)
|
req.Header.Add(k, v)
|
||||||
@@ -86,15 +86,26 @@ func (monitor *HTTPMonitor) test() bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
if monitor.bodyRegexp != nil {
|
|
||||||
// check response body
|
// check response body
|
||||||
responseBody, err := ioutil.ReadAll(resp.Body)
|
responseBody, err := ioutil.ReadAll(resp.Body)
|
||||||
|
fmt.Println("Response: ", string(responseBody))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
monitor.lastFailReason = err.Error()
|
monitor.lastFailReason = err.Error()
|
||||||
fmt.Println(err.Error())
|
fmt.Println(err.Error())
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
if monitor.ExpectedMd5Sum != "" {
|
||||||
|
sum := fmt.Sprintf("%x", (md5.Sum(responseBody)))
|
||||||
|
fmt.Println("Calculated sum", sum)
|
||||||
|
fmt.Println("Expected sum", monitor.ExpectedMd5Sum)
|
||||||
|
equalMd5 := strings.Compare(sum, monitor.ExpectedMd5Sum) == 0
|
||||||
|
if !equalMd5 {
|
||||||
|
monitor.lastFailReason = "Expected Md5 sum: " + monitor.ExpectedMd5Sum + ", got: " + sum
|
||||||
|
}
|
||||||
|
return equalMd5
|
||||||
|
}
|
||||||
|
|
||||||
|
if monitor.bodyRegexp != nil {
|
||||||
if !monitor.bodyRegexp.Match(responseBody) {
|
if !monitor.bodyRegexp.Match(responseBody) {
|
||||||
monitor.lastFailReason = "Unexpected body: " + string(responseBody) + ".\nExpected to match: " + monitor.ExpectedBody
|
monitor.lastFailReason = "Unexpected body: " + string(responseBody) + ".\nExpected to match: " + monitor.ExpectedBody
|
||||||
fmt.Println(monitor.lastFailReason)
|
fmt.Println(monitor.lastFailReason)
|
||||||
|
|||||||
Reference in New Issue
Block a user