Skip to content
developing.md 3.04 KiB
Newer Older
Silvia Almagia's avatar
Silvia Almagia committed

# Developing

OpenSlice backend services are mainly implemented with Java 17 or above and Spring boot.
Silvia Almagia's avatar
Silvia Almagia committed

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).
Silvia Almagia's avatar
Silvia Almagia committed

To get the latest development branch:
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 other branch name]
Silvia Almagia's avatar
Silvia Almagia committed
```

You may follow the [installation process](https://osl.etsi.org/documentation/develop/deployment/), as described at "develop" tagged documentation.
Silvia Almagia's avatar
Silvia Almagia committed

To work on a specific subsystem e.g. org.etsi.osl.tmf.api, you must:
Silvia Almagia's avatar
Silvia Almagia committed

1a - 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.
Silvia Almagia's avatar
Silvia Almagia committed

1b - Or alternatively, commend 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.
Silvia Almagia's avatar
Silvia Almagia committed

2 - Clone the respective repository, e.g. https://labs.etsi.org/rep/osl/code/org.etsi.osl.tmf.api/-/tree/develop
Silvia Almagia's avatar
Silvia Almagia committed

Silvia Almagia's avatar
Silvia Almagia committed

Silvia Almagia's avatar
Silvia Almagia committed

- Docker should be installed in your development environment
Kostis Trantzas's avatar
Kostis Trantzas committed
- Run the core subsystems (see above section)
Silvia Almagia's avatar
Silvia Almagia committed


Silvia Almagia's avatar
Silvia Almagia committed

Kostis Trantzas's avatar
Kostis Trantzas committed
Feel free to join OpenSlice [Slack](https://openslice.slack.com) for any development oriented questions.
Silvia Almagia's avatar
Silvia Almagia committed

Kostis Trantzas's avatar
Kostis Trantzas committed
## Examples of developing on specific subsystems
Silvia Almagia's avatar
Silvia Almagia committed

### VNF/NSD Catalog Management and NSD Deployment API service 
Silvia Almagia's avatar
Silvia Almagia committed

Clone the repository: https://labs.etsi.org/rep/osl/code/org.etsi.osl.portal.api/-/tree/develop
Silvia Almagia's avatar
Silvia Almagia committed

Check the docker-compose.yml file. Default port is 13080. Check specifically the datasource username/password, server port.
Silvia Almagia's avatar
Silvia Almagia committed

Make sure that the core subsystems are up and running.
Silvia Almagia's avatar
Silvia Almagia committed

Silvia Almagia's avatar
Silvia Almagia committed

For verification, Swagger API of the service is at `http://localhost:13000/osapi/swagger-ui/index.html`. 
Silvia Almagia's avatar
Silvia Almagia committed

There, you may try there various REST actions and authenticate via the OAuth server without the use of the UI.
Silvia Almagia's avatar
Silvia Almagia committed


### VNF/NSD Catalog Management and NSD Deployment WEB UI service 
Silvia Almagia's avatar
Silvia Almagia committed

Silvia Almagia's avatar
Silvia Almagia committed

Clone the repository: https://labs.etsi.org/rep/osl/code/org.etsi.osl.portal.web/-/tree/develop
Silvia Almagia's avatar
Silvia Almagia committed

By default the project org.etsi.osl.portal.api exposes the folder ../org.etsi.osl.portal.web/src/ in a folder testweb (Check class MvcConfig.java in org.etsi.osl.portal.api) for development. (In production nginx is used). Point your browser to `http://localhost:13000/osapi/testweb/index.html/`
Silvia Almagia's avatar
Silvia Almagia committed

## Version/release management

Check this nice article on how we develop and release versions.
Silvia Almagia's avatar
Silvia Almagia committed

https://nvie.com/posts/a-successful-git-branching-model/

We develop in the develop branch and follow a issue driven development model.
Silvia Almagia's avatar
Silvia Almagia committed

---
## Wishlist

Check also our wishlist of new features. You can add your own.
Silvia Almagia's avatar
Silvia Almagia committed