improvements and fixes

This commit is contained in:
Roee Gadot
2021-06-29 19:16:46 +03:00
parent b84c698c1a
commit 5f603e3291
4 changed files with 20 additions and 15 deletions

View File

@@ -144,9 +144,8 @@ func GetHARs(c *fiber.Ctx) error {
return c.Status(fiber.StatusOK).SendStream(buffer) return c.Status(fiber.StatusOK).SendStream(buffer)
} }
func uploadEntriesImpl(token string, model string) { func uploadEntriesImpl(token string, model string, envPrefix string) {
baseUrl := "igorgov-dev.dev.testr.io" sleepTime := time.Second * 10
sleepTime := int64(time.Second * 10)
var timestampFrom int64 = 0 var timestampFrom int64 = 0
@@ -165,11 +164,12 @@ func uploadEntriesImpl(token string, model string) {
var in bytes.Buffer var in bytes.Buffer
w := zlib.NewWriter(&in) w := zlib.NewWriter(&in)
w.Write(body) _, _ = w.Write(body)
w.Close() _ = w.Close()
reqBody := ioutil.NopCloser(bytes.NewReader(in.Bytes())) reqBody := ioutil.NopCloser(bytes.NewReader(in.Bytes()))
postUrl, _ := url.Parse("https://traffic." + baseUrl + "/dumpTrafficBulk/" + model) postUrl, _ := url.Parse("https://traffic." + envPrefix + "/dumpTrafficBulk/" + model)
fmt.Println(postUrl)
req := &http.Request{ req := &http.Request{
Method: "POST", Method: "POST",
URL: postUrl, URL: postUrl,
@@ -184,12 +184,15 @@ func uploadEntriesImpl(token string, model string) {
if postErr != nil { if postErr != nil {
log.Fatal(postErr) log.Fatal(postErr)
} }
fmt.Printf("Finish uploading %v entries to %s\n", len(entriesArray), postUrl)
} else { } else {
fmt.Println("Nothing to upload") fmt.Println("Nothing to upload")
} }
fmt.Println("Sleeping for " + string(sleepTime) + "seconds...") fmt.Printf("Sleeping for %v...\n", sleepTime)
time.Sleep(time.Duration(sleepTime)) time.Sleep(sleepTime)
timestampFrom = timestampTo timestampFrom = timestampTo
} }
} }
@@ -202,7 +205,7 @@ func UploadEntries(c *fiber.Ctx) error {
if err := validation.Validate(entriesFilter); err != nil { if err := validation.Validate(entriesFilter); err != nil {
return c.Status(fiber.StatusBadRequest).JSON(err) return c.Status(fiber.StatusBadRequest).JSON(err)
} }
go uploadEntriesImpl(entriesFilter.Token, entriesFilter.Model) go uploadEntriesImpl(entriesFilter.Token, entriesFilter.Model, entriesFilter.Dest)
return c.Status(fiber.StatusOK).SendString("OK") return c.Status(fiber.StatusOK).SendString("OK")
} }

View File

@@ -52,6 +52,7 @@ type EntriesFilter struct {
type UploadEntriesRequestBody struct { type UploadEntriesRequestBody struct {
Token string `query:"token"` Token string `query:"token"`
Model string `query:"model"` Model string `query:"model"`
Dest string `query:"dest"`
} }
type HarFetchRequestBody struct { type HarFetchRequestBody struct {

View File

@@ -16,6 +16,7 @@ type MizuTapOptions struct {
Namespace string Namespace string
AllNamespaces bool AllNamespaces bool
Analyze bool Analyze bool
AnalyzeDestination string
KubeConfigPath string KubeConfigPath string
MizuImage string MizuImage string
MizuPodPort uint16 MizuPodPort uint16
@@ -62,7 +63,8 @@ func init() {
tapCmd.Flags().Uint16VarP(&mizuTapOptions.GuiPort, "gui-port", "p", 8899, "Provide a custom port for the web interface webserver") tapCmd.Flags().Uint16VarP(&mizuTapOptions.GuiPort, "gui-port", "p", 8899, "Provide a custom port for the web interface webserver")
tapCmd.Flags().StringVarP(&mizuTapOptions.Namespace, "namespace", "n", "", "Namespace selector") tapCmd.Flags().StringVarP(&mizuTapOptions.Namespace, "namespace", "n", "", "Namespace selector")
tapCmd.Flags().BoolVarP(&mizuTapOptions.Analyze, "analyze", "", false, "Analyze traffic") tapCmd.Flags().BoolVar(&mizuTapOptions.Analyze, "analyze", false, "Analyze traffic")
tapCmd.Flags().StringVar(&mizuTapOptions.AnalyzeDestination, "dest", "up9.app", "Destination environment")
tapCmd.Flags().BoolVarP(&mizuTapOptions.AllNamespaces, "all-namespaces", "A", false, "Tap all namespaces") tapCmd.Flags().BoolVarP(&mizuTapOptions.AllNamespaces, "all-namespaces", "A", false, "Tap all namespaces")
tapCmd.Flags().StringVarP(&mizuTapOptions.KubeConfigPath, "kube-config", "k", "", "Path to kube-config file") tapCmd.Flags().StringVarP(&mizuTapOptions.KubeConfigPath, "kube-config", "k", "", "Path to kube-config file")
tapCmd.Flags().StringVarP(&mizuTapOptions.MizuImage, "mizu-image", "", fmt.Sprintf("gcr.io/up9-docker-hub/mizu/%s:latest", mizu.Branch), "Custom image for mizu collector") tapCmd.Flags().StringVarP(&mizuTapOptions.MizuImage, "mizu-image", "", fmt.Sprintf("gcr.io/up9-docker-hub/mizu/%s:latest", mizu.Branch), "Custom image for mizu collector")

View File

@@ -74,7 +74,7 @@ func RunMizuTap(podRegexQuery *regexp.Regexp, tappingOptions *MizuTapOptions) {
return return
} }
go portForwardApiPod(ctx, kubernetesProvider, cancel, tappingOptions) // TODO convert this to job for built in pod ttl or have the running app handle this go portForwardApiPod(ctx, kubernetesProvider, cancel, tappingOptions, ) // TODO convert this to job for built in pod ttl or have the running app handle this
go watchPodsForTapping(ctx, kubernetesProvider, cancel, podRegexQuery, tappingOptions) go watchPodsForTapping(ctx, kubernetesProvider, cancel, podRegexQuery, tappingOptions)
go syncApiStatus(ctx, cancel, tappingOptions) go syncApiStatus(ctx, cancel, tappingOptions)
@@ -275,13 +275,12 @@ func portForwardApiPod(ctx context.Context, kubernetesProvider *kubernetes.Provi
fmt.Printf("Web interface is now available at http://localhost:%d\n", tappingOptions.GuiPort) fmt.Printf("Web interface is now available at http://localhost:%d\n", tappingOptions.GuiPort)
if tappingOptions.Analyze { if tappingOptions.Analyze {
baseUrl := "igorgov-dev.dev.testr.io" token := CreateAnonymousToken(tappingOptions.AnalyzeDestination)
token := CreateAnonymousToken(baseUrl) _, err := http.Get(fmt.Sprintf("http://localhost:8899/api/uploadEntries?token=%s&model=%s&dest=%s", token.Token, token.Model, tappingOptions.AnalyzeDestination))
_, err := http.Get("http://localhost:8899/api/uploadEntries")
if err != nil { if err != nil {
fmt.Println(err) fmt.Println(err)
} }
fmt.Println("https://" + baseUrl + "/share/" + token.Token) fmt.Println("https://" + tappingOptions.AnalyzeDestination + "/share/" + token.Token)
} }
if err != nil { if err != nil {