blob: aa26bcd132890a13e204fd1ee92277443694a1f3 [file] [log] [blame]
*** Settings ***
Documentation This suite will verifiy all OpenBMC rest interfaces
... Details of valid interfaces can be found here...
... https://github.com/openbmc/docs/blob/master/rest-api.md
Resource ../lib/rest_client.robot
Resource ../lib/openbmc_ffdc.robot
Test Teardown FFDC On Test Case Fail
*** Variables ***
*** Test Cases ***
Good connection for testing
[Tags] CI Good_connection_for_testing
${content}= Read Properties /
${c}= get from List ${content} 0
Should Be Equal ${c} /org
Get an object with no properties
${content}= Read Properties /org/openbmc/inventory
Should Be Empty ${content}
Get a Property
[Tags] Get_a_Property
${resp}= Read Attribute /org/openbmc/inventory/system/chassis/motherboard/cpu0 is_fru
Should Be Equal ${resp} ${1}
Get a null Property
${resp} = OpenBMC Get Request /org/openbmc/inventory/attr/is_fru
Should Be Equal As Strings ${resp.status_code} ${HTTP_NOT_FOUND}
${jsondata}= To Json ${resp.content}
Should Be Equal ${jsondata['data']['description']} The specified property cannot be found: ''is_fru''
get directory listing /
[Tags] CI get_directory_listing
${resp} = openbmc get request /
should be equal as strings ${resp.status_code} ${HTTP_OK}
${json} = to json ${resp.content}
list should contain value ${json['data']} /org
should be equal as strings ${json['status']} ok
get directory listing /org/
[Tags] CI
${resp} = openbmc get request /org/
should be equal as strings ${resp.status_code} ${HTTP_OK}
${json} = to json ${resp.content}
list should contain value ${json['data']} /org/openbmc
should be equal as strings ${json['status']} ok
get invalid directory listing /i/dont/exist/
[Tags] CI
${resp} = openbmc get request /i/dont/exist/
should be equal as strings ${resp.status_code} ${HTTP_NOT_FOUND}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
put directory listing /
[Tags] CI
${resp} = openbmc put request /
should be equal as strings ${resp.status_code} ${HTTP_METHOD_NOT_ALLOWED}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
put directory listing /org/
[Tags] CI
${resp} = openbmc put request /org/
should be equal as strings ${resp.status_code} ${HTTP_METHOD_NOT_ALLOWED}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
put invalid directory listing /i/dont/exist/
[Tags] CI
${resp} = openbmc put request /i/dont/exist/
should be equal as strings ${resp.status_code} ${HTTP_NOT_FOUND}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
post directory listing /
[Tags] CI
${resp} = openbmc post request /
should be equal as strings ${resp.status_code} ${HTTP_METHOD_NOT_ALLOWED}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
post directory listing /org/
[Tags] CI
${resp} = openbmc post request /org/
should be equal as strings ${resp.status_code} ${HTTP_METHOD_NOT_ALLOWED}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
post invalid directory listing /i/dont/exist/
[Tags] CI
${resp} = openbmc post request /i/dont/exist/
should be equal as strings ${resp.status_code} ${HTTP_NOT_FOUND}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
delete directory listing /
[Tags] CI
${resp} = openbmc delete request /
should be equal as strings ${resp.status_code} ${HTTP_METHOD_NOT_ALLOWED}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
delete directory listing /org/
[Tags] CI
${resp} = openbmc delete request /
should be equal as strings ${resp.status_code} ${HTTP_METHOD_NOT_ALLOWED}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
delete invalid directory listing /org/nothere/
[Tags] CI
${resp} = openbmc delete request /org/nothere/
should be equal as strings ${resp.status_code} ${HTTP_NOT_FOUND}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
get list names /
${resp} = openbmc get request /list
should be equal as strings ${resp.status_code} ${HTTP_OK}
${json} = to json ${resp.content}
list should contain value ${json['data']} /org/openbmc/inventory
should be equal as strings ${json['status']} ok
get list names /org/
${resp} = openbmc get request /org/list
should be equal as strings ${resp.status_code} ${HTTP_OK}
${json} = to json ${resp.content}
list should contain value ${json['data']} /org/openbmc/inventory
should be equal as strings ${json['status']} ok
get invalid list names /i/dont/exist/
[Tags] CI
${resp} = openbmc get request /i/dont/exist/list
should be equal as strings ${resp.status_code} ${HTTP_NOT_FOUND}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
put list names /
[Tags] CI
${resp} = openbmc put request /list
should be equal as strings ${resp.status_code} ${HTTP_METHOD_NOT_ALLOWED}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
put list names /org/
[Tags] CI
${resp} = openbmc put request /org/list
should be equal as strings ${resp.status_code} ${HTTP_METHOD_NOT_ALLOWED}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
put invalid list names /i/dont/exist/
[Tags] CI
${resp} = openbmc put request /i/dont/exist/list
should be equal as strings ${resp.status_code} ${HTTP_NOT_FOUND}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
post list names /
[Tags] CI
${resp} = openbmc post request /list
should be equal as strings ${resp.status_code} ${HTTP_METHOD_NOT_ALLOWED}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
post list names /org/
[Tags] CI
${resp} = openbmc post request /org/list
should be equal as strings ${resp.status_code} ${HTTP_METHOD_NOT_ALLOWED}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
post invalid list names /i/dont/exist/
[Tags] CI
${resp} = openbmc post request /i/dont/exist/list
should be equal as strings ${resp.status_code} ${HTTP_NOT_FOUND}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
delete list names /
[Tags] CI
${resp} = openbmc delete request /list
should be equal as strings ${resp.status_code} ${HTTP_METHOD_NOT_ALLOWED}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
delete list names /org/
[Tags] CI
${resp} = openbmc delete request /list
should be equal as strings ${resp.status_code} ${HTTP_METHOD_NOT_ALLOWED}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
delete invalid list names /org/nothere/
[Tags] CI
${resp} = openbmc delete request /org/nothere/list
should be equal as strings ${resp.status_code} ${HTTP_NOT_FOUND}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
get names /
[Tags] get_names
${resp} = openbmc get request /enumerate
should be equal as strings ${resp.status_code} ${HTTP_OK}
${json} = to json ${resp.content}
list should contain value ${json['data']} /org/openbmc/inventory
should be equal as strings ${json['status']} ok
get names /org/
[Tags] get_names_org
${resp} = openbmc get request /org/enumerate
should be equal as strings ${resp.status_code} ${HTTP_OK}
${json} = to json ${resp.content}
list should contain value ${json['data']} /org/openbmc/inventory
should be equal as strings ${json['status']} ok
get invalid names /i/dont/exist/
[Tags] CI
${resp} = openbmc get request /i/dont/exist/enumerate
should be equal as strings ${resp.status_code} ${HTTP_NOT_FOUND}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
put names /
[Tags] CI
${resp} = openbmc put request /enumerate
should be equal as strings ${resp.status_code} ${HTTP_METHOD_NOT_ALLOWED}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
put names /org/
[Tags] CI
${resp} = openbmc put request /org/enumerate
should be equal as strings ${resp.status_code} ${HTTP_METHOD_NOT_ALLOWED}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
put invalid names /i/dont/exist/
[Tags] CI
${resp} = openbmc put request /i/dont/exist/enumerate
should be equal as strings ${resp.status_code} ${HTTP_NOT_FOUND}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
post names /
[Tags] CI
${resp} = openbmc post request /enumerate
should be equal as strings ${resp.status_code} ${HTTP_METHOD_NOT_ALLOWED}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
post names /org/
[Tags] CI
${resp} = openbmc post request /org/enumerate
should be equal as strings ${resp.status_code} ${HTTP_METHOD_NOT_ALLOWED}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
post invalid names /i/dont/exist/
[Tags] CI
${resp} = openbmc post request /i/dont/exist/enumerate
should be equal as strings ${resp.status_code} ${HTTP_NOT_FOUND}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
delete names /
[Tags] CI
${resp} = openbmc delete request /enumerate
should be equal as strings ${resp.status_code} ${HTTP_METHOD_NOT_ALLOWED}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
delete names /org/
[Tags] CI
${resp} = openbmc delete request /enumerate
should be equal as strings ${resp.status_code} ${HTTP_METHOD_NOT_ALLOWED}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
delete invalid names /org/nothere/
[Tags] CI
${resp} = openbmc delete request /org/nothere/enumerate
should be equal as strings ${resp.status_code} ${HTTP_NOT_FOUND}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
get method org/openbmc/records/events/action/acceptTestMessage
[Tags] CI
${resp} = openbmc get request org/openbmc/records/events/action/acceptTestMessage
should be equal as strings ${resp.status_code} ${HTTP_METHOD_NOT_ALLOWED}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
get invalid method /i/dont/exist/
[Tags] CI
${resp} = openbmc get request /i/dont/exist/action/foo
should be equal as strings ${resp.status_code} ${HTTP_NOT_FOUND}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
put method org/openbmc/records/events/action/acceptTestMessage
[Tags] CI
${resp} = openbmc put request org/openbmc/records/events/action/acceptTestMessage
should be equal as strings ${resp.status_code} ${HTTP_METHOD_NOT_ALLOWED}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
put invalid method /i/dont/exist/
[Tags] CI
${resp} = openbmc put request /i/dont/exist/action/foo
should be equal as strings ${resp.status_code} ${HTTP_NOT_FOUND}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
post method power/getPowerState no args
${fan_uri}= Get Power Control Interface
${data} = create dictionary data=@{EMPTY}
${resp} = openbmc post request ${fan_uri}/action/getPowerState data=${data}
should be equal as strings ${resp.status_code} ${HTTP_OK}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} ok
post method org/openbmc/records/events/action/acceptTestMessage invalid args
[Tags] CI
${data} = create dictionary foo=bar
${resp} = openbmc post request org/openbmc/records/events/action/acceptTestMessage data=${data}
should be equal as strings ${resp.status_code} ${HTTP_BAD_REQUEST}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
post method org/openbmc/sensors/host/BootCount with args
${uri} = Set Variable /org/openbmc/sensors/host/BootCount
${COUNT}= Set Variable ${3}
@{count_list} = Create List ${COUNT}
${data} = create dictionary data=@{count_list}
${resp} = openbmc post request ${uri}/action/setValue data=${data}
should be equal as strings ${resp.status_code} ${HTTP_OK}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} ok
${content}= Read Attribute ${uri} value
Should Be Equal ${content} ${COUNT}
delete method org/openbmc/records/events/action/acceptTestMessage
[Tags] CI
${resp} = openbmc delete request org/openbmc/records/events/action/acceptTestMessage
should be equal as strings ${resp.status_code} ${HTTP_METHOD_NOT_ALLOWED}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
delete invalid method /org/nothere/
[Tags] CI
${resp} = openbmc delete request /org/nothere/action/foomethod
should be equal as strings ${resp.status_code} ${HTTP_NOT_FOUND}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} error
post method org/openbmc/records/events/action/acceptTestMessage no args
[Tags] CI
${data} = create dictionary data=@{EMPTY}
${resp} = openbmc post request org/openbmc/records/events/action/acceptTestMessage data=${data}
should be equal as strings ${resp.status_code} ${HTTP_OK}
${json} = to json ${resp.content}
should be equal as strings ${json['status']} ok
***keywords***
Get Power Control Interface
${resp}= OpenBMC Get Request /org/openbmc/control/
should be equal as strings ${resp.status_code} ${HTTP_OK} msg=Unable to get any controls - /org/openbmc/control/
${jsondata}= To Json ${resp.content}
log ${jsondata}
: FOR ${ELEMENT} IN @{jsondata["data"]}
\ log ${ELEMENT}
\ ${found}= Get Lines Matching Pattern ${ELEMENT} *control/power*
\ Return From Keyword If '${found}' != '' ${found}