You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficcontrol.apache.org by el...@apache.org on 2018/05/29 15:10:17 UTC

[incubator-trafficcontrol] 01/03: update default TO routes in TR to 1.3

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

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

commit 7c136eebf3c8a2cb52f7be3d24c6b993650b3e47
Author: Jesse Rivas <je...@comcast.com>
AuthorDate: Tue May 22 14:41:43 2018 -0600

    update default TO routes in TR to 1.3
---
 .../traffic_router/core/dns/SignatureManager.java  |  2 +-
 .../traffic_router/core/ds/SteeringWatcher.java    |  2 +-
 .../core/loc/FederationsWatcher.java               |  2 +-
 .../core/secure/CertificatesClient.java            |  2 +-
 .../traffic_router/core/util/TrafficOpsUtils.java  |  2 +-
 .../core/external/ConsistentHashTest.java          |  2 +-
 .../core/external/HttpDataServer.java              |  8 +-
 .../traffic_router/core/external/RouterTest.java   |  2 +-
 .../traffic_router/core/external/SteeringTest.java |  4 +-
 .../1.3/cdns/name/thecdn/sslkeys-missing-1.json    | 31 ++++++++
 .../api/1.3/cdns/name/thecdn/sslkeys.json          | 40 ++++++++++
 .../resources/internal/api/1.3/federations.json    | 31 ++++++++
 .../test/resources/internal/api/1.3/steering.json  | 88 ++++++++++++++++++++++
 .../test/resources/internal/api/1.3/steering2.json | 34 +++++++++
 14 files changed, 237 insertions(+), 13 deletions(-)

diff --git a/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/dns/SignatureManager.java b/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/dns/SignatureManager.java
index e6a0c19..e19a9d9 100644
--- a/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/dns/SignatureManager.java
+++ b/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/dns/SignatureManager.java
@@ -211,7 +211,7 @@ public final class SignatureManager {
 		final ObjectMapper mapper = new ObjectMapper();
 
 		try {
-			final String keyUrl = trafficOpsUtils.getUrl("keystore.api.url", "https://${toHostname}/api/1.1/cdns/name/${cdnName}/dnsseckeys.json");
+			final String keyUrl = trafficOpsUtils.getUrl("keystore.api.url", "https://${toHostname}/api/1.3/cdns/name/${cdnName}/dnsseckeys.json");
 			final JsonNode config = cacheRegister.getConfig();
 			final int timeout = JsonUtils.optInt(config, "keystore.fetch.timeout", 30000); // socket timeouts are in ms
 			final int retries = JsonUtils.optInt(config, "keystore.fetch.retries", 5);
diff --git a/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/ds/SteeringWatcher.java b/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/ds/SteeringWatcher.java
index 74b0c4b..e8f5192 100644
--- a/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/ds/SteeringWatcher.java
+++ b/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/ds/SteeringWatcher.java
@@ -22,7 +22,7 @@ public class SteeringWatcher extends AbstractResourceWatcher {
 	private static final Logger LOGGER = Logger.getLogger(SteeringWatcher.class);
 	private SteeringRegistry steeringRegistry;
 
-	public static final String DEFAULT_STEERING_DATA_URL = "https://${toHostname}/internal/api/1.2/steering.json";
+	public static final String DEFAULT_STEERING_DATA_URL = "https://${toHostname}/internal/api/1.3/steering.json";
 
 	public SteeringWatcher() {
 		setDatabaseUrl(DEFAULT_STEERING_DATA_URL);
diff --git a/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/loc/FederationsWatcher.java b/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/loc/FederationsWatcher.java
index 58988e9..0c953f8 100644
--- a/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/loc/FederationsWatcher.java
+++ b/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/loc/FederationsWatcher.java
@@ -22,7 +22,7 @@ public class FederationsWatcher extends AbstractResourceWatcher {
     private static final Logger LOGGER = Logger.getLogger(FederationsWatcher.class);
     private FederationRegistry federationRegistry;
 
-    public static final String DEFAULT_FEDERATION_DATA_URL = "https://${toHostname}/internal/api/1.2/federations.json";
+    public static final String DEFAULT_FEDERATION_DATA_URL = "https://${toHostname}/internal/api/1.3/federations.json";
     public FederationsWatcher() {
         setDatabaseUrl(DEFAULT_FEDERATION_DATA_URL);
     }
diff --git a/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/secure/CertificatesClient.java b/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/secure/CertificatesClient.java
index ae4525d..fd2a716 100644
--- a/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/secure/CertificatesClient.java
+++ b/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/secure/CertificatesClient.java
@@ -76,7 +76,7 @@ public class CertificatesClient {
 			}
 		}
 
-		final String certificatesUrl = trafficOpsUtils.getUrl("certificate.api.url", "https://${toHostname}/api/1.2/cdns/name/${cdnName}/sslkeys.json");
+		final String certificatesUrl = trafficOpsUtils.getUrl("certificate.api.url", "https://${toHostname}/api/1.3/cdns/name/${cdnName}/sslkeys.json");
 
 		try {
 			final ProtectedFetcher fetcher = new ProtectedFetcher(trafficOpsUtils.getAuthUrl(), trafficOpsUtils.getAuthJSON().toString(), 15000);
diff --git a/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/util/TrafficOpsUtils.java b/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/util/TrafficOpsUtils.java
index e3c8c57..781d009 100644
--- a/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/util/TrafficOpsUtils.java
+++ b/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/util/TrafficOpsUtils.java
@@ -53,7 +53,7 @@ public class TrafficOpsUtils {
 	}
 
 	public String getAuthUrl() {
-		return getUrl("api.auth.url", "https://${toHostname}/api/1.1/user/login");
+		return getUrl("api.auth.url", "https://${toHostname}/api/1.3/user/login");
 	}
 
 	public String getUsername() {
diff --git a/traffic_router/core/src/test/java/com/comcast/cdn/traffic_control/traffic_router/core/external/ConsistentHashTest.java b/traffic_router/core/src/test/java/com/comcast/cdn/traffic_control/traffic_router/core/external/ConsistentHashTest.java
index e6b6859..4a1e1ba 100644
--- a/traffic_router/core/src/test/java/com/comcast/cdn/traffic_control/traffic_router/core/external/ConsistentHashTest.java
+++ b/traffic_router/core/src/test/java/com/comcast/cdn/traffic_control/traffic_router/core/external/ConsistentHashTest.java
@@ -56,7 +56,7 @@ public class ConsistentHashTest {
 	public void before() throws Exception {
 		closeableHttpClient = HttpClientBuilder.create().build();
 
-		String resourcePath = "internal/api/1.2/steering.json";
+		String resourcePath = "internal/api/1.3/steering.json";
 		InputStream inputStream = getClass().getClassLoader().getResourceAsStream(resourcePath);
 
 		if (inputStream == null) {
diff --git a/traffic_router/core/src/test/java/com/comcast/cdn/traffic_control/traffic_router/core/external/HttpDataServer.java b/traffic_router/core/src/test/java/com/comcast/cdn/traffic_control/traffic_router/core/external/HttpDataServer.java
index 3929a7a..553130e 100644
--- a/traffic_router/core/src/test/java/com/comcast/cdn/traffic_control/traffic_router/core/external/HttpDataServer.java
+++ b/traffic_router/core/src/test/java/com/comcast/cdn/traffic_control/traffic_router/core/external/HttpDataServer.java
@@ -119,7 +119,7 @@ public class HttpDataServer implements HttpHandler {
 					path += ".json";
 				}
 
-				if ("api/1.1/user/login".equals(path)) {
+				if ("api/1.3/user/login".equals(path)) {
 					try {
 						Headers headers = httpExchange.getResponseHeaders();
 						headers.set("Set-Cookie", new HttpCookie("mojolicious","fake-cookie").toString());
@@ -130,12 +130,12 @@ public class HttpDataServer implements HttpHandler {
 				}
 
 				// Pretend that someone externally changed steering.json data
-				if (receivedSteeringPost && "internal/api/1.2/steering.json".equals(path)) {
-					path = "internal/api/1.2/steering2.json";
+				if (receivedSteeringPost && "internal/api/1.3/steering.json".equals(path)) {
+					path = "internal/api/1.3/steering2.json";
 				}
 
 				// pretend certificates have not been updated
-				if (!receivedCertificatesPost && "api/1.2/cdns/name/thecdn/sslkeys.json".equals(path)) {
+				if (!receivedCertificatesPost && "api/1.3/cdns/name/thecdn/sslkeys.json".equals(path)) {
 					path = path.replace("/sslkeys.json", "/sslkeys-missing-1.json");
 				}
 
diff --git a/traffic_router/core/src/test/java/com/comcast/cdn/traffic_control/traffic_router/core/external/RouterTest.java b/traffic_router/core/src/test/java/com/comcast/cdn/traffic_control/traffic_router/core/external/RouterTest.java
index 08aae21..38790b4 100644
--- a/traffic_router/core/src/test/java/com/comcast/cdn/traffic_control/traffic_router/core/external/RouterTest.java
+++ b/traffic_router/core/src/test/java/com/comcast/cdn/traffic_control/traffic_router/core/external/RouterTest.java
@@ -107,7 +107,7 @@ public class RouterTest {
 	public void before() throws Exception {
 		ObjectMapper objectMapper = new ObjectMapper(new JsonFactory());
 
-		String resourcePath = "internal/api/1.2/steering.json";
+		String resourcePath = "internal/api/1.3/steering.json";
 		InputStream inputStream = getClass().getClassLoader().getResourceAsStream(resourcePath);
 
 		if (inputStream == null) {
diff --git a/traffic_router/core/src/test/java/com/comcast/cdn/traffic_control/traffic_router/core/external/SteeringTest.java b/traffic_router/core/src/test/java/com/comcast/cdn/traffic_control/traffic_router/core/external/SteeringTest.java
index b71f909..7856457 100644
--- a/traffic_router/core/src/test/java/com/comcast/cdn/traffic_control/traffic_router/core/external/SteeringTest.java
+++ b/traffic_router/core/src/test/java/com/comcast/cdn/traffic_control/traffic_router/core/external/SteeringTest.java
@@ -137,7 +137,7 @@ public class SteeringTest {
 
 	@Before
 	public void before() throws Exception {
-		steeringDeliveryServiceId = setupSteering(targetDomains, targetWeights, "internal/api/1.2/steering.json");
+		steeringDeliveryServiceId = setupSteering(targetDomains, targetWeights, "internal/api/1.3/steering.json");
 		setupCrConfig();
 
 		httpClient = HttpClientBuilder.create().disableRedirectHandling().build();
@@ -268,7 +268,7 @@ public class SteeringTest {
 		Map<String, String> domains = new HashMap<>();
 		Map<String, Integer> weights = new HashMap<>();
 
-		setupSteering(domains, weights, "internal/api/1.2/steering2.json");
+		setupSteering(domains, weights, "internal/api/1.3/steering2.json");
 
 		List<String> randomPaths = new ArrayList<>();
 
diff --git a/traffic_router/core/src/test/resources/api/1.3/cdns/name/thecdn/sslkeys-missing-1.json b/traffic_router/core/src/test/resources/api/1.3/cdns/name/thecdn/sslkeys-missing-1.json
new file mode 100644
index 0000000..2d6c882
--- /dev/null
+++ b/traffic_router/core/src/test/resources/api/1.3/cdns/name/thecdn/sslkeys-missing-1.json
@@ -0,0 +1,31 @@
+{
+  "response": [
+    {
+      "deliveryservice": "https-only-test",
+      "certificate": {
+        "comment" : "The following is a primary and intermediate certificate bundle, the testing root CA is in resources/keystore.jks and loaded by RouterTest",
+        "key": "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcFFJQkFBS0NBUUVBNlpHT2JBVTZ3\nb2xsbWFUTnJ2MTRyZkJpdkp3TzBkK0dVQkhHNFNPL2txQXVrajhwCkJ0MDNNN3R6VjlFbmljRm03\nZWJSbG1TaHdUUHNiVVlubmxRYmE4dFVGd1Q5TXAwQnJPbW5wNVZTViswd0ppWEEKa3NQN2ZhMTVj\nRnVLRGxzQ2dWMFo0TnVYc3VlSVE1aGhPNzh3dVJZTHY3bXVDQkQvQmVYS1BzM2VKOGRQdzJibwpx\nc1NqaXkwWmlnRkVwMkxlSkl3M1huNGpKbi9BeHphRXBsRFp3VlljVndoRSsvVzl2ZnI4NGRIcExC\nYzN6TkFWCnRHblpFMUoxRy9EYlptV0lQaEJLUGdoaDBac2RVcEx2aVY3dXF0cDlQRktUOHBTamZS\nOStBM0d2 [...]
+        "crt": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZtekNDQTRPZ0F3SUJBZ0lDRUFJd0RRWUpL\nb1pJaHZjTkFRRUxCUUF3WkRFTE1Ba0dBMVVFQmhNQ1ZWTXgKRVRBUEJnTlZCQWdNQ0VOdmJHOXlZ\nV1J2TVJBd0RnWURWUVFLREFkRGIyMWpZWE4wTVE0d0RBWURWUVFMREFWSgpVRU5FVGpFZ01CNEdB\nMVVFQXd3WFZHVnpkR2x1WnlCSmJuUmxjbTFsWkdsaGRHVWdRMEV3SGhjTk1UWXdPVEl6Ck1qSTBN\nek00V2hjTk16VXhNVEl6TWpJME16TTRXakNCZ2pFTE1Ba0dBMVVFQmhNQ1ZWTXhFVEFQQmdOVkJB\nZ1QKQ0VOdmJHOXlZV1J2TVE4d0RRWURWUVFIRXdaRVpXNTJaWEl4RURBT0JnTlZCQW9UQjBOdmJX\nTmhjM1F4 [...]
+      },
+      "hostname": "*.https-only-test.thecdn.example.com"
+    },
+    {
+      "deliveryservice": "http-and-https-test",
+      "certificate": {
+        "comment" : "The following is just a self signed certificate and key to use for testing this is NOT private data from a CA",
+        "key": "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBMHBBWXlmamRz\nZ0NSL0ZXeEQvWE1vbDNwYjRWazlHSFdqTnR4bkdvWHA3OGxxM2p1CitLd012ZlU2ZDVScmdXbHp6\nMlJjZnFhMHdjbkYrNU1abkdkbzRGaGwycnhnT3ZBV2NSb3ZXS3BUaXNUUkcrQXcKbnFneUZTWjNT\nalhUcE9YUjV4dUJJOWI1c3ZIN3RhbzdBcWFLR2I0V3d1TnA3cTZzcUtRYlRxaUlXcE9JQWtFKwpS\nVnJXblBVdHRvaHlTV08yL2dIbDQ2NlU1S0czdC9TU3lqZVRPZ1ZFU0xoQUhlWlk2dExyTGd1YmdM\nanlLVWE5CkpDcWJLa1laZ2UrdWlhKzVVMzZ6alhYRUdBUEdwWWNrM2Zqb1pYN01zM3hkUzV6Zit6\nUDQzSnVV [...]
+        "crt": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZuekNDQTRlZ0F3SUJBZ0lDRUFBd0RRWUpL\nb1pJaHZjTkFRRUxCUUF3WkRFTE1Ba0dBMVVFQmhNQ1ZWTXgKRVRBUEJnTlZCQWdNQ0VOdmJHOXlZ\nV1J2TVJBd0RnWURWUVFLREFkRGIyMWpZWE4wTVE0d0RBWURWUVFMREFWSgpVRU5FVGpFZ01CNEdB\nMVVFQXd3WFZHVnpkR2x1WnlCSmJuUmxjbTFsWkdsaGRHVWdRMEV3SGhjTk1UWXdPVEl6Ck1qRXlN\nRFF5V2hjTk16VXhNVEl6TWpFeU1EUXlXakNCaGpFTE1Ba0dBMVVFQmhNQ1ZWTXhFVEFQQmdOVkJB\nZ00KQ0VOdmJHOXlZV1J2TVE4d0RRWURWUVFIREFaRVpXNTJaWEl4RURBT0JnTlZCQW9NQjBOdmJX\nTmhjM1F4 [...]
+      },
+      "hostname": "*.http-and-https-test.thecdn.example.com"
+    },
+    {
+      "deliveryservice": "http-to-https-test",
+      "certificate": {
+        "comment" : "The following is just a self signed certificate and key to use for testing this is NOT private data from a CA",
+        "key": "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb2dJQkFBS0NBUUVBc2Y0NnV5OGJ2\nQk5rMGhCaEVsbHdGT0dqREh6M1hJY1hteDRVNThNZG9Fa1JId0VTCjVONnd3NFV6bDAvRDcyMlJV\nODlMeHB4bldvclJmdVZNQldnOGVFcXBUb2NUS2NOZHhtZmdEUWZTcTZ1ODNTWkUKTmFCZFArK2g5\nYTJJRFZXWGFldVRhcVA3Q3lVVG52Sld5Mm1JalJWZkRGQWRWWHNhU1M4RGRYUWdibEJTelJ6NwpL\nMXFHVWt1RlZQc0R0ODZBYVF3TnN5R2ZDN3ltcUkzNU1FQ3hTdzNPd2lXSlAyZTg3U2E5UG9Pdjcr\nZUs2NVJnCmM3dzNkSXQxZUlyS3B6OWpQV1RPTkJOK0JhWFdvcHNXZ3UvdVd4Q1pnUk9qaXBWVUFK\nNHhrNFRG [...]
+        "crt": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZuakNDQTRhZ0F3SUJBZ0lDRUFFd0RRWUpL\nb1pJaHZjTkFRRUxCUUF3WkRFTE1Ba0dBMVVFQmhNQ1ZWTXgKRVRBUEJnTlZCQWdNQ0VOdmJHOXlZ\nV1J2TVJBd0RnWURWUVFLREFkRGIyMWpZWE4wTVE0d0RBWURWUVFMREFWSgpVRU5FVGpFZ01CNEdB\nMVVFQXd3WFZHVnpkR2x1WnlCSmJuUmxjbTFsWkdsaGRHVWdRMEV3SGhjTk1UWXdPVEl6Ck1qSXpO\nREl4V2hjTk16VXhNVEl6TWpJek5ESXhXakNCaFRFTE1Ba0dBMVVFQmhNQ1ZWTXhFVEFQQmdOVkJB\nZ1QKQ0VOdmJHOXlZV1J2TVE4d0RRWURWUVFIRXdaRVpXNTJaWEl4RURBT0JnTlZCQW9UQjBOdmJX\nTmhjM1F4 [...]
+      },
+      "hostname": "*.http-to-https-test.thecdn.example.com"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/traffic_router/core/src/test/resources/api/1.3/cdns/name/thecdn/sslkeys.json b/traffic_router/core/src/test/resources/api/1.3/cdns/name/thecdn/sslkeys.json
new file mode 100644
index 0000000..4a73e8a
--- /dev/null
+++ b/traffic_router/core/src/test/resources/api/1.3/cdns/name/thecdn/sslkeys.json
@@ -0,0 +1,40 @@
+{
+  "response": [
+    {
+      "deliveryservice": "https-nocert",
+      "certificate": {
+        "comment" : "The following is just a self signed certificate and key to use for testing this is NOT private data from a CA",
+        "key": "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb3dJQkFBS0NBUUVBMTNESjAybUhY\nUHUyOEh0aEg0UzhVNlpIUjNLRmNmc25hSDZzTllEeWxEVkdTZFFoClhyejJYS3dzWVFzeC9lVTFu\nKzRKZTNHazhNZmJ1cnMzYjVyNWdwNTBvQloxMzNEczM2U0RBTyt6ejdMMHY1TEYKUGJPeHpSaHZq\nRlZJZFZramdzazRUUjFUYVlQNzBMT2p3b1ZkRExNb0RmNXRmZEMvYzFIdzVkd09ibFBHWkMrWApF\nTzREUG12azR3TmwweGFXVDdJbXN5ckJJU01ueUhBUElYQkwyREFHc0pYVXBvQjVhckNnbVNDNU41\nOTQ3Y0VpCjJRY2tIaDBWdWJlOUM5VytNbVUvT1VQTWc3TnVTTk55anlsZldzV2poSUZtUXBZUmo5\nWnppTGYx [...]
+        "crt": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZsekNDQTMrZ0F3SUJBZ0lDRUFNd0RRWUpL\nb1pJaHZjTkFRRUxCUUF3WkRFTE1Ba0dBMVVFQmhNQ1ZWTXgKRVRBUEJnTlZCQWdNQ0VOdmJHOXlZ\nV1J2TVJBd0RnWURWUVFLREFkRGIyMWpZWE4wTVE0d0RBWURWUVFMREFWSgpVRU5FVGpFZ01CNEdB\nMVVFQXd3WFZHVnpkR2x1WnlCSmJuUmxjbTFsWkdsaGRHVWdRMEV3SGhjTk1UWXdPVEl6Ck1qSTFN\nVE0wV2hjTk16VXhNVEl6TWpJMU1UTTBXakIvTVFzd0NRWURWUVFHRXdKVlV6RVJNQThHQTFVRUNC\nTUkKUTI5c2IzSmhaRzh4RHpBTkJnTlZCQWNUQmtSbGJuWmxjakVRTUE0R0ExVUVDaE1IUTI5dFky\nRnpkREVP [...]
+      },
+      "hostname": "*.https-nocert.thecdn.example.com"
+    },
+    {
+      "deliveryservice": "https-only-test",
+      "certificate": {
+        "comment" : "The following is a primary and intermediate certificate bundle, the testing root CA is in resources/keystore.jks and loaded by RouterTest",
+        "key": "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcFFJQkFBS0NBUUVBNlpHT2JBVTZ3\nb2xsbWFUTnJ2MTRyZkJpdkp3TzBkK0dVQkhHNFNPL2txQXVrajhwCkJ0MDNNN3R6VjlFbmljRm03\nZWJSbG1TaHdUUHNiVVlubmxRYmE4dFVGd1Q5TXAwQnJPbW5wNVZTViswd0ppWEEKa3NQN2ZhMTVj\nRnVLRGxzQ2dWMFo0TnVYc3VlSVE1aGhPNzh3dVJZTHY3bXVDQkQvQmVYS1BzM2VKOGRQdzJibwpx\nc1NqaXkwWmlnRkVwMkxlSkl3M1huNGpKbi9BeHphRXBsRFp3VlljVndoRSsvVzl2ZnI4NGRIcExC\nYzN6TkFWCnRHblpFMUoxRy9EYlptV0lQaEJLUGdoaDBac2RVcEx2aVY3dXF0cDlQRktUOHBTamZS\nOStBM0d2 [...]
+        "crt": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZtekNDQTRPZ0F3SUJBZ0lDRUFJd0RRWUpL\nb1pJaHZjTkFRRUxCUUF3WkRFTE1Ba0dBMVVFQmhNQ1ZWTXgKRVRBUEJnTlZCQWdNQ0VOdmJHOXlZ\nV1J2TVJBd0RnWURWUVFLREFkRGIyMWpZWE4wTVE0d0RBWURWUVFMREFWSgpVRU5FVGpFZ01CNEdB\nMVVFQXd3WFZHVnpkR2x1WnlCSmJuUmxjbTFsWkdsaGRHVWdRMEV3SGhjTk1UWXdPVEl6Ck1qSTBN\nek00V2hjTk16VXhNVEl6TWpJME16TTRXakNCZ2pFTE1Ba0dBMVVFQmhNQ1ZWTXhFVEFQQmdOVkJB\nZ1QKQ0VOdmJHOXlZV1J2TVE4d0RRWURWUVFIRXdaRVpXNTJaWEl4RURBT0JnTlZCQW9UQjBOdmJX\nTmhjM1F4 [...]
+      },
+      "hostname": "*.https-only-test.thecdn.example.com"
+    },
+    {
+      "deliveryservice": "http-and-https-test",
+      "certificate": {
+        "comment" : "The following is just a self signed certificate and key to use for testing this is NOT private data from a CA",
+        "key": "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBMHBBWXlmamRz\nZ0NSL0ZXeEQvWE1vbDNwYjRWazlHSFdqTnR4bkdvWHA3OGxxM2p1CitLd012ZlU2ZDVScmdXbHp6\nMlJjZnFhMHdjbkYrNU1abkdkbzRGaGwycnhnT3ZBV2NSb3ZXS3BUaXNUUkcrQXcKbnFneUZTWjNT\nalhUcE9YUjV4dUJJOWI1c3ZIN3RhbzdBcWFLR2I0V3d1TnA3cTZzcUtRYlRxaUlXcE9JQWtFKwpS\nVnJXblBVdHRvaHlTV08yL2dIbDQ2NlU1S0czdC9TU3lqZVRPZ1ZFU0xoQUhlWlk2dExyTGd1YmdM\nanlLVWE5CkpDcWJLa1laZ2UrdWlhKzVVMzZ6alhYRUdBUEdwWWNrM2Zqb1pYN01zM3hkUzV6Zit6\nUDQzSnVV [...]
+        "crt": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZuekNDQTRlZ0F3SUJBZ0lDRUFBd0RRWUpL\nb1pJaHZjTkFRRUxCUUF3WkRFTE1Ba0dBMVVFQmhNQ1ZWTXgKRVRBUEJnTlZCQWdNQ0VOdmJHOXlZ\nV1J2TVJBd0RnWURWUVFLREFkRGIyMWpZWE4wTVE0d0RBWURWUVFMREFWSgpVRU5FVGpFZ01CNEdB\nMVVFQXd3WFZHVnpkR2x1WnlCSmJuUmxjbTFsWkdsaGRHVWdRMEV3SGhjTk1UWXdPVEl6Ck1qRXlN\nRFF5V2hjTk16VXhNVEl6TWpFeU1EUXlXakNCaGpFTE1Ba0dBMVVFQmhNQ1ZWTXhFVEFQQmdOVkJB\nZ00KQ0VOdmJHOXlZV1J2TVE4d0RRWURWUVFIREFaRVpXNTJaWEl4RURBT0JnTlZCQW9NQjBOdmJX\nTmhjM1F4 [...]
+      },
+      "hostname": "*.http-and-https-test.thecdn.example.com"
+    },
+    {
+      "deliveryservice": "http-to-https-test",
+      "certificate": {
+        "comment" : "The following is just a self signed certificate and key to use for testing this is NOT private data from a CA",
+        "key": "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb2dJQkFBS0NBUUVBc2Y0NnV5OGJ2\nQk5rMGhCaEVsbHdGT0dqREh6M1hJY1hteDRVNThNZG9Fa1JId0VTCjVONnd3NFV6bDAvRDcyMlJV\nODlMeHB4bldvclJmdVZNQldnOGVFcXBUb2NUS2NOZHhtZmdEUWZTcTZ1ODNTWkUKTmFCZFArK2g5\nYTJJRFZXWGFldVRhcVA3Q3lVVG52Sld5Mm1JalJWZkRGQWRWWHNhU1M4RGRYUWdibEJTelJ6NwpL\nMXFHVWt1RlZQc0R0ODZBYVF3TnN5R2ZDN3ltcUkzNU1FQ3hTdzNPd2lXSlAyZTg3U2E5UG9Pdjcr\nZUs2NVJnCmM3dzNkSXQxZUlyS3B6OWpQV1RPTkJOK0JhWFdvcHNXZ3UvdVd4Q1pnUk9qaXBWVUFK\nNHhrNFRG [...]
+        "crt": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZuakNDQTRhZ0F3SUJBZ0lDRUFFd0RRWUpL\nb1pJaHZjTkFRRUxCUUF3WkRFTE1Ba0dBMVVFQmhNQ1ZWTXgKRVRBUEJnTlZCQWdNQ0VOdmJHOXlZ\nV1J2TVJBd0RnWURWUVFLREFkRGIyMWpZWE4wTVE0d0RBWURWUVFMREFWSgpVRU5FVGpFZ01CNEdB\nMVVFQXd3WFZHVnpkR2x1WnlCSmJuUmxjbTFsWkdsaGRHVWdRMEV3SGhjTk1UWXdPVEl6Ck1qSXpO\nREl4V2hjTk16VXhNVEl6TWpJek5ESXhXakNCaFRFTE1Ba0dBMVVFQmhNQ1ZWTXhFVEFQQmdOVkJB\nZ1QKQ0VOdmJHOXlZV1J2TVE4d0RRWURWUVFIRXdaRVpXNTJaWEl4RURBT0JnTlZCQW9UQjBOdmJX\nTmhjM1F4 [...]
+      },
+      "hostname": "*.http-to-https-test.thecdn.example.com"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/traffic_router/core/src/test/resources/internal/api/1.3/federations.json b/traffic_router/core/src/test/resources/internal/api/1.3/federations.json
new file mode 100644
index 0000000..6a43765
--- /dev/null
+++ b/traffic_router/core/src/test/resources/internal/api/1.3/federations.json
@@ -0,0 +1,31 @@
+{
+  "response": [
+    {
+      "mappings": [
+        {
+          "resolve4": [
+            "12.34.10.1/32",
+            "100.200.123.111/32",
+            "11.22.33.44/32"
+          ],
+          "ttl": "30",
+          "resolve6": [
+            "2001:dead:beef:164::2/128",
+            "fe80::202:b3ff:fe1e:8329/128",
+            "fe80::202:b3ff:fe1e:8330/128"
+          ],
+          "cname": "foo.kabletown.net."
+        },
+        {
+          "ttl": "30",
+          "cname": "www.google.com."
+        },
+        {
+          "ttl": "30",
+          "cname": "example.com."
+        }
+      ],
+      "deliveryService": "federation-test"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/traffic_router/core/src/test/resources/internal/api/1.3/steering.json b/traffic_router/core/src/test/resources/internal/api/1.3/steering.json
new file mode 100644
index 0000000..ccb9a31
--- /dev/null
+++ b/traffic_router/core/src/test/resources/internal/api/1.3/steering.json
@@ -0,0 +1,88 @@
+{
+  "response": [
+    {
+      "deliveryService": "steering-test-1",
+      "targets": [
+        {
+          "deliveryService": "steering-target-1",
+          "weight": "1000"
+        },
+        {
+          "deliveryService": "steering-target-2",
+          "weight": "9000"
+        }
+      ],
+      "filters" :[
+        { "pattern" : ".*/force-to-target-1/.*", "deliveryService" : "steering-target-1"},
+        { "pattern" : ".*/force-to-target-2/.*", "deliveryService" : "steering-target-2"}
+      ]
+    },
+    {
+      "deliveryService": "steering-test-2",
+      "targets": [
+        {
+          "deliveryService": "steering-target-3",
+          "weight": "60000"
+        },
+        {
+          "deliveryService": "steering-target-4",
+          "weight": "45000"
+        }
+      ]
+    },
+    {
+      "deliveryService": "client-steering-test-1",
+      "targets": [
+        {
+          "deliveryService": "client-steering-target-1",
+          "weight": "5000"
+        },
+        {
+          "deliveryService": "client-steering-target-2",
+          "weight": "5000"
+        }
+      ],
+      "clientSteering": true
+    },
+    {
+      "deliveryService": "client-steering-test-2",
+      "targets": [
+        {
+          "deliveryService": "steering-target-1",
+          "order": -100
+        },
+        {
+          "deliveryService": "steering-target-2",
+          "order": "-101",
+          "weight": "0"
+        },
+        {
+          "deliveryService": "client-steering-target-1",
+          "weight": "0",
+          "order": "1"
+        },
+        {
+          "deliveryService": "client-steering-target-2",
+          "order": "-1"
+        },
+        {
+          "deliveryService": "client-steering-target-3",
+          "weight": "5000"
+        },
+        {
+          "deliveryService": "client-steering-target-4",
+          "weight": "5000"
+        },
+        {
+          "deliveryService": "steering-target-3",
+          "order": "6000"
+        },
+        {
+          "deliveryService": "steering-target-4",
+          "order": "5001"
+        }
+      ],
+      "clientSteering": true
+    }
+  ]
+}
\ No newline at end of file
diff --git a/traffic_router/core/src/test/resources/internal/api/1.3/steering2.json b/traffic_router/core/src/test/resources/internal/api/1.3/steering2.json
new file mode 100644
index 0000000..583b572
--- /dev/null
+++ b/traffic_router/core/src/test/resources/internal/api/1.3/steering2.json
@@ -0,0 +1,34 @@
+{
+  "response": [
+    {
+      "deliveryService": "steering-test-1",
+      "targets": [
+        {
+          "deliveryService": "steering-target-1",
+          "weight": "2000"
+        },
+        {
+          "deliveryService": "steering-target-2",
+          "weight": "8000"
+        }
+      ],
+      "filters" :[
+        { "pattern" : ".*/force-to-target-1/.*", "deliveryService" : "steering-target-1"},
+        { "pattern" : ".*/force-to-target-2/.*", "deliveryService" : "steering-target-2"}
+      ]
+    },
+    {
+      "deliveryService": "steering-test-2",
+      "targets": [
+        {
+          "deliveryService": "steering-target-3",
+          "weight": "60000"
+        },
+        {
+          "deliveryService": "steering-target-4",
+          "weight": "45000"
+        }
+      ]
+    }
+  ]
+}
\ No newline at end of file

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