diff options
author | DR695H <dr695h@att.com> | 2017-02-17 18:44:24 -0500 |
---|---|---|
committer | DR695H <dr695h@att.com> | 2017-02-17 18:44:41 -0500 |
commit | ccff30b6e325f359879595998e83bbfe6624c851 (patch) | |
tree | c98f950f33baa71d21b091b6b10ca3ffb7700467 /robot/resources/openstack/keystone_interface.robot | |
parent | 234c2226d8cb3368a7af3d280a5ec280782bed63 (diff) |
Initial checkin of EopenECOMP testsuite
Change-Id: I64a2b6d8cf66169829866b73b3d26a4ff59b0a42
Signed-off-by: DR695H <dr695h@att.com>
Diffstat (limited to 'robot/resources/openstack/keystone_interface.robot')
-rw-r--r-- | robot/resources/openstack/keystone_interface.robot | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/robot/resources/openstack/keystone_interface.robot b/robot/resources/openstack/keystone_interface.robot new file mode 100644 index 00000000..928efbdd --- /dev/null +++ b/robot/resources/openstack/keystone_interface.robot @@ -0,0 +1,49 @@ +*** Settings *** +Documentation The main interface for interacting with Openstack Keystone API. 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_KEYSTONE_API_VERSION} /v2.0 +${OPENSTACK_KEYSTONE_AUTH_PATH} /tokens +${OPENSTACK_KEYSTONE_AUTH_BODY_FILE} robot/assets/templates/keystone_get_auth.template +${OPENSTACK_KEYSTONE_TENANT_PATH} /tenants + +*** Keywords *** +Run Openstack Auth Request + [Documentation] Runs an Openstack Auth Request and returns the token and service catalog. you need to include the token in future request's x-auth-token headers. Service catalog describes what can be called + [Arguments] ${alias} ${username}= ${password}= + ${username} ${password}= Set Openstack Credentials ${username} ${password} + ${session}= Create Session keystone ${GLOBAL_OPENSTACK_KEYSTONE_SERVER} verify=True + ${uuid}= Generate UUID + ${data_template}= OperatingSystem.Get File ${OPENSTACK_KEYSTONE_AUTH_BODY_FILE} + ${arguments}= Create Dictionary username=${username} password=${password} + ${data}= Fill JSON Template ${data_template} ${arguments} + ${data_path}= Catenate ${OPENSTACK_KEYSTONE_API_VERSION}${OPENSTACK_KEYSTONE_AUTH_PATH} + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} + Log Sending authenticate post request ${data_path} with headers ${headers} and data ${data} + ${resp}= Post Request keystone ${data_path} data=${data} headers=${headers} + Save Openstack Auth ${alias} ${resp.text} + Log Received response from keystone ${resp.text} + +Get Openstack Tenants + [Documentation] Returns all the openstack tenant info + [Arguments] ${alias} + ${resp}= Internal Get Openstack ${alias} ${GLOBAL_OPENSTACK_KEYSTONE_SERVICE_TYPE} region= url_ext=${OPENSTACK_KEYSTONE_TENANT_PATH} data_path= + [Return] ${resp.json()} + +Get Openstack Tenant + [Documentation] Returns the openstack tenant info for the specified tenantid + [Arguments] ${alias} ${tenant_id} + ${resp}= Internal Get Openstack ${alias} ${GLOBAL_OPENSTACK_KEYSTONE_SERVICE_TYPE} region= url_ext=${OPENSTACK_KEYSTONE_TENANT_PATH} data_path=/${tenant_id} + [Return] ${resp.json()} + +Set Openstack Credentials + [Arguments] ${username} ${password} + Return From Keyword If '${username}' != '' ${username} ${password} + [Return] ${GLOBAL_VM_PROPERTIES['openstack_username']} ${GLOBAL_VM_PROPERTIES['openstack_password']}
\ No newline at end of file |