Skip to content

OpenTOSCA/container

Repository files navigation

OpenTOSCA Container - TOSCA Runtime

Java CI with Maven License Codacy Badge

Part of the OpenTOSCA Ecosystem

Info

The OpenTOSCA Container is java/maven based runtime for deploying and managing TOSCA-based applications. The backend uses Winery therefore all CSAR exported from a Winery repository should be compatible within the runtime.

Development & Stable Versions

master is the main development branch, the stable branch represents the latest stable branch and is also available as tags

Build

  1. Run git update-index --assume-unchanged ./org.opentosca.container.core/src/main/resources/application.properties to ignore custom configuration changes inside the application.properties.
  2. Update application.properties and replace localhost with your external IP address, e.g., 192.168.1.100.
  3. Run mvn package -DskipTests inside the root folder to build without tests (See also Tests in the next section).
  4. Afterwards, the OpenTOSCA-container.war can be deployed using a tomcat webserver.

Tests

  1. Update application.properties and replace localhost with your external IP address, e.g., 192.168.1.100.
  2. Be sure that your Dockerengine is running and is accessible via its REST API on tcp://your-ip:2375 (Or you change the port in the test cases under org.opentosca.container.war/src/test).
  3. Make sure the docker containers defined in ./test.yml are running (E.g. via docker compose -f test.yml up) and the ports match the ports in your application.properties.
  4. Afterwards, you can either start the test via mvn package or start the JUnit tests under org.opentosca.container.war/src/test within your preferred IDE directly.
  5. The test cases download the test applications from the test repository themselves. However, you can configure to use a local clone or another test repository by adding the line org.opentosca.test.local.repository.path=/path/to/repository/tosca-definitions-test-applications to application.properties.

Setup in IntelliJ

  1. Open the project using File > Open and navigate to the container folder.
  2. Right click the pom.xml and select Add as Maven project.
  3. Run the Container run configuration.

Setup in Eclipse

  1. Import project via Import existing maven projects..
  2. Add created war file of project org.opentosca.container.war to suitable server configured within your eclipse, e.g., Tomcat
  3. (AdditionalInfo) Usually the application runs on port 1337 and without a prefix in the path -> change port of tomcat to 1337 and remove the path of the added WAR project

Run via SpringBoot

  1. Run mvn install in root of project
  2. Go to directory org.opentosca.container.war and run mvn spring-boot:run and the runtime should be available under localhost:1337

Creating a new stable tag

  1. Run mvn release:update-versions -DautoVersionSubmodules=true and set the version to the prefered version for the container, or just use mvn --batch-mode release:update-versions -DautoVersionSubmodules=true to increment the current version. Remove -SNAPSHOT via mvn versions:set -DremoveSnapshot More Info
  2. Lock winery SNAPSHOT version via mvn versions:lock-snapshots
  3. Then run git tag <tagname> where tagname is the version and if a major release add name to it, afterwards run git push origin --tags

Disclaimer of Warranty

Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

Haftungsausschluss

Dies ist ein Forschungsprototyp. Die Haftung für entgangenen Gewinn, Produktionsausfall, Betriebsunterbrechung, entgangene Nutzungen, Verlust von Daten und Informationen, Finanzierungsaufwendungen sowie sonstige Vermögens- und Folgeschäden ist, außer in Fällen von grober Fahrlässigkeit, Vorsatz und Personenschäden, ausgeschlossen.

Acknowledgements

The initial code contribution has been supported by the Federal Ministry for Economic Affairs and Energy as part of the CloudCycle project (01MD11023). Current development is supported by the Federal Ministry for Economic Affairs and Energy as part of the the PlanQK project (01MK20005N), the DFG (Deutsche Forschungsgemeinschaft) project ReSUS (425911815), as well as the DFG’s Excellence Initiative project SimTech (EXC 2075 - 390740016). Additional development has been funded by the Federal Ministry for Economic Affairs and Energy projects SmartOrchestra (01MD16001F) and SePiA.Pro (01MD16013F), as well as by the DFG projects SustainLife (641730) and ADDCompliance (636503). Further development is also funded by the European Union’s Horizon 2020 project RADON (825040).