This project has been developed as a proof of concept to translate between the standards TOSCA and CAMP.
To deploy the generated CAMP plans we use Brooklyn as an implementation of the standard.
TOSCA supports the description of an application (or system) and its deployment management by providing a topology and plans for it.
In this sense, TOMAT is a tool to generate a Brooklyn plan from a TOSCA topology (understanding Brooklyn as a CAMP implementation).
Then, the generated plan may be used to deploy our application using Brooklyn (check the usage instructions).
TOMAT has the following subprojects:
- core contains the necessary logic to process and translate the TOSCA topology.
- cli implementats TOMAT's command line interface.
- dist: builds TOMAT jars executable.
To build the project, first clone the repository.
git clone http://gitlab.scenic.uma.es/josec/tomat.git
cd tomat
Then, you can compile the project using maven:
mvn clean install
To launch the tool, you mayuse cli.
cd dist/taget/tomat-dist/bin
tomat %arguments
Of course, you can also use the generated jar with dependencies:
cd dist/target/tomat-dist/
java -jar tomat-jar-with-dependencies.jar %arguments
Above, %arguments
describe the input of the command. You can check the expected arguments to the command with
tomat help
Information on the command arguments may be obteained with tomat help %command
, for example:
tomat help translate
You can find a sample TOSCA topology here:
tomat/dist/target/tomat-dist/resources/Chat-Application-JBoss.xml
This topology can be translated with the following command:
tomat translate Chat-Application-JBoss.xml -o Chat-Application-JBoss.yaml
You can have access to the intermediate Agnostic Graph if executed in verbose mode:
tomat --verbose translate Chat-Application-JBoss.xml -o Chat-Application-JBoss.yaml
After the previous command, the file with the [generated plan] is available in 8:
tomat/dist/target/tomat-dist/resources/Chat-Application-JBoss.yaml
The generated CAMP plan can then be launched using Brooklyn. Please, check Brooklyn's documentation to download, configure and start Brooklyn.
- CAMP plans are handled by Brooklyn 0.9.0 or later versions.
You can check coverage of the current project by using:
cd core
mvn cobertura:cobertura
The generated coverage report can be found at:
core/target/site/cobertura/index.html
Currently, TOMAt is an alpha version and only supports:
- Java Applications: using JBoss, Jetty and TOMCAT.
- MySQL: a connected database.
- XML TOSCA topology.
- YAML Brooklyn Blue Prints generation.
Although the prototype is completely operative, further support is in our list:
- For additional technology translations, e.g., PHP or node.
- For additional database connections.
- For additional target translation technologies.
TOMAT Icon was developed by