You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficcontrol.apache.org by mi...@apache.org on 2019/04/20 01:41:10 UTC

[trafficcontrol] branch master updated: Changed permissions of steering role to be PrivLevelSteering (#3507)

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 <Ma...@comcast.com>
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": "steering@example.com",
+            "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},