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

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

commit 06ab471017007ac721a174f8d0daa47b0c4e9d2d
Author: Dewayne Richardson <dewr...@apache.org>
AuthorDate: Mon Mar 5 13:58:39 2018 -0700

    added plumbing for all roles to have test users
---
 traffic_ops/testing/api/conf/traffic-ops-test.conf | 12 ++-
 traffic_ops/testing/api/config/config.go           | 93 +++++++++++++++++-----
 traffic_ops/testing/api/v13/parameters_test.go     | 10 +--
 traffic_ops/testing/api/v13/todb.go                | 55 +++++++------
 traffic_ops/testing/api/v13/traffic_ops_test.go    |  8 +-
 5 files changed, 120 insertions(+), 58 deletions(-)

diff --git a/traffic_ops/testing/api/conf/traffic-ops-test.conf 
b/traffic_ops/testing/api/conf/traffic-ops-test.conf
index 83fc86a..6cf5290 100644
--- a/traffic_ops/testing/api/conf/traffic-ops-test.conf
+++ b/traffic_ops/testing/api/conf/traffic-ops-test.conf
@@ -12,10 +12,16 @@
         }
     },
     "trafficOps": {
-        "password": "twelve",
         "URL": "https://localhost:8443";,
-        "adminUser": "admin",
-        "portalUser": "portal"
+        "password": "twelve",
+        "users": {
+            "disallowed": "disallowed",
+            "operations": "operations",
+            "admin": "admin",
+            "federation": "federation",
+            "portal": "portal",
+            "readOnly": "readOnly"
+        }
     },
     "trafficOpsDB": {
         "dbname": "to_test",
diff --git a/traffic_ops/testing/api/config/config.go 
b/traffic_ops/testing/api/config/config.go
index 76744f5..c8e704c 100644
--- a/traffic_ops/testing/api/config/config.go
+++ b/traffic_ops/testing/api/config/config.go
@@ -39,19 +39,38 @@ type TrafficOps struct {
        // URL - The point to the Traffic Ops instance being tested
        URL string `json:"URL" envconfig:"TO_URL" 
default:"https://localhost:8443"`
 
-       // User - The Traffic Ops test user hitting the API
-       AdminUser string `json:"adminUser" envconfig:"TO_ADMIN_USER"`
-
        // UserPassword - The Traffic Ops test user password hitting the API
        UserPassword string `json:"password" envconfig:"TO_USER_PASSWORD"`
 
-       // User - The Traffic Ops Portal user hitting the API
-       PortalUser string `json:"portalUser" envconfig:"TO_PORTAL_USER"`
+       // UserPassword - The Traffic Ops Users
+       Users Users `json:"users"`
 
        // Insecure - ignores insecure ssls certs that were self-generated
        Insecure bool `json:"sslInsecure" envconfig:"SSL_INSECURE"`
 }
 
+// Users "users" section of the test-to-api.conf file
+type Users struct {
+
+       // DisallowedUser - The Traffic Ops Disallowed user
+       Disallowed string `json:"disallowed" envconfig:"TO_USER_DISALLOWED"`
+
+       // ReadOnly - The Traffic Ops Read Only user
+       ReadOnly string `json:"readOnly" envconfig:"TO_USER_READ_ONLY"`
+
+       // Operations - The Traffic Ops Operations user
+       Operations string `json:"operations" envconfig:"TO_USER_OPERATIONS"`
+
+       // AdminUser - The Traffic Ops Admin user
+       Admin string `json:"admin" envconfig:"TO_USER_ADMIN"`
+
+       // PortalUser - The Traffic Ops Portal user
+       Portal string `json:"portal" envconfig:"TO_USER_PORTAL"`
+
+       // FederationUser - The Traffic Ops Federation user
+       Federation string `json:"federation" envconfig:"TO_USER_FEDERATION"`
+}
+
 // TrafficOpsDB - config section
 type TrafficOpsDB struct {
        // Name - Traffic Ops Database name where the test data will be setup
@@ -137,36 +156,72 @@ func validate(confPath string, config Config) []error {
 
        errs := []error{}
 
-       var fieldName string
-       fieldName = "TrafficOps"
-       toTag, ok := getStructTag(config, fieldName)
+       var f string
+       f = "TrafficOps"
+       toTag, ok := getStructTag(config, f)
        if !ok {
                errs = append(errs, fmt.Errorf("'%s' must be configured in %s", 
toTag, confPath))
        }
 
        if config.TrafficOps.URL == "" {
-               fieldName = "URL"
-               tag, ok := getStructTag(config.TrafficOps, fieldName)
+               f = "URL"
+               tag, ok := getStructTag(config.TrafficOps, f)
+               if !ok {
+                       errs = append(errs, fmt.Errorf("cannot lookup 
structTag: %s", f))
+               }
+               errs = append(errs, fmt.Errorf("'%s.%s' must be configured in 
%s", toTag, tag, confPath))
+       }
+
+       if config.TrafficOps.Users.Disallowed == "" {
+               f = "Disallowed"
+               tag, ok := getStructTag(config.TrafficOps.Users, f)
+               if !ok {
+                       errs = append(errs, fmt.Errorf("cannot lookup 
structTag: %s", f))
+               }
+               errs = append(errs, fmt.Errorf("'%s.%s' must be configured in 
%s", toTag, tag, confPath))
+       }
+
+       if config.TrafficOps.Users.ReadOnly == "" {
+               f = "ReadOnly"
+               tag, ok := getStructTag(config.TrafficOps.Users, f)
+               if !ok {
+                       errs = append(errs, fmt.Errorf("cannot lookup 
structTag: %s", f))
+               }
+               errs = append(errs, fmt.Errorf("'%s.%s' must be configured in 
%s", toTag, tag, confPath))
+       }
+
+       if config.TrafficOps.Users.Operations == "" {
+               f = "Operations"
+               tag, ok := getStructTag(config.TrafficOps.Users, f)
+               if !ok {
+                       errs = append(errs, fmt.Errorf("cannot lookup 
structTag: %s", f))
+               }
+               errs = append(errs, fmt.Errorf("'%s.%s' must be configured in 
%s", toTag, tag, confPath))
+       }
+
+       if config.TrafficOps.Users.Admin == "" {
+               f = "Admin"
+               tag, ok := getStructTag(config.TrafficOps.Users, f)
                if !ok {
-                       errs = append(errs, fmt.Errorf("cannot lookup 
structTag: %s", fieldName))
+                       errs = append(errs, fmt.Errorf("cannot lookup 
structTag: %s", f))
                }
                errs = append(errs, fmt.Errorf("'%s.%s' must be configured in 
%s", toTag, tag, confPath))
        }
 
-       if config.TrafficOps.AdminUser == "" {
-               fieldName = "AdminUser"
-               tag, ok := getStructTag(config.TrafficOps, fieldName)
+       if config.TrafficOps.Users.Portal == "" {
+               f = "Portal"
+               tag, ok := getStructTag(config.TrafficOps.Users, f)
                if !ok {
-                       errs = append(errs, fmt.Errorf("cannot lookup 
structTag: %s", fieldName))
+                       errs = append(errs, fmt.Errorf("cannot lookup 
structTag: %s", f))
                }
                errs = append(errs, fmt.Errorf("'%s.%s' must be configured in 
%s", toTag, tag, confPath))
        }
 
-       if config.TrafficOps.PortalUser == "" {
-               fieldName = "PortalUser"
-               tag, ok := getStructTag(config.TrafficOps, fieldName)
+       if config.TrafficOps.Users.Federation == "" {
+               f = "Federation"
+               tag, ok := getStructTag(config.TrafficOps.Users, f)
                if !ok {
-                       errs = append(errs, fmt.Errorf("cannot lookup 
structTag: %s", fieldName))
+                       errs = append(errs, fmt.Errorf("cannot lookup 
structTag: %s", f))
                }
                errs = append(errs, fmt.Errorf("'%s.%s' must be configured in 
%s", toTag, tag, confPath))
        }
diff --git a/traffic_ops/testing/api/v13/parameters_test.go 
b/traffic_ops/testing/api/v13/parameters_test.go
index 93941c9..a42b520 100644
--- a/traffic_ops/testing/api/v13/parameters_test.go
+++ b/traffic_ops/testing/api/v13/parameters_test.go
@@ -16,9 +16,7 @@
 package v13
 
 import (
-       "fmt"
        "testing"
-       "time"
 
        "github.com/apache/incubator-trafficcontrol/lib/go-log"
        tc "github.com/apache/incubator-trafficcontrol/lib/go-tc"
@@ -26,13 +24,14 @@ import (
 
 func TestParameters(t *testing.T) {
 
-       toReqTimeout := time.Second * 
time.Duration(Config.Default.Session.TimeoutInSecs)
+       //toReqTimeout := time.Second * 
time.Duration(Config.Default.Session.TimeoutInSecs)
        //TOSession, _, err = SetupSession(toReqTimeout, Config.TrafficOps.URL, 
Config.TrafficOps.User, Config.TrafficOps.UserPassword)
        //if err != nil {
        //t.Errorf("could not CREATE session: %v\n", err)
        //}
-       TeardownSession(toReqTimeout, Config.TrafficOps.URL, 
Config.TrafficOps.AdminUser, Config.TrafficOps.UserPassword)
-       SetupSession(toReqTimeout, Config.TrafficOps.URL, 
Config.TrafficOps.PortalUser, Config.TrafficOps.UserPassword)
+       //TeardownSession(toReqTimeout, Config.TrafficOps.URL, 
Config.TrafficOps.Users.Admin, Config.TrafficOps.UserPassword)
+       //SetupSession(toReqTimeout, Config.TrafficOps.URL, 
Config.TrafficOps.Users.Portal, Config.TrafficOps.UserPassword)
+       //SwitchSession(toReqTimeout, Config.TrafficOps.URL, 
Config.TrafficOps.Users.Admin, Config.TrafficOps.UserPassword, 
Config.TrafficOps.Users.Portal, Config.TrafficOps.UserPassword)
 
        CreateTestParameters(t)
        UpdateTestParameters(t)
@@ -86,7 +85,6 @@ func GetTestParameters(t *testing.T) {
 
        for _, pl := range testData.Parameters {
                resp, _, err := TOSession.GetParameterByName(pl.Name)
-               fmt.Printf("resp ---> %v\n", resp)
                if err != nil {
                        t.Errorf("cannot GET Parameter by name: %v - %v\n", 
err, resp)
                }
diff --git a/traffic_ops/testing/api/v13/todb.go 
b/traffic_ops/testing/api/v13/todb.go
index 72bf476..0bfb96f 100644
--- a/traffic_ops/testing/api/v13/todb.go
+++ b/traffic_ops/testing/api/v13/todb.go
@@ -51,141 +51,141 @@ func SetupTestData(*sql.DB) error {
 
        err = SetupTenants(db)
        if err != nil {
-               fmt.Printf("\nError setting up tenants %s - %s, %v\n", 
Config.TrafficOps.URL, Config.TrafficOps.AdminUser, err)
+               fmt.Printf("\nError setting up tenants %s - %s, %v\n", 
Config.TrafficOps.URL, Config.TrafficOps.Users.Admin, err)
                os.Exit(1)
        }
 
        err = SetupCDNs(db)
        if err != nil {
-               fmt.Printf("\nError setting up cdns %s - %s, %v\n", 
Config.TrafficOps.URL, Config.TrafficOps.AdminUser, err)
+               fmt.Printf("\nError setting up cdns %s - %s, %v\n", 
Config.TrafficOps.URL, Config.TrafficOps.Users.Admin, err)
                os.Exit(1)
        }
 
        err = SetupRoles(db)
        if err != nil {
-               fmt.Printf("\nError setting up roles %s - %s, %v\n", 
Config.TrafficOps.URL, Config.TrafficOps.AdminUser, err)
+               fmt.Printf("\nError setting up roles %s - %s, %v\n", 
Config.TrafficOps.URL, Config.TrafficOps.Users.Admin, err)
                os.Exit(1)
        }
 
        err = SetupTmusers(db)
        if err != nil {
-               fmt.Printf("\nError setting up tm_user %s - %s, %v\n", 
Config.TrafficOps.URL, Config.TrafficOps.AdminUser, err)
+               fmt.Printf("\nError setting up tm_user %s - %s, %v\n", 
Config.TrafficOps.URL, Config.TrafficOps.Users.Admin, err)
                os.Exit(1)
        }
 
        err = SetupStatuses(db)
        if err != nil {
-               fmt.Printf("\nError setting up status %s - %s, %v\n", 
Config.TrafficOps.URL, Config.TrafficOps.AdminUser, err)
+               fmt.Printf("\nError setting up status %s - %s, %v\n", 
Config.TrafficOps.URL, Config.TrafficOps.Users.Admin, err)
                os.Exit(1)
        }
 
        err = SetupTypes(db)
        if err != nil {
-               fmt.Printf("\nError setting up type %s - %s, %v\n", 
Config.TrafficOps.URL, Config.TrafficOps.AdminUser, err)
+               fmt.Printf("\nError setting up type %s - %s, %v\n", 
Config.TrafficOps.URL, Config.TrafficOps.Users.Admin, err)
                os.Exit(1)
        }
 
        err = SetupDivisions(db)
        if err != nil {
-               fmt.Printf("\nError setting up division %s - %s, %v\n", 
Config.TrafficOps.URL, Config.TrafficOps.AdminUser, err)
+               fmt.Printf("\nError setting up division %s - %s, %v\n", 
Config.TrafficOps.URL, Config.TrafficOps.Users.Admin, err)
                os.Exit(1)
        }
 
        err = SetupRegions(db)
        if err != nil {
-               fmt.Printf("\nError setting up region %s - %s, %v\n", 
Config.TrafficOps.URL, Config.TrafficOps.AdminUser, err)
+               fmt.Printf("\nError setting up region %s - %s, %v\n", 
Config.TrafficOps.URL, Config.TrafficOps.Users.Admin, err)
                os.Exit(1)
        }
 
        /*
                err = SetupParameters(db)
                if err != nil {
-                       fmt.Printf("\nError setting up parameter %s - %s, 
%v\n", Config.TrafficOps.URL, Config.TrafficOps.AdminUser, err)
+                       fmt.Printf("\nError setting up parameter %s - %s, 
%v\n", Config.TrafficOps.URL, Config.TrafficOps.Users.Admin, err)
                        os.Exit(1)
                }
 
                err = SetupProfiles(db)
                if err != nil {
-                       fmt.Printf("\nError setting up profile %s - %s, %v\n", 
Config.TrafficOps.URL, Config.TrafficOps.AdminUser, err)
+                       fmt.Printf("\nError setting up profile %s - %s, %v\n", 
Config.TrafficOps.URL, Config.TrafficOps.Users.Admin, err)
                        os.Exit(1)
                }
 
                err = SetupProfileParameters(db)
                if err != nil {
-                       fmt.Printf("\nError setting up parameter %s - %s, 
%v\n", Config.TrafficOps.URL, Config.TrafficOps.AdminUser, err)
+                       fmt.Printf("\nError setting up parameter %s - %s, 
%v\n", Config.TrafficOps.URL, Config.TrafficOps.Users.Admin, err)
                        os.Exit(1)
                }
 
                err = SetupCacheGroups(db)
                if err != nil {
-                       fmt.Printf("\nError setting up cachegroup %s - %s, 
%v\n", Config.TrafficOps.URL, Config.TrafficOps.AdminUser, err)
+                       fmt.Printf("\nError setting up cachegroup %s - %s, 
%v\n", Config.TrafficOps.URL, Config.TrafficOps.Users.Admin, err)
                        os.Exit(1)
                }
 
 
                err = SetupPhysLocations(db)
                if err != nil {
-                       fmt.Printf("\nError setting up phys_location %s - %s, 
%v\n", Config.TrafficOps.URL, Config.TrafficOps.AdminUser, err)
+                       fmt.Printf("\nError setting up phys_location %s - %s, 
%v\n", Config.TrafficOps.URL, Config.TrafficOps.Users.Admin, err)
                        os.Exit(1)
                }
 
                err = SetupServers(db)
                if err != nil {
-                       fmt.Printf("\nError setting up server %s - %s, %v\n", 
Config.TrafficOps.URL, Config.TrafficOps.AdminUser, err)
+                       fmt.Printf("\nError setting up server %s - %s, %v\n", 
Config.TrafficOps.URL, Config.TrafficOps.Users.Admin, err)
                        os.Exit(1)
                }
 
                err = SetupAsns(db)
                if err != nil {
-                       fmt.Printf("\nError setting up asn %s - %s, %v\n", 
Config.TrafficOps.URL, Config.TrafficOps.AdminUser, err)
+                       fmt.Printf("\nError setting up asn %s - %s, %v\n", 
Config.TrafficOps.URL, Config.TrafficOps.Users.Admin, err)
                        os.Exit(1)
                }
 
                err = SetupDeliveryServices(db)
                if err != nil {
-                       fmt.Printf("\nError setting up deliveryservice %s - %s, 
%v\n", Config.TrafficOps.URL, Config.TrafficOps.AdminUser, err)
+                       fmt.Printf("\nError setting up deliveryservice %s - %s, 
%v\n", Config.TrafficOps.URL, Config.TrafficOps.Users.Admin, err)
                        os.Exit(1)
                }
 
                err = SetupRegexes(db)
                if err != nil {
-                       fmt.Printf("\nError setting up regex %s - %s, %v\n", 
Config.TrafficOps.URL, Config.TrafficOps.AdminUser, err)
+                       fmt.Printf("\nError setting up regex %s - %s, %v\n", 
Config.TrafficOps.URL, Config.TrafficOps.Users.Admin, err)
                        os.Exit(1)
                }
 
                err = SetupDeliveryServiceRegexes(db)
                if err != nil {
-                       fmt.Printf("\nError setting up deliveryservice_regex %s 
- %s, %v\n", Config.TrafficOps.URL, Config.TrafficOps.AdminUser, err)
+                       fmt.Printf("\nError setting up deliveryservice_regex %s 
- %s, %v\n", Config.TrafficOps.URL, Config.TrafficOps.Users.Admin, err)
                        os.Exit(1)
                }
 
                err = SetupDeliveryServiceTmUsers(db)
                if err != nil {
-                       fmt.Printf("\nError setting up deliveryservice_tmuser 
%s - %s, %v\n", Config.TrafficOps.URL, Config.TrafficOps.AdminUser, err)
+                       fmt.Printf("\nError setting up deliveryservice_tmuser 
%s - %s, %v\n", Config.TrafficOps.URL, Config.TrafficOps.Users.Admin, err)
                        os.Exit(1)
                }
 
                err = SetupDeliveryServiceServers(db)
                if err != nil {
-                       fmt.Printf("\nError setting up deliveryservice_server 
%s - %s, %v\n", Config.TrafficOps.URL, Config.TrafficOps.AdminUser, err)
+                       fmt.Printf("\nError setting up deliveryservice_server 
%s - %s, %v\n", Config.TrafficOps.URL, Config.TrafficOps.Users.Admin, err)
                        os.Exit(1)
                }
 
                err = SetupJobStatuses(db)
                if err != nil {
-                       fmt.Printf("\nError setting up job_status %s - %s, 
%v\n", Config.TrafficOps.URL, Config.TrafficOps.AdminUser, err)
+                       fmt.Printf("\nError setting up job_status %s - %s, 
%v\n", Config.TrafficOps.URL, Config.TrafficOps.Users.Admin, err)
                        os.Exit(1)
                }
 
                err = SetupJobAgents(db)
                if err != nil {
-                       fmt.Printf("\nError setting up job_agent %s - %s, 
%v\n", Config.TrafficOps.URL, Config.TrafficOps.AdminUser, err)
+                       fmt.Printf("\nError setting up job_agent %s - %s, 
%v\n", Config.TrafficOps.URL, Config.TrafficOps.Users.Admin, err)
                        os.Exit(1)
                }
 
                err = SetupJobs(db)
                if err != nil {
-                       fmt.Printf("\nError setting up job %s - %s, %v\n", 
Config.TrafficOps.URL, Config.TrafficOps.AdminUser, err)
+                       fmt.Printf("\nError setting up job %s - %s, %v\n", 
Config.TrafficOps.URL, Config.TrafficOps.Users.Admin, err)
                        os.Exit(1)
                }
        */
@@ -222,10 +222,13 @@ func SetupTmusers(db *sql.DB) error {
 
        // Creates users in different tenants
        sqlStmt := `
-INSERT INTO tm_user (username, local_passwd, confirm_local_passwd, role, 
tenant_id) VALUES ('` + Config.TrafficOps.AdminUser + `','` + encryptedPassword 
+ `','` + encryptedPassword + `', 4, 2);
-INSERT INTO tm_user (username, local_passwd, confirm_local_passwd, role, 
tenant_id) VALUES ('` + Config.TrafficOps.PortalUser + `','` + 
encryptedPassword + `','` + encryptedPassword + `', 3, 3);
+INSERT INTO tm_user (username, local_passwd, confirm_local_passwd, role, 
tenant_id) VALUES ('` + Config.TrafficOps.Users.Disallowed + `','` + 
encryptedPassword + `','` + encryptedPassword + `', 1, 3);
+INSERT INTO tm_user (username, local_passwd, confirm_local_passwd, role, 
tenant_id) VALUES ('` + Config.TrafficOps.Users.ReadOnly + `','` + 
encryptedPassword + `','` + encryptedPassword + `', 2, 3);
+INSERT INTO tm_user (username, local_passwd, confirm_local_passwd, role, 
tenant_id) VALUES ('` + Config.TrafficOps.Users.Operations + `','` + 
encryptedPassword + `','` + encryptedPassword + `', 3, 3);
+INSERT INTO tm_user (username, local_passwd, confirm_local_passwd, role, 
tenant_id) VALUES ('` + Config.TrafficOps.Users.Admin + `','` + 
encryptedPassword + `','` + encryptedPassword + `', 4, 2);
+INSERT INTO tm_user (username, local_passwd, confirm_local_passwd, role, 
tenant_id) VALUES ('` + Config.TrafficOps.Users.Portal + `','` + 
encryptedPassword + `','` + encryptedPassword + `', 5, 3);
+INSERT INTO tm_user (username, local_passwd, confirm_local_passwd, role, 
tenant_id) VALUES ('` + Config.TrafficOps.Users.Federation + `','` + 
encryptedPassword + `','` + encryptedPassword + `', 7, 3);
 `
-       fmt.Printf("sqlStmt ---> %v\n", sqlStmt)
        err = execSQL(db, sqlStmt, "tm_user")
        if err != nil {
                return fmt.Errorf("exec failed %v", err)
diff --git a/traffic_ops/testing/api/v13/traffic_ops_test.go 
b/traffic_ops/testing/api/v13/traffic_ops_test.go
index d1d8aa1..00fa693 100644
--- a/traffic_ops/testing/api/v13/traffic_ops_test.go
+++ b/traffic_ops/testing/api/v13/traffic_ops_test.go
@@ -65,25 +65,25 @@ func TestMain(m *testing.M) {
        var db *sql.DB
        db, err = OpenConnection()
        if err != nil {
-               fmt.Printf("\nError opening connection to %s - %s, %v\n", 
Config.TrafficOps.URL, Config.TrafficOps.AdminUser, err)
+               fmt.Printf("\nError opening connection to %s - %s, %v\n", 
Config.TrafficOps.URL, Config.TrafficOpsDB.User, err)
                os.Exit(1)
        }
        defer db.Close()
 
        err = Teardown(db)
        if err != nil {
-               fmt.Printf("\nError tearingdown data %s - %s, %v\n", 
Config.TrafficOps.URL, Config.TrafficOps.AdminUser, err)
+               fmt.Printf("\nError tearingdown data %s - %s, %v\n", 
Config.TrafficOps.URL, Config.TrafficOpsDB.User, err)
                os.Exit(1)
        }
 
        err = SetupTestData(db)
        if err != nil {
-               fmt.Printf("\nError setting up data %s - %s, %v\n", 
Config.TrafficOps.URL, Config.TrafficOps.AdminUser, err)
+               fmt.Printf("\nError setting up data %s - %s, %v\n", 
Config.TrafficOps.URL, Config.TrafficOpsDB.User, err)
                os.Exit(1)
        }
 
        toReqTimeout := time.Second * 
time.Duration(Config.Default.Session.TimeoutInSecs)
-       SetupSession(toReqTimeout, Config.TrafficOps.URL, 
Config.TrafficOps.AdminUser, Config.TrafficOps.UserPassword)
+       SetupSession(toReqTimeout, Config.TrafficOps.URL, 
Config.TrafficOps.Users.Admin, Config.TrafficOps.UserPassword)
 
        // Now run the test case
        rc := m.Run()

-- 
To stop receiving notification emails like this one, please contact
dang...@apache.org.

Reply via email to