예제 #1
0
    def _perform_check(self):
        if not self._enabled:
            return

        with self._check_mutex:
            self._logger.debug(
                "Checking against {}:{} if we are online...".format(
                    self._host, self._port))

            old_value = self._online

            for _ in range(3):
                connection_working = server_reachable(self._host,
                                                      port=self._port)

                if self._name:
                    if connection_working:
                        self._logger.debug(
                            f"Checking if we can resolve {self._name}...")
                        resolution_working = len(resolve_host(self._name)) > 0
                    else:
                        resolution_working = False
                else:
                    resolution_working = True

                if not (connection_working and resolution_working):
                    # retry up to 3 times
                    time.sleep(1.0)
                    continue

            self._connection_working = connection_working
            self._resolution_working = resolution_working

            if old_value != self._online:
                self._trigger_change(old_value, self._online)
예제 #2
0
    def _perform_check(self):
        if not self._enabled:
            return

        with self._check_mutex:
            self._logger.debug(
                "Checking against {}:{} if we are online...".format(
                    self._host, self._port))

            old_value = self._online
            self._connection_working = server_reachable(self._host,
                                                        port=self._port)

            if self._name:
                if self._connection_working:
                    self._logger.debug(
                        "Checking if we can resolve {}...".format(self._name))
                    self._resolution_working = len(resolve_host(
                        self._name)) > 0
                else:
                    self._resolution_working = False
            else:
                self._resolution_working = True

            if old_value != self._online:
                self._trigger_change(old_value, self._online)
예제 #3
0
def _test_resolution(data):
    name = data["name"]

    from octoprint.util.net import resolve_host
    resolvable = len(resolve_host(name)) > 0

    result = dict(name=name, result=resolvable)

    return jsonify(**result)