diff options
Diffstat (limited to 'robot/resources/openstack/cinder_interface.robot')
-rw-r--r-- | robot/resources/openstack/cinder_interface.robot | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/robot/resources/openstack/cinder_interface.robot b/robot/resources/openstack/cinder_interface.robot new file mode 100644 index 00000000..ee1a253b --- /dev/null +++ b/robot/resources/openstack/cinder_interface.robot @@ -0,0 +1,50 @@ +*** Settings *** +Documentation The main interface for interacting with Openstack. It handles low level stuff like managing the authtoken and Openstack required fields +Library OpenstackLibrary +Library RequestsLibrary +Library UUID +Library OperatingSystem +Resource ../global_properties.robot +Resource ../json_templater.robot +Resource openstack_common.robot + + +*** Variables *** +${OPENSTACK_CINDER_API_VERSION} /v1 +${OPENSTACK_CINDER_TYPES_PATH} /types +${OPENSTACK_CINDER_VOLUMES_PATH} /volumes +${OPENSTACK_CINDER_VOLUMES_ADD_BODY_FILE} robot/assets/templates/cinder_add_volume.template +${OPENSTACK_CINDER_VOLUMES_TYPE} SSD +${OPENSTACK_CINDER_AVAILABILITY_ZONE} nova + +*** Keywords *** +Get Openstack Volume Types + [Documentation] Returns the openstack volume types information + [Arguments] ${alias} + ${resp}= Internal Get Openstack ${alias} ${GLOBAL_OPENSTACK_CINDER_SERVICE_TYPE} ${GLOBAL_OPENSTACK_SERVICE_REGION} ${OPENSTACK_CINDER_TYPES_PATH} + [Return] ${resp.json()} + +Get Openstack Volume + [Documentation] Returns the openstack volume information for the passed in volume id + [Arguments] ${alias} ${volume_id} + ${resp}= Internal Get Openstack ${alias} ${GLOBAL_OPENSTACK_CINDER_SERVICE_TYPE} ${GLOBAL_OPENSTACK_SERVICE_REGION} ${OPENSTACK_CINDER_VOLUMES_PATH} /${volume_id} + [Return] ${resp.json()} + +Add Openstack Volume + [Documentation] Runs an Openstack Request to add a volume and returns that volume id of the created volume + [Arguments] ${alias} ${name} ${size} + ${data_template}= OperatingSystem.Get File ${OPENSTACK_CINDER_VOLUMES_ADD_BODY_FILE} + ${uuid}= Generate UUID + ${arguments}= Create Dictionary name=${name} description=${GLOBAL_APPLICATION_ID}${uuid} size=${size} type=${OPENSTACK_CINDER_VOLUMES_TYPE} availability_zone=${OPENSTACK_CINDER_AVAILABILITY_ZONE} + ${data}= Fill JSON Template ${data_template} ${arguments} + ${resp}= Internal Post Openstack ${alias} ${GLOBAL_OPENSTACK_CINDER_SERVICE_TYPE} ${GLOBAL_OPENSTACK_SERVICE_REGION} ${OPENSTACK_CINDER_VOLUMES_PATH} data_path= data=${data} + Should Be Equal As Strings 200 ${resp.status_code} + [Return] ${resp.json()['volume']['id']} + +Delete Openstack Volume + [Documentation] Runs an Openstack Request to delete a volume + [Arguments] ${alias} ${volume_id} + ${resp}= Internal Delete Openstack ${alias} ${GLOBAL_OPENSTACK_CINDER_SERVICE_TYPE} ${GLOBAL_OPENSTACK_SERVICE_REGION} ${OPENSTACK_CINDER_VOLUMES_PATH} /${volume_id} + ${status_string}= Convert To String ${resp.status_code} + Should Match Regexp ${status_string} ^(204|200|404)$ + [Return] ${resp.text}
\ No newline at end of file |