Skip to content
This repository has been archived by the owner on Sep 5, 2023. It is now read-only.

Commit

Permalink
Merge pull request #467 from alphagov/reinstate-es-six-seven-aa-test
Browse files Browse the repository at this point in the history
Reinstate ElasticSearch 6.7 AA test
  • Loading branch information
Rosa-Fox authored Aug 17, 2023
2 parents 5bff7b9 + dc963f6 commit 19cb40a
Show file tree
Hide file tree
Showing 12 changed files with 323 additions and 3 deletions.
5 changes: 4 additions & 1 deletion ab_tests/ab_tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,7 @@
- B
- BankHolidaysTest:
- A
- B
- B
- EsSixPointSeven:
- A
- B
3 changes: 2 additions & 1 deletion configs/dictionaries/ab_test_expiries.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,5 @@
# ExampleTest: 86400
---
Example: 86400
BankHolidaysTest: 86400
BankHolidaysTest: 86400
EsSixPointSeven: 604800
3 changes: 2 additions & 1 deletion configs/dictionaries/active_ab_tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@
# bucket allocations. See example_percentages.yaml for format.
---
Example: true
BankHolidaysTest: true
BankHolidaysTest: true
EsSixPointSeven: true
3 changes: 3 additions & 0 deletions configs/dictionaries/essixpointseven_percentages.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
A: 50
B: 50
39 changes: 39 additions & 0 deletions spec/test-outputs/www-eks-integration.out.vcl
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,39 @@ sub vcl_recv {
}
}
}
if (table.lookup(active_ab_tests, "EsSixPointSeven") == "true") {
if (req.http.User-Agent ~ "^GOV\.UK Crawler Worker") {
set req.http.GOVUK-ABTest-EsSixPointSeven = "A";
} else if (req.url ~ "[\?\&]ABTest-EsSixPointSeven=A(&|$)") {
# Some users, such as remote testers, will be given a URL with a query string
# to place them into a specific bucket.
set req.http.GOVUK-ABTest-EsSixPointSeven = "A";
} else if (req.url ~ "[\?\&]ABTest-EsSixPointSeven=B(&|$)") {
# Some users, such as remote testers, will be given a URL with a query string
# to place them into a specific bucket.
set req.http.GOVUK-ABTest-EsSixPointSeven = "B";
} else if (req.http.Cookie ~ "ABTest-EsSixPointSeven") {
# Set the value of the header to whatever decision was previously made
set req.http.GOVUK-ABTest-EsSixPointSeven = req.http.Cookie:ABTest-EsSixPointSeven;
set req.http.GOVUK-ABTest-EsSixPointSeven-Cookie = "sent_in_request";
} else {
declare local var.denominator_EsSixPointSeven INTEGER;
declare local var.denominator_EsSixPointSeven_A INTEGER;
declare local var.nominator_EsSixPointSeven_A INTEGER;
set var.nominator_EsSixPointSeven_A = std.atoi(table.lookup(essixpointseven_percentages, "A"));
set var.denominator_EsSixPointSeven += var.nominator_EsSixPointSeven_A;
declare local var.denominator_EsSixPointSeven_B INTEGER;
declare local var.nominator_EsSixPointSeven_B INTEGER;
set var.nominator_EsSixPointSeven_B = std.atoi(table.lookup(essixpointseven_percentages, "B"));
set var.denominator_EsSixPointSeven += var.nominator_EsSixPointSeven_B;
set var.denominator_EsSixPointSeven_A = var.denominator_EsSixPointSeven;
if (randombool(var.nominator_EsSixPointSeven_A, var.denominator_EsSixPointSeven_A)) {
set req.http.GOVUK-ABTest-EsSixPointSeven = "A";
} else {
set req.http.GOVUK-ABTest-EsSixPointSeven = "B";
}
}
}
}
# End dynamic section

Expand Down Expand Up @@ -391,6 +424,12 @@ if (req.http.Usage-Cookies-Opt-In == "true" && req.http.User-Agent !~ "^GOV\.UK
add resp.http.Set-Cookie = "ABTest-BankHolidaysTest=" req.http.GOVUK-ABTest-BankHolidaysTest "; secure; expires=" var.expiry "; path=/";
}
}
if (table.lookup(active_ab_tests, "EsSixPointSeven") == "true") {
if (req.http.GOVUK-ABTest-EsSixPointSeven-Cookie != "sent_in_request" || req.url ~ "[\?\&]ABTest-EsSixPointSeven") {
set var.expiry = time.add(now, std.integer2time(std.atoi(table.lookup(ab_test_expiries, "EsSixPointSeven"))));
add resp.http.Set-Cookie = "ABTest-EsSixPointSeven=" req.http.GOVUK-ABTest-EsSixPointSeven "; secure; expires=" var.expiry "; path=/";
}
}
}
# End dynamic section

Expand Down
39 changes: 39 additions & 0 deletions spec/test-outputs/www-eks-production.out.vcl
Original file line number Diff line number Diff line change
Expand Up @@ -402,6 +402,39 @@ sub vcl_recv {
}
}
}
if (table.lookup(active_ab_tests, "EsSixPointSeven") == "true") {
if (req.http.User-Agent ~ "^GOV\.UK Crawler Worker") {
set req.http.GOVUK-ABTest-EsSixPointSeven = "A";
} else if (req.url ~ "[\?\&]ABTest-EsSixPointSeven=A(&|$)") {
# Some users, such as remote testers, will be given a URL with a query string
# to place them into a specific bucket.
set req.http.GOVUK-ABTest-EsSixPointSeven = "A";
} else if (req.url ~ "[\?\&]ABTest-EsSixPointSeven=B(&|$)") {
# Some users, such as remote testers, will be given a URL with a query string
# to place them into a specific bucket.
set req.http.GOVUK-ABTest-EsSixPointSeven = "B";
} else if (req.http.Cookie ~ "ABTest-EsSixPointSeven") {
# Set the value of the header to whatever decision was previously made
set req.http.GOVUK-ABTest-EsSixPointSeven = req.http.Cookie:ABTest-EsSixPointSeven;
set req.http.GOVUK-ABTest-EsSixPointSeven-Cookie = "sent_in_request";
} else {
declare local var.denominator_EsSixPointSeven INTEGER;
declare local var.denominator_EsSixPointSeven_A INTEGER;
declare local var.nominator_EsSixPointSeven_A INTEGER;
set var.nominator_EsSixPointSeven_A = std.atoi(table.lookup(essixpointseven_percentages, "A"));
set var.denominator_EsSixPointSeven += var.nominator_EsSixPointSeven_A;
declare local var.denominator_EsSixPointSeven_B INTEGER;
declare local var.nominator_EsSixPointSeven_B INTEGER;
set var.nominator_EsSixPointSeven_B = std.atoi(table.lookup(essixpointseven_percentages, "B"));
set var.denominator_EsSixPointSeven += var.nominator_EsSixPointSeven_B;
set var.denominator_EsSixPointSeven_A = var.denominator_EsSixPointSeven;
if (randombool(var.nominator_EsSixPointSeven_A, var.denominator_EsSixPointSeven_A)) {
set req.http.GOVUK-ABTest-EsSixPointSeven = "A";
} else {
set req.http.GOVUK-ABTest-EsSixPointSeven = "B";
}
}
}
}
# End dynamic section

Expand Down Expand Up @@ -563,6 +596,12 @@ if (req.http.Usage-Cookies-Opt-In == "true" && req.http.User-Agent !~ "^GOV\.UK
add resp.http.Set-Cookie = "ABTest-BankHolidaysTest=" req.http.GOVUK-ABTest-BankHolidaysTest "; secure; expires=" var.expiry "; path=/";
}
}
if (table.lookup(active_ab_tests, "EsSixPointSeven") == "true") {
if (req.http.GOVUK-ABTest-EsSixPointSeven-Cookie != "sent_in_request" || req.url ~ "[\?\&]ABTest-EsSixPointSeven") {
set var.expiry = time.add(now, std.integer2time(std.atoi(table.lookup(ab_test_expiries, "EsSixPointSeven"))));
add resp.http.Set-Cookie = "ABTest-EsSixPointSeven=" req.http.GOVUK-ABTest-EsSixPointSeven "; secure; expires=" var.expiry "; path=/";
}
}
}
# End dynamic section

Expand Down
39 changes: 39 additions & 0 deletions spec/test-outputs/www-eks-staging.out.vcl
Original file line number Diff line number Diff line change
Expand Up @@ -402,6 +402,39 @@ sub vcl_recv {
}
}
}
if (table.lookup(active_ab_tests, "EsSixPointSeven") == "true") {
if (req.http.User-Agent ~ "^GOV\.UK Crawler Worker") {
set req.http.GOVUK-ABTest-EsSixPointSeven = "A";
} else if (req.url ~ "[\?\&]ABTest-EsSixPointSeven=A(&|$)") {
# Some users, such as remote testers, will be given a URL with a query string
# to place them into a specific bucket.
set req.http.GOVUK-ABTest-EsSixPointSeven = "A";
} else if (req.url ~ "[\?\&]ABTest-EsSixPointSeven=B(&|$)") {
# Some users, such as remote testers, will be given a URL with a query string
# to place them into a specific bucket.
set req.http.GOVUK-ABTest-EsSixPointSeven = "B";
} else if (req.http.Cookie ~ "ABTest-EsSixPointSeven") {
# Set the value of the header to whatever decision was previously made
set req.http.GOVUK-ABTest-EsSixPointSeven = req.http.Cookie:ABTest-EsSixPointSeven;
set req.http.GOVUK-ABTest-EsSixPointSeven-Cookie = "sent_in_request";
} else {
declare local var.denominator_EsSixPointSeven INTEGER;
declare local var.denominator_EsSixPointSeven_A INTEGER;
declare local var.nominator_EsSixPointSeven_A INTEGER;
set var.nominator_EsSixPointSeven_A = std.atoi(table.lookup(essixpointseven_percentages, "A"));
set var.denominator_EsSixPointSeven += var.nominator_EsSixPointSeven_A;
declare local var.denominator_EsSixPointSeven_B INTEGER;
declare local var.nominator_EsSixPointSeven_B INTEGER;
set var.nominator_EsSixPointSeven_B = std.atoi(table.lookup(essixpointseven_percentages, "B"));
set var.denominator_EsSixPointSeven += var.nominator_EsSixPointSeven_B;
set var.denominator_EsSixPointSeven_A = var.denominator_EsSixPointSeven;
if (randombool(var.nominator_EsSixPointSeven_A, var.denominator_EsSixPointSeven_A)) {
set req.http.GOVUK-ABTest-EsSixPointSeven = "A";
} else {
set req.http.GOVUK-ABTest-EsSixPointSeven = "B";
}
}
}
}
# End dynamic section

Expand Down Expand Up @@ -563,6 +596,12 @@ if (req.http.Usage-Cookies-Opt-In == "true" && req.http.User-Agent !~ "^GOV\.UK
add resp.http.Set-Cookie = "ABTest-BankHolidaysTest=" req.http.GOVUK-ABTest-BankHolidaysTest "; secure; expires=" var.expiry "; path=/";
}
}
if (table.lookup(active_ab_tests, "EsSixPointSeven") == "true") {
if (req.http.GOVUK-ABTest-EsSixPointSeven-Cookie != "sent_in_request" || req.url ~ "[\?\&]ABTest-EsSixPointSeven") {
set var.expiry = time.add(now, std.integer2time(std.atoi(table.lookup(ab_test_expiries, "EsSixPointSeven"))));
add resp.http.Set-Cookie = "ABTest-EsSixPointSeven=" req.http.GOVUK-ABTest-EsSixPointSeven "; secure; expires=" var.expiry "; path=/";
}
}
}
# End dynamic section

Expand Down
39 changes: 39 additions & 0 deletions spec/test-outputs/www-eks-test.out.vcl
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,39 @@ sub vcl_recv {
}
}
}
if (table.lookup(active_ab_tests, "EsSixPointSeven") == "true") {
if (req.http.User-Agent ~ "^GOV\.UK Crawler Worker") {
set req.http.GOVUK-ABTest-EsSixPointSeven = "A";
} else if (req.url ~ "[\?\&]ABTest-EsSixPointSeven=A(&|$)") {
# Some users, such as remote testers, will be given a URL with a query string
# to place them into a specific bucket.
set req.http.GOVUK-ABTest-EsSixPointSeven = "A";
} else if (req.url ~ "[\?\&]ABTest-EsSixPointSeven=B(&|$)") {
# Some users, such as remote testers, will be given a URL with a query string
# to place them into a specific bucket.
set req.http.GOVUK-ABTest-EsSixPointSeven = "B";
} else if (req.http.Cookie ~ "ABTest-EsSixPointSeven") {
# Set the value of the header to whatever decision was previously made
set req.http.GOVUK-ABTest-EsSixPointSeven = req.http.Cookie:ABTest-EsSixPointSeven;
set req.http.GOVUK-ABTest-EsSixPointSeven-Cookie = "sent_in_request";
} else {
declare local var.denominator_EsSixPointSeven INTEGER;
declare local var.denominator_EsSixPointSeven_A INTEGER;
declare local var.nominator_EsSixPointSeven_A INTEGER;
set var.nominator_EsSixPointSeven_A = std.atoi(table.lookup(essixpointseven_percentages, "A"));
set var.denominator_EsSixPointSeven += var.nominator_EsSixPointSeven_A;
declare local var.denominator_EsSixPointSeven_B INTEGER;
declare local var.nominator_EsSixPointSeven_B INTEGER;
set var.nominator_EsSixPointSeven_B = std.atoi(table.lookup(essixpointseven_percentages, "B"));
set var.denominator_EsSixPointSeven += var.nominator_EsSixPointSeven_B;
set var.denominator_EsSixPointSeven_A = var.denominator_EsSixPointSeven;
if (randombool(var.nominator_EsSixPointSeven_A, var.denominator_EsSixPointSeven_A)) {
set req.http.GOVUK-ABTest-EsSixPointSeven = "A";
} else {
set req.http.GOVUK-ABTest-EsSixPointSeven = "B";
}
}
}
}
# End dynamic section

Expand Down Expand Up @@ -391,6 +424,12 @@ if (req.http.Usage-Cookies-Opt-In == "true" && req.http.User-Agent !~ "^GOV\.UK
add resp.http.Set-Cookie = "ABTest-BankHolidaysTest=" req.http.GOVUK-ABTest-BankHolidaysTest "; secure; expires=" var.expiry "; path=/";
}
}
if (table.lookup(active_ab_tests, "EsSixPointSeven") == "true") {
if (req.http.GOVUK-ABTest-EsSixPointSeven-Cookie != "sent_in_request" || req.url ~ "[\?\&]ABTest-EsSixPointSeven") {
set var.expiry = time.add(now, std.integer2time(std.atoi(table.lookup(ab_test_expiries, "EsSixPointSeven"))));
add resp.http.Set-Cookie = "ABTest-EsSixPointSeven=" req.http.GOVUK-ABTest-EsSixPointSeven "; secure; expires=" var.expiry "; path=/";
}
}
}
# End dynamic section

Expand Down
39 changes: 39 additions & 0 deletions spec/test-outputs/www-integration.out.vcl
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,39 @@ sub vcl_recv {
}
}
}
if (table.lookup(active_ab_tests, "EsSixPointSeven") == "true") {
if (req.http.User-Agent ~ "^GOV\.UK Crawler Worker") {
set req.http.GOVUK-ABTest-EsSixPointSeven = "A";
} else if (req.url ~ "[\?\&]ABTest-EsSixPointSeven=A(&|$)") {
# Some users, such as remote testers, will be given a URL with a query string
# to place them into a specific bucket.
set req.http.GOVUK-ABTest-EsSixPointSeven = "A";
} else if (req.url ~ "[\?\&]ABTest-EsSixPointSeven=B(&|$)") {
# Some users, such as remote testers, will be given a URL with a query string
# to place them into a specific bucket.
set req.http.GOVUK-ABTest-EsSixPointSeven = "B";
} else if (req.http.Cookie ~ "ABTest-EsSixPointSeven") {
# Set the value of the header to whatever decision was previously made
set req.http.GOVUK-ABTest-EsSixPointSeven = req.http.Cookie:ABTest-EsSixPointSeven;
set req.http.GOVUK-ABTest-EsSixPointSeven-Cookie = "sent_in_request";
} else {
declare local var.denominator_EsSixPointSeven INTEGER;
declare local var.denominator_EsSixPointSeven_A INTEGER;
declare local var.nominator_EsSixPointSeven_A INTEGER;
set var.nominator_EsSixPointSeven_A = std.atoi(table.lookup(essixpointseven_percentages, "A"));
set var.denominator_EsSixPointSeven += var.nominator_EsSixPointSeven_A;
declare local var.denominator_EsSixPointSeven_B INTEGER;
declare local var.nominator_EsSixPointSeven_B INTEGER;
set var.nominator_EsSixPointSeven_B = std.atoi(table.lookup(essixpointseven_percentages, "B"));
set var.denominator_EsSixPointSeven += var.nominator_EsSixPointSeven_B;
set var.denominator_EsSixPointSeven_A = var.denominator_EsSixPointSeven;
if (randombool(var.nominator_EsSixPointSeven_A, var.denominator_EsSixPointSeven_A)) {
set req.http.GOVUK-ABTest-EsSixPointSeven = "A";
} else {
set req.http.GOVUK-ABTest-EsSixPointSeven = "B";
}
}
}
}
# End dynamic section

Expand Down Expand Up @@ -391,6 +424,12 @@ if (req.http.Usage-Cookies-Opt-In == "true" && req.http.User-Agent !~ "^GOV\.UK
add resp.http.Set-Cookie = "ABTest-BankHolidaysTest=" req.http.GOVUK-ABTest-BankHolidaysTest "; secure; expires=" var.expiry "; path=/";
}
}
if (table.lookup(active_ab_tests, "EsSixPointSeven") == "true") {
if (req.http.GOVUK-ABTest-EsSixPointSeven-Cookie != "sent_in_request" || req.url ~ "[\?\&]ABTest-EsSixPointSeven") {
set var.expiry = time.add(now, std.integer2time(std.atoi(table.lookup(ab_test_expiries, "EsSixPointSeven"))));
add resp.http.Set-Cookie = "ABTest-EsSixPointSeven=" req.http.GOVUK-ABTest-EsSixPointSeven "; secure; expires=" var.expiry "; path=/";
}
}
}
# End dynamic section

Expand Down
39 changes: 39 additions & 0 deletions spec/test-outputs/www-production.out.vcl
Original file line number Diff line number Diff line change
Expand Up @@ -394,6 +394,39 @@ sub vcl_recv {
}
}
}
if (table.lookup(active_ab_tests, "EsSixPointSeven") == "true") {
if (req.http.User-Agent ~ "^GOV\.UK Crawler Worker") {
set req.http.GOVUK-ABTest-EsSixPointSeven = "A";
} else if (req.url ~ "[\?\&]ABTest-EsSixPointSeven=A(&|$)") {
# Some users, such as remote testers, will be given a URL with a query string
# to place them into a specific bucket.
set req.http.GOVUK-ABTest-EsSixPointSeven = "A";
} else if (req.url ~ "[\?\&]ABTest-EsSixPointSeven=B(&|$)") {
# Some users, such as remote testers, will be given a URL with a query string
# to place them into a specific bucket.
set req.http.GOVUK-ABTest-EsSixPointSeven = "B";
} else if (req.http.Cookie ~ "ABTest-EsSixPointSeven") {
# Set the value of the header to whatever decision was previously made
set req.http.GOVUK-ABTest-EsSixPointSeven = req.http.Cookie:ABTest-EsSixPointSeven;
set req.http.GOVUK-ABTest-EsSixPointSeven-Cookie = "sent_in_request";
} else {
declare local var.denominator_EsSixPointSeven INTEGER;
declare local var.denominator_EsSixPointSeven_A INTEGER;
declare local var.nominator_EsSixPointSeven_A INTEGER;
set var.nominator_EsSixPointSeven_A = std.atoi(table.lookup(essixpointseven_percentages, "A"));
set var.denominator_EsSixPointSeven += var.nominator_EsSixPointSeven_A;
declare local var.denominator_EsSixPointSeven_B INTEGER;
declare local var.nominator_EsSixPointSeven_B INTEGER;
set var.nominator_EsSixPointSeven_B = std.atoi(table.lookup(essixpointseven_percentages, "B"));
set var.denominator_EsSixPointSeven += var.nominator_EsSixPointSeven_B;
set var.denominator_EsSixPointSeven_A = var.denominator_EsSixPointSeven;
if (randombool(var.nominator_EsSixPointSeven_A, var.denominator_EsSixPointSeven_A)) {
set req.http.GOVUK-ABTest-EsSixPointSeven = "A";
} else {
set req.http.GOVUK-ABTest-EsSixPointSeven = "B";
}
}
}
}
# End dynamic section

Expand Down Expand Up @@ -555,6 +588,12 @@ if (req.http.Usage-Cookies-Opt-In == "true" && req.http.User-Agent !~ "^GOV\.UK
add resp.http.Set-Cookie = "ABTest-BankHolidaysTest=" req.http.GOVUK-ABTest-BankHolidaysTest "; secure; expires=" var.expiry "; path=/";
}
}
if (table.lookup(active_ab_tests, "EsSixPointSeven") == "true") {
if (req.http.GOVUK-ABTest-EsSixPointSeven-Cookie != "sent_in_request" || req.url ~ "[\?\&]ABTest-EsSixPointSeven") {
set var.expiry = time.add(now, std.integer2time(std.atoi(table.lookup(ab_test_expiries, "EsSixPointSeven"))));
add resp.http.Set-Cookie = "ABTest-EsSixPointSeven=" req.http.GOVUK-ABTest-EsSixPointSeven "; secure; expires=" var.expiry "; path=/";
}
}
}
# End dynamic section

Expand Down
Loading

0 comments on commit 19cb40a

Please sign in to comment.