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.