diff --git a/agent/pkg/up9/main.go b/agent/pkg/up9/main.go index 8e2f57f89..012715701 100644 --- a/agent/pkg/up9/main.go +++ b/agent/pkg/up9/main.go @@ -75,9 +75,6 @@ func getAuthHeader(guestMode bool) string { func GetTrafficDumpUrl(analyzeDestination string, analyzeModel string) *url.URL { strUrl := fmt.Sprintf("https://traffic.%s/dumpTrafficBulk/%s", analyzeDestination, analyzeModel) - if strings.HasPrefix(analyzeDestination, "http") { - strUrl = fmt.Sprintf("%s/api/workspace/dumpTrafficBulk", analyzeDestination) - } postUrl, _ := url.Parse(strUrl) return postUrl } @@ -132,6 +129,11 @@ func SyncEntries(syncEntriesConfig *shared.SyncEntriesConfig) error { token = fmt.Sprintf("bearer %s", syncEntriesConfig.Token) model = syncEntriesConfig.Workspace guestMode = false + + logger.Log.Infof("Sync entries - upserting model. env %s, model %s\n", syncEntriesConfig.Env, model) + if err := upsertModel(token, model, syncEntriesConfig.Env); err != nil { + return fmt.Errorf("failed upserting model, err: %v", err) + } } modelRegex, _ := regexp.Compile("[A-Za-z0-9][-A-Za-z0-9_.]*[A-Za-z0-9]+$") @@ -145,6 +147,31 @@ func SyncEntries(syncEntriesConfig *shared.SyncEntriesConfig) error { return nil } +func upsertModel(token string, model string, envPrefix string) error { + upsertModelUrl, _ := url.Parse(fmt.Sprintf("https://trcc.%s/models/%s", envPrefix, model)) + + authHeader := getAuthHeader(false) + req := &http.Request{ + Method: http.MethodPost, + URL: upsertModelUrl, + Header: map[string][]string{ + authHeader: {token}, + }, + } + + response, err := http.DefaultClient.Do(req) + if err != nil { + return fmt.Errorf("failed request to upsert model, err: %v", err) + } + + // In case the model is not created (not 201) and doesn't exists (not 409) + if response.StatusCode != 201 && response.StatusCode != 409 { + return fmt.Errorf("failed request to upsert model, status code: %v", response.StatusCode) + } + + return nil +} + func createAnonymousToken(envPrefix string) (*GuestToken, error) { tokenUrl := fmt.Sprintf("https://trcc.%s/anonymous/token", envPrefix) if strings.HasPrefix(envPrefix, "http") {