Intentionally the usage is a simple stupid REST'ish api, in fact there is only create a new instance, delete an existing instance, list all instances and read/get the details of an instance.
We need to send all the required parameters for the creation as an http request. This is quite convenient by creating a file e.g. my_postgraas.json:
{ "postgraas_instance_name": "my_postgraas", "db_name": "my_db", "db_username": "db_user", "db_pwd": "secret" }
and making a POST request to the collection resource with curl:
curl -H "Content-Type: application/json" -X POST --data @my_postgraas.json http://localhost:8080/api/v2/postgraas_instances
now your instance is created and as a response you get the details of your instance:
{ "postgraas_instance_id": 1, "container_id": "193f0d94d49fa26626fdbdb583e9453f923468b01eac59207b4852831a105c03", "db_pwd": "secret", "host": "not imlemented yet", "db_name": "my_db", "db_username": "db_user", "port": 54648 }
We are now able to connect to the database for exaple with psql:
psql -h localhost -p 54648 -U db_user my_db
Awesome, isn't it?
With a GET request to the collection resource you get a list of all instances (not only the one you created...):
curl -H "Content-Type: application/json" -X GET http://localhost:8080/api/v2/postgraas_instances
And the response is the list:
[ { "username": "db_user", "container_id": "193f0d94d49fa26626fdbdb583e9453f923468b01eac59207b4852831a105c03", "db_name": "my_db", "postgraas_instance_name": "my_postgraas", "password": "", "creation_timestamp": "2016-07-06T23:38:38.367493", "id": 1, "hostname": "not imlemented yet", "port": "54648" } ]
With a DELETE request to the uri of the instance you can delete an instance:
curl -H "Content-Type: application/json" -X DELETE --data @pwd.json http://localhost:8080/api/v2/postgraas_instances/1
where the pwd.json file contains the postgres password as "db_pwd" key, e.g.:
{ "db_pwd": "secret" }
You will get a response like this:
{ "status": "success", "msg": "deleted postgraas instance" }
That's it at the moment!