How to upload test results to RefStack

RefStack allows test results contributors to submit test results and have them displayed either anonymously, or identified with a vendor. As such, test results should be uploaded with validated users. Users will first log into RefStack with their OpenStack ID to upload their public keys. RefStack test results need to be uploaded to RefStack using the corresponding private key. By default, the uploaded data isn’t shared, but authorized users can decide to share the results with the community anonymously.

The following is a quick guide outlining the steps needed to upload your first set of test results.

Register an OpenStack ID

The RefStack server uses OpenStack OpenID for user authentication. Therefore, the RefStack server requires that anyone who wants to upload test data to have an OpenStack ID. As you click on the Sign In/Sign Up link on the RefStack pages, you will be redirected to the official OpenStack user log in page where you can either log in with your OpenStack ID or register for one. The registration page can also be found directly through: https://www.openstack.org/join/register.

Generate ssh keys locally

You will need to generate ssh keys locally. If your operating system is a Linux distro, then you can use the following instructions.

First check for existing keys with command:

$ ls -al ~/.ssh

If you see you already have existing public and private keys that you want to use, you can skip this step; otherwise:

$ ssh-keygen -m PEM -t rsa -b 4096 -C "youropenstackid"

The youropenstackid string is the username you chose when you registered for your OpenStack ID account. Enter the file name in which to save the key (/home/you/.ssh/id\_rsa), then press enter. You will be asked to enter a passphrase. Just press enter again as passphrase protected keys currently aren’t supported. Your ssh keys will then be generated.

Sign Key with RefStack Client

IMPORTANT You must have the RefStack client on you computer to complete this step. Follow its README on how to install it.

Generate a signature for your public key using your private key with refstack-client:

$ ./refstack-client sign /path-of-sshkey-folder/key-file-name

The /path-of-sshkey-folder string is the path of the folder where the generated ssh keys are stored locally. The ‘key-file-name’ portion refers to the private key file name. If the command runs correctly, there will be output like below:

Public key:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDSGo2xNDcII1ZaM3H2uKh3iXBzvKIOa5W/5HxKF23yrzwho7nR7td0kgFtZ/4fe0zmkkUuKdUhOACCD3QVyi1N5wIhKAYN1fGt0/305jk7VJ+yYhUPlvo...

Self signature:
19c28fc07e3fbe1085578bd6db2f1f75611dcd2ced068a2195bbca60ae98af7e27faa5b6968c3c5aef58b3fa91bae3df3...

Upload the ssh public key and the signature

Sign into https://refstack.openstack.org with your OpenStack ID. Click the Profile link in the upper right corner. Now click the Import public key button on your profile page. A popup window with two entry fields will appear. Just copy and paste the key and signature generated in the previous step into the corresponding textboxes.

Note that the literal strings Public key: and Self signature: from the refstack-client sign command output should not be copied/pasted into the text boxes. Otherwise you will get an error like:

Bad Request Request doesn't correspond to schema

Once complete, click the Import public key button.

Upload the test result with refstack-client

The results can be uploaded using the refstack-client by:

$ ./refstack-client upload /path_to_testresult_json_file \
  --url https://refstack.openstack.org/api -i  ~/.ssh/id_rsa

NOTE Users may need to add the –insecure optional argument to the command string if certificate validation issues occur when uploading test result. Usage with the insecure argument:

$ ./refstack-client upload --insecure /path_to_testresult_json_file \
  --url https://refstack.openstack.org/api -i  ~/.ssh/id_rsa``

The path_to_testresult_json_file there is the json file of the test result. By default, it’s in .tempest/.stestr/<test-run-number>.json. If the command runs correctly, there will be output like below:

Test results will be uploaded to https://refstack.openstack.org/api. Ok? (yes/y): y
Test results uploaded!
URL: https://refstack.openstack.org/#/results/88a1e6f4-707d-4627-b658-b14b7e6ba70d.

You can find your uploaded test results by clicking the My Results link on the RefStack website.