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 013909de88439c87e48b6af29642e7670896ec11
Author: Rawlin Peters <rawlin_pet...@comcast.com>
AuthorDate: Fri Nov 10 15:57:43 2017 -0700

    Address DDC review comments
    
    Changed DCZF to use 'deepCoverageZones' key instead of 'coverageZones'
    for better separation.
    
    Created enum type DeepCachingType to use in DeliveryService struct in
    lib/go-tc.
---
 docs/source/admin/traffic_ops/using.rst            |  4 +-
 lib/go-tc/deliveryservices.go                      |  2 +-
 lib/go-tc/enum.go                                  | 48 ++++++++++++++++++++++
 .../traffic_router/core/ds/DeliveryService.java    |  2 +-
 .../traffic_router/core/loc/NetworkNode.java       |  3 +-
 .../traffic_router/core/loc/NetworkUpdater.java    |  2 +-
 .../traffic_router/core/loc/NetworkNodeTest.java   |  3 +-
 .../core/loc/NetworkNodeUnitTest.java              |  6 +--
 traffic_router/core/src/test/resources/dczmap.json |  2 +-
 9 files changed, 61 insertions(+), 11 deletions(-)

diff --git a/docs/source/admin/traffic_ops/using.rst 
b/docs/source/admin/traffic_ops/using.rst
index 5ac1a0d..6a6c130 100644
--- a/docs/source/admin/traffic_ops/using.rst
+++ b/docs/source/admin/traffic_ops/using.rst
@@ -895,10 +895,10 @@ The script that generates the CZF file is not part of 
Traffic Control, since it
 
 The Deep Coverage Zone File
 +++++++++++++++++++++++++++
-The Deep Coverage Zone File (DCZF) format is similar to the CZF format but 
adds a ``caches`` list under each ``coverageZone``: ::
+The Deep Coverage Zone File (DCZF) format is similar to the CZF format but 
adds a ``caches`` list under each ``deepCoverageZone``: ::
 
   {
-    "coverageZones": {
+    "deepCoverageZones": {
       "location-01": {
         "coordinates": {
           "latitude":  5.5,
diff --git a/lib/go-tc/deliveryservices.go b/lib/go-tc/deliveryservices.go
index b27b655..9d621a8 100644
--- a/lib/go-tc/deliveryservices.go
+++ b/lib/go-tc/deliveryservices.go
@@ -56,7 +56,7 @@ type DeliveryService struct {
        Active               bool                   `json:"active"`
        DSCP                 int                    `json:"dscp"`
        RoutingName          string                 `json:"routingName"`
-       DeepCachingType      string                 `json:"deepCachingType"`
+       DeepCachingType      DeepCachingType        `json:"deepCachingType"`
        Signed               bool                   `json:"signed"`
        QStringIgnore        int                    `json:"qstringIgnore"`
        GeoLimit             int                    `json:"geoLimit"`
diff --git a/lib/go-tc/enum.go b/lib/go-tc/enum.go
index 46aa9d0..f8f3a66 100644
--- a/lib/go-tc/enum.go
+++ b/lib/go-tc/enum.go
@@ -29,6 +29,8 @@ package tc
  */
 
 import (
+       "errors"
+       "strconv"
        "strings"
 )
 
@@ -182,3 +184,49 @@ func CacheStatusFromString(s string) CacheStatus {
                return CacheStatusInvalid
        }
 }
+
+// DeepCachingType represents a Delivery Service's deep caching type. The 
string values of this type should match the Traffic Ops values.
+type DeepCachingType string
+
+const (
+       DeepCachingTypeAlways  = DeepCachingType("ALWAYS")
+       DeepCachingTypeNever   = DeepCachingType("NEVER")
+       DeepCachingTypeInvalid = DeepCachingType("")
+)
+
+// String returns a string representation of this deep caching type
+func (t DeepCachingType) String() string {
+       switch t {
+       case DeepCachingTypeAlways:
+               return string(t)
+       case DeepCachingTypeNever:
+               return string(t)
+       default:
+               return "INVALID"
+       }
+}
+
+// DeepCachingTypeFromString returns a DeepCachingType from its string 
representation, or DeepCachingTypeInvalid if the string is not a valid type.
+func DeepCachingTypeFromString(s string) DeepCachingType {
+       switch strings.ToLower(s) {
+       case "always":
+               return DeepCachingTypeAlways
+       case "never":
+               return DeepCachingTypeNever
+       default:
+               return DeepCachingTypeInvalid
+       }
+}
+
+// UnmarshalJSON unmarshals a JSON representation of a DeepCachingType (i.e. a 
string) or returns an error if the DeepCachingType is invalid
+func (t *DeepCachingType) UnmarshalJSON(data []byte) error {
+       s, err := strconv.Unquote(string(data))
+       if err != nil {
+               return errors.New(string(data) + " JSON not quoted")
+       }
+       *t = DeepCachingTypeFromString(s)
+       if *t == DeepCachingTypeInvalid {
+               return errors.New(string(data) + " is not a DeepCachingType")
+       }
+       return nil
+}
diff --git 
a/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/ds/DeliveryService.java
 
b/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/ds/DeliveryService.java
index 3ac4ac9..6305e12 100644
--- 
a/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/ds/DeliveryService.java
+++ 
b/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/ds/DeliveryService.java
@@ -150,7 +150,7 @@ public class DeliveryService {
                acceptHttp = JsonUtils.optBoolean(protocol, "acceptHttp", true);
                acceptHttps = JsonUtils.optBoolean(protocol, "acceptHttps");
                redirectToHttps = JsonUtils.optBoolean(protocol, 
"redirectToHttps");
-               final String dctString = JsonUtils.optString(dsJo, 
"deepCachingType", "NEVER");
+               final String dctString = JsonUtils.optString(dsJo, 
"deepCachingType", "NEVER").toUpperCase();
                DeepCachingType dct = DeepCachingType.NEVER;
                try {
                        dct = DeepCachingType.valueOf(dctString);
diff --git 
a/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/loc/NetworkNode.java
 
b/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/loc/NetworkNode.java
index c098320..9d292ae 100644
--- 
a/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/loc/NetworkNode.java
+++ 
b/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/loc/NetworkNode.java
@@ -96,7 +96,8 @@ public class NetworkNode implements Comparable<NetworkNode> {
     @SuppressWarnings({"PMD.CyclomaticComplexity", "PMD.NPathComplexity"})
     public static NetworkNode generateTree(final JsonNode json, final boolean 
verifyOnly, final boolean useDeep) {
         try {
-            final JsonNode coverageZones = JsonUtils.getJsonNode(json, 
"coverageZones");
+            final String czKey = useDeep ? "deepCoverageZones" : 
"coverageZones";
+            final JsonNode coverageZones = JsonUtils.getJsonNode(json, czKey);
 
             final SuperNode root = new SuperNode();
 
diff --git 
a/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/loc/NetworkUpdater.java
 
b/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/loc/NetworkUpdater.java
index d1dc4c5..2ae2938 100644
--- 
a/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/loc/NetworkUpdater.java
+++ 
b/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/loc/NetworkUpdater.java
@@ -47,7 +47,7 @@ public class NetworkUpdater extends AbstractServiceUpdater {
                return generateTree(dbFile, true) != null;
        }
 
-       public NetworkNode generateTree(final File dbFile, final boolean 
verifyOnly) throws IOException, JSONException {
+       public NetworkNode generateTree(final File dbFile, final boolean 
verifyOnly) throws IOException {
                return NetworkNode.generateTree(dbFile, verifyOnly);
        }
 
diff --git 
a/traffic_router/core/src/test/java/com/comcast/cdn/traffic_control/traffic_router/core/loc/NetworkNodeTest.java
 
b/traffic_router/core/src/test/java/com/comcast/cdn/traffic_control/traffic_router/core/loc/NetworkNodeTest.java
index 3517751..e4301af 100644
--- 
a/traffic_router/core/src/test/java/com/comcast/cdn/traffic_control/traffic_router/core/loc/NetworkNodeTest.java
+++ 
b/traffic_router/core/src/test/java/com/comcast/cdn/traffic_control/traffic_router/core/loc/NetworkNodeTest.java
@@ -58,7 +58,8 @@ public class NetworkNodeTest {
                final NetworkNode nn = NetworkNode.generateTree(file, false, 
useDeep);
                final ObjectMapper mapper = new ObjectMapper();
                final JsonNode jsonNode = mapper.readTree(file);
-               final JsonNode coverageZones = jsonNode.get("coverageZones");
+               final String czKey = useDeep ? "deepCoverageZones" : 
"coverageZones";
+               final JsonNode coverageZones = jsonNode.get(czKey);
 
                final Iterator<String> networkIter = coverageZones.fieldNames();
                while (networkIter.hasNext()) {
diff --git 
a/traffic_router/core/src/test/java/com/comcast/cdn/traffic_control/traffic_router/core/loc/NetworkNodeUnitTest.java
 
b/traffic_router/core/src/test/java/com/comcast/cdn/traffic_control/traffic_router/core/loc/NetworkNodeUnitTest.java
index f4dd55a..3ebb10e 100644
--- 
a/traffic_router/core/src/test/java/com/comcast/cdn/traffic_control/traffic_router/core/loc/NetworkNodeUnitTest.java
+++ 
b/traffic_router/core/src/test/java/com/comcast/cdn/traffic_control/traffic_router/core/loc/NetworkNodeUnitTest.java
@@ -93,7 +93,7 @@ public class NetworkNodeUnitTest {
         String czmapString = "{" +
                 "\"revision\": \"Mon Dec 21 15:04:01 2015\"," +
                 "\"customerName\": \"Kabletown\"," +
-                "\"coverageZones\": {" +
+                "\"deepCoverageZones\": {" +
                 "\"us-co-denver\": {" +
                 "\"network\": 
[\"192.168.55.0/24\",\"192.168.6.0/24\",\"192.168.0.0/16\"]," +
                 "\"network6\": [\"1234:5678::/64\",\"1234:5679::/64\"]," +
@@ -102,8 +102,8 @@ public class NetworkNodeUnitTest {
                 "}" +
                 "}";
 
-        JSONTokener jsonTokener = new JSONTokener(czmapString);
-        final JSONObject json = new JSONObject(jsonTokener);
+        final ObjectMapper mapper = new ObjectMapper();
+        final JsonNode json = mapper.readTree(czmapString);
         NetworkNode networkNode = NetworkNode.generateTree(json, false, true);
         NetworkNode foundNetworkNode = 
networkNode.getNetwork("192.168.55.100");
 
diff --git a/traffic_router/core/src/test/resources/dczmap.json 
b/traffic_router/core/src/test/resources/dczmap.json
index 39185c1..bfc5c5b 100644
--- a/traffic_router/core/src/test/resources/dczmap.json
+++ b/traffic_router/core/src/test/resources/dczmap.json
@@ -1,5 +1,5 @@
 {
-       "coverageZones":
+       "deepCoverageZones":
        {
                "cache-group-01":
                {

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

Reply via email to