def _check_updates(self): if self.config.get(SETTINGS).get("check-updates", True): try: params = (bzt.VERSION, self.config.get("install-id", "N/A")) req = "http://gettaurus.org/updates/?version=%s&installID=%s" % params self.log.debug("Requesting updates info: %s", req) response = urlopen(req, timeout=1) resp = response.read() if not isinstance(resp, str): resp = resp.decode() self.log.debug("Result: %s", resp) data = json.loads(resp) mine = LooseVersion(bzt.VERSION) latest = LooseVersion(data['latest']) if mine < latest or data['needsUpgrade']: self.log.warning("There is newer version of Taurus %s available, consider upgrading", latest) else: self.log.debug("Installation is up-to-date") except BaseException: self.log.debug("Failed to check for updates: %s", traceback.format_exc()) self.log.warning("Failed to check for updates")
def _request(self, url, data=None, headers=None, checker=None, method=None): if not headers: headers = {} if self.token: headers["X-Api-Key"] = self.token log_method = 'GET' if data is None else 'POST' if method: log_method = method self.log.debug("Request: %s %s %s", log_method, url, data[:self.logger_limit] if data else None) # .encode("utf-8") is probably better data = data.encode() if isinstance(data, text_type) else data req = Request(url, data, headers) if method: req.get_method = lambda: method response = urlopen(req, timeout=self.timeout) if checker: checker(response) resp = response.read() if not isinstance(resp, str): resp = resp.decode() self.log.debug("Response: %s", resp[:self.logger_limit] if resp else None) try: return json.loads(resp) if len(resp) else {} except ValueError: self.log.warning("Non-JSON response from API: %s", resp) raise
def _request(self, url, data=None, headers=None, checker=None, method=None): if not headers: headers = {} if self.token: headers["X-API-Key"] = self.token self.log.debug("Request: %s %s %s", method if method else 'GET', url, data[:self.logger_limit] if data else None) # .encode("utf-8") is probably better data = data.encode() if isinstance(data, text_type) else data req = Request(url, data, headers) if method: req.get_method = lambda: method response = urlopen(req, timeout=self.timeout) if checker: checker(response) resp = response.read() if not isinstance(resp, str): resp = resp.decode() self.log.debug("Response: %s", resp[:self.logger_limit] if resp else None) return json.loads(resp) if len(resp) else {}
def _check_updates(self, install_id): try: params = (bzt.VERSION, install_id) req = "http://gettaurus.org/updates/?version=%s&installID=%s" % params self.log.debug("Requesting updates info: %s", req) response = urlopen(req, timeout=10) resp = response.read() if not isinstance(resp, str): resp = resp.decode() self.log.debug("Taurus updates info: %s", resp) data = json.loads(resp) mine = LooseVersion(bzt.VERSION) latest = LooseVersion(data['latest']) if mine < latest or data['needsUpgrade']: msg = "There is newer version of Taurus %s available, consider upgrading. " \ "What's new: http://gettaurus.org/docs/Changelog/" self.log.warning(msg, latest) else: self.log.debug("Installation is up-to-date") except BaseException: self.log.debug("Failed to check for updates: %s", traceback.format_exc()) self.log.warning("Failed to check for updates")
def _check_updates(self): if self.config.get(SETTINGS).get("check-updates", True): try: params = (bzt.VERSION, self.config.get("install-id", "N/A")) req = "http://gettaurus.org/updates/?version=%s&installID=%s" % params self.log.debug("Requesting updates info: %s", req) response = urlopen(req, timeout=1) resp = response.read() if not isinstance(resp, str): resp = resp.decode() self.log.debug("Result: %s", resp) data = json.loads(resp) mine = LooseVersion(bzt.VERSION) latest = LooseVersion(data['latest']) if mine < latest or data['needsUpgrade']: self.log.warning("There is newer version of Taurus %s available, consider upgrading", latest) else: self.log.debug("Installation is up-to-date") except BaseException: self.log.debug("Failed to check for updates: %s", traceback.format_exc()) self.log.debug("Failed to check for updates")
def _request(self, url, data=None, headers=None, checker=None, method=None): if not headers: headers = {} if self.token: headers["X-API-Key"] = self.token log_method = 'GET' if data is None else 'POST' if method: log_method = method self.log.debug("Request: %s %s %s", log_method, url, data[:self.logger_limit] if data else None) # .encode("utf-8") is probably better data = data.encode() if isinstance(data, text_type) else data req = Request(url, data, headers) if method: req.get_method = lambda: method response = urlopen(req, timeout=self.timeout) if checker: checker(response) resp = response.read() if not isinstance(resp, str): resp = resp.decode() self.log.debug("Response: %s", resp[:self.logger_limit] if resp else None) try: return json.loads(resp) if len(resp) else {} except ValueError: self.log.warning("Non-JSON response from API: %s", resp) raise
def tool_is_started(self): try: response = urlopen("http://%s:%s%s" % (self.addr, self.port, '/wd/hub/sessions')) resp_str = response.read() if not isinstance(resp_str, str): resp_str = resp_str.decode() return isinstance(json.loads(resp_str), dict) except (URLError, ValueError): return False
def _data_transfer(self): str_data = urlopen(self.url, timeout=self.timeout) return json.load(str_data)