1    	# This module is intended to test just the new Communicator/MultiringCommunicator
2    	# classes which are using curllib
3    	
4    	
5    	import logging
6    	import os.path
7    	import pprint
8    	import sys
9    	
10   	PACKAGE_DIR = os.path.dirname(os.path.abspath(__file__))
11   	sys.path.insert(0, PACKAGE_DIR)
12   	
13   	from pcs import utils  # noqa: E402
14   	from pcs.common.host import Destination  # noqa: E402
15   	from pcs.common.node_communicator import (  # noqa: E402
16   	    Request,
17   	    RequestData,
18   	    RequestTarget,
19   	)
20   	
21   	logger_handler = logging.StreamHandler()
22   	logger_handler.setFormatter(logging.Formatter("%(levelname)s: %(message)s"))
23   	logger = logging.getLogger("pcs")
CID (unavailable; MK=6ccbfc5f0f8986de6369a926d61e625d) (#1 of 1): Excessive log level (SIGMA.debug_logging_enabled):
(1) Event Sigma main event: The Python application has been configured to create excessive logs using a `DEBUG` log level. Excessive logging can expose sensitive information in log files.
(2) Event remediation: The log level of a production Python application should be set to `ERROR`, `WARN`, or `INFO`, instead of `DEBUG`.
24   	logger.setLevel(logging.DEBUG)
25   	logger.addHandler(logger_handler)
26   	
27   	global_target = RequestTarget(
28   	    "TestServer",
29   	    dest_list=[
30   	        Destination("httpbin.org2", 433),
31   	        Destination("httpbin.org", 443),
32   	    ],
33   	)
34   	
35   	pprint.pprint(global_target)
36   	
37   	
38   	def get_request(timeout):
39   	    return Request(global_target, RequestData("delay/{0}".format(timeout)))
40   	
41   	
42   	lib_env = utils.get_lib_env()
43   	# utils.pcs_options["--debug"] = True
44   	request_list = [get_request((i + 1) * 2) for i in range(6)]
45   	factory = lib_env.get_node_communicator_factory()
46   	factory._request_timeout = 10
47   	communicator = factory.get_multiring_communicator()
48   	# communicator.add_requests([get_request(10)])
49   	# response = list(communicator.start_loop())[0]
50   	# pprint.pprint(response.to_report_item())
51   	communicator.add_requests(request_list)
52   	for response in communicator.start_loop():
53   	    # print(80 * "-")
54   	    # print(response.request.url)
55   	    # print(response.data)
56   	    # print(80 * "-")
57   	    if response.request == request_list[2]:
58   	        r = get_request(5)
59   	        request_list.append(r)
60   	        communicator.add_requests([r])
61   	    if response.request == request_list[5]:
62   	        r = get_request(10)
63   	        request_list.append(r)
64   	        communicator.add_requests([r])
65   	    if len(request_list) == 8 and response.request == request_list[7]:
66   	        r = get_request(15)
67   	        communicator.add_requests([r])
68