Example #1
0
        protected ServerScalarConfig QueryScalarConfig(ITracer tracer, ScalarEnlistment enlistment, RetryConfig retryConfig)
        {
            ServerScalarConfig serverScalarConfig = null;
            string             errorMessage       = null;

            if (!this.ShowStatusWhileRunning(
                    () =>
            {
                using (ConfigHttpRequestor configRequestor = new ConfigHttpRequestor(tracer, enlistment, retryConfig))
                {
                    const bool LogErrors = true;
                    return(configRequestor.TryQueryScalarConfig(LogErrors, out serverScalarConfig, out _, out errorMessage));
                }
            },
                    "Querying remote for config"))
            {
                tracer.RelatedWarning("Unable to query /gvfs/config" + Environment.NewLine + errorMessage);
            }

            return(serverScalarConfig);
        }
Example #2
0
        private bool TryAnonymousQuery(ITracer tracer, Enlistment enlistment, out bool isAnonymous)
        {
            bool querySucceeded;

            using (ITracer anonymousTracer = tracer.StartActivity("AttemptAnonymousAuth", EventLevel.Informational))
            {
                HttpStatusCode?httpStatus;

                using (ConfigHttpRequestor configRequestor = new ConfigHttpRequestor(anonymousTracer, enlistment, new RetryConfig()))
                {
                    ServerScalarConfig scalarConfig;
                    const bool         LogErrors = false;
                    if (configRequestor.TryQueryScalarConfig(LogErrors, out scalarConfig, out httpStatus, out _))
                    {
                        querySucceeded = true;
                        isAnonymous    = true;
                    }
                    else if (httpStatus == HttpStatusCode.Unauthorized)
                    {
                        querySucceeded = true;
                        isAnonymous    = false;
                    }
                    else
                    {
                        querySucceeded = false;
                        isAnonymous    = false;
                    }
                }

                anonymousTracer.Stop(new EventMetadata
                {
                    { "HttpStatus", httpStatus.HasValue ? ((int)httpStatus).ToString() : "None" },
                    { "QuerySucceeded", querySucceeded },
                    { "IsAnonymous", isAnonymous },
                });
            }

            return(querySucceeded);
        }