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},