Skip to content
This repository was archived by the owner on Nov 24, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
### Fixed
- Fixed Traffic Router crs/stats to prevent overflow and to correctly record the time used in averages.
- [#5893](https://github.com/apache/trafficcontrol/issues/5893) - A self signed certificate is created when an HTTPS delivery service is created or an HTTP delivery service is updated to HTTPS.
- [#6125](https://github.com/apache/trafficcontrol/issues/6125) - Fix `/cdns/{name}/federations?id=#` to search for CDN.
- [#6255](https://github.com/apache/trafficcontrol/issues/6255) - Unreadable Prod Mode CDN Notifications in Traffic Portal
- [#6259](https://github.com/apache/trafficcontrol/issues/6259) - Traffic Portal No Longer Allows Spaces in Server Object "Router Port Name"

Expand Down
25 changes: 18 additions & 7 deletions traffic_ops/testing/api/v2/cdnfederations_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ func CreateTestCDNFederations(t *testing.T) {
break
}

data, _, err := TOSession.CreateCDNFederationByName(f, testData.CDNs[i].Name)
data, _, err := TOSession.CreateCDNFederationByName(f, "cdn1")
if err != nil {
t.Errorf("could not POST federations: " + err.Error())
}
Expand All @@ -61,28 +61,39 @@ func CreateTestCDNFederations(t *testing.T) {
t.Error("Federation id is nil after posting")
} else {
fedIDs = append(fedIDs, *data.Response.ID)
resp, _, err := TOSession.GetDeliveryServiceByXMLIDNullable("ds1")
if err != nil {
t.Errorf("could not get delivery service by xml ID: %v", err)
}
if len(resp) != 1 {
t.Fatalf("expected one response for delivery service, but got %d", len(resp))
}
_, err = TOSession.CreateFederationDeliveryServices(*data.Response.ID, []int{*resp[0].ID}, false)
if err != nil {
t.Errorf("could not create federation delivery service: %v", err)
}
}
}
}

func UpdateTestCDNFederations(t *testing.T) {

for _, id := range fedIDs {
fed, _, err := TOSession.GetCDNFederationsByID("foo", id)
fed, _, err := TOSession.GetCDNFederationsByID("cdn1", id)
if err != nil {
t.Errorf("cannot GET federation by id: %v", err)
}

expectedCName := "new.cname."
fed.Response[0].CName = &expectedCName
resp, _, err := TOSession.UpdateCDNFederationsByID(fed.Response[0], "foo", id)
resp, _, err := TOSession.UpdateCDNFederationsByID(fed.Response[0], "cdn1", id)
if err != nil {
t.Errorf("cannot PUT federation by id: %v", err)
}
bytes, _ := json.Marshal(resp)
t.Logf("PUT Response: %s\n", bytes)

resp2, _, err := TOSession.GetCDNFederationsByID("foo", id)
resp2, _, err := TOSession.GetCDNFederationsByID("cdn1", id)
if err != nil {
t.Errorf("cannot GET federation by id after PUT: %v", err)
}
Expand All @@ -106,7 +117,7 @@ func GetTestCDNFederations(t *testing.T) {
// clean up fedIDs connection?)

for _, id := range fedIDs {
data, _, err := TOSession.GetCDNFederationsByID("foo", id)
data, _, err := TOSession.GetCDNFederationsByID("cdn1", id)
if err != nil {
t.Errorf("could not GET federations: " + err.Error())
}
Expand Down Expand Up @@ -227,14 +238,14 @@ func GetTestFederationFederationResolvers(t *testing.T) {
func DeleteTestCDNFederations(t *testing.T) {

for _, id := range fedIDs {
resp, _, err := TOSession.DeleteCDNFederationByID("foo", id)
resp, _, err := TOSession.DeleteCDNFederationByID("cdn1", id)
if err != nil {
t.Errorf("cannot DELETE federation by id: '%d' %v", id, err)
}
bytes, err := json.Marshal(resp)
t.Logf("DELETE Response: %s\n", bytes)

data, _, err := TOSession.GetCDNFederationsByID("foo", id)
data, _, err := TOSession.GetCDNFederationsByID("cdn1", id)
if len(data.Response) != 0 {
t.Error("expected federation to be deleted")
}
Expand Down
4 changes: 2 additions & 2 deletions traffic_ops/testing/api/v2/federations_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@ func GetTestFederations(t *testing.T) {
t.Errorf("getting federations: " + err.Error())
}

if len(feds) != 1 {
t.Errorf("federations expected 1, actual: %+v", len(feds))
if len(feds) < 1 {
t.Errorf("expected atleast 1 federation, but got none")
}
fed := feds[0]

Expand Down
12 changes: 10 additions & 2 deletions traffic_ops/testing/api/v2/tc-fixtures.json
Original file line number Diff line number Diff line change
Expand Up @@ -756,12 +756,20 @@
{
"cname": "the.cname.com.",
"ttl": 48,
"description": "the description"
"description": "the description",
"deliveryService":
{
"xmlId": "ds1"
}
},
{
"cname": "booya.com.",
"ttl": 34,
"description": "fooya"
"description": "fooya",
"deliveryService":
{
"xmlId": "ds1"
}
}
],
"federation_resolvers": [
Expand Down
38 changes: 25 additions & 13 deletions traffic_ops/testing/api/v3/cdnfederations_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,14 +49,14 @@ func TestCDNFederations(t *testing.T) {

func UpdateTestCDNFederationsWithHeaders(t *testing.T, h http.Header) {
for _, id := range fedIDs {
fed, _, err := TOSession.GetCDNFederationsByIDWithHdr("foo", id, h)
fed, _, err := TOSession.GetCDNFederationsByIDWithHdr("cdn1", id, h)
if err != nil {
t.Errorf("cannot GET federation by id: %v", err)
}
if fed != nil && len(fed.Response) > 0 {
expectedCName := "new.cname."
fed.Response[0].CName = &expectedCName
_, reqInf, err := TOSession.UpdateCDNFederationsByIDWithHdr(fed.Response[0], "foo", id, h)
_, reqInf, err := TOSession.UpdateCDNFederationsByIDWithHdr(fed.Response[0], "cdn1", id, h)
if err == nil {
t.Errorf("Expected an error saying precondition failed, but got none")
}
Expand Down Expand Up @@ -84,7 +84,7 @@ func CreateTestCDNFederations(t *testing.T) {
break
}

data, _, err := TOSession.CreateCDNFederationByName(f, testData.CDNs[i].Name)
data, _, err := TOSession.CreateCDNFederationByName(f, "cdn1")
if err != nil {
t.Errorf("could not POST federations: " + err.Error())
}
Expand All @@ -96,13 +96,23 @@ func CreateTestCDNFederations(t *testing.T) {
t.Error("Federation id is nil after posting")
} else {
fedIDs = append(fedIDs, *data.Response.ID)
resp, _, err := TOSession.GetDeliveryServiceByXMLIDNullable("ds1")
if err != nil {
t.Errorf("could not get delivery service by xml ID: %v", err)
}
if len(resp) != 1 {
t.Fatalf("expected one response for delivery service, but got %d", len(resp))
}
_, err = TOSession.CreateFederationDeliveryServices(*data.Response.ID, []int{*resp[0].ID}, false)
if err != nil {
t.Errorf("could not create federation delivery service: %v", err)
}
}
}
}

// This test will not work unless a given CDN has more than one federation associated with it.
func SortTestCDNFederations(t *testing.T) {
var header http.Header
var sortedList []string

//Create a new federation under the same CDN
Expand All @@ -119,12 +129,14 @@ func SortTestCDNFederations(t *testing.T) {
id := *data.Response.ID

//Get list of federations for one type of cdn
resp, _, err := TOSession.GetCDNFederationsByNameWithHdrReturnList("cdn1", header)
opts := http.Header{}
opts.Set("orderby", "cname")
resp, _, err := TOSession.GetCDNFederationsByNameWithHdr("cdn1", opts)
if err != nil {
t.Fatalf("Expected no error, but got %v", err.Error())
}
for i, _ := range resp {
sortedList = append(sortedList, *resp[i].CName)
for i, _ := range resp.Response {
sortedList = append(sortedList, *resp.Response[i].CName)
}

// Check if list was sorted
Expand All @@ -147,21 +159,21 @@ func SortTestCDNFederations(t *testing.T) {
func UpdateTestCDNFederations(t *testing.T) {

for _, id := range fedIDs {
fed, _, err := TOSession.GetCDNFederationsByID("foo", id)
fed, _, err := TOSession.GetCDNFederationsByID("cdn1", id)
if err != nil {
t.Errorf("cannot GET federation by id: %v", err)
}

expectedCName := "new.cname."
fed.Response[0].CName = &expectedCName
resp, _, err := TOSession.UpdateCDNFederationsByID(fed.Response[0], "foo", id)
resp, _, err := TOSession.UpdateCDNFederationsByID(fed.Response[0], "cdn1", id)
if err != nil {
t.Errorf("cannot PUT federation by id: %v", err)
}
bytes, _ := json.Marshal(resp)
t.Logf("PUT Response: %s\n", bytes)

resp2, _, err := TOSession.GetCDNFederationsByID("foo", id)
resp2, _, err := TOSession.GetCDNFederationsByID("cdn1", id)
if err != nil {
t.Errorf("cannot GET federation by id after PUT: %v", err)
}
Expand All @@ -185,7 +197,7 @@ func GetTestCDNFederations(t *testing.T) {
// clean up fedIDs connection?)

for _, id := range fedIDs {
data, _, err := TOSession.GetCDNFederationsByID("foo", id)
data, _, err := TOSession.GetCDNFederationsByID("cdn1", id)
if err != nil {
t.Errorf("could not GET federations: " + err.Error())
}
Expand Down Expand Up @@ -306,14 +318,14 @@ func GetTestFederationFederationResolvers(t *testing.T) {
func DeleteTestCDNFederations(t *testing.T) {

for _, id := range fedIDs {
resp, _, err := TOSession.DeleteCDNFederationByID("foo", id)
resp, _, err := TOSession.DeleteCDNFederationByID("cdn1", id)
if err != nil {
t.Errorf("cannot DELETE federation by id: '%d' %v", id, err)
}
bytes, err := json.Marshal(resp)
t.Logf("DELETE Response: %s\n", bytes)

data, _, err := TOSession.GetCDNFederationsByID("foo", id)
data, _, err := TOSession.GetCDNFederationsByID("cdn1", id)
if len(data.Response) != 0 {
t.Error("expected federation to be deleted")
}
Expand Down
4 changes: 2 additions & 2 deletions traffic_ops/testing/api/v3/federations_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,8 @@ func GetTestFederations(t *testing.T) {
t.Errorf("getting federations: " + err.Error())
}

if len(feds) != 1 {
t.Errorf("federations expected 1, actual: %+v", len(feds))
if len(feds) < 1 {
t.Errorf("expected atleast 1 federation, but got none")
}
fed := feds[0]

Expand Down
12 changes: 10 additions & 2 deletions traffic_ops/testing/api/v3/tc-fixtures.json
Original file line number Diff line number Diff line change
Expand Up @@ -1594,12 +1594,20 @@
{
"cname": "the.cname.com.",
"ttl": 48,
"description": "the description"
"description": "the description",
"deliveryService":
{
"xmlId": "ds1"
}
},
{
"cname": "booya.com.",
"ttl": 34,
"description": "fooya"
"description": "fooya",
"deliveryService":
{
"xmlId": "ds1"
}
}
],
"federation_resolvers": [
Expand Down
40 changes: 27 additions & 13 deletions traffic_ops/testing/api/v4/cdnfederations_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,14 +54,14 @@ func UpdateTestCDNFederationsWithHeaders(t *testing.T, h http.Header) {
opts.Header = h
for _, id := range fedIDs {
opts.QueryParameters.Set("id", strconv.Itoa(id))
fed, _, err := TOSession.GetCDNFederationsByName("foo", opts)
fed, _, err := TOSession.GetCDNFederationsByName("cdn1", opts)
if err != nil {
t.Errorf("cannot GET federation by id: %v - alerts: %+v", err, fed.Alerts)
}
if len(fed.Response) > 0 {
expectedCName := "new.cname."
fed.Response[0].CName = &expectedCName
_, reqInf, err := TOSession.UpdateCDNFederation(fed.Response[0], "foo", id, opts)
_, reqInf, err := TOSession.UpdateCDNFederation(fed.Response[0], "cdn1", id, opts)
if err == nil {
t.Errorf("Expected an error saying precondition failed, but got none")
}
Expand All @@ -88,8 +88,16 @@ func CreateTestCDNFederations(t *testing.T) {
if i >= len(testData.CDNs) {
break
}

data, _, err := TOSession.CreateCDNFederation(f, testData.CDNs[i].Name, client.RequestOptions{})
opts := client.NewRequestOptions()
opts.QueryParameters.Set("xmlId", "ds1")
resp, _, err := TOSession.GetDeliveryServices(opts)
if err != nil {
t.Errorf("could not get delivery service by xml ID: %v", err)
}
if len(resp.Response) != 1 {
t.Fatalf("expected one response for delivery service, but got %d", len(resp.Response))
}
data, _, err := TOSession.CreateCDNFederation(f, "cdn1", client.RequestOptions{})
if err != nil {
t.Errorf("could not create CDN Federations: %v - alerts: %+v", err, data.Alerts)
}
Expand All @@ -99,6 +107,10 @@ func CreateTestCDNFederations(t *testing.T) {
t.Error("Federation id is nil after posting")
} else {
fedIDs = append(fedIDs, *data.Response.ID)
_, _, err = TOSession.CreateFederationDeliveryServices(*data.Response.ID, []int{*resp.Response[0].ID}, false, client.NewRequestOptions())
if err != nil {
t.Errorf("could not create federation delivery service: %v", err)
}
}
}
}
Expand All @@ -119,7 +131,9 @@ func SortTestCDNFederations(t *testing.T) {
id := *data.Response.ID

//Get list of federations for one type of cdn
resp, _, err := TOSession.GetCDNFederationsByName("cdn1", client.RequestOptions{})
opts := client.NewRequestOptions()
opts.QueryParameters.Set("orderby", "cname")
resp, _, err := TOSession.GetCDNFederationsByName("cdn1", opts)
if err != nil {
t.Fatalf("Expected no error, but got %v - alerts: %+v", err, resp.Alerts)
}
Expand All @@ -146,7 +160,7 @@ func UpdateTestCDNFederations(t *testing.T) {
opts := client.NewRequestOptions()
for _, id := range fedIDs {
opts.QueryParameters.Set("id", strconv.Itoa(id))
fed, _, err := TOSession.GetCDNFederationsByName("foo", opts)
fed, _, err := TOSession.GetCDNFederationsByName("cdn1", opts)
if err != nil {
t.Errorf("cannot get federation by id: %v - alerts: %+v", err, fed.Alerts)
continue
Expand All @@ -158,12 +172,12 @@ func UpdateTestCDNFederations(t *testing.T) {

expectedCName := "new.cname."
fed.Response[0].CName = &expectedCName
resp, _, err := TOSession.UpdateCDNFederation(fed.Response[0], "foo", id, client.RequestOptions{})
resp, _, err := TOSession.UpdateCDNFederation(fed.Response[0], "cdn1", id, client.RequestOptions{})
if err != nil {
t.Errorf("cannot update federation by id: %v - alerts: %+v", err, resp.Alerts)
}

resp2, _, err := TOSession.GetCDNFederationsByName("foo", opts)
resp2, _, err := TOSession.GetCDNFederationsByName("cdn1", opts)
if err != nil {
t.Errorf("cannot get federation by id after update: %v - alerts: %+v", err, resp2.Alerts)
}
Expand All @@ -190,7 +204,7 @@ func GetTestCDNFederations(t *testing.T) {
opts := client.NewRequestOptions()
for _, id := range fedIDs {
opts.QueryParameters.Set("id", strconv.Itoa(id))
data, _, err := TOSession.GetCDNFederationsByName("foo", opts)
data, _, err := TOSession.GetCDNFederationsByName("cdn1", opts)
if err != nil {
t.Errorf("could not get federations: %v - alerts: %+v", err, data.Alerts)
}
Expand All @@ -204,7 +218,7 @@ func GetTestCDNFederationsIMS(t *testing.T) {
opts.Header.Set(rfc.IfModifiedSince, fmtFutureTime)
for _, id := range fedIDs {
opts.QueryParameters.Set("id", strconv.Itoa(id))
data, reqInf, err := TOSession.GetCDNFederationsByName("foo", opts)
data, reqInf, err := TOSession.GetCDNFederationsByName("cdn1", opts)
if err != nil {
t.Errorf("could not get federations: %v - alerts: %+v", err, data.Alerts)
}
Expand All @@ -219,7 +233,7 @@ func GetTestCDNFederationsIMS(t *testing.T) {
opts.Header.Set(rfc.IfModifiedSince, fmtPastTime)
for _, id := range fedIDs {
opts.QueryParameters.Set("id", strconv.Itoa(id))
data, reqInf, err := TOSession.GetCDNFederationsByName("foo", opts)
data, reqInf, err := TOSession.GetCDNFederationsByName("cdn1", opts)
if err != nil {
t.Errorf("could not get federations: %v - alerts: %+v", err, data.Alerts)
}
Expand Down Expand Up @@ -358,13 +372,13 @@ func GetTestFederationFederationResolvers(t *testing.T) {
func DeleteTestCDNFederations(t *testing.T) {
opts := client.NewRequestOptions()
for _, id := range fedIDs {
resp, _, err := TOSession.DeleteCDNFederation("foo", id, opts)
resp, _, err := TOSession.DeleteCDNFederation("cdn1", id, opts)
if err != nil {
t.Errorf("cannot delete federation #%d: %v - alerts: %+v", id, err, resp.Alerts)
}

opts.QueryParameters.Set("id", strconv.Itoa(id))
data, _, err := TOSession.GetCDNFederationsByName("foo", opts)
data, _, err := TOSession.GetCDNFederationsByName("cdn1", opts)
if len(data.Response) != 0 {
t.Error("expected federation to be deleted")
}
Expand Down
Loading