This is an automated email from the ASF dual-hosted git repository.

zrhoffman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git


The following commit(s) were added to refs/heads/master by this push:
     new d69709f  Fix POST /profileparameters validation error message (#5210)
d69709f is described below

commit d69709fcf17558f4d56deca540e33e9334f7b1b3
Author: Rawlin Peters <[email protected]>
AuthorDate: Wed Oct 28 10:57:22 2020 -0600

    Fix POST /profileparameters validation error message (#5210)
    
    * Fix POST /profileparameters validation error message
    
    It should say "profileId" and "parameterId" to make it clear the IDs are
    missing, not the names.
    
    * Add API test
---
 CHANGELOG.md                                       |  1 +
 .../testing/api/v3/profile_parameters_test.go      | 46 ++++++++++++----------
 .../profileparameter/profile_parameters.go         |  4 +-
 3 files changed, 28 insertions(+), 23 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index dac0f8d..0fdce22 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,7 @@ The format is based on [Keep a 
Changelog](http://keepachangelog.com/en/1.0.0/).
 ### Fixed
 - Fixed an issue where the jobs and servers table in Traffic Portal would not 
clear a column's filter when it's hidden
 - Fixed an issue with Traffic Router failing to authenticate if secrets are 
changed
+- Fixed validation error message for Traffic Ops `POST 
/api/x/profileparameters` route
 
 ### Added
 - Added If-Match and If-Unmodified-Since Support in Server and Clients.
diff --git a/traffic_ops/testing/api/v3/profile_parameters_test.go 
b/traffic_ops/testing/api/v3/profile_parameters_test.go
index d62cf9f..a55b258 100644
--- a/traffic_ops/testing/api/v3/profile_parameters_test.go
+++ b/traffic_ops/testing/api/v3/profile_parameters_test.go
@@ -19,7 +19,7 @@ import (
        "fmt"
        "net/http"
        "sort"
-       "sync"
+       "strings"
        "testing"
        "time"
 
@@ -34,6 +34,7 @@ func TestProfileParameters(t *testing.T) {
                SortTestProfileParameters(t)
                GetTestProfileParametersIMS(t)
                GetTestProfileParameters(t)
+               InvalidCreateTestProfileParameters(t)
        })
 }
 
@@ -58,13 +59,13 @@ func GetTestProfileParametersIMS(t *testing.T) {
 func CreateTestProfileParameters(t *testing.T) {
 
        firstProfile := testData.Profiles[0]
-       profileResp, _, err := TOSession.GetProfileByName(firstProfile.Name)
+       profileResp, _, err := 
TOSession.GetProfileByNameWithHdr(firstProfile.Name, nil)
        if err != nil {
                t.Errorf("cannot GET Profile by name: %v - %v", 
firstProfile.Name, err)
        }
 
        firstParameter := testData.Parameters[0]
-       paramResp, _, err := TOSession.GetParameterByName(firstParameter.Name)
+       paramResp, _, err := 
TOSession.GetParameterByNameWithHdr(firstParameter.Name, nil)
        if err != nil {
                t.Errorf("cannot GET Parameter by name: %v - %v", 
firstParameter.Name, err)
        }
@@ -84,6 +85,24 @@ func CreateTestProfileParameters(t *testing.T) {
 
 }
 
+func InvalidCreateTestProfileParameters(t *testing.T) {
+       pp := tc.ProfileParameter{
+               ProfileID:   0,
+               ParameterID: 0,
+       }
+       _, _, err := TOSession.CreateProfileParameter(pp)
+       if err == nil {
+               t.Fatalf("creating invalid profile parameter - expected: error, 
actual: nil")
+       }
+       if !strings.Contains(err.Error(), "profileId") {
+               t.Errorf("expected: error message to contain 'profileId', 
actual: %v", err)
+       }
+       if !strings.Contains(err.Error(), "parameterId") {
+               t.Errorf("expected: error message to contain 'parameterId', 
actual: %v", err)
+       }
+
+}
+
 func SortTestProfileParameters(t *testing.T) {
        var header http.Header
        var sortedList []string
@@ -107,28 +126,13 @@ func GetTestProfileParameters(t *testing.T) {
 
        for _, pp := range testData.ProfileParameters {
                queryParams := fmt.Sprintf(queryParamFormat, pp.ProfileID, 
pp.ParameterID)
-               resp, _, err := 
TOSession.GetProfileParameterByQueryParams(queryParams)
+               resp, _, err := 
TOSession.GetProfileParameterByQueryParamsWithHdr(queryParams, nil)
                if err != nil {
                        t.Errorf("cannot GET Parameter by name: %v - %v", err, 
resp)
                }
        }
 }
 
-func DeleteTestProfileParametersParallel(t *testing.T) {
-
-       var wg sync.WaitGroup
-       for _, pp := range testData.ProfileParameters {
-
-               wg.Add(1)
-               go func() {
-                       defer wg.Done()
-                       DeleteTestProfileParameter(t, pp)
-               }()
-
-       }
-       wg.Wait()
-}
-
 func DeleteTestProfileParameters(t *testing.T) {
 
        for _, pp := range testData.ProfileParameters {
@@ -140,7 +144,7 @@ func DeleteTestProfileParameter(t *testing.T, pp 
tc.ProfileParameter) {
 
        queryParams := fmt.Sprintf(queryParamFormat, pp.ProfileID, 
pp.ParameterID)
        // Retrieve the PtofileParameter by profile so we can get the id for 
the Update
-       resp, _, err := TOSession.GetProfileParameterByQueryParams(queryParams)
+       resp, _, err := 
TOSession.GetProfileParameterByQueryParamsWithHdr(queryParams, nil)
        if err != nil {
                t.Errorf("cannot GET Parameter by profile: %v - %v", 
pp.Profile, err)
        }
@@ -153,7 +157,7 @@ func DeleteTestProfileParameter(t *testing.T, pp 
tc.ProfileParameter) {
                }
 
                // Retrieve the Parameter to see if it got deleted
-               pps, _, err := 
TOSession.GetProfileParameterByQueryParams(queryParams)
+               pps, _, err := 
TOSession.GetProfileParameterByQueryParamsWithHdr(queryParams, nil)
                if err != nil {
                        t.Errorf("error deleting Parameter name: %s", 
err.Error())
                }
diff --git 
a/traffic_ops/traffic_ops_golang/profileparameter/profile_parameters.go 
b/traffic_ops/traffic_ops_golang/profileparameter/profile_parameters.go
index aa557ac..eb92015 100644
--- a/traffic_ops/traffic_ops_golang/profileparameter/profile_parameters.go
+++ b/traffic_ops/traffic_ops_golang/profileparameter/profile_parameters.go
@@ -102,8 +102,8 @@ func (pp *TOProfileParameter) SetKeys(keys 
map[string]interface{}) {
 func (pp *TOProfileParameter) Validate() error {
 
        errs := validation.Errors{
-               "profile":   validation.Validate(pp.ProfileID, 
validation.Required),
-               "parameter": validation.Validate(pp.ParameterID, 
validation.Required),
+               "profileId":   validation.Validate(pp.ProfileID, 
validation.Required),
+               "parameterId": validation.Validate(pp.ParameterID, 
validation.Required),
        }
 
        return util.JoinErrs(tovalidate.ToErrors(errs))

Reply via email to