Step 2: Move test folder to root
[integration/test.git] / test / csit / suites / aaa / idmlite / 010_CRUD_Rest_CommandsTests.robot
diff --git a/test/csit/suites/aaa/idmlite/010_CRUD_Rest_CommandsTests.robot b/test/csit/suites/aaa/idmlite/010_CRUD_Rest_CommandsTests.robot
deleted file mode 100644 (file)
index d60eb3d..0000000
+++ /dev/null
@@ -1,766 +0,0 @@
-*** Settings ***
-Documentation     Basic REST AAA Tests for IdMLight
-...
-...               Copyright (c) 2015 Hewlett-Packard Development Company, L.P. and others. All rights reserved.
-...
-...               This program and the accompanying materials are made available under the
-...               terms of the Eclipse Public License v1.0 which accompanies this distribution,
-...               and is available at http://www.eclipse.org/legal/ep1-v10.html
-Suite Setup       IdMLight Suite Setup
-Suite Teardown    IdMLight Suite Teardown
-Library           Collections
-Library           RequestsLibrary
-Library           OperatingSystem
-Library           String
-Library           HttpLibrary.HTTP
-Library           DateTime
-Library           ../../../libraries/Common.py
-Library           ../../../libraries/AAAJsonUtils.py
-Resource          ../../../libraries/Utils.robot
-Variables         ../../../variables/Variables.py
-Resource          ../../../libraries/AAAKeywords.robot
-
-*** Variables ***
-# port is fixed in Jetty configuration, as well
-${URI}            http://${CONTROLLER}:8282
-# create lists for Domains, Roles and Users - that can be cleaned up upon Teardown
-@{cleanup_domain_list}
-@{cleanup_role_list}
-@{cleanup_user_list}
-@{cleanup_grant_list}
-# will modify value in Setup and use throughout the code
-${HEADERS}        ${EMPTY}
-
-*** Test Cases ***
-Test Post New Domain
-    [Documentation]    Create a domain using REST POST command.
-    # create a temp name, set it to domainName
-    ${domainName}=    Create Random Name    domain-Other
-    # Create the new domain, initialize some values to test against
-    ${domaindesc}=    Set Variable    "testdomain other"
-    ${domainstatus}=    Set Variable    "true"
-
-    # Have to escape the quotes, need quotes to make the POST work properly
-    ${data}=    Set Variable    {"description":${domaindesc},"domainid":"7","name":\"${domainName}\","enabled":${domainstatus}}
-    Log    ${data}
-    # now post it
-    ${domain}=    Post New Domain    ${domainName}    ${data}
-    Log    ${domain}
-
-    ${domainid}=    Parse Item From Blob By Offset    ${domain}    0
-    Log    ${domainid}
-
-    # get the domain to verify
-    ${fetched_domain}=    Get Specific Domain    ${domainid}
-    # add new domain json string to the cleanup list for later cleanup
-    Append To List    ${cleanup_domain_list}    ${fetched_domain}
-    # count the number of domainid's that appear in this block of JSON
-    ${depth}=    Fieldcount    ${fetched_domain}    "domainid"
-    ${fetchedDomStatus}=    Get Domain State By Domainid    ${domain}    ${domainid}    ${depth}
-    ${fetchedDomDesc}=    Get Domain Description By Domainid    ${domain}    ${domainid}    ${depth}
-    # Set Test Disposition based on comparison of what was posted and what was fetched
-    ${testdisposition}=    Set Variable If    '${fetched_domain}' == '${domain}'    '${fetchedDomStatus}' == '${domainstatus}'    '${fetchedDomDesc}' == '${domaindesc}'
-    Log    ${testdisposition}
-
-Test Get Domains
-    [Documentation]    Exercise REST GET command to get all domains.
-    # rely on the creation of a test role in the Setup routine
-    # pop item off of end of the cleanup list, for use (does not alter list)
-    Log    ${cleanup_domain_list}
-    ${domain_item}=    Get From List    ${cleanup_domain_list}    -1
-    Log    ${domain_item}
-
-    # parse out the domainid from the domain info we just grabbed
-    ${domainid}=    Parse Item From Blob By Offset    ${domain_item}    0
-    Log    ${domainid}
-
-    # parse out the name from the same info
-    ${domainname}=    Parse Item From Blob By Offset    ${domain_item}    1
-    Log    ${domainname}
-
-    # get the entire dump of created domains
-    ${content}=    Get Domains
-
-    # parse through that massive blob and get the individual name created in Setup
-    ${node_count}=    Nodecount    ${content}    domains    domainid
-    ${domainid}=    Convert To Integer    ${domainid}
-
-    # Get the domain name from the database, looking it up by its domainid
-    ${domainentry}=    Get Domain Name By Domainid    ${content}    ${domainid}    ${node_count}
-
-    Log    ${domainentry}
-    # compare to see if the parsed user id matches the one we grabbed from list
-    Should Be Equal    ${domainentry}    ${domainname}
-
-Test Get Specific Domain
-    [Documentation]    Get a specific domain using REST GET command.
-    # from the pre-created (see Setup routine) list, grab a domain id for testing
-    ${listlength}=    Get Length    ${cleanup_domain_list}
-    # pop item off of end of the list, for use (does not alter list)
-    Log    ${cleanup_domain_list}
-    ${domain_item}=    Get From List    ${cleanup_domain_list}    -1
-    ${item}=    Pop Name Off Json    ${domain_item}
-    # convert this crap to unicode
-    # ${item}=    Convert To String    ${item}
-    Log    ${item}
-    # make a GET call to find the material we want to delete
-    ${domains}=    Get Domains
-    # convert name on the list to an ID, by which we delete this stuff
-    ${node_count}=    Nodecount    ${domains}    domains    domainid
-    ${node_count}=    Convert To Integer    ${node_count}
-    ${domainid}=    Get Domain Id By Domainname    ${domains}    ${item}    ${node_count}
-    # now, get the specific domain by it's domainid
-    ${domaininfo}=    Get Specific Domain    ${domainid}
-    Should Contain    ${domaininfo}    ${item}
-    Log    ${domaininfo}
-
-Test Update Specific Domain
-    [Documentation]    Update a specific domain using REST PUT command.
-    # rely on the creation of a test domain in the Setup routine
-    # pop item off of end of the list, for use (does not alter list)
-    Log    ${cleanup_domain_list}
-    ${domain_item}=    Get From List    ${cleanup_domain_list}    -1
-    Log    ${domain_item}
-
-    # parse out the domain id from the domain info we just grabbed
-    ${domid}=    Parse Item From Blob By Offset    ${domain_item}    0
-    Log    ${domid}
-
-    # parse out the name from the same info
-    ${domname}=    Parse Item From Blob By Offset    ${domain_item}    1
-    Log    ${domname}
-
-    ${data}=    Set Variable    {"name":"MasterTest Domain"}
-    Update Specific Domain    ${data}    ${domid}
-    ${domname}=    Get Specific Domain Name    ${domid}
-    Log    ${domname}
-    ${z}=    Split String    ${data}    :
-    ${dname}=    Get From List    ${z}    1
-    ${dname}=    Replace String    ${dname}    "    ${EMPTY}
-    ${dname}=    Replace String    ${dname}    }    ${EMPTY}
-    Log    ${dname}
-    ${modified_name}=    Pop Name Off Json    ${domname}
-    Log    ${modified_name}
-    Should Be Equal    ${dname}    ${modified_name}
-
-Test Delete Domain
-    [Documentation]    Delete a specific domain using REST DELETE command.
-    # create a temporary test domain
-    ${tempdomain}=    Create Random Name    temp-domain-name
-    ${domaindata}=    Set Variable    {"description":"temporary test domain","domainid":"1","name":"${tempdomain}","enabled":"true"}
-    # Post that temp domain
-    ${newdomain}=    Post New Domain    ${tempdomain}    ${domaindata}
-    Log    ${newdomain}
-    # parse out the domain-id from the domain info we just created
-    ${domainid}=    Parse Item From Blob By Offset    ${newdomain}    0
-    Log    ${domainid}
-
-    # now wipe if off the map
-    Delete Domain    ${domainid}
-    # we should not be able to fetch this domain from the database of domains...should fail...
-    ${content}=    Check Specific Id Does Not Exist    domain    ${domainid}
-    Log    ${content}
-
-Test Get Users
-    [Documentation]    Exercise REST GET command for obtaining all users.
-    # rely on the creation of a test user in the Setup routine
-    # pop item off of end of the list, for use (does not alter list)
-    Log    ${cleanup_user_list}
-    ${user_item}=    Get From List    ${cleanup_user_list}    -1
-    Log    ${user_item}
-
-    # parse out the userid from the user info we just grabbed
-    ${userid}=    Parse Item From Blob By Offset    ${user_item}    0
-    Log    ${userid}
-
-    # parse out the name from the same info
-    ${username}=    Parse Item From Blob By Offset    ${user_item}    1
-    Log    ${username}
-
-    # get the entire blob of users
-    ${content}=    Get Users
-    # parse through that massive blob and get the individual name
-    ${node_count}=    Nodecount    ${content}    users    userid
-    ${userid}=    Convert To Integer    ${userid}
-    ${userentry}=    Get User Name By Userid    ${content}    ${userid}    ${node_count}
-    Log    ${userentry}
-    # compare to see if the parsed user id matches the one we grabbed from list
-    Should Be Equal    ${userentry}    ${username}
-
-Test Get Specific User
-    [Documentation]    Exercise REST GET command to obtain a specific user.
-    # from the pre-created (see Setup routine) list, grab a user id for testing
-    ${listlength}=    Get Length    ${cleanup_user_list}
-    # pop item off of end of the list, for use (does not alter list)
-    Log    ${cleanup_user_list}
-    ${user_item}=    Get From List    ${cleanup_user_list}    -1
-    ${item}=    Pop Name Off Json    ${user_item}
-    # convert this to unicode
-    # ${item}=    Convert To String    ${item}
-    Log    ${item}
-
-    # parse out the userid from the user info we just grabbed
-    ${userid}=    Parse Item From Blob By Offset    ${user_item}    0
-    Log    ${userid}
-
-    # parse out the name from the same info
-    ${username}=    Parse Item From Blob By Offset    ${user_item}    1
-    Log    ${username}
-
-    # make a GET call to find the material we want
-    ${content}=    Get Specific User    ${userid}
-
-    # parse out the user name from the content we just fetched
-    ${fetched_username}=    Parse Item From Blob By Offset    ${content}    1
-    Log    ${fetched_username}
-
-    # compare to see if the parsed user name matches the one we grabbed from list
-    Should Contain    ${fetched_username}    ${username}
-
-Test Update User
-    [Documentation]    Exercise PUT command against an existing User ID.
-    # pop item off of end of the list, for use (does not alter list)
-    Log    ${cleanup_user_list}
-    ${user_item}=    Get From List    ${cleanup_user_list}    -1
-    Log    ${user_item}
-
-    # parse out the user-id from the user info we just created
-    ${userid}=    Parse Item From Blob By Offset    ${user_item}    0
-    Log    ${userid}
-
-    # update the information for the userid
-    ${testusername}=    Create Random Name    force-accomplish
-    ${data}=    Set Variable    {"description":"sample test description", "name":"${testusername}"}
-    ${content}=    Update Specific User    ${data}    ${userid}
-    Log    ${testusername}
-    # now, make a GET call to find the material we modified
-    ${existing_useritem}=    Get Specific User    ${userid}
-
-    # parse out the name from the existing userinfo
-    ${expected_username}=    Parse Item From Blob By Offset    ${existing_useritem}    1
-    Log    ${expected_username}
-
-    # compare to see if the GOTTEN user id matches the one we grabbed from list
-    Should Be Equal    ${expected_username}    ${testusername}
-
-Test Post New User
-    [Documentation]    Test the POST command to create a new user.
-    # create information for a new role (for the test)
-    ${testusername}=    Create Random Name    Darth-Maul
-    ${data}=    Set Variable    {"description":"sample user description", "name":"${testusername}", "userid":1}
-    Log    ${testusername}
-
-    # Post this puppy
-    ${content}=    Post New User    ${testusername}    ${data}
-    # parse out the userid from the content we just created
-    ${userid}=    Parse Item From Blob By Offset    ${content}    0
-    Log    ${userid}
-
-    # now go GET the userid info and compare to the name we fabricated
-    ${existing_useritem}=    Get Specific User    ${userid}
-
-    ${expected_username}=    Parse Item From Blob By Offset    ${existing_useritem}    1
-    Log    ${expected_username}
-
-    # compare to see if the GOTTEN role id matches the one we grabbed from list
-    Should Be Equal    ${expected_username}    ${testusername}
-
-Test Delete User
-    [Documentation]    Exercise REST command for DELETE user command.
-    # create a user and then delete it.    Use Get to verify it's gone
-    # create information for a new user (for the test)
-    ${testusername}=    Create Random Name    force-user
-    ${data}=    Set Variable    {"description":"sample test description", "name":"${testusername}", "userid":1}
-    Log    ${testusername}
-    # Post this disposable user
-    ${content}=    Post New User    ${testusername}    ${data}
-    # parse out the user-id from the content we just created
-    ${userid}=    Parse Item From Blob By Offset    ${content}    0
-    Log    ${userid}
-
-    # now delete it...
-    ${content2}=    Delete User    ${userid}
-    # should fail...
-    ${content}=    Check Specific Id Does Not Exist    user    ${userid}
-    Log    ${content}
-
-Test Get Specific Role
-    [Documentation]    Exercise REST command for roles GET command.
-    # from the pre-created (see Setup routine) list, grab a role id for testing
-    ${listlength}=    Get Length    ${cleanup_role_list}
-    # pop item off of end of the list, for use (does not alter list)
-    Log    ${cleanup_role_list}
-    ${role_item}=    Get From List    ${cleanup_role_list}    -1
-    Log    ${role_item}
-    # parse out the role-id from the role info we just created
-    ${roleid}=    Parse Item From Blob By Offset    ${roleitem}    0
-    Log    ${roleid}
-
-    # make a GET call to find the material we want
-    ${existing_roleitem}=    Get Specific Role    ${roleid}
-
-    # parse out the expected role-id from the content we just created
-    ${eroleid}=    Parse Item From Blob By Offset    ${existing_roleitem}    0
-    Log    ${eroleid}
-    # compare to see if the GOTTEN role id matches the one we grabbed from list
-    Should Be Equal    ${eroleid}    ${roleid}
-
-Test Get Roles
-    [Documentation]    Exercise REST command for roles GET command.
-    # rely on the creation of a test role in the Setup routine
-    # pop item off of end of the list, for use (does not alter list)
-    Log    ${cleanup_role_list}
-    ${role_item}=    Get From List    ${cleanup_role_list}    -1
-    Log    ${role_item}
-
-    # parse out the role-id from the info we just grabbed
-    ${roleid}=    Parse Item From Blob By Offset    ${role_item}    0
-    Log    ${roleid}
-    # parse out the name from the same info
-    ${rolename}=    Parse Item From Blob By Offset    ${role_item}    1
-    Log    ${rolename}
-
-    # get the entire blob of roles
-    ${content}=    Get Roles
-    # parse through that massive blob and get the individual name
-    ${node_count}=    Nodecount    ${content}    roles    roleid
-    ${roleid}=    Convert To Integer    ${roleid}
-    ${roleentry}=    Get Role Name By Roleid    ${content}    ${roleid}    ${node_count}
-    Log    ${roleentry}
-    # compare to see if the parsed user id matches the one we grabbed from list
-    Should Be Equal    ${roleentry}    ${rolename}
-
-Test Update Role
-    [Documentation]    Exercise PUT command against an existing Role ID.
-    # pop item off of end of the list, for use (does not alter list)
-    Log    ${cleanup_role_list}
-    ${role_item}=    Get From List    ${cleanup_role_list}    -1
-    Log    ${role_item}
-    # parse out the role-id from the role info we just created
-    ${roleid}=    Parse Item From Blob By Offset    ${role_item}    0
-    Log    ${roleid}
-
-    # update the information for the roleid
-    ${testrolename}=    Create Random Name    force-accomplish
-    ${data}=    Set Variable    {"description":"sample test description", "name":"${testrolename}"}
-    ${content}=    Update Specific Role    ${data}    ${roleid}
-    Log    ${testrolename}
-    # now, make a GET call to find the material we modified
-    ${existing_roleitem}=    Get Specific Role    ${roleid}
-
-    # parse out the name from the same info
-    ${expected_rolename}=    Parse Item From Blob By Offset    ${existing_roleitem}    1
-    Log    ${expected_rolename}
-
-    # compare to see if the GOTTEN role id matches the one we grabbed from list
-    Should Be Equal    ${expected_rolename}    ${testrolename}
-
-Test Post New Role
-    [Documentation]    Exercise POST command to create a new Role.
-    # create information for a new role (for the test)
-    ${testrolename}=    Create Random Name    force-brother-cousin
-    ${data}=    Set Variable    {"description":"sample test description", "name":"${testrolename}", "roleid":1}
-    Log    ${testrolename}
-    # Post this puppy
-    ${content}=    Post New Role    ${data}
-    # parse out the role-id from the content we just created
-    ${roleid}=    Parse Item From Blob By Offset    ${content}    0
-    Log    ${roleid}
-
-    # now got GET the roleid info and compare to the name we fabricated
-    # and parse out role name
-    ${existing_roleitem}=    Get Specific Role    ${roleid}
-    ${expected_rolename}=    Parse Item From Blob By Offset    ${content}    1
-    Log    ${expected_rolename}
-
-    # compare to see if the GOTTEN role id matches the one we grabbed from list
-    Should Be Equal    ${expected_rolename}    ${testrolename}
-
-Test Delete Role
-    [Documentation]    Exercise REST command for DELETE role command.
-    # create a role and then delete it.    Use Get to verify it's gone
-    # create information for a new role (for the test)
-    ${testrolename}=    Create Random Name    force-usurper
-    ${data}=    Set Variable    {"description":"sample test description", "name":"${testrolename}", "roleid":1}
-    Log    ${testrolename}
-    # Post this disposable role
-    ${content}=    Post New Role    ${data}
-    # parse out the role-id from the content we just created
-    ${roleid}=    Parse Item From Blob By Offset    ${content}    0
-    Log    ${roleid}
-
-    # now delete it...
-    ${content2}=    Delete Role    ${roleid}
-    # should fail...
-    ${content}=    Check Specific Id Does Not Exist    role    ${roleid}
-    Log    ${content}
-
-Test Grant Role To Domain And User
-    [Documentation]    Test the POST of a Role to Domain and User
-
-    # rely on the creation of a test role, user and domain in the Setup routine
-    # pop item off of end of the list, for use (does not alter list)
-    ${role_item}=    Get From List    ${cleanup_role_list}    -1
-    Log    ${role_item}
-    ${user_item}=    Get From List    ${cleanup_user_list}    -1
-    Log    ${user_item}
-    ${domain_item}=    Get From List    ${cleanup_domain_list}    -1
-    Log    ${domain_item}
-
-    # parse out the roleid from the role info we just grabbed
-    ${roleid}=    Parse Item From Blob By Offset    ${role_item}    0
-    Log    ${roleid}
-
-    # parse out the name from the same info
-    ${rolename}=    Parse Item From Blob By Offset   ${role_item}    1
-    Log    ${rolename}
-
-    # parse out the userid from the user info we just grabbed
-    ${userid}=    Parse Item From Blob By Offset    ${user_item}    0
-    Log    ${userid}
-
-    # parse out the name from the same info
-    ${username}=    Parse Item From Blob By Offset    ${user_item}    1
-    Log    ${username}
-
-    # parse out the domain-id from the domain info we just grabbed
-    ${domainid}=    Parse Item From Blob By Offset    ${domain_item}    0
-    Log    ${domainid}
-
-    # parse out the name from the same info
-    ${domainname}=    Parse Item From Blob By Offset    ${domain_item}    1
-    Log    ${domainname}
-
-    # generate the data payload that we wish to post
-    ${data}=    Set Variable    {"roleid":"${roleid}", "description":"fabricated test roleid"}
-    # post this monster
-    ${content}=    Post Role To Domain And User    ${data}    ${domainid}    ${userid}
-    # add new json string to the cleanup list for later cleanup
-    Append To List    ${cleanup_grant_list}    ${content}
-    Should Contain    ${content}    ${domainid}
-    Should Contain    ${content}    ${roleid}
-    Should Contain    ${content}    ${userid}
-
-
-*** Keywords ***
-IdMLight Suite Setup
-    Log    Suite Setup
-    # create a domain, role and user for testing.
-    ${HEADERS}=    Create Dictionary    Content-Type=application/json
-    Log    ${HEADERS}
-    Set Global Variable    ${HEADERS}
-    # create a name to use in each case
-    ${testdomain}=    Create Random Name    Alderaan
-    Log    ${testdomain}
-    ${testuser}=    Create Random Name    Leia
-    Log    ${testuser}
-    ${testrole}=    Create Random Name    Force-User
-    Log    ${testrole}
-    # now create the domain, role and userid
-
-    # create the test domain
-    Create Session    httpbin    ${URI}
-    ${domaindata}=    Set Variable    {"description":"planetary domain","domainid":"7","name":"${testdomain}","enabled":"true"}
-    ${newdomain}=    Post New Domain    ${testdomain}    ${domaindata}
-    Log    ${newdomain}
-    # add new domain name to the cleanup list for later cleanup
-    Append To List    ${cleanup_domain_list}    ${newdomain}
-    # now create the test user
-    ${userdata}=    Set Variable    {"description":"User-of-the-Force","name":"${testuser}","enabled":"true"}
-    ${newuser}=    Post New User    ${testuser}    ${userdata}
-    Log    ${newuser}
-    # add new user name to the cleanup list for later cleanup
-    Append To List    ${cleanup_user_list}    ${newuser}
-    # now create the test role
-    ${roledata}=    Set Variable    {"name":"${testrole}","description":"Force User"}
-    ${newrole}=    Post New Role    ${roledata}
-    # add new role name to the cleanup list for later cleanup
-    Append To List    ${cleanup_role_list}    ${newrole}
-    #
-    # return the three item names to the caller of setup
-    [Return]    ${newdomain}    ${newuser}    ${newrole}
-
-IdMLight Suite Teardown
-    Log    Suite Teardown
-    ${ELEMENT}=    Create Session    httpbin    ${URI}
-    # if the test domain, role or user exists, wipe it out.
-    : FOR    ${ELEMENT}    IN    @{cleanup_domain_list}
-    \    ${ELEMENT}    Replace String    ${ELEMENT}    ${SPACE}    ${EMPTY}
-    \    Log    ${ELEMENT}
-    \    # split it up to get the domainid
-    \    ${x}=    Split String    ${ELEMENT}    ,
-    \    ${y}=    Get From List    ${x}    0
-    \    ${z}=    Split String    ${y}    :
-    \    ${domainid}=    Get From List    ${z}    1
-    \    Log    ${domainid}
-    \    # convert name on the list to an ID, by which we delete this stuff
-    \    Delete Domain    ${domainid}
-    Log    ${cleanup_domain_list}
-    # Cleanup roles that were created during testing
-    : FOR    ${ELEMENT}    IN    @{cleanup_role_list}
-    \    Log    ${ELEMENT}
-    \    ${ELEMENT}    Replace String    ${ELEMENT}    ${SPACE}    ${EMPTY}
-    \    Log    ${ELEMENT}
-    \    # split it up to get the roleid
-    \    ${x}=    Split String    ${ELEMENT}    ,
-    \    ${y}=    Get From List    ${x}    0
-    \    ${z}=    Split String    ${y}    :
-    \    ${roleid}=    Get From List    ${z}    1
-    \    Log    ${roleid}
-    \    # convert name on the list to an ID, by which we delete this stuff
-    \    Delete Role    ${roleid}
-    Log    ${cleanup_role_list}
-    # Cleanup users that were created during testing
-    : FOR    ${ELEMENT}    IN    @{cleanup_user_list}
-    \    Log    ${ELEMENT}
-    \    ${ELEMENT}    Replace String    ${ELEMENT}    ${SPACE}    ${EMPTY}
-    \    Log    ${ELEMENT}
-    \    # split it up to get the roleid
-    \    ${x}=    Split String    ${ELEMENT}    ,
-    \    ${y}=    Get From List    ${x}    0
-    \    ${z}=    Split String    ${y}    :
-    \    ${userid}=    Get From List    ${z}    1
-    \    Log    ${userid}
-    \    Delete User    ${userid}
-    Log    ${cleanup_user_list}
-    
-    Delete All Sessions
-
-Check Specific Id Does Not Exist
-    [Arguments]    ${area_to_look}    ${id}
-    [Documentation]    Execute GET command on specified single id
-    # the ITEM is the area to look under...    users, domains, roles, etc
-    ${n1}=    Set Variable    auth/v1/${area_to_look}/${id}
-    # do the actual get
-    ${resp}    RequestsLibrary.Get    httpbin    ${n1}    headers=${HEADERS}
-    Should Be Equal As Strings    ${resp.status_code}    404
-    ${id_string}=    Convert To String    ${id}
-    Should Contain    ${resp.content}    ${id_string}
-    [Return]    ${resp.content}
-
-Get Specific Domain
-    [Arguments]    ${domainid}
-    [Documentation]    Execute GET command on specified single domain
-    ${n1}=    Set Variable    auth/v1/domains/${domainid}
-    ${resp}    RequestsLibrary.Get    httpbin    ${n1}    headers=${HEADERS}
-    Should Be Equal As Strings    ${resp.status_code}    200
-    ${domainid_string}=    Convert To String    ${domainid}
-    Should Contain    ${resp.content}    ${domainid_string}
-    [Return]    ${resp.content}
-
-Get Specific Domain Name
-    [Arguments]    ${domainid}
-    [Documentation]    Execute GET command on specified single domain
-    ${n1}=    Set Variable    auth/v1/domains/${domainid}
-    ${resp}    RequestsLibrary.Get    httpbin    ${n1}    headers=${HEADERS}
-    Should Contain    ${resp.content}    ${domainid}
-    Log    ${resp.content}
-    [Return]    ${resp.content}
-
-Get Specific Role
-    [Arguments]    ${roleid}
-    [Documentation]    Exercise REST command to GET a specific role, based on role-id
-    ${n1}=    Set Variable    auth/v1/roles/${roleid}
-    ${resp}    RequestsLibrary.Get    httpbin    ${n1}    headers=${HEADERS}
-    Should Be Equal As Strings    ${resp.status_code}    200
-    Should Contain    ${resp.content}    ${roleid}
-    [Return]    ${resp.content}
-
-Get Domains
-    [Documentation]    Execute getdomains GET command.
-    ${n1}=    Set Variable    auth/v1/domains
-    ${resp}    RequestsLibrary.Get    httpbin    ${n1}    headers=${HEADERS}
-    Should Be Equal As Strings    ${resp.status_code}    200
-    Should Contain    ${resp.content}    "domains"
-    [Return]    ${resp.content}
-
-Get Roles
-    [Documentation]    Execute GET command to obtain list of roles.
-    ${n1}=    Set Variable    auth/v1/roles
-    ${resp}    RequestsLibrary.Get    httpbin    ${n1}    headers=${HEADERS}
-    Should Be Equal As Strings    ${resp.status_code}    200
-    Should Contain    ${resp.content}    "roles"
-    [Return]    ${resp.content}
-
-Get Specific User
-    [Arguments]    ${user}
-    [Documentation]    Exercise REST command for users GET command.
-    ${n1}=    Set Variable    auth/v1/users/${user}
-    ${resp}    RequestsLibrary.Get    httpbin    ${n1}    headers=${HEADERS}
-    Should Be Equal As Strings    ${resp.status_code}    200
-    Should Contain    ${resp.content}    ${user}
-    [Return]    ${resp.content}
-
-Get Users
-    [Documentation]    GET the complete set of users.
-    ${n1}=    Set Variable    auth/v1/users
-    ${resp}    RequestsLibrary.Get    httpbin    ${n1}    headers=${HEADERS}
-    Should Be Equal As Strings    ${resp.status_code}    200
-    Should Contain    ${resp.content}    ${user}
-    [Return]    ${resp.content}
-
-Post New Domain
-    [Arguments]    ${domain}    ${data}
-    [Documentation]    Exercise REST command for domains POST command.
-    ${n1}=    Set Variable    auth/v1/domains
-    ${resp}    RequestsLibrary.Post    httpbin    ${n1}    headers=${HEADERS}    data=${data}
-    Should Be Equal As Strings    ${resp.status_code}    201
-    Should Contain    ${resp.content}    ${domain}
-    [Return]    ${resp.content}
-
-Post New Role
-    [Arguments]    ${data}
-    [Documentation]    Use POST REST command to create specified Role.
-    ${n1}=    Set Variable    auth/v1/roles
-    ${resp}    RequestsLibrary.Post    httpbin    ${n1}    headers=${HEADERS}    data=${data}
-    #    HTTP/1.1 201 Created
-    Should Be Equal As Strings    ${resp.status_code}    201
-    [Return]    ${resp.content}
-
-Post New User
-    [Arguments]    ${username}    ${data}
-    [Documentation]    Exercise REST command for users POST command.
-    ${n1}=    Set Variable    auth/v1/users
-    ${resp}    RequestsLibrary.Post    httpbin    ${n1}    headers=${HEADERS}    data=${data}
-    # grab the list of users, count the list, and then search the list for the specific user id
-    ${users}=    Get Users
-    ${depth}=    Nodecount    ${users}    users    userid
-    ${abc}=    Get User Id By Username    ${users}    ${username}    ${depth}
-    Should Be Equal As Strings    ${resp.status_code}    201
-    Should Contain    ${resp.content}    ${username}
-    [Return]    ${resp.content}
-
-Get User By Name
-    [Arguments]    ${jsonblock}    ${property}
-    [Documentation]    hand this function a block of Json, and it will find your
-    ...    user by name and return userid
-    ${foundit}=    Get From Dictionary    ${jsonblock}    ${property}
-
-Update Specific Domain
-    [Arguments]    ${data}    ${domainid}
-    [Documentation]    Update the specified domainid with a new name specified in domain-name
-    ${n1}=    Set Variable    auth/v1/domains/${domainid}
-    ${resp}    RequestsLibrary.Put    httpbin    ${n1}    headers=${HEADERS}    data=${data}
-    # Should Be Equal As Strings    ${resp.status_code}    201
-    Log    ${resp.content}
-
-Update Specific Role
-    [Arguments]    ${data}    ${roleid}
-    [Documentation]    Update the specified roleid with a new information name specified
-    ${n1}=    Set Variable    auth/v1/roles/${roleid}
-    ${resp}    RequestsLibrary.Put    httpbin    ${n1}    headers=${HEADERS}    data=${data}
-    # Should Be Equal As Strings    ${resp.status_code}    201
-    Log    ${resp.content}
-
-Update Specific User
-    [Arguments]    ${data}    ${userid}
-    [Documentation]    Update the specified userid with a new information name specified
-    ${n1}=    Set Variable    auth/v1/users/${userid}
-    ${resp}    RequestsLibrary.Put    httpbin    ${n1}    headers=${HEADERS}    data=${data}
-    # Should Be Equal As Strings    ${resp.status_code}    201
-    Log    ${resp.content}
-
-Delete Domain
-    [Arguments]    ${domainid}
-    [Documentation]    Delete the specified domain, by id
-    ${n1}=    Set Variable    auth/v1/domains/${domainid}
-    Log    ${n1}
-    ${resp}    RequestsLibrary.Delete    httpbin    ${n1}    headers=${HEADERS}
-    Should Be Equal As Strings    ${resp.status_code}    204
-    Log    ${resp.content}
-
-Delete User
-    [Arguments]    ${userid}
-    [Documentation]    Delete the specified user, by id
-    ${n1}=    Set Variable    auth/v1/users/${userid}
-    ${resp}    RequestsLibrary.Delete    httpbin    ${n1}    headers=${HEADERS}
-    Should Be Equal As Strings    ${resp.status_code}    204
-    Log    ${resp.content}
-
-Delete Role
-    [Arguments]    ${roleid}
-    [Documentation]    Use DELETE REST command to wipe out a Role created for testing.
-    ${n1}=    Set Variable    auth/v1/roles/${roleid}
-    ${resp}    RequestsLibrary.Delete    httpbin    ${n1}    headers=${HEADERS}
-    Should Be Equal As Strings    ${resp.status_code}    204
-    #Should NOT Contain    ${resp.content}    ${roleid}
-    [Return]    ${resp.content}
-
-Post Role To Domain And User
-    [Arguments]    ${data}    ${domainid}    ${userid}
-    [Documentation]    Exercise REST POST command for posting a role to particular domain and user
-    ${n1}=    Set Variable    auth/v1/domains/${domainid}/users/${userid}/roles
-    # now post it
-    ${resp}    RequestsLibrary.Post    httpbin    ${n1}    headers=${HEADERS}    data=${data}
-    Should Be Equal As Strings    ${resp.status_code}    201
-    [Return]    ${resp.content}
-
-Get Roles For Specific Domain And User
-    [Arguments]    ${domainid}    ${userid}
-    [Documentation]    Exercise REST GET command for roles in a specific domain and user
-    ${n1}=    Set Variable    auth/v1/domains/${domainid}/users/${userid}/roles
-    # now get it
-    ${resp}    RequestsLibrary.Get    httpbin    ${n1}    headers=${HEADERS}
-    Should Be Equal As Strings    ${resp.status_code}    200
-    [Return]    ${resp.content}
-
-Delete Specific Grant
-    [Arguments]    ${domainid}    ${userid}    ${roleid}
-    [Documentation]    Exercise REST DELETE command for a grant by roleid
-    ${n1}=    Set Variable    auth/v1/domains/${domainid}/users/${userid}/roles/${roleid}
-    # now delete it
-    ${resp}    RequestsLibrary.Delete    httpbin    ${n1}    headers=${HEADERS}
-    Should Be Equal As Strings    ${resp.status_code}    204
-    [Return]    ${resp.content}
-
-Parse Item From Blob By Offset
-    [Documentation]    Parse out a field from JSON structure
-    [Arguments]    ${item}    ${offset}
-    ${x}=    Split String    ${item}    ,
-    ${y}=    Get From List    ${x}    ${offset}
-    ${z}=    Split String    ${y}    :
-
-    # offset is one in next line because you are looking at a key:value pair
-    ${return_item_}=    Get From List    ${z}    1
-    ${return_item}=    Replace String    ${return_item_}    "    ${EMPTY}
-    [Return]    ${return_item}
-
-Create Random Name
-    [Arguments]    ${basename}
-    [Documentation]    Take the basename given and return a new name with date-time-stamp appended.
-    ${datetime}=    Get Current Date    result_format=%Y-%m-%d-%H-%M
-    Log    ${datetime}
-    ${newname}=    Catenate    SEPARATOR=-    ${basename}    ${datetime}
-    [Return]    ${newname}
-
-Pop Name Off Json
-    [Arguments]    ${jsonstring}
-    [Documentation]    Pop the name item out of the Json string
-    # split it up to get the id
-    ${x}=    Split String    ${jsonstring}    ,
-    ${y}=    Get From List    ${x}    1
-    ${z}=    Split String    ${y}    :
-    ${name}=    Get From List    ${z}    1
-    ${name}=    Replace String    ${name}    "    ${EMPTY}
-    Log    ${name}
-    [Return]    ${name}
-
-Verify Contents
-    [Arguments]    ${content_block}    ${keyvar}
-    [Documentation]    Verify that the content block passed in, contains the variable identified in second argument
-    Should Contain    ${content_block}    ${keyvar}
-
-Rough Clean
-    [Documentation]    Clean up domains, users, roles in db, keep original 4 of each
-    ${domains}=    Get Domains
-    ${roles}=    Get Roles
-    ${users}=    Get Users
-    ${domcount}=    Nodecount    ${domains}    domains    "domainid"
-    ${rolecount}=    Nodecount    ${roles}    roles    "roleid"
-    ${usercount}=    Nodecount    ${users}    users    "userid"
-    : FOR    ${index}    IN RANGE    5    ${domains}
-    \    Delete Domain    ${index}
-    : FOR    ${index}    IN RANGE    5    ${roles}
-    \    Delete Role    ${index}
-    : FOR    ${index}    IN RANGE    5    ${users}
-    \    Delete User    ${index}