blob: 46a48291a63e52664388280c604d7a799580b03f [file] [log] [blame]
Saqib Khanfb1f6ae2017-04-26 13:24:41 -05001*** Settings ***
2Documentation Test Upload Image
3... Execution Method :
4... python -m robot -v OPENBMC_HOST:<hostname>
5... -v TFTP_SERVER:<TFTP server IP>
6... -v TFTP_FILE_NAME:<filename.tar>
7... -v IMAGE_FILE_PATH:<path/*.tar> test_uploadimage.robot
8
9Resource ../lib/connection_client.robot
10Resource ../lib/rest_client.robot
11Resource ../lib/openbmc_ffdc.robot
12Library Collections
13Library String
14Library OperatingSystem
15Library test_uploadimage.py
16
17Test Teardown Upload Image Teardown
18
Sweta Potthuri5db43e42017-06-15 05:36:44 -050019Force Tags Upload_Test
20
Saqib Khanfb1f6ae2017-04-26 13:24:41 -050021*** Variables ***
22${timeout} 10
23${UPLOAD_DIR_PATH} /tmp/images/
24${QUIET} ${1}
25${IMAGE_VERSION} ${EMPTY}
26
27*** Test Cases ***
28
29Upload Image Via REST
30 [Documentation] Upload an image via REST.
31 [Tags] Upload_Image_Via_REST
32
33 OperatingSystem.File Should Exist ${IMAGE_FILE_PATH}
34 ${IMAGE_VERSION}= Get Version Tar ${IMAGE_FILE_PATH}
35 ${image_data}= OperatingSystem.Get Binary File ${IMAGE_FILE_PATH}
36 Upload Post Request /upload/image data=${image_data}
37 ${ret}= Verify Image Upload
38 Should Be True True == ${ret}
39
40Upload Image Via TFTP
41 [Documentation] Upload an image via TFTP.
42 [Tags] Upload_Image_Via_TFTP
43
44 @{image}= Create List ${TFTP_FILE_NAME} ${TFTP_SERVER}
45 ${data}= Create Dictionary data=@{image}
46 ${resp}= OpenBMC Post Request
47 ... ${SOFTWARE_VERSION_URI}/action/DownloadViaTFTP data=${data}
48 Should Be Equal As Strings ${resp.status_code} ${HTTP_OK}
49 Sleep 1 minute
50 ${upload_file}= Get Latest File ${UPLOAD_DIR_PATH}
51 ${IMAGE_VERSION}= Get Image Version
52 ... ${UPLOAD_DIR_PATH}${upload_file}/MANIFEST
53 ${ret}= Verify Image Upload
54 Should Be True True == ${ret}
55
56*** Keywords ***
57
58Upload Image Teardown
59 [Documentation] Log FFDC if test suite fails and collect SOL log for
60 ... debugging purposes.
61
62 Close All Connections
63 FFDC On Test Case Fail
64
65Upload Post Request
66 [Arguments] ${uri} ${timeout}=10 ${quiet}=${QUIET} &{kwargs}
67
68 # Description of arguments:
69 # uri URI for uploading image via REST.
70 # timeout Time allocated for the REST command to return status.
71 # quiet If enabled turns off logging to console.
72 # kwargs A dictionary that maps each keyword to a value.
73
74 Initialize OpenBMC ${timeout} quiet=${quiet}
75 ${base_uri}= Catenate SEPARATOR= ${DBUS_PREFIX} ${uri}
76 ${headers}= Create Dictionary Content-Type=application/octet-stream
77 ... Accept=application/octet-stream
78 Set To Dictionary ${kwargs} headers ${headers}
79 Run Keyword If '${quiet}' == '${0}' Log Request method=Post
80 ... base_uri=${base_uri} args=&{kwargs}
81 ${ret}= Post Request openbmc ${base_uri} &{kwargs} timeout=${timeout}
82 Run Keyword If '${quiet}' == '${0}' Log Response ${ret}
83 Should Be Equal As Strings ${ret.status_code} ${HTTP_OK}