Spirent CloudSure Automation Guide

Spirent Communications

Spirent CloudSure Automation Guide

v1.11.0

Spirent CloudSure Automation Guide

Table of Contents

Getting Started ............................................................................................................3 1. AION Authentication ...........................................................................................3 2. Find a solution......................................................................................................5 3. Create a project ....................................................................................................7 4. Add test cases to the project.................................................................................9 5. Configure test cases............................................................................................10 6. Run the project ...................................................................................................15 7. Analyze results ...................................................................................................21 8. Clean up results ..................................................................................................22 Import a test package ................................................................................................23 API reference ............................................................................................................24 Example scripts .........................................................................................................24 Spirent Support .........................................................................................................25

2

Spirent CloudSure Automation Guide

Getting Started

Spirent CloudSure is a test solution framework for benchmarking and validating NFV ecosystems, ultimately assuring your cloud investment. This manual will guide you through the steps of finding the right solution and executing tests using the CloudSure REST API.

1. AION Authentication

The AION API supports obtaining an authorization token via OAuth 2.0. The endpoint to obtain the bearer token requires a scope parameter which is the user's organization ID.

The organization ID can be obtained as follows:

Request:

curl -k -X GET \

Python example:

import requests

my_aion_cluster_url = ""

r = requests.get(f"{my_aion_cluster_url}/api/iam/organizations/default") organization_id = r.json()["id"]

Response (example):

[ { "id": "7fab9b0208aa456b92b7a88db774649d", "serial": 2, "name": "Spirent", "domains": [ "" ], "subdomain": "spirent", "locked": false, "email_enabled": true, "self_onboard": true, "default_workspace": { "id": "7fab9b0208aa456b92b7a88db774649d", "name": "Spirent", "description": "Organization's initial project" } }

]

3

Spirent CloudSure Automation Guide

The "id" property is used for the scope parameter in the following API call to obtain a bearer token.

Request:

curl -k -X POST \ -H "Accept:application/json" --data-urlencode "grant_type=password" \ --data-urlencode "username=my_email_addr" \ --data-urlencode "password=my_password" \ --data-urlencode "scope=my_org_id" \

Python example:

import requests

my_aion_cluster_url = "" username = "my_email_addr" password = "my_password" organization_id = "my_org_id"

r = requests.post( url=f"{my_aion_cluster_url}/api/iam/oauth2/token", json={ "grant_type": "password", "username": username, "password": password, "scope": organization_id, },

) access_token = r.json()["access_token"]

Response:

{ "access_token":

"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsIng1dCI6IllUWmpPR0prWTJGak16TmpZVE01WlRoa VlXWmlOR1V5Wm1ZME1qWXpPRFpsT0RkbU1XWTVOV1ZpTjJGbFlXWTBPVGd3TlRkaE56TTFOREUwTUR Gak5nPT0ifQ.eyJjb25zIjoidXJuOmM0OTYzOGE2MjUzNzRiOTVhMjU0ZDQyZGRhMDZhZDBiOndvcm tzcGFjZTpjNDk2MzhhNjI1Mzc0Yjk1YTI1NGQ0MmRkYTA2YWQwYiIsImV4cCI6MTQ5Njk2OTQ5Mywi aXNzIjoidXJuOnJvb3Q6c2VydmljZTpvcmlvbi1pYW0iLCJuYmYiOjE0OTY4ODI3OTMsInN1YiI6In VybjpjNDk2MzhhNjI1Mzc0Yjk1YTI1NGQ0MmRkYTA2YWQwYjp1c2VyOjg5ZmI2ZDZiMDM3ZTQ2NzJh NWZjNmJiYzUxN2MwMTY1IiwidHlwIjoiYWNjZXNzIn0.qtrwaExQAauw5cWTfY40dU6o5TlhGQnY18 2v0Ji4Ll4SW6AL5WTMR93te82iEYWNuh6SR2E5ADYj7kfa4n7mhlFNuMyv1_Jf3SF5raFhGrCzcxdX 9V9E17-ZWEaNGeb1yU2r-bstqFqvdOQI4rgzohIzjVvCnvU5TT5fLxaNrNzSXN2qILmcI2hBc41NS1kDEHDGtTslIUcBmmnHh7v0 FpIz5THc8d94XH2omFs784kls2JIqOhoqe2UUi_WVVbVKZGa01W9oNpkfFZJZTqVt2MrKExMxOW1X23GhW705ZpoYbXnXbBfya4U145rjk4wjUaWMj9zhAygXbg6MEtw",

"token_type": "urn:ietf:params:oauth:token-type:access_token", "expires_in": 86400, "refresh_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsIng1dCI6IllUWmpPR0prWTJGak16TmpZVE01WlRoa VlXWmlOR1V5Wm1ZME1qWXpPRFpsT0RkbU1XWTVOV1ZpTjJGbFlXWTBPVGd3TlRkaE56TTFOREUwTUR Gak5nPT0ifQ.eyJjb25zIjoidXJuOmM0OTYzOGE2MjUzNzRiOTVhMjU0ZDQyZGRhMDZhZDBiOndvcm tzcGFjZTpjNDk2MzhhNjI1Mzc0Yjk1YTI1NGQ0MmRkYTA2YWQwYiIsImV4cCI6MTQ5NzQ4Nzg5Mywi aXNzIjoidXJuOnJvb3Q6c2VydmljZTpvcmlvbi1pYW0iLCJuYmYiOjE0OTY4ODI3OTMsInN1YiI6In VybjpjNDk2MzhhNjI1Mzc0Yjk1YTI1NGQ0MmRkYTA2YWQwYjp1c2VyOjg5ZmI2ZDZiMDM3ZTQ2NzJh

4

Spirent CloudSure Automation Guide

NWZjNmJiYzUxN2MwMTY1IiwidHlwIjoicmVmcmVzaCJ9.MnFQxEO3d0sP0UL5yjX-3GnNBs97mUQ5ZNE-sQ-TrmXnEQS59Ipm6nlKW709IHzy1K2d9LaWSvOixfcTbHsnCUQ2NeF0flJqnPCich5gRM4H8Gse9x4smaYRR6BIP7C21OlxjnrJEIh8ZlRXa3c7xUvAZEbh9ivzoaK8y9umupO6e9hkZzflUt_sukRQnvjRav4WSTAuws qw8LeJL7A8b0OEWOFfneg5vjhbtEzJdYHPiDoMnDG0U_l_lzLL9EUjJgdohz4rMPBQZkH163vIihET2iksSsiYbmKvYz_Nhe80qf9W1151CHB8f_TUtgfWgU7ZIuq9U9-3M2upg",

"scope": "7fab9b0208aa456b92b7a88db774649d" }

The access token will be used in an Authorization header in subsequent calls to the API.

The following is an example of the Authorization header value passed to the "-H" cURL option using the access_token value from the response above. Note the inclusion of "Bearer" before the token value in the header content.

"Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsIng1dCI6IllUWmpPR0prWTJGak16TmpZVE01WlRoaV lXWmlOR1V5Wm1ZME1qWXpPRFpsT0RkbU1XWTVOV1ZpTjJGbFlXWTBPVGd3TlRkaE56TTFOREUwTURG ak5nPT0ifQ.eyJjb25zIjoidXJuOmM0OTYzOGE2MjUzNzRiOTVhMjU0ZDQyZGRhMDZhZDBiOndvcmt zcGFjZTpjNDk2MzhhNjI1Mzc0Yjk1YTI1NGQ0MmRkYTA2YWQwYiIsImV4cCI6MTQ5Njk2OTQ5Mywia XNzIjoidXJuOnJvb3Q6c2VydmljZTpvcmlvbi1pYW0iLCJuYmYiOjE0OTY4ODI3OTMsInN1YiI6InV ybjpjNDk2MzhhNjI1Mzc0Yjk1YTI1NGQ0MmRkYTA2YWQwYjp1c2VyOjg5ZmI2ZDZiMDM3ZTQ2NzJhN WZjNmJiYzUxN2MwMTY1IiwidHlwIjoiYWNjZXNzIn0.qtrwaExQAauw5cWTfY40dU6o5TlhGQnY182 v0Ji4Ll4SW6AL5WTMR93te82iEYWNuh6SR2E5ADYj7kfa4n7mhlFNuMyv1_Jf3SF5raFhGrCzcxdX9 V9E17-ZWEaNGeb1yU2r-bstqFqvdOQI4rgzohIzjVvCnvU5TT5fLxaNrNzSXN2qILmcI2hBc41NS1kDEHDGtTslIUcBmmnHh7v0 FpIz5THc8d94XH2omFs784kls2JIqOhoqe2UUi_WVVbVKZGa01W9oNpkfFZJZTqVt2MrKExMxOW1X23GhW705ZpoYbXnXbBfya4U145rjk4wjUaWMj9zhAygXbg6MEtw"

For python examples it should be assigned to variable without any prefix:

access_token = "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsIng1dCI6IllUWmpPR0prWTJGak16TmpZVE01WlRoa VlXWmlOR1V5Wm1ZME1qWXpPRFpsT0RkbU1XWTVOV1ZpTjJGbFlXWTBPVGd3TlRkaE56TTFOREUwTUR Gak5nPT0ifQ.eyJjb25zIjoidXJuOmM0OTYzOGE2MjUzNzRiOTVhMjU0ZDQyZGRhMDZhZDBiOndvcm tzcGFjZTpjNDk2MzhhNjI1Mzc0Yjk1YTI1NGQ0MmRkYTA2YWQwYiIsImV4cCI6MTQ5Njk2OTQ5Mywi aXNzIjoidXJuOnJvb3Q6c2VydmljZTpvcmlvbi1pYW0iLCJuYmYiOjE0OTY4ODI3OTMsInN1YiI6In VybjpjNDk2MzhhNjI1Mzc0Yjk1YTI1NGQ0MmRkYTA2YWQwYjp1c2VyOjg5ZmI2ZDZiMDM3ZTQ2NzJh NWZjNmJiYzUxN2MwMTY1IiwidHlwIjoiYWNjZXNzIn0.qtrwaExQAauw5cWTfY40dU6o5TlhGQnY18 2v0Ji4Ll4SW6AL5WTMR93te82iEYWNuh6SR2E5ADYj7kfa4n7mhlFNuMyv1_Jf3SF5raFhGrCzcxdX 9V9E17-ZWEaNGeb1yU2r-bstqFqvdOQI4rgzohIzjVvCnvU5TT5fLxaNrNzSXN2qILmcI2hBc41NS1kDEHDGtTslIUcBmmnHh7v0 FpIz5THc8d94XH2omFs784kls2JIqOhoqe2UUi_WVVbVKZGa01W9oNpkfFZJZTqVt2MrKExMxOW1X23GhW705ZpoYbXnXbBfya4U145rjk4wjUaWMj9zhAygXbg6MEtw"

2. Find a solution

CloudSure provides a variety of solutions that are aimed at benchmarking and validating various components of the NFV ecosystem. Solutions are delivered in the form of test packages where each test package focuses on an NFV component (e.g., NFVI or MANO). Each test package consists of one or more test case templates that are meant to benchmark and validate specific aspects of that NFV component (e.g., Cross NUMA network bandwidth and latency).

5

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download