Reportportal integration pollutes test logs
I briefly checked a recent test log and noticed that large part of lines in the log are related to the reportportal integration, which doesn't provide any useful additional information about the test execution.

## Details

For example:

```
$ wc -l logs
7906 logs
$ grep reportportal logs | wc -l
2208
```

Since these additional reporportal log lines doesn't add anything substantial related to the test, see eg.:

```
$ grep reportportal logs | head
2020-10-08 20:46:24,982 - MainThread - DEBUG - reportportal_client.service_async.log.305 - log queued
2020-10-08 20:46:24,992 - MainThread - DEBUG - reportportal_client.service_async.log.305 - log queued
2020-10-08 20:46:25,141 - Thread-1 - DEBUG - reportportal_client.service.log_batch.314 - log_batch - Stack: [None, None, '5f7f78532ab79c0001c289b9', '5f7f78642ab79c0001c28ab7']
2020-10-08 20:46:25,141 - Thread-1 - DEBUG - reportportal_client.service.log_batch.315 - log_batch response: {"responses":[{"id":"5f7f78812ab79c0001c28d25"},{"id":"5f7f78812ab79c0001c28d26"},{"id":"5f7f78812ab79c0001c28d27"},{"id":"5f7f78812ab79c0001c28d28"},{"id":"5f7f78812ab79c0001c28d29"},{"id":"5f7f78812ab79c0001c28d2a"},{"id":"5f7f78812ab79c0001c28d2b"},{"id":"5f7f78812ab79c0001c28d2c"},{"id":"5f7f78812ab79c0001c28d2d"},{"id":"5f7f78812ab79c0001c28d2e"},{"id":"5f7f78812ab79c0001c28d2f"},{"id":"5f7f78812ab79c0001c28d30"},{"id":"5f7f78812ab79c0001c28d31"},{"id":"5f7f78812ab79c0001c28d32"},{"id":"5f7f78812ab79c0001c28d33"},{"id":"5f7f78812ab79c0001c28d34"},{"id":"5f7f78812ab79c0001c28d35"},{"id":"5f7f78812ab79c0001c28d36"},{"id":"5f7f78812ab79c0001c28d37"},{"id":"5f7f78812ab79c0001c28d38"},{"id":"5f7f78812ab79c0001c28d39"},{"id":"5f7f78812ab79c0001c28d3a"},{"id":"5f7f78812ab79c0001c28d3b"},{"id":"5f7f78812ab79c0001c28d3c"},{"id":"5f7f78812ab79c0001c28d3d"},{"id":"5f7f78812ab79c0001c28d3e"},{"id":"5f7f78812ab79c0001c28d3f"},{"id":"5f7f78812ab79c0001c28d40"},{"id":"5f7f78812ab79c0001c28d41"},{"id":"5f7f78812ab79c0001c28d42"},{"id":"5f7f78812ab79c0001c28d43"},{"id":"5f7f78812ab79c0001c28d44"},{"id":"5f7f78812ab79c0001c28d45"},{"id":"5f7f78812ab79c0001c28d46"},{"id":"5f7f78812ab79c0001c28d47"},{"id":"5f7f78812ab79c0001c28d48"},{"id":"5f7f78812ab79c0001c28d49"},{"id":"5f7f78812ab79c0001c28d4a"},{"id":"5f7f78812ab79c0001c28d4b"}]}
2020-10-08 20:46:25,179 - Thread-1 - DEBUG - reportportal_client.service.finish_test_item.230 - finish_test_item - Stack: [None, None, '5f7f78532ab79c0001c289b9']
2020-10-08 20:46:25,180 - Thread-1 - DEBUG - reportportal_client.service_async.process_item.223 - Processing item: ('start_test_item', {'name': 'test_ceph_metrics_available', 'description': 'Ceph metrics as listed in KNIP-634 should be provided via OCP Prometheus.\n\nCeph Object Gateway https://docs.ceph.com/docs/master/radosgw/ is\ndeployed on on-prem platforms only (such as VMWare - see BZ 1763150),\nso this test case ignores failures for ceph_rgw_* and ceph_objecter_*\nmetrics when running on cloud platforms (such as AWS).', 'tags': ['polarion_id:OCS-1268', 'skipif:False', 'tier1'], 'start_time': '1602189984950', 'item_type': 'STEP', 'parameters': {}}) (queue size: 2)
2020-10-08 20:46:25,180 - Thread-1 - DEBUG - reportportal_client.service_async._post_log_batch.200 - Posting log batch size: 0
2020-10-08 20:46:25,209 - Thread-1 - DEBUG - reportportal_client.service.start_test_item.213 - start_test_item - Stack: [None, None, '5f7f78532ab79c0001c289b9', '5f7f78812ab79c0001c28d4c']
2020-10-08 20:46:25,209 - Thread-1 - DEBUG - reportportal_client.service_async.process_item.223 - Processing item: ('log', {'time': '1602189984982', 'message': 'Checking for Ceph Health OK ', 'level': 'INFO', 'attachment': None}) (queue size: 1)
2020-10-08 20:46:25,209 - Thread-1 - DEBUG - reportportal_client.service_async.process_log.212 - Processing log item: {'time': '1602189984982', 'message': 'Checking for Ceph Health OK ', 'level': 'INFO', 'attachment': None}
```

Their value to the QE team is just negative.

## Suggested solution

Create a new log level dedicated to reportportal log entries, so that:

- these log lines could be easily filtered out
- and stored separately (if necessary) for limited period of time (compared to normal test logs)
diff --git a/conf/README.md b/conf/README.md
index 72e178d4..1f88ef68 100644
--- a/conf/README.md
+++ b/conf/README.md
@@ -117,6 +117,7 @@ Reporting related config. (Do not store secret data in the repository!).
 * `gather_on_deploy_failure` - Run must-gather on deployment failure or not (Default: true)
 * `collect_logs_on_success_run` - Run must-gather on successful run or not (Default: false)
 * `must_gather_timeout` - Time (in seconds) to wait before timing out during must-gather
+* `rp_client_log_level` - Log level for the reportportal_client logger (Default: ERROR)
 
 #### ENV_DATA
 
diff --git a/ocs_ci/framework/conf/default_config.yaml b/ocs_ci/framework/conf/default_config.yaml
index 33f35e12..420816e1 100644
--- a/ocs_ci/framework/conf/default_config.yaml
+++ b/ocs_ci/framework/conf/default_config.yaml
@@ -102,6 +102,7 @@ REPORTING:
   default_ocs_must_gather_latest_tag: 'latest-4.7'
   gather_on_deploy_failure: true
   collect_logs_on_success_run: False
+  rp_client_log_level: "ERROR"
 
 # This is the default information about environment.
 ENV_DATA:
diff --git a/ocs_ci/framework/pytest_customization/ocscilib.py b/ocs_ci/framework/pytest_customization/ocscilib.py
index e8a93e83..990290ab 100644
--- a/ocs_ci/framework/pytest_customization/ocscilib.py
+++ b/ocs_ci/framework/pytest_customization/ocscilib.py
@@ -252,6 +252,7 @@ def pytest_configure(config):
 
     """
     set_log_level(config)
+    set_rp_client_log_level()
     # Somewhat hacky but this lets us differentiate between run-ci executions
     # and plain pytest unit test executions
     ocscilib_module = "ocs_ci.framework.pytest_customization.ocscilib"
@@ -624,3 +625,13 @@ def set_log_level(config):
     """
     level = config.getini("log_cli_level") or "INFO"
     log.setLevel(logging.getLevelName(level))
+
+
+def set_rp_client_log_level():
+    """
+    Change log level of the reportportal_client logger. Default value is ERROR to limit
+    the amount of noise in our log files from this logger.
+    """
+    rp_logger = logging.getLogger("reportportal_client")
+    level = ocsci_config.REPORTING.get("rp_client_log_level")
+    rp_logger.setLevel(logging.getLevelName(level))
['ocs_ci/framework/conf/default_config.yaml', 'ocs_ci/framework/pytest_customization/ocscilib.py', 'conf/README.md']