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.