Ejemplo n.º 1
0
        public async Task <Result <ServerHealthInfo> > GetHealth(Action <HealthCheckAction> action,
                                                                 CancellationToken cancellationToken = default)
        {
            cancellationToken.RequestCanceled();

            var impl = new HealthCheckActionImpl();

            action(impl);

            string url;

            switch (impl.CheckUpType)
            {
            case HealthCheckType.VirtualHost:
                url = $"api/aliveness-test/{impl.RmqObjectName.ToSanitizedName()}";
                break;

            case HealthCheckType.Node:
                url = $"api/healthchecks/node/{impl.RmqObjectName}";
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            Result <ServerHealthInfoImpl> result = await Get <ServerHealthInfoImpl>(url, cancellationToken).ConfigureAwait(false);

            Result <ServerHealthInfo> MapResult(Result <ServerHealthInfoImpl> result) => new ResultHealthCopy(result);

            return(MapResult(result));
        }
Ejemplo n.º 2
0
        public async Task <Result <ServerHealth> > HealthCheck(Action <HealthCheckAction> action, CancellationToken cancellationToken = default)
        {
            cancellationToken.RequestCanceled();

            var impl = new HealthCheckActionImpl();

            action(impl);

            string url;

            switch (impl.CheckUpType)
            {
            case HealthCheckType.VirtualHost:
                url = $"api/aliveness-test/{SanitizeVirtualHostName(impl.ResourceName)}";
                break;

            case HealthCheckType.Node:
                url = $"api/healthchecks/node/{impl.ResourceName}";
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            Result <ServerHealth> result = await Get <ServerHealth>(url, cancellationToken);

            return(result);
        }