예제 #1
0
파일: __init__.py 프로젝트: techhat/cauthon
    def __init__(self, node_type=None, conf_path=None, opts=None):
        '''
        Set up main class
        '''
        if conf_path is None:
            conf_path = '/etc/cauthon'
        if opts:
            self.opts = opts
        else:
            self.opts = cauthon.config.load_config(
                '{0}/cauthon'.format(conf_path),
            )
        self.node_type = node_type
        self.master_opts = salt.config.master_config('{0}/master'.format(conf_path))
        self.minion_opts = salt.config.minion_config('{0}/minion'.format(conf_path))

        header_dict = {}
        header_dict['User-agent'] = self.opts.get('user-agent', DEFAULT_AGENT)

        self.session = requests.Session()
        self.session.auth = self.opts.get('auth', None)
        self.session.verify = self.opts.get('verify_ssl', True)
        self.session.headers.update(header_dict)

        cookie_jar = self.opts.get(
            'cookie_jar', '/var/cache/cauthon/cookies.txt'
        )
        self.session.cookies = cookielib.LWPCookieJar(cookie_jar)
        if not os.path.isfile(cookie_jar):
            self.session.cookies.save()
        self.session.cookies.load()

        self.proxies = self.opts.get('proxies', {})
        self.base_dir = self.opts.get('base_dir', '/var/cache/cauthon/sites')

        self.db = Database()  # pylint: disable=invalid-name
        self.db.connect(self.opts.get('db_driver', 'sqlite3'))

        self.sitemap_load()
        self.filters = Filters()