@@ -479,7 +479,7 @@ func (s) TestResourceMetrics(t *testing.T) {
479479 // Trigger async metrics.
480480 tmr .triggerAsyncMetrics ()
481481 if err := tmr .waitForSpecificMetric (ctx , & metrics.XDSClientResourceStats {
482- Authority : "" , // Default authority
482+ Authority : "#old " , // Default authority
483483 ResourceType : "ListenerResource" ,
484484 CacheState : "acked" ,
485485 Count : 1 ,
@@ -501,7 +501,7 @@ func (s) TestResourceMetrics(t *testing.T) {
501501
502502 tmr .triggerAsyncMetrics ()
503503 if err := tmr .waitForSpecificMetric (ctx , & metrics.XDSClientResourceStats {
504- Authority : "" ,
504+ Authority : "#old " ,
505505 ResourceType : "ListenerResource" ,
506506 CacheState : "nacked_but_cached" ,
507507 Count : 1 ,
@@ -594,7 +594,7 @@ func (s) TestResourceMetrics_Extended(t *testing.T) {
594594 // Verify "requested" count 2
595595 tmr .triggerAsyncMetrics ()
596596 if err := tmr .waitForSpecificMetric (ctx , & metrics.XDSClientResourceStats {
597- Authority : "" ,
597+ Authority : "#old " ,
598598 ResourceType : "ListenerResource" ,
599599 CacheState : "requested" ,
600600 Count : 2 ,
@@ -605,7 +605,7 @@ func (s) TestResourceMetrics_Extended(t *testing.T) {
605605 // Verify "nacked" count 2
606606 tmr .triggerAsyncMetrics ()
607607 if err := tmr .waitForSpecificMetric (ctx , & metrics.XDSClientResourceStats {
608- Authority : "" ,
608+ Authority : "#old " ,
609609 ResourceType : "ListenerResource" ,
610610 CacheState : "nacked" ,
611611 Count : 2 ,
@@ -635,7 +635,7 @@ func (s) TestResourceMetrics_Extended(t *testing.T) {
635635
636636 tmr .triggerAsyncMetrics ()
637637 if err := tmr .waitForSpecificMetric (ctx , & metrics.XDSClientResourceStats {
638- Authority : "" ,
638+ Authority : "#old " ,
639639 ResourceType : "ListenerResource" ,
640640 CacheState : "does_not_exist" ,
641641 Count : 1 ,
@@ -671,12 +671,10 @@ func (s) TestConnectedMetric_Reconnection(t *testing.T) {
671671 sendResponse := make (chan struct {})
672672 mgmtServer := e2e .StartManagementServer (t , e2e.ManagementServerOptions {
673673 Listener : lis ,
674- OnStreamOpen : func (ctx context.Context , streamID int64 , typeURL string ) error {
675- t .Logf ("ADS stream opened, streamID: %d" , streamID )
674+ OnStreamOpen : func (_ context.Context , _ int64 , _ string ) error {
676675 return nil
677676 },
678- OnStreamRequest : func (streamID int64 , req * v3discoverypb.DiscoveryRequest ) error {
679- t .Logf ("ADS stream request received, streamID: %d" , streamID )
677+ OnStreamRequest : func (_ int64 , _ * v3discoverypb.DiscoveryRequest ) error {
680678 // For all streams, wait until we are told to send a response.
681679 <- sendResponse
682680 return nil
@@ -700,11 +698,11 @@ func (s) TestConnectedMetric_Reconnection(t *testing.T) {
700698 },
701699 MetricsReporter : tmr ,
702700 }
703-
701+
704702 // 1. Initial Start - metric value 0
705703 // Keep the listener stopped initially so NewStream fails/blocks.
706704 lis .Stop ()
707-
705+
708706 client , err := xdsclient .New (xdsClientConfig )
709707 if err != nil {
710708 t .Fatalf ("Failed to create xDS client: %v" , err )
@@ -731,7 +729,7 @@ func (s) TestConnectedMetric_Reconnection(t *testing.T) {
731729
732730 // 2. 1st NewStream OK - metric value 1
733731 lis .Restart ()
734-
732+
735733 // Wait a bit for the stream to be created.
736734 time .Sleep (1 * time .Second )
737735
@@ -749,7 +747,7 @@ func (s) TestConnectedMetric_Reconnection(t *testing.T) {
749747
750748 // 3. Stream Fails - metric value 0
751749 lis .Stop ()
752-
750+
753751 // Wait for disconnect to be detected.
754752 if err := tmr .waitForSpecificMetric (ctx , & metrics.ServerFailure {ServerURI : mgmtServer .Address }); err != nil {
755753 t .Fatal (err .Error ())
@@ -799,3 +797,65 @@ func (s) TestConnectedMetric_Reconnection(t *testing.T) {
799797 t .Fatalf ("Step 5 failed: Expected XDSClientConnected to be 1 after response, got: %v" , err )
800798 }
801799}
800+
801+ func (s ) TestResourceMetrics_AuthorityOldStyle (t * testing.T ) {
802+ mgmtServer := e2e .StartManagementServer (t , e2e.ManagementServerOptions {})
803+ nodeID := uuid .New ().String ()
804+
805+ resourceTypes := map [string ]xdsclient.ResourceType {xdsresource .V3ListenerURL : listenerType }
806+ si := clients.ServerIdentifier {
807+ ServerURI : mgmtServer .Address ,
808+ Extensions : grpctransport.ServerIdentifierExtension {ConfigName : "insecure" },
809+ }
810+ configs := map [string ]grpctransport.Config {"insecure" : {Credentials : insecure .NewBundle ()}}
811+ serverCfg := xdsclient.ServerConfig {ServerIdentifier : si }
812+
813+ tmr := newTestMetricsReporter ()
814+ xdsClientConfig := xdsclient.Config {
815+ Servers : []xdsclient.ServerConfig {serverCfg },
816+ Node : clients.Node {ID : nodeID },
817+ TransportBuilder : grpctransport .NewBuilder (configs ),
818+ ResourceTypes : resourceTypes ,
819+ Authorities : map [string ]xdsclient.Authority {
820+ "" : {XDSServers : []xdsclient.ServerConfig {serverCfg }},
821+ },
822+ MetricsReporter : tmr ,
823+ }
824+
825+ client , err := xdsclient .New (xdsClientConfig )
826+ if err != nil {
827+ t .Fatalf ("Failed to create xDS client: %v" , err )
828+ }
829+ defer client .Close ()
830+
831+ ctx , cancel := context .WithTimeout (context .Background (), defaultTestTimeout )
832+ defer cancel ()
833+
834+ const listenerName = "test-listener"
835+
836+ client .WatchResource (listenerType .TypeURL , listenerName , & testWatcher {})
837+
838+ resources := e2e.UpdateOptions {
839+ NodeID : nodeID ,
840+ Listeners : []* v3listenerpb.Listener {e2e .DefaultClientListener (listenerName , "route-config" )},
841+ SkipValidation : true ,
842+ }
843+
844+ if err := mgmtServer .Update (ctx , resources ); err != nil {
845+ t .Fatalf ("Failed to update management server: %v" , err )
846+ }
847+
848+ if err := tmr .waitForMetric (ctx , & metrics.ResourceUpdateValid {ServerURI : mgmtServer .Address , ResourceType : "ListenerResource" }); err != nil {
849+ t .Fatal (err .Error ())
850+ }
851+
852+ tmr .triggerAsyncMetrics ()
853+ if err := tmr .waitForSpecificMetric (ctx , & metrics.XDSClientResourceStats {
854+ Authority : "#old" ,
855+ ResourceType : "ListenerResource" ,
856+ CacheState : "acked" ,
857+ Count : 1 ,
858+ }); err != nil {
859+ t .Fatalf ("Failed to observe grpc.xds.authority '#old' metric substitution: %v" , err )
860+ }
861+ }
0 commit comments