func openAdsStream()

in dp_check/dp_check.go [626:648]


func openAdsStream(ctx context.Context) (adsStream, error) {
	// use TLS credential
	var roots *x509.CertPool
	tlsCreds := credentials.NewTLS(&tls.Config{RootCAs: roots})
	tlsCreds.OverrideServerName(*trafficDirectorHostname)
	opts := []grpc.DialOption{
		grpc.WithTransportCredentials(tlsCreds),
		grpc.WithPerRPCCredentials(oauth.NewComputeEngine()),
		grpc.WithBlock(),
	}
	lbAddr := net.JoinHostPort(*trafficDirectorHostname, trafficDirectorPort)
	infoLog.Printf("Attempt to dial |%v| using TLS and we're authenticating as the VM's default service account by fetching a token from the metadata server", lbAddr)
	conn, err := grpc.DialContext(ctx, lbAddr, opts...)
	if err != nil {
		return nil, fmt.Errorf("failed to create grpc connection to Traffic Director: %v", err)
	}
	lbClient := v3adsgrpc.NewAggregatedDiscoveryServiceClient(conn)
	stream, err := lbClient.StreamAggregatedResources(ctx)
	if err != nil {
		return nil, fmt.Errorf("failed to open the stream to Traffic Director: %v", err)
	}
	return stream, nil
}