Setting Port Range On Your Agent

When using Service Virtualization or the proxy recorder on a Private Location, sometimes limiting the port range that is open to the virtual service or proxy recorder is necessary. Every virtual service uses its own port, so consider that defining a port range limits the number of virtual services that you can create and run on a particular agent (ship).

Static Endpoints for Service Virtualization

This behavior only applies to transaction based virtual services on Docker-based agents.

If a transactional virtual service is stopped and re-deployed on a Docker Private Location, the same port number will be reused when possible. If the port is not available and taken by another process on the Agent host, the virtual service finds a new port from the allowed port range of the Agent and uses that. In this case, the notification message indicates that the end point has changed.

endpoint-port-change-message.png

Set a Custom Port Range

The following API lets you to limit the range of ports available on a specific agent (ship):

URL

https://a.blazemeter.com/api/v4/private-locations/<HarborId>/ships/<ShipId>

Request Parameters

Parameter Description
Api Key Identifies the user (--user 'id:secret' ). How to get the API Key?
Patch Body "portRange" is the only parameter needed.
HarborId Harbor ID of the private location. How to get Harbor ID?
ShipId Ship ID of the agent within the private location. How to get Ship ID?

cURL

curl -X PATCH https://a.blazemeter.com/api/v4/private-locations/<HarborId>/ships/<ShipId> -H "Content-Type: application/json" --user 'id:secret' -d '{"portRange":"2000-2500"}'

Example PATCH Body

{
	"portRange":"2000-2500"
}

Example Response

{
    "api_version": 4,
    "error": null,
    "result": {
        "id": "5abe9cde63cb0e3e0a7b24ca",
        "name": "My OPL",
        "address": "1.1.1.1",
        "publicIpAddress": "2.2.2.2",
        "state": "idle",
        "lastHeartBeat": 1534529255,
        "lastCommandOutput": "",
        "isLocked": false,
        "hostInfo": {
            "containerManager": {
                "type": "DockerManager",
                "info": {
                    "operatingSystem": "Ubuntu 16.04.4 LTS",
                    "operatingSystemType": "linux",
                    "memory": 8370008064,
                    "cpus": 2,
                    "dockerRootDir": "/var/lib/docker",
                    "dockerVersion": "18.03.0-ce",
                    "images": [
                        {
                            "Created": 1533577200,
                            "Labels": null,
                            "VirtualSize": 3875773553,
                            "SharedSize": -1,
                            "ParentId": "",
                            "Size": 3875773553,
                            "RepoDigests": null,
                            "Id": "sha256:777390077be6370e1ac1d5426a6f208a8f7244357a3439ca758e20341309e081",
                            "Containers": -1,
                            "RepoTags": [
                                "taurus-cloud:1.0.12-413",
                                "taurus-cloud:latest"
                            ]
                        },
                        {
                            "Created": 1532378534,
                            "Labels": null,
                            "VirtualSize": 1126812353,
                            "SharedSize": -1,
                            "ParentId": "",
                            "Size": 1126812353,
                            "RepoDigests": null,
                            "Id": "sha256:2b188b359b0aedcc33c2f4ded7e85934ca86db97a21b50ce9a66cd65f9db52ea",
                            "Containers": -1,
                            "RepoTags": [
                                "blazemeter/proxy-recorder:1.3.3-345",
                                "blazemeter/proxy-recorder:latest"
                            ]
                        },
                        {
                            "Created": 1530052739,
                            "Labels": null,
                            "VirtualSize": 256493329,
                            "SharedSize": -1,
                            "ParentId": "",
                            "Size": 256493329,
                            "RepoDigests": null,
                            "Id": "sha256:ca5cc016dcf11c4b702eb3780d199b5bd27ce42178b65be0aeb36c9a8036e560",
                            "Containers": -1,
                            "RepoTags": [
                                "blazemeter/crane:2.0.10-307",
                                "blazemeter/crane:latest"
                            ]
                        },
                        {
                            "Created": 1526891640,
                            "Labels": null,
                            "VirtualSize": 282881488,
                            "SharedSize": -1,
                            "ParentId": "",
                            "Size": 282881488,
                            "RepoDigests": null,
                            "Id": "sha256:8f5ec4edbf9f891d68031a4456fed401179ef68b907ae3cf52f5f7664d1fd499",
                            "Containers": -1,
                            "RepoTags": [
                                "apm-image:1.1.0-154",
                                "apm-image:latest"
                            ]
                        },
                        {
                            "Created": 1522443674,
                            "Labels": null,
                            "VirtualSize": 98099521,
                            "SharedSize": -1,
                            "ParentId": "",
                            "Size": 98099521,
                            "RepoDigests": null,
                            "Id": "sha256:df3cce743a98d60e3ebab387a374829abe72cb0f5f766eb1fab03c16988fbd8f",
                            "Containers": -1,
                            "RepoTags": [
                                "blazemeter-quicktest:1.0.2",
                                "blazemeter-quicktest:latest"
                            ]
                        },
                        {
                            "Created": 1522443581,
                            "Labels": null,
                            "VirtualSize": 5457394747,
                            "SharedSize": -1,
                            "ParentId": "",
                            "Size": 5457394747,
                            "RepoDigests": null,
                            "Id": "sha256:74bfdc5600d05aeb99717755c24411509bd081cbc188de8354ec583fe45a98be",
                            "Containers": -1,
                            "RepoTags": [
                                "blazemeter:1.0.16",
                                "blazemeter:latest"
                            ]
                        }
                    ]
                }
            },
            "diskSpace": {
                "/var/lib/docker": {
                    "present": false
                },
                "/home/blazemeter": {
                    "present": false
                },
                "/tmp": {
                    "freeSpace": 26885898240,
                    "present": true
                }
            }
        },
        "isAutoUpdate": true,
        "uptime": 607952,
        "portRange": "2000-2500",
        "created": 0,
        "updated": 1534794529,
        "updaterStatus": {
            "status": "success",
            "lastUpdateCheck": 1534529254,
            "nextUpdateCheck": 1534532854
        },
        "ts": 1534529255
    }
}