1*** Settings ***
2Resource                ../lib/utils.robot
3Resource                ../lib/connection_client.robot
4Resource                ../lib/boot_utils.robot
5
6*** Variables ***
7# User defined path to do the cleanup.
8${CLEANUP_DIR_PATH}  ${EMPTY}
9# List that holds space separated filepaths to skip from cleanup.
10${SKIP_LIST}  ${EMPTY}
11
12*** Keywords ***
13
14###############################################################################
15
16Cleanup Dir
17    [Documentation]  Remove leftover files in cleanup directory path.
18    [Arguments]      ${cleanup_dir_path}=${CLEANUP_DIR_PATH}
19    ...              ${skip_list}=${SKIP_LIST}
20
21    # Description of argument(s):
22    # cleanup_dir_path  Directory path to do the cleanup.
23    # skip_list  List of files to skip from cleanup.
24
25    Should Not Be Empty  ${cleanup_dir_path}
26    Should Not Be Empty  ${SKIP_LIST}
27    Open Connection And Log In
28    @{skip_list}=  Set Variable  ${skip_list.split()}
29    ${skip_list_string}=  Set Variable  ${EMPTY}
30    :FOR  ${file}  IN  @{skip_list}
31    \  ${skip_list_string}=   Set Variable  ${skip_list_string} ! -path "${file}"
32
33    ${file_count1}=  Execute Command On BMC  find ${cleanup_dir_path} | wc -l
34    Set Global Variable  ${file_count1}
35    Write  find ${cleanup_dir_path} \\( ${skip_list_string} \\) | xargs rm
36    Write  find ${cleanup_dir_path} \\( ${skip_list_string} \\) | xargs rmdir
37    ${file_count2}=  Execute Command On BMC  find ${cleanup_dir_path} | wc -l
38
39    Run Keyword If  ${file_count2} < ${file_count1}
40    ...  Reboot And Verify
41
42Reboot And Verify
43    [Documentation]  Reboot BMC and verify cleanup.
44    [Arguments]      ${cleanup_dir_path}=${CLEANUP_DIR_PATH}
45
46    # Description of argument(s):
47    # cleanup_dir_path  Directory path to do the cleanup.
48
49    OBMC Reboot (off)
50    # Take SSH session post BMC reboot before executing command.
51    Open Connection And Log In
52    ${file_count2}=  Execute Command On BMC  find ${cleanup_dir_path} | wc -l
53    Should Be True  ${file_count2} < ${file_count1}
54