private void addMethods() {
        Method m;

        m = new Method("vespa.storage.connect", "s", "i", this::rpc_storageConnect);
        m.methodDesc("Binds connection to a storage API handle");
        m.paramDesc(0, "somearg", "Argument looking like slobrok address of the ones we're asking for some reason");
        m.returnDesc(0, "returnCode", "Returncode of request. Should be 0 = OK");
        supervisor.addMethod(m);

        m = new Method("getnodestate3", "sii", "ss", this::rpc_getNodeState3);
        m.methodDesc("Get nodeState of a node, answer when state changes from given state.");
        m.paramDesc(0, "nodeStateIn", "The node state of the given node");
        m.paramDesc(1, "timeout", "Time timeout in milliseconds set by the state requester.");
        m.paramDesc(2, "index", "Node index.");
        m.returnDesc(0, "nodeStateOut", "The node state of the given node");
        m.returnDesc(1, "hostinfo", "Information on the host node is running on");
        supervisor.addMethod(m);

        m = new Method(RPCCommunicator.SET_DISTRIBUTION_STATES_RPC_METHOD_NAME, "bix", "", this::rpc_setDistributionStates);
        m.methodDesc("Set distribution states for cluster and bucket spaces");
        m.paramDesc(0, "compressionType", "Compression type for payload");
        m.paramDesc(1, "uncompressedSize", "Uncompressed size of payload");
        m.paramDesc(2, "payload", "Slime format payload");
        supervisor.addMethod(m);

        m = new Method(RPCCommunicator.ACTIVATE_CLUSTER_STATE_VERSION_RPC_METHOD_NAME, "i", "i", this::rpc_activateClusterStateVersion);
        m.methodDesc("Activate a given cluster state version");
        m.paramDesc(0, "stateVersion", "Cluster state version to activate");
        m.returnDesc(0, "actualVersion", "Actual cluster state version on node");
        supervisor.addMethod(m);
    }
Returns the latest system state version received, or empty if none are received yet.
clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/DummyVdsNode.java