Source code for Tribler.Core.Modules.restapi.state_endpoint

from twisted.web import resource

from Tribler.Core.simpledefs import STATE_STARTING, STATE_UPGRADING, STATE_STARTED, NTFY_UPGRADER, NTFY_STARTED, \
    NTFY_TRIBLER, NTFY_FINISHED, STATE_EXCEPTION
import Tribler.Core.Utilities.json_util as json


[docs]class StateEndpoint(resource.Resource): """ This endpoint is responsible for handing all requests regarding the state of Tribler. """ def __init__(self, session): resource.Resource.__init__(self) self.session = session self.tribler_state = STATE_STARTING self.last_exception = None self.session.add_observer(self.on_tribler_upgrade_started, NTFY_UPGRADER, [NTFY_STARTED]) self.session.add_observer(self.on_tribler_upgrade_finished, NTFY_UPGRADER, [NTFY_FINISHED]) self.session.add_observer(self.on_tribler_started, NTFY_TRIBLER, [NTFY_STARTED]) def on_tribler_upgrade_started(self, subject, changetype, objectID, *args): self.tribler_state = STATE_UPGRADING def on_tribler_upgrade_finished(self, subject, changetype, objectID, *args): self.tribler_state = STATE_STARTING def on_tribler_started(self, subject, changetype, objectID, *args): self.tribler_state = STATE_STARTED def on_tribler_exception(self, exception_text): self.tribler_state = STATE_EXCEPTION self.last_exception = exception_text
[docs] def render_GET(self, request): """ .. http:get:: /state A GET request to this endpoint returns the current state of the Tribler core. There are three states: - STARTING: The core of Tribler is starting - UPGRADING: The upgrader is active - STARTED: The Tribler core has started - EXCEPTION: An exception has occurred in the core **Example request**: .. sourcecode:: none curl -X GET http://localhost:8085/state **Example response**: .. sourcecode:: javascript { "state": "STARTED", "last_exception": None, "readable_state": "" } """ return json.dumps({ "state": self.tribler_state, "last_exception": self.last_exception, "readable_state": self.session.readable_status })