Providing a PDAL-based microservice for Piazza.
The going in assumption is that we will receive some message from the dispatcher indicating that a point cloud service has been requested. We will have the path to the data and a description of the task to be performed. We also have a responsibility to update the job manager periodically with status updates.
For pzsvc-pdal
to function properly, PDAL must be installed on your system. Our manifest.yml file specifies a custom buildpack to ensure that PDAL is available on Cloud Foundry. For local operation, follow installation instructions for your system, e.g., brew install pdal
on Mac OS X
Go 1.5+ is required. You can download it here.
If you have not already done so, make sure you've setup your Go workspace and set the necessary environment variables
We make use of Go 1.5's vendor/ experiment, so you'll need to make sure you are running Go 1.5+, and that your GO15VENDOREXPERIMENT
environment variable is set to 1
.
Installing pzsvc-pdal
is as simple as
$ export GO15VENDOREXPERIMENT=1
$ go get github.com/venicegeo/pzsvc-pdal
$ go install github.com/venicegeo/pzsvc-pdal
Assuming $GOPATH/bin
is on your $PATH
, the service can easily be started on port 8080
$ pzsvc-pdal
Perhaps the most straightforward means of demonstrating the pzsvc-pdal
service is via Postman.
Begin by importing our collection.
We also provide two environments, one to setup localhost, another to setup Cloud Foundry.
Nothing fancy here. Just run
$ go test ./...
Or, if you are interested in code coverage
$ go test ./... -cover
And, for more detailed coverage info
$ go test ./... -coverprofile=coverage.out
$ go tool cover -html=coverage.out
We use Godeps to aid in deployment. Upon saving, run
$ godep save ./...
to update the Godeps folder and all import paths.
We have also begun to document the API via Swagger. The current API specification can be found here, but it is currently incomplete.
When deployed, localhost:8080
is replaced with pzsvc-pdal.cf.piazzageo.io
.
All commits to master will be pushed through the VeniceGeo DevOps infrastructure, first triggering a build in Jenkins and, upon success, pushing the resulting binaries to Cloud Foundry