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 d5897d8174dbf7624a44dae58cb3d842936a199f
Author: Jesse Rivas <jesse_ri...@comcast.com>
AuthorDate: Tue May 1 13:54:38 2018 -0600

    updated golang crconfig to include anonymous_blocking_enabled
---
 lib/go-tc/crconfig.go                              |  45 ++++-----
 lib/go-tc/deliveryservices.go                      | 108 +++++++++++----------
 traffic_ops/app/lib/UI/Topology.pm                 |   3 +-
 .../traffic_ops_golang/crconfig/deliveryservice.go |  11 ++-
 .../deliveryservice/deliveryservices.go            |  33 ++++---
 .../traffic_ops_golang/deliveryservice/handlers.go |   1 +
 6 files changed, 106 insertions(+), 95 deletions(-)

diff --git a/lib/go-tc/crconfig.go b/lib/go-tc/crconfig.go
index f7b57c7..aee4976 100644
--- a/lib/go-tc/crconfig.go
+++ b/lib/go-tc/crconfig.go
@@ -101,28 +101,29 @@ type CRConfigTrafficOpsServer struct {
 
 //TODO: drichardson - reconcile this with the DeliveryService struct in 
deliveryservices.go
 type CRConfigDeliveryService struct {
-       CoverageZoneOnly     bool                                  
`json:"coverageZoneOnly,string"`
-       Dispersion           *CRConfigDispersion                   
`json:"dispersion,omitempty"`
-       Domains              []string                              
`json:"domains,omitempty"`
-       GeoLocationProvider  *string                               
`json:"geolocationProvider,omitempty"`
-       MatchSets            []*MatchSet                           
`json:"matchsets,omitempty"`
-       MissLocation         *CRConfigLatitudeLongitudeShort       
`json:"missLocation,omitempty"`
-       Protocol             *CRConfigDeliveryServiceProtocol      
`json:"protocol,omitempty"`
-       RegionalGeoBlocking  *string                               
`json:"regionalGeoBlocking,omitempty"`
-       ResponseHeaders      map[string]string                     
`json:"responseHeaders,omitempty"`
-       RequestHeaders       []string                              
`json:"requestHeaders,omitempty"`
-       Soa                  *SOA                                  
`json:"soa,omitempty"`
-       SSLEnabled           bool                                  
`json:"sslEnabled,string"`
-       TTL                  *int                                  
`json:"ttl,omitempty"`
-       TTLs                 *CRConfigTTL                          
`json:"ttls,omitempty"`
-       MaxDNSIPsForLocation *int                                  
`json:"maxDnsIpsForLocation,omitempty"`
-       IP6RoutingEnabled    *bool                                 
`json:"ip6RoutingEnabled,string,omitempty"`
-       RoutingName          *string                               
`json:"routingName,omitempty"`
-       BypassDestination    map[string]*CRConfigBypassDestination 
`json:"bypassDestination,omitempty"`
-       DeepCachingType      *DeepCachingType                      
`json:"deepCachingType"`
-       GeoEnabled           []CRConfigGeoEnabled                  
`json:"geoEnabled,omitempty"`
-       GeoLimitRedirectURL  *string                               
`json:"geoLimitRedirectURL,omitempty"`
-       StaticDNSEntries     []StaticDNSEntry                      
`json:"staticDnsEntries,omitempty"`
+       AnonymousBlockingEnabled *string                               
`json:"anonymousBlockingEnabled,omitempty"`
+       CoverageZoneOnly         bool                                  
`json:"coverageZoneOnly,string"`
+       Dispersion               *CRConfigDispersion                   
`json:"dispersion,omitempty"`
+       Domains                  []string                              
`json:"domains,omitempty"`
+       GeoLocationProvider      *string                               
`json:"geolocationProvider,omitempty"`
+       MatchSets                []*MatchSet                           
`json:"matchsets,omitempty"`
+       MissLocation             *CRConfigLatitudeLongitudeShort       
`json:"missLocation,omitempty"`
+       Protocol                 *CRConfigDeliveryServiceProtocol      
`json:"protocol,omitempty"`
+       RegionalGeoBlocking      *string                               
`json:"regionalGeoBlocking,omitempty"`
+       ResponseHeaders          map[string]string                     
`json:"responseHeaders,omitempty"`
+       RequestHeaders           []string                              
`json:"requestHeaders,omitempty"`
+       Soa                      *SOA                                  
`json:"soa,omitempty"`
+       SSLEnabled               bool                                  
`json:"sslEnabled,string"`
+       TTL                      *int                                  
`json:"ttl,omitempty"`
+       TTLs                     *CRConfigTTL                          
`json:"ttls,omitempty"`
+       MaxDNSIPsForLocation     *int                                  
`json:"maxDnsIpsForLocation,omitempty"`
+       IP6RoutingEnabled        *bool                                 
`json:"ip6RoutingEnabled,string,omitempty"`
+       RoutingName              *string                               
`json:"routingName,omitempty"`
+       BypassDestination        map[string]*CRConfigBypassDestination 
`json:"bypassDestination,omitempty"`
+       DeepCachingType          *DeepCachingType                      
`json:"deepCachingType"`
+       GeoEnabled               []CRConfigGeoEnabled                  
`json:"geoEnabled,omitempty"`
+       GeoLimitRedirectURL      *string                               
`json:"geoLimitRedirectURL,omitempty"`
+       StaticDNSEntries         []StaticDNSEntry                      
`json:"staticDnsEntries,omitempty"`
 }
 
 type CRConfigGeoEnabled struct {
diff --git a/lib/go-tc/deliveryservices.go b/lib/go-tc/deliveryservices.go
index a01b921..fa3bbf1 100644
--- a/lib/go-tc/deliveryservices.go
+++ b/lib/go-tc/deliveryservices.go
@@ -57,59 +57,60 @@ type DeleteDeliveryServiceResponse struct {
 
 // DeliveryService ...
 type DeliveryService struct {
-       Active               bool                   `json:"active"`
-       CacheURL             string                 `json:"cacheurl"`
-       CCRDNSTTL            int                    `json:"ccrDnsTtl"`
-       CDNID                int                    `json:"cdnId"`
-       CDNName              string                 `json:"cdnName"`
-       CheckPath            string                 `json:"checkPath"`
-       DeepCachingType      DeepCachingType        `json:"deepCachingType"`
-       DisplayName          string                 `json:"displayName"`
-       DNSBypassCname       string                 `json:"dnsBypassCname"`
-       DNSBypassIP          string                 `json:"dnsBypassIp"`
-       DNSBypassIP6         string                 `json:"dnsBypassIp6"`
-       DNSBypassTTL         int                    `json:"dnsBypassTtl"`
-       DSCP                 int                    `json:"dscp"`
-       EdgeHeaderRewrite    string                 `json:"edgeHeaderRewrite"`
-       ExampleURLs          []string               `json:"exampleURLs"`
-       GeoLimit             int                    `json:"geoLimit"`
-       FQPacingRate         int                    `json:"fqPacingRate"`
-       GeoProvider          int                    `json:"geoProvider"`
-       GlobalMaxMBPS        int                    `json:"globalMaxMbps"`
-       GlobalMaxTPS         int                    `json:"globalMaxTps"`
-       HTTPBypassFQDN       string                 `json:"httpBypassFqdn"`
-       ID                   int                    `json:"id"`
-       InfoURL              string                 `json:"infoUrl"`
-       InitialDispersion    float32                `json:"initialDispersion"`
-       IPV6RoutingEnabled   bool                   `json:"ipv6RoutingEnabled"`
-       LastUpdated          *TimeNoMod             `json:"lastUpdated" 
db:"last_updated"`
-       LogsEnabled          bool                   `json:"logsEnabled"`
-       LongDesc             string                 `json:"longDesc"`
-       LongDesc1            string                 `json:"longDesc1"`
-       LongDesc2            string                 `json:"longDesc2"`
-       MatchList            []DeliveryServiceMatch `json:"matchList,omitempty"`
-       MaxDNSAnswers        int                    `json:"maxDnsAnswers"`
-       MidHeaderRewrite     string                 `json:"midHeaderRewrite"`
-       MissLat              float64                `json:"missLat"`
-       MissLong             float64                `json:"missLong"`
-       MultiSiteOrigin      bool                   `json:"multiSiteOrigin"`
-       OrgServerFQDN        string                 `json:"orgServerFqdn"`
-       ProfileDesc          string                 `json:"profileDescription"`
-       ProfileID            int                    `json:"profileId,omitempty"`
-       ProfileName          string                 `json:"profileName"`
-       Protocol             int                    `json:"protocol"`
-       QStringIgnore        int                    `json:"qstringIgnore"`
-       RangeRequestHandling int                    
`json:"rangeRequestHandling"`
-       RegexRemap           string                 `json:"regexRemap"`
-       RegionalGeoBlocking  bool                   `json:"regionalGeoBlocking"`
-       RemapText            string                 `json:"remapText"`
-       RoutingName          string                 `json:"routingName"`
-       SigningAlgorithm     string                 `json:"signingAlgorithm" 
db:"signing_algorithm"`
-       TypeID               int                    `json:"typeId"`
-       Type                 string                 `json:"type"`
-       TRResponseHeaders    string                 `json:"trResponseHeaders"`
-       TenantID             int                    `json:"tenantId,omitempty"`
-       XMLID                string                 `json:"xmlId"`
+       Active                   bool                   `json:"active"`
+       AnonymousBlockingEnabled bool                   
`json:"anonymousBlockingEnabled"`
+       CacheURL                 string                 `json:"cacheurl"`
+       CCRDNSTTL                int                    `json:"ccrDnsTtl"`
+       CDNID                    int                    `json:"cdnId"`
+       CDNName                  string                 `json:"cdnName"`
+       CheckPath                string                 `json:"checkPath"`
+       DeepCachingType          DeepCachingType        `json:"deepCachingType"`
+       DisplayName              string                 `json:"displayName"`
+       DNSBypassCname           string                 `json:"dnsBypassCname"`
+       DNSBypassIP              string                 `json:"dnsBypassIp"`
+       DNSBypassIP6             string                 `json:"dnsBypassIp6"`
+       DNSBypassTTL             int                    `json:"dnsBypassTtl"`
+       DSCP                     int                    `json:"dscp"`
+       EdgeHeaderRewrite        string                 
`json:"edgeHeaderRewrite"`
+       ExampleURLs              []string               `json:"exampleURLs"`
+       GeoLimit                 int                    `json:"geoLimit"`
+       FQPacingRate             int                    `json:"fqPacingRate"`
+       GeoProvider              int                    `json:"geoProvider"`
+       GlobalMaxMBPS            int                    `json:"globalMaxMbps"`
+       GlobalMaxTPS             int                    `json:"globalMaxTps"`
+       HTTPBypassFQDN           string                 `json:"httpBypassFqdn"`
+       ID                       int                    `json:"id"`
+       InfoURL                  string                 `json:"infoUrl"`
+       InitialDispersion        float32                
`json:"initialDispersion"`
+       IPV6RoutingEnabled       bool                   
`json:"ipv6RoutingEnabled"`
+       LastUpdated              *TimeNoMod             `json:"lastUpdated" 
db:"last_updated"`
+       LogsEnabled              bool                   `json:"logsEnabled"`
+       LongDesc                 string                 `json:"longDesc"`
+       LongDesc1                string                 `json:"longDesc1"`
+       LongDesc2                string                 `json:"longDesc2"`
+       MatchList                []DeliveryServiceMatch 
`json:"matchList,omitempty"`
+       MaxDNSAnswers            int                    `json:"maxDnsAnswers"`
+       MidHeaderRewrite         string                 
`json:"midHeaderRewrite"`
+       MissLat                  float64                `json:"missLat"`
+       MissLong                 float64                `json:"missLong"`
+       MultiSiteOrigin          bool                   `json:"multiSiteOrigin"`
+       OrgServerFQDN            string                 `json:"orgServerFqdn"`
+       ProfileDesc              string                 
`json:"profileDescription"`
+       ProfileID                int                    
`json:"profileId,omitempty"`
+       ProfileName              string                 `json:"profileName"`
+       Protocol                 int                    `json:"protocol"`
+       QStringIgnore            int                    `json:"qstringIgnore"`
+       RangeRequestHandling     int                    
`json:"rangeRequestHandling"`
+       RegexRemap               string                 `json:"regexRemap"`
+       RegionalGeoBlocking      bool                   
`json:"regionalGeoBlocking"`
+       RemapText                string                 `json:"remapText"`
+       RoutingName              string                 `json:"routingName"`
+       SigningAlgorithm         string                 
`json:"signingAlgorithm" db:"signing_algorithm"`
+       TypeID                   int                    `json:"typeId"`
+       Type                     string                 `json:"type"`
+       TRResponseHeaders        string                 
`json:"trResponseHeaders"`
+       TenantID                 int                    
`json:"tenantId,omitempty"`
+       XMLID                    string                 `json:"xmlId"`
 }
 
 // DeliveryServiceNullable - a version of the deliveryservice that allows for 
all fields to be null
@@ -117,6 +118,7 @@ type DeliveryServiceNullable struct {
        // NOTE: the db: struct tags are used for testing to map to their 
equivalent database column (if there is one)
        //
        Active                   *bool                   `json:"active" 
db:"active"`
+       AnonymousBlockingEnabled *bool                   
`json:"anonymousBlockingEnabled" db:"anonymous_blocking_enabled"`
        CacheURL                 *string                 `json:"cacheurl" 
db:"cacheurl"`
        CCRDNSTTL                *int                    `json:"ccrDnsTtl" 
db:"ccr_dns_ttl"`
        CDNID                    *int                    `json:"cdnId" 
db:"cdn_id"`
diff --git a/traffic_ops/app/lib/UI/Topology.pm 
b/traffic_ops/app/lib/UI/Topology.pm
index 7f19f32..987fe5b 100644
--- a/traffic_ops/app/lib/UI/Topology.pm
+++ b/traffic_ops/app/lib/UI/Topology.pm
@@ -493,6 +493,7 @@ sub gen_crconfig_json {
             }
 
             $data_obj->{'deliveryServices'}->{ $row->xml_id 
}->{'regionalGeoBlocking'} = $row->regional_geo_blocking ? 'true' : 'false';
+            $data_obj->{'deliveryServices'}->{ $row->xml_id 
}->{'anonymousBlockingEnabled'} = $row->anonymous_blocking_enabled ? 'true' : 
'false';
 
             if ( defined($row->geo_limit) && $row->geo_limit ne 0 ) {
                 $data_obj->{'deliveryServices'}->{ $row->xml_id 
}->{'geoLimitRedirectURL'} =
@@ -544,8 +545,6 @@ sub gen_crconfig_json {
         $data_obj->{'deliveryServices'}->{ $row->xml_id }->{'soa'}->{'admin'}  
 = $cdn_soa_admin;
         $data_obj->{'deliveryServices'}->{ $row->xml_id 
}->{'ip6RoutingEnabled'} = $row->ipv6_routing_enabled ? 'true' : 'false';
 
-        $data_obj->{'deliveryServices'}->{ $row->xml_id 
}->{'anonymousBlockingEnabled'} = $row->anonymous_blocking_enabled ? 'true' : 
'false';
-
     }
 
     my $rs_dns = $self->db->resultset('Staticdnsentry')->search(
diff --git a/traffic_ops/traffic_ops_golang/crconfig/deliveryservice.go 
b/traffic_ops/traffic_ops_golang/crconfig/deliveryservice.go
index 802cbc5..55cf884 100644
--- a/traffic_ops/traffic_ops_golang/crconfig/deliveryservice.go
+++ b/traffic_ops/traffic_ops_golang/crconfig/deliveryservice.go
@@ -70,7 +70,7 @@ func makeDSes(cdn string, domain string, db *sql.DB) 
(map[string]tc.CRConfigDeli
        geoProviderDefault := geoProvider0
 
        q := `
-select d.xml_id, d.miss_lat, d.miss_long, d.protocol, d.ccr_dns_ttl as ttl, 
d.routing_name, d.geo_provider, t.name as type, d.geo_limit, 
d.geo_limit_countries, d.geolimit_redirect_url, d.initial_dispersion, 
d.regional_geo_blocking, d.tr_response_headers, d.max_dns_answers, p.name as 
profile, d.dns_bypass_ip, d.dns_bypass_ip6, d.dns_bypass_ttl, 
d.dns_bypass_cname, d.http_bypass_fqdn, d.ipv6_routing_enabled, 
d.deep_caching_type, d.tr_request_headers, d.tr_response_headers
+select d.xml_id, d.miss_lat, d.miss_long, d.protocol, d.ccr_dns_ttl as ttl, 
d.routing_name, d.geo_provider, t.name as type, d.geo_limit, 
d.geo_limit_countries, d.geolimit_redirect_url, d.initial_dispersion, 
d.regional_geo_blocking, d.tr_response_headers, d.max_dns_answers, p.name as 
profile, d.dns_bypass_ip, d.dns_bypass_ip6, d.dns_bypass_ttl, 
d.dns_bypass_cname, d.http_bypass_fqdn, d.ipv6_routing_enabled, 
d.deep_caching_type, d.tr_request_headers, d.tr_response_headers, 
d.anonymous_bloc [...]
 from deliveryservice as d
 inner join type as t on t.id = d.type
 left outer join profile as p on p.id = d.profile
@@ -135,7 +135,8 @@ and d.active = true
                deepCachingType := sql.NullString{}
                trRequestHeaders := sql.NullString{}
                trResponseHeaders := sql.NullString{}
-               if err := rows.Scan(&xmlID, &missLat, &missLon, &protocol, 
&ds.TTL, &ds.RoutingName, &geoProvider, &ttype, &geoLimit, &geoLimitCountries, 
&geoLimitRedirectURL, &dispersion, &geoBlocking, &trRespHdrsStr, 
&maxDNSAnswers, &profile, &dnsBypassIP, &dnsBypassIP6, &dnsBypassTTL, 
&dnsBypassCName, &httpBypassFQDN, &ip6RoutingEnabled, &deepCachingType, 
&trRequestHeaders, &trResponseHeaders); err != nil {
+               anonymousBlocking := false
+               if err := rows.Scan(&xmlID, &missLat, &missLon, &protocol, 
&ds.TTL, &ds.RoutingName, &geoProvider, &ttype, &geoLimit, &geoLimitCountries, 
&geoLimitRedirectURL, &dispersion, &geoBlocking, &trRespHdrsStr, 
&maxDNSAnswers, &profile, &dnsBypassIP, &dnsBypassIP6, &dnsBypassTTL, 
&dnsBypassCName, &httpBypassFQDN, &ip6RoutingEnabled, &deepCachingType, 
&trRequestHeaders, &trResponseHeaders, &anonymousBlocking); err != nil {
                        return nil, errors.New("scanning deliveryservice: " + 
err.Error())
                }
                // TODO prevent (lat XOR lon) in the DB and UI
@@ -293,6 +294,12 @@ and d.active = true
                                geoBlockingStr = "true"
                        }
                        ds.RegionalGeoBlocking = &geoBlockingStr
+
+                       anonymousBlockingStr := "false"
+                       if anonymousBlocking {
+                               anonymousBlockingStr = "true"
+                       }
+                       ds.AnonymousBlockingEnabled = &anonymousBlockingStr
                        if dispersion.Valid {
                                ds.Dispersion = &tc.CRConfigDispersion{Limit: 
int(dispersion.Int64), Shuffled: true}
                        }
diff --git a/traffic_ops/traffic_ops_golang/deliveryservice/deliveryservices.go 
b/traffic_ops/traffic_ops_golang/deliveryservice/deliveryservices.go
index a00075a..9df72a9 100644
--- a/traffic_ops/traffic_ops_golang/deliveryservice/deliveryservices.go
+++ b/traffic_ops/traffic_ops_golang/deliveryservice/deliveryservices.go
@@ -99,22 +99,23 @@ func (ds *TODeliveryService) Validate(db *sqlx.DB) []error {
 
        // Validate that the required fields are sent first to prevent panics 
below
        errs := validation.Errors{
-               "active":              validation.Validate(ds.Active, 
validation.NotNil),
-               "cdnId":               validation.Validate(ds.CDNID, 
validation.Required),
-               "displayName":         validation.Validate(ds.DisplayName, 
validation.Required, validation.Length(1, 48)),
-               "deepCachingType":     validation.Validate(neverOrAlways),
-               "dnsBypassIp":         validation.Validate(ds.DNSBypassIP, 
is.IP),
-               "dnsBypassIp6":        validation.Validate(ds.DNSBypassIP6, 
is.IPv6),
-               "dscp":                validation.Validate(ds.DSCP, 
validation.NotNil, validation.Min(0)),
-               "geoLimit":            validation.Validate(ds.GeoLimit, 
validation.NotNil),
-               "geoProvider":         validation.Validate(ds.GeoProvider, 
validation.NotNil),
-               "infoUrl":             validation.Validate(ds.InfoURL, is.URL),
-               "logsEnabled":         validation.Validate(ds.LogsEnabled, 
validation.NotNil),
-               "orgServerFqdn":       validation.Validate(ds.OrgServerFQDN, 
is.URL),
-               "regionalGeoBlocking": 
validation.Validate(ds.RegionalGeoBlocking, validation.NotNil),
-               "routingName":         validation.Validate(ds.RoutingName, 
isHost, noPeriods, validation.Length(1, 48)),
-               "typeId":              validation.Validate(ds.TypeID, 
validation.Required, validation.Min(1)),
-               "xmlId":               validation.Validate(ds.XMLID, noSpaces, 
noPeriods, validation.Length(1, 48)),
+               "active":                   validation.Validate(ds.Active, 
validation.NotNil),
+               "anonymousBlockingEnabled": 
validation.Validate(ds.AnonymousBlockingEnabled, validation.NotNil),
+               "cdnId":                    validation.Validate(ds.CDNID, 
validation.Required),
+               "displayName":              validation.Validate(ds.DisplayName, 
validation.Required, validation.Length(1, 48)),
+               "deepCachingType":          validation.Validate(neverOrAlways),
+               "dnsBypassIp":              validation.Validate(ds.DNSBypassIP, 
is.IP),
+               "dnsBypassIp6":             
validation.Validate(ds.DNSBypassIP6, is.IPv6),
+               "dscp":                     validation.Validate(ds.DSCP, 
validation.NotNil, validation.Min(0)),
+               "geoLimit":                 validation.Validate(ds.GeoLimit, 
validation.NotNil),
+               "geoProvider":              validation.Validate(ds.GeoProvider, 
validation.NotNil),
+               "infoUrl":                  validation.Validate(ds.InfoURL, 
is.URL),
+               "logsEnabled":              validation.Validate(ds.LogsEnabled, 
validation.NotNil),
+               "orgServerFqdn":            
validation.Validate(ds.OrgServerFQDN, is.URL),
+               "regionalGeoBlocking":      
validation.Validate(ds.RegionalGeoBlocking, validation.NotNil),
+               "routingName":              validation.Validate(ds.RoutingName, 
isHost, noPeriods, validation.Length(1, 48)),
+               "typeId":                   validation.Validate(ds.TypeID, 
validation.Required, validation.Min(1)),
+               "xmlId":                    validation.Validate(ds.XMLID, 
noSpaces, noPeriods, validation.Length(1, 48)),
        }
 
        if errs != nil {
diff --git a/traffic_ops/traffic_ops_golang/deliveryservice/handlers.go 
b/traffic_ops/traffic_ops_golang/deliveryservice/handlers.go
index 5584873..0344fbb 100644
--- a/traffic_ops/traffic_ops_golang/deliveryservice/handlers.go
+++ b/traffic_ops/traffic_ops_golang/deliveryservice/handlers.go
@@ -108,6 +108,7 @@ func getDeliveryServices(parameters map[string]string, db 
*sqlx.DB) ([]tc.Delive
 func selectDSesQuery() string {
        query := `SELECT
  active,
+ anonymous_blocking_enabled,
  ccr_dns_ttl,
  cdn_id,
  cacheurl,

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

Reply via email to