def __init__(self, ctx, site, force=False): """ Initialize a new Installer instance @type ctx: ips_vagrant.cli.Context @param site: The IPS Site we are installing @type site: ips_vagrant.models.sites.Site @param force: Overwrite existing files / databases @type force: bool """ self.log = logging.getLogger('ipsv.installer') self.ctx = ctx self.force = force self._previous_title = None self.url = '{scheme}://{host}/admin/install'.format( scheme='https' if site.ssl else 'http', host=site.domain.name) self.site = site self.mysql = create_engine('mysql://*****:*****@localhost') self._sessions = {} self.cookiejar = cookiejar() self.cookies = {cookie.name: cookie.value for cookie in self.cookiejar} self.browser = Browser() self.browser.set_cookiejar(self.cookiejar)
def _request(self, url, method='get', params=None, raise_request=True): """ Perform a standard HTTP request @type url: str @type method: str @type params: dict or None @param raise_request: Raise exceptions for HTTP status errors @type raise_request: bool @rtype: requests.Response """ if 'http' in self._sessions: http = self._sessions['http'] else: self.log.debug('Instantiating a new HTTP session') http = requests.Session() http.cookies.update(cookiejar()) http.verify = False self._sessions['http'] = http response = http.request(method, url, params) self.log.debug('HTTP response code: %s', response.status_code) if raise_request: response.raise_for_status() return response
def _ajax(self, url, method='get', params=None, load_json=True, raise_request=True): """ Perform an Ajax request @type url: str @type method: str @type params: dict or None @type load_json: bool @return: Tuple with the decoded JSON response and actual response, or just the response if load_json is False @rtype: requests.Response or tuple of (dict or list, requests.Response) """ if 'ajax' in self._sessions: ajax = self._sessions['ajax'] else: self.log.debug('Instantiating a new Ajax session') ajax = requests.Session() ajax.headers.update({'X-Requested-With': 'XMLHttpRequest'}) ajax.cookies.update(cookiejar()) ajax.verify = False self._sessions['ajax'] = ajax response = ajax.request(method, url, params) self.log.debug('Ajax response: %s', response.text) if raise_request: response.raise_for_status() if load_json: return byteify(json.loads(response.text)), response return response
def __init__(self, ctx, site, force=False): """ Initialize a new Installer instance @type ctx: ips_vagrant.cli.Context @param site: The IPS Site we are installing @type site: ips_vagrant.models.sites.Site @param force: Overwrite existing files / databases @type force: bool """ self.log = logging.getLogger('ipsv.installer') self.ctx = ctx self.force = force self._previous_title = None self.url = '{scheme}://{host}/admin/install'.format( scheme='https' if site.ssl else 'http', host=site.domain.name ) self.site = site self.mysql = create_engine('mysql://*****:*****@localhost') self._sessions = {} self.cookiejar = cookiejar() self.cookies = {cookie.name: cookie.value for cookie in self.cookiejar} self.browser = Browser() self.browser.set_cookiejar(self.cookiejar)
def __init__(self, ctx): """ Initialize a new Login Handler instance @type ctx: ips_vagrant.cli.Context """ # Debug log self.log = logging.getLogger('ipsv.login') self.cookiejar = cookiejar() self.cookies = {cookie.name: cookie.value for cookie in self.cookiejar} self.browser = Browser() self.browser.set_cookiejar(self.cookiejar)