Class Node

    • Method Detail

      • disconnect

        public Mono<Void> disconnect()
        Instruct this Node to disconnect.

        This method is async and will return immediately. Use the other methods available to inspect the current state of the node, signaling potential successful disconnection attempts.

      • addService

        public Mono<Void> addService​(ServiceType type,
                                     int port,
                                     Optional<String> bucket)
        Adds a Service to this Node.
        Parameters:
        type - the type of the service.
        port - the port of the service.
        bucket - the bucket name (if present).
        Returns:
        a Mono that completes once the service is added.
      • removeService

        public Mono<Void> removeService​(ServiceType type,
                                        Optional<String> bucket)
        Removes a Service from this Node.
        Parameters:
        type - the type of service.
        bucket - the bucket name if present.
        Returns:
        a mono once completed.
      • serviceState

        public Optional<Flux<ServiceState>> serviceState​(ServiceType type,
                                                         Optional<String> bucket)
        If present, returns a flux that allows to monitor the state changes of a specific service.
        Parameters:
        type - the type of service.
        bucket - the bucket, if present.
        Returns:
        if found, a flux with the service states.
      • send

        public <R extends Request<? extends Response>> void send​(R request)
        Sends the request into this Node.

        Note that there is no guarantee that the request will actually dispatched, based on the state this node is in.

        Parameters:
        request - the request to send.
      • sendIntoRetry

        protected <R extends Request<? extends Response>> void sendIntoRetry​(R request)
        Retries the request.

        This is a separate method because in test it is overridden to do easy assertions.

        Parameters:
        request - the request to retry.
      • identifier

        public NodeIdentifier identifier()
        Returns the node identifier.
      • serviceEnabled

        public boolean serviceEnabled​(ServiceType type)
        If a given ServiceType is enabled on this node.
        Parameters:
        type - the service type to check.
        Returns:
        true if enabled, false otherwise.
      • hasServicesEnabled

        public boolean hasServicesEnabled()
      • createService

        protected Service createService​(ServiceType serviceType,
                                        int port,
                                        Optional<String> bucket)
        Helper method to create the Service based on the service type provided.
        Parameters:
        serviceType - the type of service to create.
        port - the port for that service.
        bucket - optionally the bucket name.
        Returns:
        a created service, but not yet connected or anything.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object