| commit | ac21677e78149971075372a1bcf267e0fed3163b | [log] [tgz] |
|---|---|---|
| author | Alexander Khimich <alexkhimich@users.noreply.github.com> | Thu Feb 23 13:36:06 2017 -0800 |
| committer | GitHub <noreply@github.com> | Thu Feb 23 13:36:06 2017 -0800 |
| tree | d538de0f9d60d5fd913751877f6672dc36bfc298 | |
| parent | 8cf2376322baeae43ba134725e10ba7ba171191e [diff] | |
| parent | 88034c9429c135733a57962de053fef790ff62bb [diff] |
Merge pull request #11 from 30x/XAPID-668 Xapid 668
This core plugin for apid responds to apidApigeeSync events and publishes an API that allows clients to deploy and update a locally configured gateway.
This plugin simply tracks counters based on called URIs:
GET /deployments/ - retrieve current deploymentPOST /deployments/ - update deploymentsSee apidGatewayDeploy-api.yaml for full spec.
Window of time during which deployment changes are gathered before sending to client. Default: “bundles”
Duration between deleting a deployment and deleting it's bundles on disk. Default: “1s”
Duration before bundle download marks deployment as failed (will continue retries regardless). Default: “1m”
Relative location from local_storage_path in which to store local bundle files. Default: “5m”
(durations note, see: https://golang.org/pkg/time/#ParseDuration)
First, install prerequisites:
glide install
To run an apid test instance with just this plugin installed, change to the cmd/apidGatewayDeploy folder. From here, you may create an executable with:
go build
Alternatively, you may run without creating an executable with:
go run main.go
Command line options:
If you use the -deployments option, the server will start using a clean database that contains only the deployments contained in the file specified.
The file should be the JSON for an array of deployments. JSON format is:
[
{
"id": "",
"scopeId": "",
"created": "",
"createdBy": "",
"updated": "",
"updatedBy": "",
"configuration": {
"key": "value"
},
"bundleConfiguration": {
"key": "value"
},
"displayName": "",
"uri": ""
}
]
Notes:
Once the process is running, you should be able to manually give the plugin's API a whirl...
curl -i localhost:9000/deployments/
curl -i -X POST localhost:9000/deployments -d '{ ... }'
The following may be interesting env vars for configuration:
To run the tests, just run:
go test
To generate coverage, you may run:
./cover.sh
Then open cover.html with your browser to see details.