aboutsummaryrefslogtreecommitdiffstats
path: root/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/ClusterStateRequestHandler.java
blob: 340e6726c6b3acaf21d9adeb8af02aab34f42d00 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.clustercontroller.core.status;

import com.yahoo.vdslib.state.ClusterState;
import com.yahoo.vespa.clustercontroller.core.StateVersionTracker;
import com.yahoo.vespa.clustercontroller.core.status.statuspage.StatusPageResponse;
import com.yahoo.vespa.clustercontroller.core.status.statuspage.StatusPageServer;

public class ClusterStateRequestHandler implements StatusPageServer.RequestHandler  {

    private final StateVersionTracker stateVersionTracker;

    public ClusterStateRequestHandler(StateVersionTracker stateVersionTracker) {
        this.stateVersionTracker = stateVersionTracker;
    }
    @Override
    public StatusPageResponse handle(StatusPageServer.HttpRequest request) {
        ClusterState cs = stateVersionTracker.getVersionedClusterState();

        StatusPageResponse response = new StatusPageResponse();
        response.setContentType("text/plain");
        response.writeContent(cs.toString());
        return response;
    }

    @Override
    public String pattern() { return "^/clusterstate"; }

}