Skip to content
Carlos Andreo edited this page Dec 21, 2024 · 10 revisions

Trial Network Lifecycle Manager (TNLCM) is a tool designed to manage the lifecycle of trial networks. Developed in Python, it automates the creation, deployment, and management of temporary or test networks, streamlining the process of experimentation and validation in network development projects.

πŸ“– Table of Contents

πŸ“‚ Project Structure

TNLCM/                       // main folder.
β”œβ”€ .github/                  // folder contains files and templates for GitHub workflow automation.
β”œβ”€ conf/                     // folder that handler the configuration files.
β”œβ”€ core/                     // folder that the developed code is stored.
β”‚  β”œβ”€ auth/                  // folder that handler the authentication of users who have access.
β”‚  β”œβ”€ callback/              // folder that handler the callback received by Jenkins.
β”‚  β”œβ”€ cli/                   // folder that handler the cli for run commands.
β”‚  β”œβ”€ database/              // folder that handler the connection with MongoDB database using mongoengine.
β”‚  β”œβ”€ exceptions/            // folder that handler the creation of custom exceptions.
β”‚  β”œβ”€ jenkins/               // folder that handler the connection with Jenkins for tn deployment.
β”‚  β”œβ”€ logs/                  // folder that handler the logs configuration.
β”‚  β”œβ”€ mail/                  // folder that handler the configuration to use flask mail library.
β”‚  β”œβ”€ models/                // folder that contains the database models.
β”‚  β”œβ”€ repository/            // folder that handler the connection to any repository.
β”‚  β”œβ”€ routes/                // folder that handler the API that is exposed.
β”‚  β”œβ”€ sixg_library/          // folder that handler the connection to the 6G-Library repository.
β”‚  β”œβ”€ sixg_sandbox_sites/    // folder that handler the connection to the 6G-Sandbox-Sites repository.
β”‚  └─ utils/                 // folder that handler data conversions and storage in YAML, Markdown and JSON formats.
β”œβ”€ docker/                   // folder containing Docker-related configuration and setup files.
β”œβ”€ docs/                     // folder where all documentation is stored.
β”œβ”€ scripts/                  // folder contains scripts for automated deployments.
β”‚  β”œβ”€ deploy_vm.sh           // file to deploy TNLCM with its dependencies on a vm.
β”‚  └─ deploy_docker.sh       // file to deploy TNLCM in docker with its dependencies.
β”œβ”€ tn_template_lib/          // folder that trial network descriptors templates are stored.
β”œβ”€ .dockerignore             // file specifying which files and directories to ignore in the Docker build context.
β”œβ”€ .env.template             // file that contains placeholder environment variables for configuring the application.
β”œβ”€ .gitignore                // file specifying intentionally untracked files to ignore.
β”œβ”€ app.py                    // main file that starts TNLCM.
β”œβ”€ CHANGELOG.md              // file containing the changes made in each release.
β”œβ”€ docker-compose.yaml       // file for create database.
└─ pyproyect.toml            // file containing the libraries and their versions.