public void Constructor_AllowsReset() { var cr = new LoggersChangeRequest("foo", null); Assert.Equal("foo", cr.Name); Assert.Null(cr.Level); }
public void Constructor_SetsProperties() { var cr = new LoggersChangeRequest("foo", "bar"); Assert.Equal("foo", cr.Name); Assert.Equal("bar", cr.Level); }
public override async Task Invoke(IOwinContext context) { if (!RequestVerbAndPathMatch(context.Request.Method, context.Request.Path.Value)) { await Next.Invoke(context); } else { _logger?.LogTrace("Processing {SteeltoeEndpoint} request", typeof(LoggersEndpoint).Name); if (context.Request.Method == "GET") { // GET request var endpointResponse = _endpoint.Invoke(null); _logger?.LogTrace("Returning: {EndpointResponse}", endpointResponse); context.Response.Headers.SetValues("Content-Type", new string[] { "application/vnd.spring-boot.actuator.v2+json" }); await context.Response.WriteAsync(Serialize(endpointResponse)); } else { // POST - change a logger level _logger?.LogDebug("Incoming logger path: {0}", context.Request.Path.Value); foreach (var path in GetPaths()) { PathString epPath = new PathString(path); if (context.Request.Path.StartsWithSegments(epPath, out PathString remaining)) { if (remaining.HasValue) { string loggerName = remaining.Value.TrimStart('/'); var change = ((LoggersEndpoint)_endpoint).DeserializeRequest(context.Request.Body); change.TryGetValue("configuredLevel", out string level); _logger?.LogDebug("Change Request: {Logger}, {Level}", loggerName, level ?? "RESET"); if (!string.IsNullOrEmpty(loggerName)) { var changeReq = new LoggersChangeRequest(loggerName, level); _endpoint.Invoke(changeReq); context.Response.StatusCode = (int)HttpStatusCode.OK; return; } } } context.Response.StatusCode = (int)HttpStatusCode.BadRequest; return; } } } }
public override void HandleRequest(HttpContext context) { _logger?.LogTrace("Processing {SteeltoeEndpoint} request", typeof(LoggersEndpoint).Name); if (context.Request.HttpMethod == "GET") { // GET request var endpointResponse = _endpoint.Invoke(null); _logger?.LogTrace("Returning: {EndpointResponse}", endpointResponse); context.Response.Headers.Set("Content-Type", "application/vnd.spring-boot.actuator.v1+json"); context.Response.Write(Serialize(endpointResponse)); context.Response.StatusCode = (int)HttpStatusCode.OK; return; } else { // POST - change a logger level _logger?.LogDebug("Incoming logger path: {0}", context.Request.Path); var psPath = context.Request.Path; var epPath = _endpoint.Path; if (psPath.StartsWithSegments(epPath, out string remaining)) { if (!string.IsNullOrEmpty(remaining)) { string loggerName = remaining.TrimStart('/'); var change = ((LoggersEndpoint)_endpoint).DeserializeRequest(context.Request.InputStream); change.TryGetValue("configuredLevel", out string level); _logger?.LogDebug("Change Request: {Logger}, {Level}", loggerName, level ?? "RESET"); if (!string.IsNullOrEmpty(loggerName)) { var changeReq = new LoggersChangeRequest(loggerName, level); _endpoint.Invoke(changeReq); context.Response.StatusCode = (int)HttpStatusCode.OK; return; } } } context.Response.StatusCode = (int)HttpStatusCode.BadRequest; } }
public override Dictionary <string, object> Invoke(LoggersChangeRequest request) { return(new Dictionary <string, object>()); }