Skip to content

REST Front End Control

Justin Randall edited this page Sep 20, 2018 · 1 revision

Front End Query and Control REST API

Stashed supports RESTful control of the compiler front-ends. This is useful for using tools like CURL with build scripts to query versions of installed tools, selectively activating or deactivating specific compiler host/target combinations or completely activating or disabling all Stashed front ends.

RESTful pattern of use

The API endpoint to access query and control for front ends is located at /api/frontends.

Front ends are keyed by a path. For example, Microsoft Visual Studio 2015 tools are listed as:

/msvs/v2015/amd64_x86 /msvs/v2015/amd64 /msvs/v2015/default /msvs/v2015/x86_amd64

No configuration data is required, so only GET, PUT and DELETE operations apply.

shell curl -s -X <operation> -k <url>

All operations will return a json formatted object representing the front ends affected.

Examples

Querying all front ends on the host system:

curl -s -X GET http://127.0.0.1:39081/api/frontends

returns:

{
	"name": "All",
	"status": "Enabled",
	"children": {
		"msvs": {
			"name": "Microsoft Visual Studio",
			"status": "Enabled",
			"children": {
				"v2012": {
					"name": "Microsoft Visual Studio 2012",
					"children": {
						"amd64": {
							"name": "amd64",
							"installLocation": "c:\\program files (x86)\\microsoft visual studio 11.0"
						},
						"amd64_x86": {
							"name": "amd64_x86",
							"installLocation": "c:\\program files (x86)\\microsoft visual studio 11.0"
						},
						"default": {
							"name": "default",
							"installLocation": "c:\\program files (x86)\\microsoft visual studio 11.0"
						},
						"x86_amd64": {
							"name": "x86_amd64",
							"installLocation": "c:\\program files (x86)\\microsoft visual studio 11.0"
						}
					}
				},
				"v2013": {
					"name": "Microsoft Visual Studio 2013",
					"children": {
						"amd64": { "name": "amd64" },
						"amd64_x86": { "name": "amd64_x86" },
						"default": { "name": "default" },
						"x86_amd64": { "name": "x86_amd64" }
					}
				},
				"v2015": {
					"name": "Microsoft Visual Studio 2015",
					"status": "Enabled",
					"children": {
						"amd64": {
							"name": "amd64",
							"status": "Enabled",
							"installLocation": "d:\\program files (x86)\\microsoft visual studio 14.0"
						},
						"amd64_x86": {
							"name": "amd64_x86",
							"status": "Enabled",
							"installLocation": "d:\\program files (x86)\\microsoft visual studio 14.0"
						},
						"default": {
							"name": "default",
							"status": "Enabled",
							"installLocation": "d:\\program files (x86)\\microsoft visual studio 14.0"
						},
						"x86_amd64": {
							"name": "x86_amd64",
							"status": "Enabled",
							"installLocation": "d:\\program files (x86)\\microsoft visual studio 14.0"
						}
					}
				},
				"v2017": {
					"name": "Microsoft Visual Studio 2017",
					"status": "Enabled",
					"children": {
						"5b7dcade": {
							"name": "Visual Studio Community 2017",
							"status": "Enabled",
							"children": {
								"14.14.26428": {
									"name": "14.14.26428",
									"status": "Enabled",
									"children": {
										"x64_x64": {
											"name": "x64_x64",
											"status": "Enabled",
											"installLocation": "c:\\program files (x86)\\microsoft visual studio\\2017\\community\\VC\\Tools\\MSVC\\14.14.26428"
										},
										"x64_x86": {
											"name": "x64_x86",
											"status": "Enabled",
											"installLocation": "c:\\program files (x86)\\microsoft visual studio\\2017\\community\\VC\\Tools\\MSVC\\14.14.26428"
										},
										"x86_x64": {
											"name": "x86_x64",
											"status": "Enabled",
											"installLocation": "c:\\program files (x86)\\microsoft visual studio\\2017\\community\\VC\\Tools\\MSVC\\14.14.26428"
										},
										"x86_x86": {
											"name": "x86_x86",
											"status": "Enabled",
											"installLocation": "c:\\program files (x86)\\microsoft visual studio\\2017\\community\\VC\\Tools\\MSVC\\14.14.26428"
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
}

Querying a specific front end:

curl -s -X GET -k http://localhost:39081/api/frontends/msvs/v2015/amd64

{"name":"amd64","status":"Enabled","installLocation":"d:\\program files (x86)\\microsoft visual studio 14.0"}

Disable all front ends:

curl -s -X DELETE -k http://localhost:39081/api/frontends

Enable all front ends:

curl -s -X PUT -k http://localhost:39081/api/frontends

Disable a specific front end:

curl -s -X DELETE -k http://localhost:39081/api/frontends/msvs/v2015/amd64

Enable a specific front end:

curl -s -X PUT -k http://localhost:39081/api/frontends/msvs/v2015/amd64