Developing
OpenSlice backend services are mainly implemented with Java 17 or above and Spring Boot.
OpenSlice uses various subsystems and depending on the module would you like to work, other subsystems must be present (you can disable them though in the code, e.g. at docker-compose.yaml file).
General requirements
- Docker should be installed in your development environment
- Run the core subsystems (see related section)
Version/release management
Check this nice article on how we develop and release versions.
We develop in the develop
branch and follow a issue driven development model.
Getting Started
To get the latest development branch, execute:
wget https://labs.etsi.org/rep/osl/code/org.etsi.osl.main/-/raw/develop/compose/deploy.sh
sudo ./deploy.sh develop #[or replace develop with another branch name]
You may follow the installation process, as described at develop
tagged documentation.
Contribute to a subsystem
To work on a specific subsystem e.g. org.etsi.osl.tmf.api
, you must:
-
Deploy only the core necessary subsystems through:
bash sudo docker compose --profile dev down;sudo docker compose --profile dev up -d --build
Note --profile dev that will only deploy the core dependency subsystems, instead of the whole OpenSlice.
OR
Alternatively, comment out the respective container from the
docker-compose.yaml
file, so as to deploy the whole OpenSlice, except the subsystem you want to work on, following the provided installation steps. -
Clone the respective repository, for example: https://labs.etsi.org/rep/osl/code/org.etsi.osl.tmf.api/-/tree/develop (the clone URLs are available at this link)
-
Code! 😊
Examples of developing on specific subsystems
VNF/NSD Catalog Management and NSD Deployment API service
You need to:
-
Clone the repository:
https://labs.etsi.org/rep/osl/code/org.etsi.osl.portal.api/-/tree/develop
-
Check the docker-compose.yml file. Default port is 13080. Check specifically the datasource username/password, server port.
-
Make sure that the core subsystems are up and running.
Execute it with:
bash mvn spring-boot:run
For verification, Swagger API of the service is at
http://localhost:13000/osapi/swagger-ui/index.html
. There, you may try there various REST actions and authenticate via the OAuth server without the use of the UI.
VNF/NSD Catalog Management and NSD Deployment WEB UI service
The Web UI is written in AngularJS
. To run it:
-
Clone the repository: https://labs.etsi.org/rep/osl/code/org.etsi.osl.portal.web/-/tree/develop (the clone URLs are available at that link)
By default the project
org.etsi.osl.portal.api
exposes the folder../org.etsi.osl.portal.web/src/
in a folder testweb (check classMvcConfig.java
inorg.etsi.osl.portal.api
) for development. (In production nginx is used) -
Point your browser to
http://localhost:13000/osapi/testweb/index.html/
Reach us
We are available on different channels.
Slack
Feel free to join OpenSlice's Slack workspace for any development oriented questions (preferred).
If you are a member or a participant, you can also reach out on the OSL_TECH
mailing list.
For administrative support, contact SDGsupport@etsi.org
.
Wishlist
Check also our wishlist of new features. You can add your own.
See wishlist.