feature/TRA_3427_demo_mode (#150)

* Demo Mode MVP

* messages improve

* downloading based on the OS

* downloading based on the OS

* downloading based on the OS

* Modeler keep running

* A lot of revisions comes now

* Fix color
This commit is contained in:
Selton Fiuza
2021-07-28 14:50:15 -03:00
committed by GitHub
parent 50e404f51e
commit 71eff5ea04
4 changed files with 251 additions and 23 deletions

View File

@@ -5,10 +5,7 @@ import (
"context"
"encoding/json"
"fmt"
"github.com/google/martian/har"
"github.com/romana/rlog"
"github.com/up9inc/mizu/tap"
"go.mongodb.org/mongo-driver/bson/primitive"
"math/rand"
"mizuserver/pkg/holder"
"net/url"
"os"
@@ -17,6 +14,11 @@ import (
"strings"
"time"
"github.com/google/martian/har"
"github.com/romana/rlog"
"github.com/up9inc/mizu/tap"
"go.mongodb.org/mongo-driver/bson/primitive"
"mizuserver/pkg/database"
"mizuserver/pkg/models"
"mizuserver/pkg/resolver"
@@ -47,15 +49,15 @@ func init() {
holder.SetResolver(res)
}
func StartReadingEntries(harChannel <-chan *tap.OutputChannelItem, workingDir *string) {
func StartReadingEntries(harChannel <-chan *tap.OutputChannelItem, workingDir *string, demo bool) {
if workingDir != nil && *workingDir != "" {
startReadingFiles(*workingDir)
startReadingFiles(*workingDir, demo)
} else {
startReadingChannel(harChannel)
}
}
func startReadingFiles(workingDir string) {
func startReadingFiles(workingDir string, infiniteLoad bool) {
err := os.MkdirAll(workingDir, os.ModePerm)
utils.CheckErr(err)
@@ -86,18 +88,23 @@ func startReadingFiles(workingDir string) {
utils.CheckErr(decErr)
for _, entry := range inputHar.Log.Entries {
time.Sleep(time.Millisecond * 250)
if infiniteLoad {
entry.StartedDateTime = time.Now().Add(20 * time.Millisecond)
}
time.Sleep(time.Millisecond * time.Duration(rand.Intn(300)))
connectionInfo := &tap.ConnectionInfo{
ClientIP: fileInfo.Name(),
ClientIP: fileInfo.Name(),
ClientPort: "",
ServerIP: "",
ServerIP: "",
ServerPort: "",
IsOutgoing: false,
}
saveHarToDb(entry, connectionInfo)
}
rmErr := os.Remove(inputFilePath)
utils.CheckErr(rmErr)
if !infiniteLoad {
rmErr := os.Remove(inputFilePath)
utils.CheckErr(rmErr)
}
}
}
@@ -118,7 +125,6 @@ func StartReadingOutbound(outboundLinkChannel <-chan *tap.OutboundLink) {
}
}
func saveHarToDb(entry *har.Entry, connectionInfo *tap.ConnectionInfo) {
entryBytes, _ := json.Marshal(entry)
serviceName, urlPath := getServiceNameFromUrl(entry.Request.URL)
@@ -196,6 +202,5 @@ func getEstimatedEntrySizeBytes(mizuEntry models.MizuEntry) int {
sizeBytes += 8 // SizeBytes bytes
sizeBytes += 1 // IsOutgoing bytes
return sizeBytes
}