########################################################################### # # Copyright (c) 2019-2021 Diality Inc. - All Rights Reserved. # # THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN # WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. # # @file utils.py # # @author (last) LTTS # @date (last) 08-July-2022 # ############################################################################ from datetime import datetime import os import csv import test CLOUD_CREDENTIALS_LOCATION = '/home/denali/Desktop/cloudsync/credentials' CLOUD_SYNC_LOG_LOCATION = '/home/denali/Desktop/sd-card/cloudsync/' PEM_FILES = ['1.pem', '2.pem', '3.pem' ] def get_current_date_and_time(date_format='%Y/%b/%d - %H:%M:%S'): date = datetime.now() return str(date.strftime(date_format)) def append_cloudsync_credentials_file(): try: os.makedirs(CLOUD_CREDENTIALS_LOCATION, exist_ok = True) test.log("Directory created successfully") for file_handler in range(len(PEM_FILES)): path = os.path.join(CLOUD_CREDENTIALS_LOCATION, PEM_FILES[file_handler]) with open(path, 'w') as file_reader: pass except OSError as error: test.log("Directory can not be created") def get_extracted_input_buf_file(): """ This function is the handler for getting file from cloudsync folder. This handler will go inside cloudsync folder and looks for newly added input buf file based on current time. if it satisfied that condition, it will return the exact path of newly created input buf file. Application input buf file is automatically created in '/home/denali/Desktop/sd-card/cloudsync/ {current_date}_inp.buf' @return latest_file - (string) returns latest file that append in cloudsync folder """ try: current_date = get_current_date_and_time(date_format = "%Y_%m_%d") latest_file = '/home/denali/Desktop/sd-card/cloudsync/'+current_date+'_inp.buf' return latest_file except: return False def get_cloud_sync_output_file(): """ This function is the handler for getting file from log folder. Application log file is automatically created on '/home/denali/Desktop/sd-card/cloudsync/ {current_date}_out.log' @return latest_file - (string) returns latest file that append on log folder from sd-data """ try: current_date = get_current_date_and_time(date_format = "%Y_%m_%d") latest_file = CLOUD_SYNC_LOG_LOCATION+current_date+'_out.buf' return latest_file except: return False def retrive_log_data(readline_count): """ This function is the handler for getting file from cloudsync folder. Application log data is automatically appended on '/home/denali/Desktop/sd-card/cloudsync/ {current_date}_inp.buf' @cloudsync_data - (list) returns latest file that append in cloudsync folder """ cloudsync_data = [] count = 0 file_name = get_extracted_input_buf_file() try: with open(file_name,mode = 'r') as filereader: contents = csv.reader(filereader) try: for reader in reversed(list(contents)): if readline_count == count: return cloudsync_data cloudsync_data.append(reader) count = count + 1 except: test.fail("application log data is corrupted") except: test.fail("Log file is not created or log file is not created based on standard log naming format.")