ConPaaS services are composed by a manager and one or more agents: the manager’s role is to oversee the functioning of a specific service. ConPaaS managers are responsible, among other things, for starting up and shutting down ConPaaS agents, which in turn provide the functionality offered by a specific service.
ConPaaS services are created and administered exclusively through an HTTP / JSON Application Programming Interface exposed by a web service called ConPaaS Director. This document provides a description of such an API.
Let us list the ConPaaS API methods, together with a brief description of their behavior.
POST /new_user
Create a new ConPaaS user. The method expects the following parameters:
'username', 'fname', 'lname', 'email', 'affiliation', 'password', 'credit', 'uuid'
A dictionary of user values is returned upon successful user creation.
The following dictionary is returned on failure:
{
'error': True,
'msg': 'An explanatory error message'
}
POST /login
Authenticates the given user. The following parameters are expected:
'username', 'password'
A dictionary of user values is returned upon successful authentication.
False is returned otherwise.
POST /get_user_certs
Create and send SSL certificates for the given user. 'username' and
'password' are the expected parameters. A zip archive containing the SSL
certificates is returned on success, False otherwise.
GET /available_services
Return a list of available service types. For example:
['scalaris', 'selenium', 'hadoop', 'mysql', 'java', 'php']
POST /start/<servicetype>
Return a dictionary with service data (manager's vmid and IP address,
service name and ID) in case of correct service creation. False is returned
otherwise. Only service types returned by the 'available_services' method
described above are allowed.
This method requires the client to present a valid SSL certificate.
POST /stop/<serviceid>
Return a boolean value. True in case of proper service termination, false
otherwise. <serviceid> has to be an integer representing the service id of a
running service.
This method requires the client to present a valid SSL certificate.
POST /rename/<serviceid>
Rename the given service. The new name 'name' is the only required
argument. Return true on successful renaming, false otherwise.
GET /list
List running ConPaaS services. Return data as a list of dictionaries
(associative arrays).
This method requires the client to present a valid SSL certificate.
GET /download/ConPaaS.tar.gz
Used by ConPaaS services. Download a tarball with the ConPaaS source code.
POST /callback/decrementUserCredit.php
Used by ConPaaS services. 'sid' and 'decrement' are the required parameters.
Decrement user credit and check if it is enough. Return a dictionary with
the 'error' attribute set to false if the user had enough credit, true
otherwise.
This method requires the client to present a valid SSL certificate of type
'manager'. The 'serviceLocator' field in the supplied certificate has to match
the 'sid'.
POST /ca/get_cert.php
Used by ConPaaS services. The only required argument is a file called 'csr'
holding a certificate signing request. A certificate is returned.
This method requires the client to present a valid SSL certificate of type
'manager'..
The first three methods, namely new_user, login and get_user_certs do not need a client SSL certificate to be called.
available_services, start, stop, rename and list all need a valid user certificate in order to be called.
The last two methods are used by ConPaaS managers to decrement users’ credit and create agent certificates. They both need a valid manager certificate to be called.