jpappa200 commented on code in PR #7323:
URL: https://github.com/apache/trafficcontrol/pull/7323#discussion_r1094870322


##########
lib/go-atscfg/remapdotconfig_test.go:
##########
@@ -72,12 +91,203 @@ func pluginsFromTokens(tokens []string, prefix string) 
[]string {
        return plugins
 }
 
+func TestAnyCastRemapDotConfig(t *testing.T) {
+       hdr := "myHeaderComment"
+       mappings := map[string]bool{
+               "http://dnsroutingname.mypattern1": false,
+               "http://myregexpattern1":           false,
+               "http://server.mypattern0":         false,
+               "https://server.mypattern0":        false,
+               "http://mcastserver1.mypattern0":   false,
+               "https://mcastserver1.mypattern0":  false,
+               "http://mcastserver2.mypattern0":   false,
+               "https://mcastserver2.mypattern0":  false,
+               "http://myregexpattern0":           false,
+               "https://myregexpattern0":          false,
+       }
+       server := makeTestRemapServer()
+       server.Type = "EDGE"
+       server.Interfaces = []tc.ServerInterfaceInfoV40{}
+       setIPInfo(server, "lo", "192.168.2.6", "fdf8:f53b:82e4::53")
+       servers := makeTestAnyCastServers()
+       for _, anyCsstServer := range getAnyCastPartners(server, servers) {
+               if len(anyCsstServer) != 2 {
+                       t.Errorf("expected 2 edges in anycast group, actual 
'%v'", len(anyCsstServer))
+               }
+       }
+
+       ds := DeliveryService{}
+       ds.ID = util.IntPtr(48)
+       dsType := tc.DSType("HTTP")
+       ds.Type = &dsType
+       ds.OrgServerFQDN = util.StrPtr("origin.example.test")
+       ds.MidHeaderRewrite = util.StrPtr("mymidrewrite")
+       ds.RangeRequestHandling = util.IntPtr(0)
+       ds.RemapText = nil
+       ds.EdgeHeaderRewrite = util.StrPtr("myedgeheaderrewrite")
+       ds.SigningAlgorithm = nil
+       ds.XMLID = util.StrPtr("mydsname")
+       ds.QStringIgnore = util.IntPtr(0)
+       ds.RegexRemap = util.StrPtr("myregexremap")
+       ds.FQPacingRate = util.IntPtr(0)
+       ds.DSCP = util.IntPtr(0)
+       ds.RoutingName = util.StrPtr("myroutingname")
+       ds.MultiSiteOrigin = util.BoolPtr(false)
+       ds.OriginShield = util.StrPtr("myoriginshield")
+       ds.ProfileID = util.IntPtr(49)
+       ds.Protocol = util.IntPtr(int(tc.DSProtocolHTTPAndHTTPS))
+       ds.AnonymousBlockingEnabled = util.BoolPtr(false)
+       ds.Active = util.BoolPtr(true)
+
+       ds1 := DeliveryService{}
+       ds1.ID = util.IntPtr(49)
+       dsType1 := tc.DSType("DNS")
+       ds1.Type = &dsType1
+       ds1.OrgServerFQDN = util.StrPtr("origin.example.test")
+       ds1.RangeRequestHandling = util.IntPtr(0)
+       ds1.RemapText = nil
+       ds1.SigningAlgorithm = nil
+       ds1.XMLID = util.StrPtr("mydsname1")
+       ds1.QStringIgnore = util.IntPtr(0)
+       ds1.RegexRemap = util.StrPtr("")
+       ds1.FQPacingRate = util.IntPtr(0)
+       ds1.DSCP = util.IntPtr(0)
+       ds1.RoutingName = util.StrPtr("dnsroutingname")
+       ds1.MultiSiteOrigin = util.BoolPtr(false)
+       ds1.OriginShield = util.StrPtr("myoriginshield")
+       ds1.ProfileID = util.IntPtr(49)
+       ds1.ProfileName = util.StrPtr("dsprofile")
+       ds1.Protocol = util.IntPtr(int(tc.DSProtocolHTTP))
+       ds1.AnonymousBlockingEnabled = util.BoolPtr(false)
+       ds1.Active = util.BoolPtr(true)
+
+       dses := []DeliveryService{ds, ds1}
+
+       dss := []DeliveryServiceServer{
+               DeliveryServiceServer{
+                       Server:          *server.ID,
+                       DeliveryService: *ds.ID,
+               },
+               DeliveryServiceServer{
+                       Server:          *server.ID,
+                       DeliveryService: *ds1.ID,
+               },
+       }
+       for _, srv := range servers {
+               for _, ds := range dses {
+                       dssrv := DeliveryServiceServer{
+                               Server:          *srv.ID,
+                               DeliveryService: *ds.ID,
+                       }
+                       dss = append(dss, dssrv)
+               }
+       }
+       dsRegexes := []tc.DeliveryServiceRegexes{}
+       for i, ds := range dses {
+               pattern := fmt.Sprintf(`.*\.mypattern%d\..*`, i)
+               customRex := fmt.Sprintf("myregexpattern%d", i)
+               dsr := tc.DeliveryServiceRegexes{
+                       DSName: *ds.XMLID,
+                       Regexes: []tc.DeliveryServiceRegex{
+                               tc.DeliveryServiceRegex{
+                                       Type:      
string(tc.DSMatchTypeHostRegex),
+                                       SetNumber: 0,
+                                       Pattern:   pattern,
+                               },
+                               tc.DeliveryServiceRegex{
+                                       Type:      
string(tc.DSMatchTypeHostRegex),
+                                       SetNumber: 1,
+                                       Pattern:   customRex,
+                               },
+                       },
+               }
+               dsRegexes = append(dsRegexes, dsr)
+       }
+       serverParams := []tc.Parameter{
+               tc.Parameter{
+                       Name:       "trafficserver",
+                       ConfigFile: "package",
+                       Value:      "9",
+                       Profiles:   []byte(`["global"]`),
+               },
+       }
+       remapConfigParams := []tc.Parameter{
+               tc.Parameter{
+                       Name:       "cachekey.pparam",
+                       ConfigFile: "remap.config",
+                       Value:      "--cachekeykey=cachekeyval",
+                       Profiles:   []byte(`["dsprofile"]`),
+               },
+               tc.Parameter{
+                       Name:       "not_location",
+                       ConfigFile: "cachekey.config",
+                       Value:      "notinconfig",
+                       Profiles:   []byte(`["global"]`),
+               },
+       }
+       cdn := &tc.CDN{
+               DomainName: "cdndomain.example",
+               Name:       "my-cdn-name",
+       }
+       topologies := []tc.Topology{}
+       cgs := []tc.CacheGroupNullable{}
+       serverCapabilities := map[int]map[ServerCapability]struct{}{}
+       dsRequiredCapabilities := map[int]map[ServerCapability]struct{}{}
+       configDir := `/opt/trafficserver/etc/trafficserver`
+
+       cfg, err := MakeRemapDotConfig(server, servers, dses, dss, dsRegexes, 
serverParams, cdn, remapConfigParams, topologies, cgs, serverCapabilities, 
dsRequiredCapabilities, configDir, &RemapDotConfigOpts{HdrComment: hdr})
+       if err != nil {
+               t.Fatal(err)
+       }
+       txt := cfg.Text
+
+       //t.Logf("text: %v", txt)
+
+       txt = strings.TrimSpace(txt)
+
+       testComment(t, txt, hdr)
+
+       txtLines := strings.Split(txt, "\n")
+       for _, line := range txtLines[2:] {
+               switch {
+               case strings.Contains(line, "http://dnsroutingname.mypattern1";):
+                       mappings["http://dnsroutingname.mypattern1";] = true
+               case strings.Contains(line, "http://myregexpattern1";):
+                       mappings["http://myregexpattern1";] = true
+               case strings.Contains(line, "http://server.mypattern0";):
+                       mappings["http://server.mypattern0";] = true
+               case strings.Contains(line, "https://server.mypattern0";):
+                       mappings["https://server.mypattern0";] = true
+               case strings.Contains(line, "http://mcastserver1.mypattern0";):
+                       mappings["http://mcastserver1.mypattern0";] = true
+               case strings.Contains(line, "https://mcastserver1.mypattern0";):
+                       mappings["https://mcastserver1.mypattern0";] = true
+               case strings.Contains(line, "http://mcastserver2.mypattern0";):
+                       mappings["http://mcastserver2.mypattern0";] = true
+               case strings.Contains(line, "https://mcastserver2.mypattern0";):
+                       mappings["https://mcastserver2.mypattern0";] = true
+               case strings.Contains(line, "http://myregexpattern0";):
+                       mappings["http://myregexpattern0";] = true
+               case strings.Contains(line, "https://myregexpattern0";):
+                       mappings["https://myregexpattern0";] = true
+               default:
+                       t.Fatalf("unexpected remap line '%v'", line)
+               }
+       }
+       for key, val := range mappings {
+               if !val {
+                       t.Fatalf("expected to find remap rule for '%v'", key)
+               }
+       }
+}

Review Comment:
   Line has been added



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to