From b48b8523018f2af2f7d4b79b115bd74e5d34e874 Mon Sep 17 00:00:00 2001 From: PradeepKiruvale Date: Tue, 7 Jun 2022 16:30:46 +0530 Subject: Possible issues with requesting logs (#1182) * Closes #1123 start logfile daemon for test Signed-off-by: Pradeep Kumar K J * Fix num lines test --- tests/PySys/environments/cumulocity.py | 6 +++++- .../log_request_error_messages/run.py | 22 ++++++++++++++++++---- .../log_request_num_lines/run.py | 20 ++++++++++++++++---- .../log_request_end_to_end/test_log_generator.py | 8 ++++---- 4 files changed, 43 insertions(+), 13 deletions(-) diff --git a/tests/PySys/environments/cumulocity.py b/tests/PySys/environments/cumulocity.py index 37e62d4b..9fa36279 100644 --- a/tests/PySys/environments/cumulocity.py +++ b/tests/PySys/environments/cumulocity.py @@ -95,18 +95,21 @@ class Cumulocity(object): return header def trigger_log_request(self, log_file_request_payload, device_id): + self.device_fragment = self.get_thin_edge_device_by_name(device_id) url = f"{self.c8y_url}/devicecontrol/operations" log_file_request_payload = { - "deviceId": device_id, + "deviceId": self.device_fragment["id"], "description": "Log file request", "c8y_LogfileRequest": log_file_request_payload, } + req = requests.post( url, json=log_file_request_payload, headers=self.get_header(), timeout=self.timeout_req, ) + jresponse = json.loads(req.text) operation_id = jresponse.get("id") @@ -131,6 +134,7 @@ class Cumulocity(object): # check if the response contains the logfile log_file = log_response.get("file") self.log.info("log response %s", log_file) + if log_file != None: ret = log_file return ret diff --git a/tests/PySys/log_request_end_to_end/log_request_error_messages/run.py b/tests/PySys/log_request_end_to_end/log_request_error_messages/run.py index ff69e4bd..6eb1fe3a 100644 --- a/tests/PySys/log_request_end_to_end/log_request_error_messages/run.py +++ b/tests/PySys/log_request_end_to_end/log_request_error_messages/run.py @@ -21,16 +21,24 @@ from environment_c8y import EnvironmentC8y class LogRequestVerifySearchTextError(EnvironmentC8y): operation_id = None + systemctl = "/usr/bin/systemctl" def setup(self): super().setup() self.create_logs_for_test() + # Start c8y logfile request service + log_file_daemon = self.startProcess( + command=self.sudo, + arguments=[self.systemctl, "start", "c8y-log-plugin.service"], + stdouterr="log_file_daemon", + ) + self.addCleanupFunction(self.cleanup_logs) def execute(self): log_file_request_payload = { - "dateFrom": "2021-11-15T18:55:49+0530", - "dateTo": "2021-11-21T18:55:49+0530", + "dateFrom": "2022-06-04T12:55:49+0530", + "dateTo": "2022-06-06T13:55:49+0530", "logFile": "software-management", "searchText": "Error", "maximumLines": 25, @@ -68,7 +76,7 @@ class LogRequestVerifySearchTextError(EnvironmentC8y): arguments=["sh", "-c", "mv /tmp/sw_logs/* /var/log/tedge/agent/"], stdouterr="move_logs", ) - + def download_file_and_verify_error_messages(self, url): get_response = requests.get( url, auth=(self.project.c8yusername, self.project.c8ypass), stream=False @@ -83,7 +91,7 @@ class LogRequestVerifySearchTextError(EnvironmentC8y): rm_logs = self.startProcess( command=self.sudo, - arguments=["sh", "-c", "rm -rf /var/log/tedge/agent/example-*"], + arguments=["sh", "-c", "rm -rf /var/log/tedge/agent/software-log*"], stdouterr="rm_logs", ) @@ -105,3 +113,9 @@ class LogRequestVerifySearchTextError(EnvironmentC8y): ], stdouterr="send_failed", ) + + log_file_daemon = self.startProcess( + command=self.sudo, + arguments=[self.systemctl, "stop", "c8y-log-plugin.service"], + stdouterr="log_file_daemon", + ) diff --git a/tests/PySys/log_request_end_to_end/log_request_num_lines/run.py b/tests/PySys/log_request_end_to_end/log_request_num_lines/run.py index efdc417a..de178c8b 100644 --- a/tests/PySys/log_request_end_to_end/log_request_num_lines/run.py +++ b/tests/PySys/log_request_end_to_end/log_request_num_lines/run.py @@ -25,17 +25,23 @@ class LogRequestVerifyNumberOfLines(EnvironmentC8y): def setup(self): super().setup() self.create_logs_for_test() + # Start c8y logfile request service + log_file_daemon = self.startProcess( + command=self.sudo, + arguments=[self.systemctl, "start", "c8y-log-plugin.service"], + stdouterr="log_file_daemon", + ) self.addCleanupFunction(self.cleanup_logs) def execute(self): log_file_request_payload = { - "dateFrom": "2021-11-15T18:55:49+0530", - "dateTo": "2021-11-21T18:55:49+0530", + "dateFrom": "2022-06-04T12:55:49+0530", + "dateTo": "2022-06-06T13:55:49+0530", "logFile": "software-management", "searchText": "", "maximumLines": 300, } - + self.operation_id = self.cumulocity.trigger_log_request( log_file_request_payload, self.project.deviceid ) @@ -76,7 +82,7 @@ class LogRequestVerifyNumberOfLines(EnvironmentC8y): nlines = len(get_response.content.decode("utf-8").split("\n")[:-1]) self.log.info("nlines %s", nlines) # The log lines are concatenated from 3 different log files, so there will be 3 extra lines. - if nlines == 303: + if nlines == 302: return True else: return False @@ -106,3 +112,9 @@ class LogRequestVerifyNumberOfLines(EnvironmentC8y): ], stdouterr="send_failed", ) + + log_file_daemon = self.startProcess( + command=self.sudo, + arguments=[self.systemctl, "stop", "c8y-log-plugin.service"], + stdouterr="log_file_daemon", + ) \ No newline at end of file diff --git a/tests/PySys/log_request_end_to_end/test_log_generator.py b/tests/PySys/log_request_end_to_end/test_log_generator.py index 3e83582b..c342012d 100644 --- a/tests/PySys/log_request_end_to_end/test_log_generator.py +++ b/tests/PySys/log_request_end_to_end/test_log_generator.py @@ -45,12 +45,12 @@ def check_files_created(): def create_example_logs(): - file_names = ["example-log1", "example-log2", "example-log3"] + file_names = ["software-log1", "software-log2", "software-log3"] file_sizes = [50, 100, 250] time_stamps = [ - "2021-11-18T13:15:10Z", - "2021-11-19T21:15:10Z", - "2021-11-20T13:15:10Z", + "2022-06-04T13:15:10Z", + "2022-06-05T21:15:10Z", + "2022-06-06T13:15:10Z", ] os.mkdir("/tmp/sw_logs") for idx, file_name in enumerate(file_names): -- cgit v1.2.3