def load(filename=None): """Read in and JSON the app-independent configuration file (normally forge_build.json). """ if filename is None: filename = defaults.CONFIG_FILE with open(filename) as conf_file: config = json.load(conf_file) LOG.debug("Forge build tools version: %s" % forge.get_version()) for key, val in config.iteritems(): LOG.debug("%s: %s" % (key, json.dumps(val))) return config
def check_version(self): result = self._api_get( 'version_check/{version}/'.format(version=forge.get_version().replace('.','/')) ) if result['result'] == 'ok': if 'upgrade' in result: LOG.info('Update result: %s' % result['message']) else: LOG.debug('Update result: %s' % result['message']) if result.get('upgrade') == 'required': raise UpdateRequired() else: LOG.info('Upgrade check failed.')
def load(filename=None): '''Read in and JSON the app-independent configuration file (normally forge_build.json). ''' if filename is None: filename = defaults.CONFIG_FILE if path.exists(filename + ".local"): filename = filename + ".local" LOG.info("Using config file: %s" % filename) with open(filename) as conf_file: config = json.load(conf_file) LOG.debug('Forge build tools version: %s' % forge.get_version()) for key, val in config.iteritems(): LOG.debug('%s: %s' % (key, json.dumps(val))) return config
def setup_logging(settings): 'Adjust logging parameters according to command line switches' verbose = settings.get('verbose') quiet = settings.get('quiet') if verbose and quiet: raise ArgumentError('Cannot run in quiet and verbose mode at the same time') if verbose: stdout_log_level = logging.DEBUG elif quiet: stdout_log_level = logging.WARNING else: stdout_log_level = logging.INFO logging.basicConfig(level=stdout_log_level, format='[%(levelname)7s] %(message)s') file_handler = logging.FileHandler(ERROR_LOG_FILE, delay=True) file_handler.setFormatter(logging.Formatter('%(asctime)s [%(levelname)7s] %(message)s')) file_handler.setLevel(logging.DEBUG) logging.root.addHandler(file_handler) LOG.info('Forge tools running at version %s' % forge.get_version())
def load(filename=None): '''Read in and JSON the app-independent configuration file (normally forge_build.json). ''' if filename is None: filename = defaults.CONFIG_FILE if path.exists(filename + ".local"): filename = filename + ".local" LOG.info("Using config file: %s" % filename) if path.exists(filename): with open(filename) as conf_file: config = json.load(conf_file) else: config = {} LOG.debug('Forge build tools version: %s' % forge.get_version()) for key, val in config.iteritems(): LOG.debug('%s: %s' % (key, json.dumps(val))) return config
def setup_logging(settings): 'Adjust logging parameters according to command line switches' global LOG verbose = settings.get('verbose') quiet = settings.get('quiet') if verbose and quiet: raise ArgumentError('Cannot run in quiet and verbose mode at the same time') if verbose: stdout_log_level = logging.DEBUG elif quiet: stdout_log_level = logging.WARNING else: stdout_log_level = logging.INFO logging.root.setLevel(logging.DEBUG) _setup_logging_to_stdout(stdout_log_level) _setup_error_logging_to_file() _filter_requests_logging() LOG = logging.getLogger(__name__) LOG.info('Forge tools running at version %s' % forge.get_version())
def __get_or_post(self, url, *args, **kw): '''Expects ``__method`` entry in :param:`**kw` ''' method = kw['__method'] del kw['__method'] kw['verify'] = True if method == "POST": # must have CSRF token data = kw.get("data", {}) data['build_tools_version'] = forge.get_version() data["csrfmiddlewaretoken"] = self._csrf_token() kw["data"] = data kw['cookies'] = _cookies_for_domain(self.hostname, self.cookies) kw['headers'] = {'REFERER': url} if self.config.get('main', {}).get('authentication'): if urlparse.urlparse(url).hostname == self.hostname: kw['auth'] = ( self.config['main']['authentication'].get('username'), self.config['main']['authentication'].get('password') ) if self.config.get('main', {}).get('proxies'): kw['proxies'] = self.config['main']['proxies'] LOG.debug('{method} {url}'.format(method=method.upper(), url=url)) resp = getattr(self.session, method.lower())(url, *args, **kw) lib.load_cookies_from_response(resp, self.cookies) cookie_lock.acquire() self.cookies.save() cookie_lock.release() # XXX: response is definitely json at this point? # guaranteed if we're only making calls to the api return resp