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

mitchell852 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 9bbd14d  Changed permissions of steering role to be PrivLevelSteering 
(#3507)
9bbd14d is described below

commit 9bbd14d65b3c3466afc6b0e7bea6a5fd3cd4d093
Author: Matthew Allen Moltzau <[email protected]>
AuthorDate: Fri Apr 19 19:41:06 2019 -0600

    Changed permissions of steering role to be PrivLevelSteering (#3507)
    
    * Changed permissions of steering role to be PrivLevelSteering
    
    * Steering targets test now logs in with steering session
    
    * Made SetupSteeringTargets the steering create method for WithObjs
---
 traffic_ops/testing/api/v14/steering_test.go       |  2 +-
 .../testing/api/v14/steeringtargets_test.go        | 50 +++++++++++++++-------
 traffic_ops/testing/api/v14/tc-fixtures.json       | 22 ++++++++++
 traffic_ops/testing/api/v14/withobjs.go            |  4 +-
 traffic_ops/traffic_ops_golang/routing/routes.go   |  6 +--
 5 files changed, 63 insertions(+), 21 deletions(-)

diff --git a/traffic_ops/testing/api/v14/steering_test.go 
b/traffic_ops/testing/api/v14/steering_test.go
index aed4ba3..68fcc24 100644
--- a/traffic_ops/testing/api/v14/steering_test.go
+++ b/traffic_ops/testing/api/v14/steering_test.go
@@ -20,7 +20,7 @@ import (
 )
 
 func TestSteering(t *testing.T) {
-       WithObjs(t, []TCObj{CDNs, Types, Tenants, Parameters, Profiles, 
Statuses, Divisions, Regions, PhysLocations, CacheGroups, Servers, 
DeliveryServices, SteeringTargets}, func() {
+       WithObjs(t, []TCObj{CDNs, Types, Tenants, Parameters, Profiles, 
Statuses, Divisions, Regions, PhysLocations, CacheGroups, Servers, 
DeliveryServices, Users, SteeringTargets}, func() {
                GetTestSteering(t)
        })
 }
diff --git a/traffic_ops/testing/api/v14/steeringtargets_test.go 
b/traffic_ops/testing/api/v14/steeringtargets_test.go
index d0435e0..8568860 100644
--- a/traffic_ops/testing/api/v14/steeringtargets_test.go
+++ b/traffic_ops/testing/api/v14/steeringtargets_test.go
@@ -17,16 +17,36 @@ package v14
 
 import (
        "testing"
+       "time"
 
        "github.com/apache/trafficcontrol/lib/go-log"
        "github.com/apache/trafficcontrol/lib/go-util"
+       "github.com/apache/trafficcontrol/traffic_ops/client"
 )
 
+var SteeringUserSession *client.Session
+
 func TestSteeringTargets(t *testing.T) {
-       WithObjs(t, []TCObj{CDNs, Types, Tenants, Parameters, Profiles, 
Statuses, Divisions, Regions, PhysLocations, CacheGroups, Servers, 
DeliveryServices, SteeringTargets}, func() {
+
+       WithObjs(t, []TCObj{CDNs, Types, Tenants, Parameters, Profiles, 
Statuses, Divisions, Regions, PhysLocations, CacheGroups, Servers, 
DeliveryServices, Users, SteeringTargets}, func() {
                GetTestSteeringTargets(t)
                UpdateTestSteeringTargets(t)
        })
+
+}
+
+// SetupSteeringTargets calls the CreateSteeringTargets test. It also sets the 
steering user session
+// with the logged in steering user. SteeringUserSession is used by steering 
target test functions.
+// Running this function depends on CreateTestUsers.
+func SetupSteeringTargets(t *testing.T) {
+       var err error
+       toReqTimeout := time.Second * 
time.Duration(Config.Default.Session.TimeoutInSecs)
+       SteeringUserSession, _, err = client.LoginWithAgent(TOSession.URL, 
"steering", "pa$$word", true, "to-api-v14-client-tests/steering", true, 
toReqTimeout)
+       if err != nil {
+               t.Fatalf("failed to get log in with steering user: %v", 
err.Error())
+       }
+
+       CreateTestSteeringTargets(t)
 }
 
 func CreateTestSteeringTargets(t *testing.T) {
@@ -42,7 +62,7 @@ func CreateTestSteeringTargets(t *testing.T) {
                }
 
                {
-                       respTypes, _, err := TOSession.GetTypeByName(*st.Type)
+                       respTypes, _, err := 
SteeringUserSession.GetTypeByName(*st.Type)
                        if err != nil {
                                t.Errorf("creating steering target: getting 
type: %v\n", err)
                        } else if len(respTypes) < 1 {
@@ -51,7 +71,7 @@ func CreateTestSteeringTargets(t *testing.T) {
                        st.TypeID = util.IntPtr(respTypes[0].ID)
                }
                {
-                       respDS, _, err := 
TOSession.GetDeliveryServiceByXMLID(string(*st.DeliveryService))
+                       respDS, _, err := 
SteeringUserSession.GetDeliveryServiceByXMLID(string(*st.DeliveryService))
                        if err != nil {
                                t.Errorf("creating steering target: getting ds: 
%v\n", err)
                        } else if len(respDS) < 1 {
@@ -61,7 +81,7 @@ func CreateTestSteeringTargets(t *testing.T) {
                        st.DeliveryServiceID = &dsID
                }
                {
-                       respTarget, _, err := 
TOSession.GetDeliveryServiceByXMLID(string(*st.Target))
+                       respTarget, _, err := 
SteeringUserSession.GetDeliveryServiceByXMLID(string(*st.Target))
                        if err != nil {
                                t.Errorf("creating steering target: getting 
target ds: %v\n", err)
                        } else if len(respTarget) < 1 {
@@ -71,7 +91,7 @@ func CreateTestSteeringTargets(t *testing.T) {
                        st.TargetID = &targetID
                }
 
-               resp, _, err := TOSession.CreateSteeringTarget(st)
+               resp, _, err := SteeringUserSession.CreateSteeringTarget(st)
                log.Debugln("Response: ", resp)
                if err != nil {
                        t.Errorf("creating steering target: %v\n", err)
@@ -91,7 +111,7 @@ func UpdateTestSteeringTargets(t *testing.T) {
                t.Errorf("updating steering target: test data missing target\n")
        }
 
-       respDS, _, err := 
TOSession.GetDeliveryServiceByXMLID(string(*st.DeliveryService))
+       respDS, _, err := 
SteeringUserSession.GetDeliveryServiceByXMLID(string(*st.DeliveryService))
        if err != nil {
                t.Errorf("updating steering target: getting ds: %v\n", err)
        }
@@ -100,7 +120,7 @@ func UpdateTestSteeringTargets(t *testing.T) {
        }
        dsID := respDS[0].ID
 
-       sts, _, err := TOSession.GetSteeringTargets(dsID)
+       sts, _, err := SteeringUserSession.GetSteeringTargets(dsID)
        if err != nil {
                t.Errorf("updating steering targets: getting steering target: 
%v\n", err)
        }
@@ -115,12 +135,12 @@ func UpdateTestSteeringTargets(t *testing.T) {
        }
        st.Value = &expected
 
-       _, _, err = TOSession.UpdateSteeringTarget(st)
+       _, _, err = SteeringUserSession.UpdateSteeringTarget(st)
        if err != nil {
                t.Errorf("updating steering targets: updating: %+v\n", err)
        }
 
-       sts, _, err = TOSession.GetSteeringTargets(dsID)
+       sts, _, err = SteeringUserSession.GetSteeringTargets(dsID)
        if err != nil {
                t.Errorf("updating steering targets: getting updated steering 
target: %v\n", err)
        }
@@ -175,7 +195,7 @@ func GetTestSteeringTargets(t *testing.T) {
                t.Errorf("updating steering target: test data missing ds\n")
        }
 
-       respDS, _, err := 
TOSession.GetDeliveryServiceByXMLID(string(*st.DeliveryService))
+       respDS, _, err := 
SteeringUserSession.GetDeliveryServiceByXMLID(string(*st.DeliveryService))
        if err != nil {
                t.Errorf("creating steering target: getting ds: %v\n", err)
        } else if len(respDS) < 1 {
@@ -183,7 +203,7 @@ func GetTestSteeringTargets(t *testing.T) {
        }
        dsID := respDS[0].ID
 
-       sts, _, err := TOSession.GetSteeringTargets(dsID)
+       sts, _, err := SteeringUserSession.GetSteeringTargets(dsID)
        if err != nil {
                t.Errorf("steering target get: getting steering target: %v\n", 
err)
        }
@@ -232,7 +252,7 @@ func DeleteTestSteeringTargets(t *testing.T) {
                        t.Errorf("deleting steering target: test data missing 
target\n")
                }
 
-               respDS, _, err := 
TOSession.GetDeliveryServiceByXMLID(string(*st.DeliveryService))
+               respDS, _, err := 
SteeringUserSession.GetDeliveryServiceByXMLID(string(*st.DeliveryService))
                if err != nil {
                        t.Errorf("deleting steering target: getting ds: %v\n", 
err)
                } else if len(respDS) < 1 {
@@ -243,7 +263,7 @@ func DeleteTestSteeringTargets(t *testing.T) {
 
                dsIDs = append(dsIDs, dsID)
 
-               respTarget, _, err := 
TOSession.GetDeliveryServiceByXMLID(string(*st.Target))
+               respTarget, _, err := 
SteeringUserSession.GetDeliveryServiceByXMLID(string(*st.Target))
                if err != nil {
                        t.Errorf("deleting steering target: getting target ds: 
%v\n", err)
                } else if len(respTarget) < 1 {
@@ -252,14 +272,14 @@ func DeleteTestSteeringTargets(t *testing.T) {
                targetID := uint64(respTarget[0].ID)
                st.TargetID = &targetID
 
-               _, _, err = 
TOSession.DeleteSteeringTarget(int(*st.DeliveryServiceID), int(*st.TargetID))
+               _, _, err = 
SteeringUserSession.DeleteSteeringTarget(int(*st.DeliveryServiceID), 
int(*st.TargetID))
                if err != nil {
                        t.Errorf("deleting steering target: deleting: %+v\n", 
err)
                }
        }
 
        for _, dsID := range dsIDs {
-               sts, _, err := TOSession.GetSteeringTargets(int(dsID))
+               sts, _, err := SteeringUserSession.GetSteeringTargets(int(dsID))
                if err != nil {
                        t.Errorf("deleting steering targets: getting steering 
target: %v\n", err)
                }
diff --git a/traffic_ops/testing/api/v14/tc-fixtures.json 
b/traffic_ops/testing/api/v14/tc-fixtures.json
index 6fe45e4..e4d0281 100644
--- a/traffic_ops/testing/api/v14/tc-fixtures.json
+++ b/traffic_ops/testing/api/v14/tc-fixtures.json
@@ -2033,6 +2033,28 @@
             "tenant": "root",
             "uid": 0,
             "username": "opsuser"
+        },
+        {
+            "addressLine1": "address of steering",
+            "addressLine2": "place",
+            "city": "somewhere",
+            "company": "else",
+            "country": "UK",
+            "email": "[email protected]",
+            "fullName": "Steering User",
+            "gid": 0,
+            "localPasswd": "pa$$word",
+            "confirmLocalPasswd": "pa$$word",
+            "newUser": false,
+            "phoneNumber": "",
+            "postalCode": "",
+            "publicSshKey": "",
+            "registrationSent": "",
+            "role": 3,
+            "stateOrProvince": "",
+            "tenant": "root",
+            "uid": 0,
+            "username": "steering"
         }
     ],
     "steeringTargets": [
diff --git a/traffic_ops/testing/api/v14/withobjs.go 
b/traffic_ops/testing/api/v14/withobjs.go
index 515d398..e39d0d8 100644
--- a/traffic_ops/testing/api/v14/withobjs.go
+++ b/traffic_ops/testing/api/v14/withobjs.go
@@ -85,9 +85,9 @@ var withFuncs = map[TCObj]TCObjFuncs{
        Servers:                        {CreateTestServers, DeleteTestServers},
        Statuses:                       {CreateTestStatuses, 
DeleteTestStatuses},
        StaticDNSEntries:               {CreateTestStaticDNSEntries, 
DeleteTestStaticDNSEntries},
-       SteeringTargets:                {CreateTestSteeringTargets, 
DeleteTestSteeringTargets},
+       SteeringTargets:                {SetupSteeringTargets, 
DeleteTestSteeringTargets},
        Tenants:                        {CreateTestTenants, DeleteTestTenants},
        Types:                          {CreateTestTypes, DeleteTestTypes},
        Users:                          {CreateTestUsers, ForceDeleteTestUsers},
-       UsersDeliveryServices:          {CreateTestUsersDeliveryServices, 
DeleteTestUsersDeliveryServices},
+       UsersDeliveryServices: {CreateTestUsersDeliveryServices, 
DeleteTestUsersDeliveryServices},
 }
diff --git a/traffic_ops/traffic_ops_golang/routing/routes.go 
b/traffic_ops/traffic_ops_golang/routing/routes.go
index 999ce4a..aeb8594 100644
--- a/traffic_ops/traffic_ops_golang/routing/routes.go
+++ b/traffic_ops/traffic_ops_golang/routing/routes.go
@@ -424,9 +424,9 @@ func Routes(d ServerData) ([]Route, []RawRoute, 
http.Handler, error) {
 
                {1.1, http.MethodGet, 
`steering/{deliveryservice}/targets/?(\.json)?$`, 
api.ReadHandler(&steeringtargets.TOSteeringTargetV11{}), 
auth.PrivLevelReadOnly, Authenticated, nil},
                {1.1, http.MethodGet, 
`steering/{deliveryservice}/targets/{target}$`, 
api.ReadHandler(&steeringtargets.TOSteeringTargetV11{}), 
auth.PrivLevelReadOnly, Authenticated, nil},
-               {1.1, http.MethodPost, 
`steering/{deliveryservice}/targets/?(\.json)?$`, 
api.CreateHandler(&steeringtargets.TOSteeringTargetV11{}), 
auth.PrivLevelOperations, Authenticated, nil},
-               {1.1, http.MethodPut, 
`steering/{deliveryservice}/targets/{target}/?(\.json)?$`, 
api.UpdateHandler(&steeringtargets.TOSteeringTargetV11{}), 
auth.PrivLevelOperations, Authenticated, nil},
-               {1.1, http.MethodDelete, 
`steering/{deliveryservice}/targets/{target}/?(\.json)?$`, 
api.DeleteHandler(&steeringtargets.TOSteeringTargetV11{}), 
auth.PrivLevelOperations, Authenticated, nil},
+               {1.1, http.MethodPost, 
`steering/{deliveryservice}/targets/?(\.json)?$`, 
api.CreateHandler(&steeringtargets.TOSteeringTargetV11{}), 
auth.PrivLevelSteering, Authenticated, nil},
+               {1.1, http.MethodPut, 
`steering/{deliveryservice}/targets/{target}/?(\.json)?$`, 
api.UpdateHandler(&steeringtargets.TOSteeringTargetV11{}), 
auth.PrivLevelSteering, Authenticated, nil},
+               {1.1, http.MethodDelete, 
`steering/{deliveryservice}/targets/{target}/?(\.json)?$`, 
api.DeleteHandler(&steeringtargets.TOSteeringTargetV11{}), 
auth.PrivLevelSteering, Authenticated, nil},
 
                //Pattern based consistent hashing endpoint
                {1.4, http.MethodPost, `consistenthash/?$`, 
consistenthash.Post, auth.PrivLevelReadOnly, Authenticated, nil},

Reply via email to