Beispiel #1
0
    def get_state(self):
        self.logger.info('Call getState')

        try:
            resp = yield from self._client.get('{0}/{1}'.format(self._url, 'getState'))
        except aiohttp.errors.ClientOSError as e:
            self.logger.error(e)
            raise KeyboardInterrupt()


        data = (yield from resp.read()).decode('utf-8')

        yield from resp.release()

        if resp.status != 200:
            self.logger.exception('Status {0}:{1} retry after {2}sec'.format(resp.status,
                                                                             data,
                                                                             settings.RETRY_PERIOD))
            yield from asyncio.sleep(settings.RETRY_PERIOD)
            yield from self.get_state()
        else:
            self.logger.debug("Success!! Server return: {}".format(data))
            self._field = Field(data)