Пример #1
0
        private async Task <Stream> GetDebugInfoFromNodeAsync(JsonOperationContext jsonOperationContext,
                                                              string url, IEnumerable <string> databaseNames, X509Certificate2 certificate)
        {
            var bodyJson = new DynamicJsonValue
            {
                [nameof(NodeDebugInfoRequestHeader.FromUrl)]       = ServerStore.GetNodeHttpServerUrl(),
                [nameof(NodeDebugInfoRequestHeader.DatabaseNames)] = databaseNames
            };

            using (var ms = new MemoryStream())
                using (var writer = new BlittableJsonTextWriter(jsonOperationContext, ms))
                {
                    jsonOperationContext.Write(writer, bodyJson);
                    writer.Flush();
                    ms.Flush();

                    var requestExecutor = ClusterRequestExecutor.CreateForSingleNode(url, certificate);
                    requestExecutor.DefaultTimeout = ServerStore.Configuration.Cluster.OperationTimeout.AsTimeSpan;

                    var rawStreamCommand = new GetRawStreamResultCommand("admin/debug/remote-cluster-info-package", ms);

                    await requestExecutor.ExecuteAsync(rawStreamCommand, jsonOperationContext);

                    rawStreamCommand.Result.Position = 0;
                    return(rawStreamCommand.Result);
                }
        }
        private async Task <Stream> GetDebugInfoFromNodeAsync(
            JsonOperationContext context,
            RequestExecutor requestExecutor,
            IEnumerable <string> databaseNames)
        {
            var bodyJson = new DynamicJsonValue
            {
                [nameof(NodeDebugInfoRequestHeader.FromUrl)]       = ServerStore.GetNodeHttpServerUrl(),
                [nameof(NodeDebugInfoRequestHeader.DatabaseNames)] = databaseNames
            };

            using (var ms = new MemoryStream())
                using (var writer = new BlittableJsonTextWriter(context, ms))
                {
                    context.Write(writer, bodyJson);
                    writer.Flush();
                    ms.Flush();

                    var rawStreamCommand = new GetRawStreamResultCommand($"admin/debug/remote-cluster-info-package", ms);

                    await requestExecutor.ExecuteAsync(rawStreamCommand, context);

                    rawStreamCommand.Result.Position = 0;
                    return(rawStreamCommand.Result);
                }
        }
        private async Task <Stream> GetDebugInfoFromNodeAsync(
            JsonOperationContext context,
            RequestExecutor requestExecutor)
        {
            var rawStreamCommand = new GetRawStreamResultCommand($"/admin/debug/info-package");
            await requestExecutor.ExecuteAsync(rawStreamCommand, context);

            rawStreamCommand.Result.Position = 0;
            return(rawStreamCommand.Result);
        }