Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [root@cl7x64 rpm-tests]# /opt/alt/python35/bin/pytest -k test_modsec_rule_disabled_global --junit-xml=report.xml --verbose --capture=no -m "not slow" .
- ============================================================================================= test session starts ==============================================================================================
- platform linux -- Python 3.5.7, pytest-4.6.3, py-1.8.0, pluggy-0.12.0 -- /opt/alt/python35/bin/python3
- cachedir: .pytest_cache
- rootdir: /root/defence360/src/rpm-tests, inifile: pytest.ini
- collected 146 items / 145 deselected / 1 selected
- test_modsec_rules_disabling.py::test_modsec_rule_disabled_global FAILED
- =================================================================================================== FAILURES ===================================================================================================
- _______________________________________________________________________________________ test_modsec_rule_disabled_global _______________________________________________________________________________________
- self = <requests.packages.urllib3.connection.HTTPConnection object at 0x7f366300c2b0>
- def _new_conn(self):
- """ Establish a socket connection and set nodelay settings on it.
- :return: New socket connection.
- """
- extra_kw = {}
- if self.source_address:
- extra_kw['source_address'] = self.source_address
- if self.socket_options:
- extra_kw['socket_options'] = self.socket_options
- try:
- conn = connection.create_connection(
- > (self.host, self.port), self.timeout, **extra_kw)
- /opt/alt/python35/lib/python3.5/site-packages/requests/packages/urllib3/connection.py:142:
- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
- address = ('rosario-mills.biz', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]
- def create_connection(address, timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
- source_address=None, socket_options=None):
- """Connect to *address* and return the socket object.
- Convenience function. Connect to *address* (a 2-tuple ``(host,
- port)``) and return the socket object. Passing the optional
- *timeout* parameter will set the timeout on the socket instance
- before attempting to connect. If no *timeout* is supplied, the
- global default timeout setting returned by :func:`getdefaulttimeout`
- is used. If *source_address* is set it must be a tuple of (host, port)
- for the socket to bind as a source address before making the connection.
- An host of '' or port 0 tells the OS to use the default.
- """
- host, port = address
- if host.startswith('['):
- host = host.strip('[]')
- err = None
- for res in socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM):
- af, socktype, proto, canonname, sa = res
- sock = None
- try:
- sock = socket.socket(af, socktype, proto)
- # If provided, set socket level options before connecting.
- # This is the only addition urllib3 makes to this function.
- _set_socket_options(sock, socket_options)
- if timeout is not socket._GLOBAL_DEFAULT_TIMEOUT:
- sock.settimeout(timeout)
- if source_address:
- sock.bind(source_address)
- sock.connect(sa)
- return sock
- except socket.error as e:
- err = e
- if sock is not None:
- sock.close()
- sock = None
- if err is not None:
- > raise err
- /opt/alt/python35/lib/python3.5/site-packages/requests/packages/urllib3/util/connection.py:91:
- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
- address = ('rosario-mills.biz', 80), timeout = None, source_address = None, socket_options = [(6, 1, 1)]
- def create_connection(address, timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
- source_address=None, socket_options=None):
- """Connect to *address* and return the socket object.
- Convenience function. Connect to *address* (a 2-tuple ``(host,
- port)``) and return the socket object. Passing the optional
- *timeout* parameter will set the timeout on the socket instance
- before attempting to connect. If no *timeout* is supplied, the
- global default timeout setting returned by :func:`getdefaulttimeout`
- is used. If *source_address* is set it must be a tuple of (host, port)
- for the socket to bind as a source address before making the connection.
- An host of '' or port 0 tells the OS to use the default.
- """
- host, port = address
- if host.startswith('['):
- host = host.strip('[]')
- err = None
- for res in socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM):
- af, socktype, proto, canonname, sa = res
- sock = None
- try:
- sock = socket.socket(af, socktype, proto)
- # If provided, set socket level options before connecting.
- # This is the only addition urllib3 makes to this function.
- _set_socket_options(sock, socket_options)
- if timeout is not socket._GLOBAL_DEFAULT_TIMEOUT:
- sock.settimeout(timeout)
- if source_address:
- sock.bind(source_address)
- > sock.connect(sa)
- E ConnectionRefusedError: [Errno 111] Connection refused
- /opt/alt/python35/lib/python3.5/site-packages/requests/packages/urllib3/util/connection.py:81: ConnectionRefusedError
- During handling of the above exception, another exception occurred:
- self = <requests.packages.urllib3.connectionpool.HTTPConnectionPool object at 0x7f366300cb38>, method = 'GET', url = '/ready.html', body = None
- headers = {'Connection': 'keep-alive', 'User-Agent': 'python-requests/2.10.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*'}, retries = Retry(total=0, connect=None, read=False, redirect=None)
- redirect = False, assert_same_host = False, timeout = <requests.packages.urllib3.util.timeout.Timeout object at 0x7f366300c7b8>, pool_timeout = None, release_conn = True, chunked = False
- response_kw = {'decode_content': False, 'preload_content': False}, conn = None, err = None, clean_exit = False, timeout_obj = <requests.packages.urllib3.util.timeout.Timeout object at 0x7f366300c550>
- is_new_proxy_conn = False
- def urlopen(self, method, url, body=None, headers=None, retries=None,
- redirect=True, assert_same_host=True, timeout=_Default,
- pool_timeout=None, release_conn=None, chunked=False,
- **response_kw):
- """
- Get a connection from the pool and perform an HTTP request. This is the
- lowest level call for making a request, so you'll need to specify all
- the raw details.
- .. note::
- More commonly, it's appropriate to use a convenience method provided
- by :class:`.RequestMethods`, such as :meth:`request`.
- .. note::
- `release_conn` will only behave as expected if
- `preload_content=False` because we want to make
- `preload_content=False` the default behaviour someday soon without
- breaking backwards compatibility.
- :param method:
- HTTP request method (such as GET, POST, PUT, etc.)
- :param body:
- Data to send in the request body (useful for creating
- POST requests, see HTTPConnectionPool.post_url for
- more convenience).
- :param headers:
- Dictionary of custom headers to send, such as User-Agent,
- If-None-Match, etc. If None, pool headers are used. If provided,
- these headers completely replace any pool-specific headers.
- :param retries:
- Configure the number of retries to allow before raising a
- :class:`~urllib3.exceptions.MaxRetryError` exception.
- Pass ``None`` to retry until you receive a response. Pass a
- :class:`~urllib3.util.retry.Retry` object for fine-grained control
- over different types of retries.
- Pass an integer number to retry connection errors that many times,
- but no other types of errors. Pass zero to never retry.
- If ``False``, then retries are disabled and any exception is raised
- immediately. Also, instead of raising a MaxRetryError on redirects,
- the redirect response will be returned.
- :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.
- :param redirect:
- If True, automatically handle redirects (status codes 301, 302,
- 303, 307, 308). Each redirect counts as a retry. Disabling retries
- will disable redirect, too.
- :param assert_same_host:
- If ``True``, will make sure that the host of the pool requests is
- consistent else will raise HostChangedError. When False, you can
- use the pool on an HTTP proxy and request foreign hosts.
- :param timeout:
- If specified, overrides the default timeout for this one
- request. It may be a float (in seconds) or an instance of
- :class:`urllib3.util.Timeout`.
- :param pool_timeout:
- If set and the pool is set to block=True, then this method will
- block for ``pool_timeout`` seconds and raise EmptyPoolError if no
- connection is available within the time period.
- :param release_conn:
- If False, then the urlopen call will not release the connection
- back into the pool once a response is received (but will release if
- you read the entire contents of the response such as when
- `preload_content=True`). This is useful if you're not preloading
- the response's content immediately. You will need to call
- ``r.release_conn()`` on the response ``r`` to return the connection
- back into the pool. If None, it takes the value of
- ``response_kw.get('preload_content', True)``.
- :param chunked:
- If True, urllib3 will send the body using chunked transfer
- encoding. Otherwise, urllib3 will send the body using the standard
- content-length form. Defaults to False.
- :param \**response_kw:
- Additional parameters are passed to
- :meth:`urllib3.response.HTTPResponse.from_httplib`
- """
- if headers is None:
- headers = self.headers
- if not isinstance(retries, Retry):
- retries = Retry.from_int(retries, redirect=redirect, default=self.retries)
- if release_conn is None:
- release_conn = response_kw.get('preload_content', True)
- # Check host
- if assert_same_host and not self.is_same_host(url):
- raise HostChangedError(self, url, retries)
- conn = None
- # Merge the proxy headers. Only do this in HTTP. We have to copy the
- # headers dict so we can safely change it without those changes being
- # reflected in anyone else's copy.
- if self.scheme == 'http':
- headers = headers.copy()
- headers.update(self.proxy_headers)
- # Must keep the exception bound to a separate variable or else Python 3
- # complains about UnboundLocalError.
- err = None
- # Keep track of whether we cleanly exited the except block. This
- # ensures we do proper cleanup in finally.
- clean_exit = False
- try:
- # Request a connection from the queue.
- timeout_obj = self._get_timeout(timeout)
- conn = self._get_conn(timeout=pool_timeout)
- conn.timeout = timeout_obj.connect_timeout
- is_new_proxy_conn = self.proxy is not None and not getattr(conn, 'sock', None)
- if is_new_proxy_conn:
- self._prepare_proxy(conn)
- # Make the request on the httplib connection object.
- httplib_response = self._make_request(conn, method, url,
- timeout=timeout_obj,
- body=body, headers=headers,
- > chunked=chunked)
- /opt/alt/python35/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py:578:
- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
- self = <requests.packages.urllib3.connectionpool.HTTPConnectionPool object at 0x7f366300cb38>, conn = <requests.packages.urllib3.connection.HTTPConnection object at 0x7f366300c2b0>, method = 'GET'
- url = '/ready.html', timeout = <requests.packages.urllib3.util.timeout.Timeout object at 0x7f366300c550>, chunked = False
- httplib_request_kw = {'body': None, 'headers': {'Connection': 'keep-alive', 'User-Agent': 'python-requests/2.10.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*'}}
- timeout_obj = <requests.packages.urllib3.util.timeout.Timeout object at 0x7f366300c518>
- def _make_request(self, conn, method, url, timeout=_Default, chunked=False,
- **httplib_request_kw):
- """
- Perform a request on a given urllib connection object taken from our
- pool.
- :param conn:
- a connection from one of our connection pools
- :param timeout:
- Socket timeout in seconds for the request. This can be a
- float or integer, which will set the same timeout value for
- the socket connect and the socket read, or an instance of
- :class:`urllib3.util.Timeout`, which gives you more fine-grained
- control over your timeouts.
- """
- self.num_requests += 1
- timeout_obj = self._get_timeout(timeout)
- timeout_obj.start_connect()
- conn.timeout = timeout_obj.connect_timeout
- # Trigger any extra validation we need to do.
- try:
- self._validate_conn(conn)
- except (SocketTimeout, BaseSSLError) as e:
- # Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
- self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
- raise
- # conn.request() calls httplib.*.request, not the method in
- # urllib3.request. It also calls makefile (recv) on the socket.
- if chunked:
- conn.request_chunked(method, url, **httplib_request_kw)
- else:
- > conn.request(method, url, **httplib_request_kw)
- /opt/alt/python35/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py:362:
- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
- self = <requests.packages.urllib3.connection.HTTPConnection object at 0x7f366300c2b0>, method = 'GET', url = '/ready.html', body = None
- headers = {'Connection': 'keep-alive', 'User-Agent': 'python-requests/2.10.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*'}
- def request(self, method, url, body=None, headers={}):
- """Send a complete request to the server."""
- > self._send_request(method, url, body, headers)
- /opt/alt/python35/lib64/python3.5/http/client.py:1107:
- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
- self = <requests.packages.urllib3.connection.HTTPConnection object at 0x7f366300c2b0>, method = 'GET', url = '/ready.html', body = None
- headers = {'Connection': 'keep-alive', 'User-Agent': 'python-requests/2.10.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*'}
- def _send_request(self, method, url, body, headers):
- # Honor explicitly requested Host: and Accept-Encoding: headers.
- header_names = dict.fromkeys([k.lower() for k in headers])
- skips = {}
- if 'host' in header_names:
- skips['skip_host'] = 1
- if 'accept-encoding' in header_names:
- skips['skip_accept_encoding'] = 1
- self.putrequest(method, url, **skips)
- if 'content-length' not in header_names:
- self._set_content_length(body, method)
- for hdr, value in headers.items():
- self.putheader(hdr, value)
- if isinstance(body, str):
- # RFC 2616 Section 3.7.1 says that text default has a
- # default charset of iso-8859-1.
- body = _encode(body, 'body')
- > self.endheaders(body)
- /opt/alt/python35/lib64/python3.5/http/client.py:1152:
- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
- self = <requests.packages.urllib3.connection.HTTPConnection object at 0x7f366300c2b0>, message_body = None
- def endheaders(self, message_body=None):
- """Indicate that the last header line has been sent to the server.
- This method sends the request to the server. The optional message_body
- argument can be used to pass a message body associated with the
- request. The message body will be sent in the same packet as the
- message headers if it is a string, otherwise it is sent as a separate
- packet.
- """
- if self.__state == _CS_REQ_STARTED:
- self.__state = _CS_REQ_SENT
- else:
- raise CannotSendHeader()
- > self._send_output(message_body)
- /opt/alt/python35/lib64/python3.5/http/client.py:1103:
- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
- self = <requests.packages.urllib3.connection.HTTPConnection object at 0x7f366300c2b0>, message_body = None
- def _send_output(self, message_body=None):
- """Send the currently buffered request and clear the buffer.
- Appends an extra \\r\\n to the buffer.
- A message_body may be specified, to be appended to the request.
- """
- self._buffer.extend((b"", b""))
- msg = b"\r\n".join(self._buffer)
- del self._buffer[:]
- > self.send(msg)
- /opt/alt/python35/lib64/python3.5/http/client.py:934:
- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
- self = <requests.packages.urllib3.connection.HTTPConnection object at 0x7f366300c2b0>
- data = b'GET /ready.html HTTP/1.1\r\nHost: rosario-mills.biz\r\nConnection: keep-alive\r\nUser-Agent: python-requests/2.10.0\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\n\r\n'
- def send(self, data):
- """Send `data' to the server.
- ``data`` can be a string object, a bytes object, an array object, a
- file-like object that supports a .read() method, or an iterable object.
- """
- if self.sock is None:
- if self.auto_open:
- > self.connect()
- /opt/alt/python35/lib64/python3.5/http/client.py:877:
- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
- self = <requests.packages.urllib3.connection.HTTPConnection object at 0x7f366300c2b0>
- def connect(self):
- > conn = self._new_conn()
- /opt/alt/python35/lib/python3.5/site-packages/requests/packages/urllib3/connection.py:167:
- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
- self = <requests.packages.urllib3.connection.HTTPConnection object at 0x7f366300c2b0>
- def _new_conn(self):
- """ Establish a socket connection and set nodelay settings on it.
- :return: New socket connection.
- """
- extra_kw = {}
- if self.source_address:
- extra_kw['source_address'] = self.source_address
- if self.socket_options:
- extra_kw['socket_options'] = self.socket_options
- try:
- conn = connection.create_connection(
- (self.host, self.port), self.timeout, **extra_kw)
- except SocketTimeout as e:
- raise ConnectTimeoutError(
- self, "Connection to %s timed out. (connect timeout=%s)" %
- (self.host, self.timeout))
- except SocketError as e:
- raise NewConnectionError(
- > self, "Failed to establish a new connection: %s" % e)
- E requests.packages.urllib3.exceptions.NewConnectionError: <requests.packages.urllib3.connection.HTTPConnection object at 0x7f366300c2b0>: Failed to establish a new connection: [Errno 111] Connection refused
- /opt/alt/python35/lib/python3.5/site-packages/requests/packages/urllib3/connection.py:151: NewConnectionError
- During handling of the above exception, another exception occurred:
- self = <requests.adapters.HTTPAdapter object at 0x7f366300c630>, request = <PreparedRequest [GET]>, stream = False, timeout = <requests.packages.urllib3.util.timeout.Timeout object at 0x7f366300c7b8>
- verify = True, cert = None, proxies = OrderedDict()
- def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):
- """Sends PreparedRequest object. Returns Response object.
- :param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
- :param stream: (optional) Whether to stream the request content.
- :param timeout: (optional) How long to wait for the server to send
- data before giving up, as a float, or a :ref:`(connect timeout,
- read timeout) <timeouts>` tuple.
- :type timeout: float or tuple
- :param verify: (optional) Whether to verify SSL certificates.
- :param cert: (optional) Any user-provided SSL certificate to be trusted.
- :param proxies: (optional) The proxies dictionary to apply to the request.
- """
- conn = self.get_connection(request.url, proxies)
- self.cert_verify(conn, request.url, verify, cert)
- url = self.request_url(request, proxies)
- self.add_headers(request)
- chunked = not (request.body is None or 'Content-Length' in request.headers)
- if isinstance(timeout, tuple):
- try:
- connect, read = timeout
- timeout = TimeoutSauce(connect=connect, read=read)
- except ValueError as e:
- # this may raise a string formatting error.
- err = ("Invalid timeout {0}. Pass a (connect, read) "
- "timeout tuple, or a single float to set "
- "both timeouts to the same value".format(timeout))
- raise ValueError(err)
- else:
- timeout = TimeoutSauce(connect=timeout, read=timeout)
- try:
- if not chunked:
- resp = conn.urlopen(
- method=request.method,
- url=url,
- body=request.body,
- headers=request.headers,
- redirect=False,
- assert_same_host=False,
- preload_content=False,
- decode_content=False,
- retries=self.max_retries,
- > timeout=timeout
- )
- /opt/alt/python35/lib/python3.5/site-packages/requests/adapters.py:403:
- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
- self = <requests.packages.urllib3.connectionpool.HTTPConnectionPool object at 0x7f366300cb38>, method = 'GET', url = '/ready.html', body = None
- headers = {'Connection': 'keep-alive', 'User-Agent': 'python-requests/2.10.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*'}, retries = Retry(total=0, connect=None, read=False, redirect=None)
- redirect = False, assert_same_host = False, timeout = <requests.packages.urllib3.util.timeout.Timeout object at 0x7f366300c7b8>, pool_timeout = None, release_conn = True, chunked = False
- response_kw = {'decode_content': False, 'preload_content': False}, conn = None, err = None, clean_exit = False, timeout_obj = <requests.packages.urllib3.util.timeout.Timeout object at 0x7f366300c550>
- is_new_proxy_conn = False
- def urlopen(self, method, url, body=None, headers=None, retries=None,
- redirect=True, assert_same_host=True, timeout=_Default,
- pool_timeout=None, release_conn=None, chunked=False,
- **response_kw):
- """
- Get a connection from the pool and perform an HTTP request. This is the
- lowest level call for making a request, so you'll need to specify all
- the raw details.
- .. note::
- More commonly, it's appropriate to use a convenience method provided
- by :class:`.RequestMethods`, such as :meth:`request`.
- .. note::
- `release_conn` will only behave as expected if
- `preload_content=False` because we want to make
- `preload_content=False` the default behaviour someday soon without
- breaking backwards compatibility.
- :param method:
- HTTP request method (such as GET, POST, PUT, etc.)
- :param body:
- Data to send in the request body (useful for creating
- POST requests, see HTTPConnectionPool.post_url for
- more convenience).
- :param headers:
- Dictionary of custom headers to send, such as User-Agent,
- If-None-Match, etc. If None, pool headers are used. If provided,
- these headers completely replace any pool-specific headers.
- :param retries:
- Configure the number of retries to allow before raising a
- :class:`~urllib3.exceptions.MaxRetryError` exception.
- Pass ``None`` to retry until you receive a response. Pass a
- :class:`~urllib3.util.retry.Retry` object for fine-grained control
- over different types of retries.
- Pass an integer number to retry connection errors that many times,
- but no other types of errors. Pass zero to never retry.
- If ``False``, then retries are disabled and any exception is raised
- immediately. Also, instead of raising a MaxRetryError on redirects,
- the redirect response will be returned.
- :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.
- :param redirect:
- If True, automatically handle redirects (status codes 301, 302,
- 303, 307, 308). Each redirect counts as a retry. Disabling retries
- will disable redirect, too.
- :param assert_same_host:
- If ``True``, will make sure that the host of the pool requests is
- consistent else will raise HostChangedError. When False, you can
- use the pool on an HTTP proxy and request foreign hosts.
- :param timeout:
- If specified, overrides the default timeout for this one
- request. It may be a float (in seconds) or an instance of
- :class:`urllib3.util.Timeout`.
- :param pool_timeout:
- If set and the pool is set to block=True, then this method will
- block for ``pool_timeout`` seconds and raise EmptyPoolError if no
- connection is available within the time period.
- :param release_conn:
- If False, then the urlopen call will not release the connection
- back into the pool once a response is received (but will release if
- you read the entire contents of the response such as when
- `preload_content=True`). This is useful if you're not preloading
- the response's content immediately. You will need to call
- ``r.release_conn()`` on the response ``r`` to return the connection
- back into the pool. If None, it takes the value of
- ``response_kw.get('preload_content', True)``.
- :param chunked:
- If True, urllib3 will send the body using chunked transfer
- encoding. Otherwise, urllib3 will send the body using the standard
- content-length form. Defaults to False.
- :param \**response_kw:
- Additional parameters are passed to
- :meth:`urllib3.response.HTTPResponse.from_httplib`
- """
- if headers is None:
- headers = self.headers
- if not isinstance(retries, Retry):
- retries = Retry.from_int(retries, redirect=redirect, default=self.retries)
- if release_conn is None:
- release_conn = response_kw.get('preload_content', True)
- # Check host
- if assert_same_host and not self.is_same_host(url):
- raise HostChangedError(self, url, retries)
- conn = None
- # Merge the proxy headers. Only do this in HTTP. We have to copy the
- # headers dict so we can safely change it without those changes being
- # reflected in anyone else's copy.
- if self.scheme == 'http':
- headers = headers.copy()
- headers.update(self.proxy_headers)
- # Must keep the exception bound to a separate variable or else Python 3
- # complains about UnboundLocalError.
- err = None
- # Keep track of whether we cleanly exited the except block. This
- # ensures we do proper cleanup in finally.
- clean_exit = False
- try:
- # Request a connection from the queue.
- timeout_obj = self._get_timeout(timeout)
- conn = self._get_conn(timeout=pool_timeout)
- conn.timeout = timeout_obj.connect_timeout
- is_new_proxy_conn = self.proxy is not None and not getattr(conn, 'sock', None)
- if is_new_proxy_conn:
- self._prepare_proxy(conn)
- # Make the request on the httplib connection object.
- httplib_response = self._make_request(conn, method, url,
- timeout=timeout_obj,
- body=body, headers=headers,
- chunked=chunked)
- # If we're going to release the connection in ``finally:``, then
- # the response doesn't need to know about the connection. Otherwise
- # it will also try to release it and we'll have a double-release
- # mess.
- response_conn = conn if not release_conn else None
- # Import httplib's response into our own wrapper object
- response = HTTPResponse.from_httplib(httplib_response,
- pool=self,
- connection=response_conn,
- **response_kw)
- # Everything went great!
- clean_exit = True
- except Empty:
- # Timed out by queue.
- raise EmptyPoolError(self, "No pool connections are available.")
- except (BaseSSLError, CertificateError) as e:
- # Close the connection. If a connection is reused on which there
- # was a Certificate error, the next request will certainly raise
- # another Certificate error.
- clean_exit = False
- raise SSLError(e)
- except SSLError:
- # Treat SSLError separately from BaseSSLError to preserve
- # traceback.
- clean_exit = False
- raise
- except (TimeoutError, HTTPException, SocketError, ProtocolError) as e:
- # Discard the connection for these exceptions. It will be
- # be replaced during the next _get_conn() call.
- clean_exit = False
- if isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
- e = ProxyError('Cannot connect to proxy.', e)
- elif isinstance(e, (SocketError, HTTPException)):
- e = ProtocolError('Connection aborted.', e)
- retries = retries.increment(method, url, error=e, _pool=self,
- > _stacktrace=sys.exc_info()[2])
- /opt/alt/python35/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py:623:
- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
- self = Retry(total=0, connect=None, read=False, redirect=None), method = 'GET', url = '/ready.html', response = None
- error = NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x7f366300c2b0>: Failed to establish a new connection: [Errno 111] Connection refused',)
- _pool = <requests.packages.urllib3.connectionpool.HTTPConnectionPool object at 0x7f366300cb38>, _stacktrace = <traceback object at 0x7f3663014b88>
- def increment(self, method=None, url=None, response=None, error=None,
- _pool=None, _stacktrace=None):
- """ Return a new Retry object with incremented retry counters.
- :param response: A response object, or None, if the server did not
- return a response.
- :type response: :class:`~urllib3.response.HTTPResponse`
- :param Exception error: An error encountered during the request, or
- None if the response was received successfully.
- :return: A new ``Retry`` object.
- """
- if self.total is False and error:
- # Disabled, indicate to re-raise the error.
- raise six.reraise(type(error), error, _stacktrace)
- total = self.total
- if total is not None:
- total -= 1
- _observed_errors = self._observed_errors
- connect = self.connect
- read = self.read
- redirect = self.redirect
- cause = 'unknown'
- if error and self._is_connection_error(error):
- # Connect retry?
- if connect is False:
- raise six.reraise(type(error), error, _stacktrace)
- elif connect is not None:
- connect -= 1
- _observed_errors += 1
- elif error and self._is_read_error(error):
- # Read retry?
- if read is False:
- raise six.reraise(type(error), error, _stacktrace)
- elif read is not None:
- read -= 1
- _observed_errors += 1
- elif response and response.get_redirect_location():
- # Redirect retry?
- if redirect is not None:
- redirect -= 1
- cause = 'too many redirects'
- else:
- # Incrementing because of a server error like a 500 in
- # status_forcelist and a the given method is in the whitelist
- _observed_errors += 1
- cause = ResponseError.GENERIC_ERROR
- if response and response.status:
- cause = ResponseError.SPECIFIC_ERROR.format(
- status_code=response.status)
- new_retry = self.new(
- total=total,
- connect=connect, read=read, redirect=redirect,
- _observed_errors=_observed_errors)
- if new_retry.is_exhausted():
- > raise MaxRetryError(_pool, url, error or ResponseError(cause))
- E requests.packages.urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='rosario-mills.biz', port=80): Max retries exceeded with url: /ready.html (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x7f366300c2b0>: Failed to establish a new connection: [Errno 111] Connection refused',))
- /opt/alt/python35/lib/python3.5/site-packages/requests/packages/urllib3/util/retry.py:281: MaxRetryError
- During handling of the above exception, another exception occurred:
- @skip_antivirus_mode
- @pytest.mark.case_id(3834)
- def test_modsec_rule_disabled_global():
- # 1. enable rule
- # 2. send request, get 403 error
- # 3. look for incident in UI output (cli get)
- # 4. disable rule by cli command
- # 5. send request, and not get 403 error
- ns = NetworkNamespaceHelper()
- > user1 = current_panel.create_account()
- test_modsec_rules_disabling.py:65:
- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
- utils/__init__.py:499: in wrapper
- return func(*args, **kwargs)
- fixtures/hosting_panel.py:485: in create_account
- username, domain, plan=plan, ip=ip)
- fixtures/hosting_panel.py:475: in _create_account_with_domain
- self._wait_for_vhost(acc['domain'], acc['webroot'])
- utils/__init__.py:499: in wrapper
- return func(*args, **kwargs)
- fixtures/hosting_panel.py:192: in _wait_for_vhost
- finally_succeeded(vhost_ready, timeout=90, pause=3)
- utils/__init__.py:368: in finally_succeeded
- return callable()
- fixtures/hosting_panel.py:185: in vhost_ready
- response = requests.get(url)
- /opt/alt/python35/lib/python3.5/site-packages/requests/api.py:71: in get
- return request('get', url, params=params, **kwargs)
- /opt/alt/python35/lib/python3.5/site-packages/requests/api.py:57: in request
- return session.request(method=method, url=url, **kwargs)
- /opt/alt/python35/lib/python3.5/site-packages/requests/sessions.py:475: in request
- resp = self.send(prep, **send_kwargs)
- /opt/alt/python35/lib/python3.5/site-packages/requests/sessions.py:585: in send
- r = adapter.send(request, **kwargs)
- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
- self = <requests.adapters.HTTPAdapter object at 0x7f366300c630>, request = <PreparedRequest [GET]>, stream = False, timeout = <requests.packages.urllib3.util.timeout.Timeout object at 0x7f366300c7b8>
- verify = True, cert = None, proxies = OrderedDict()
- def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):
- """Sends PreparedRequest object. Returns Response object.
- :param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
- :param stream: (optional) Whether to stream the request content.
- :param timeout: (optional) How long to wait for the server to send
- data before giving up, as a float, or a :ref:`(connect timeout,
- read timeout) <timeouts>` tuple.
- :type timeout: float or tuple
- :param verify: (optional) Whether to verify SSL certificates.
- :param cert: (optional) Any user-provided SSL certificate to be trusted.
- :param proxies: (optional) The proxies dictionary to apply to the request.
- """
- conn = self.get_connection(request.url, proxies)
- self.cert_verify(conn, request.url, verify, cert)
- url = self.request_url(request, proxies)
- self.add_headers(request)
- chunked = not (request.body is None or 'Content-Length' in request.headers)
- if isinstance(timeout, tuple):
- try:
- connect, read = timeout
- timeout = TimeoutSauce(connect=connect, read=read)
- except ValueError as e:
- # this may raise a string formatting error.
- err = ("Invalid timeout {0}. Pass a (connect, read) "
- "timeout tuple, or a single float to set "
- "both timeouts to the same value".format(timeout))
- raise ValueError(err)
- else:
- timeout = TimeoutSauce(connect=timeout, read=timeout)
- try:
- if not chunked:
- resp = conn.urlopen(
- method=request.method,
- url=url,
- body=request.body,
- headers=request.headers,
- redirect=False,
- assert_same_host=False,
- preload_content=False,
- decode_content=False,
- retries=self.max_retries,
- timeout=timeout
- )
- # Send the request.
- else:
- if hasattr(conn, 'proxy_pool'):
- conn = conn.proxy_pool
- low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)
- try:
- low_conn.putrequest(request.method,
- url,
- skip_accept_encoding=True)
- for header, value in request.headers.items():
- low_conn.putheader(header, value)
- low_conn.endheaders()
- for i in request.body:
- low_conn.send(hex(len(i))[2:].encode('utf-8'))
- low_conn.send(b'\r\n')
- low_conn.send(i)
- low_conn.send(b'\r\n')
- low_conn.send(b'0\r\n\r\n')
- # Receive the response from the server
- try:
- # For Python 2.7+ versions, use buffering of HTTP
- # responses
- r = low_conn.getresponse(buffering=True)
- except TypeError:
- # For compatibility with Python 2.6 versions and back
- r = low_conn.getresponse()
- resp = HTTPResponse.from_httplib(
- r,
- pool=conn,
- connection=low_conn,
- preload_content=False,
- decode_content=False
- )
- except:
- # If we hit any problems here, clean up the connection.
- # Then, reraise so that we can handle the actual exception.
- low_conn.close()
- raise
- except (ProtocolError, socket.error) as err:
- raise ConnectionError(err, request=request)
- except MaxRetryError as e:
- if isinstance(e.reason, ConnectTimeoutError):
- # TODO: Remove this in 3.0.0: see #2811
- if not isinstance(e.reason, NewConnectionError):
- raise ConnectTimeout(e, request=request)
- if isinstance(e.reason, ResponseError):
- raise RetryError(e, request=request)
- if isinstance(e.reason, _ProxyError):
- raise ProxyError(e, request=request)
- > raise ConnectionError(e, request=request)
- E requests.exceptions.ConnectionError: HTTPConnectionPool(host='rosario-mills.biz', port=80): Max retries exceeded with url: /ready.html (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x7f366300c2b0>: Failed to establish a new connection: [Errno 111] Connection refused',))
- /opt/alt/python35/lib/python3.5/site-packages/requests/adapters.py:467: ConnectionError
- ------------------------------------------------------------------------ generated xml file: /root/defence360/src/rpm-tests/report.xml -------------------------------------------------------------------------
- ================================================================================== 1 failed, 145 deselected in 36.46 seconds ===================================================================================
- [root@cl7x64 rpm-tests]# systemctl status imunify360
- ● imunify360.service - Imunify360 agent
- Loaded: loaded (/usr/lib/systemd/system/imunify360.service; disabled; vendor preset: disabled)
- Active: active (running) since Thu 2019-06-27 10:49:10 UTC; 2h 57min ago
- Main PID: 32506 (python3)
- CGroup: /system.slice/imunify360.service
- ├─32506 /opt/alt/python35/bin/python3 -m im360.run --daemon --pidfile /var/run/imunify360.pid
- ├─32539 /usr/bin/tail --follow=name -n0 --retry /usr/local/cpanel/logs/cphulkd.log
- ├─32540 /usr/bin/tail --follow=name -n0 --retry /etc/apache2/logs/modsec_audit.log
- └─32542 /usr/bin/tail --follow=name -n0 --retry /var/ossec/logs/alerts/alerts.json
- Jun 27 10:49:04 cl7x64.cltest.com systemd[1]: Starting Imunify360 agent...
- Jun 27 10:49:05 cl7x64.cltest.com imunify-service[32506]: Starting migrations
- Jun 27 10:49:05 cl7x64.cltest.com imunify-service[32506]: There is nothing to migrate
- Jun 27 10:49:10 cl7x64.cltest.com systemd[1]: Started Imunify360 agent.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement