Skip to content

Context Scalability extensions using CockroachDB + Removal of Stateful database inside Device + other

Lluis Gifre Renom requested to merge feat/context-scalability into develop

Deploy scripts:

  • Aggregated deploy scripts in folder "deploy"
  • Added deploy scripts for CockroachDB and NATS
  • Updated my_deploy.sh example deployment definition script

Manifests:

  • Migrated old GitLab.com URLs to ETSI Labs
  • Reduced default number of replicas of components to 1

GitLab CI/CD pipeline:

  • Updated and homogeneized definitions
  • Disabled deployment in Kubernetes due to changes in GitLab agents (not needed by now)

Common:

  • Added method in method_wrappers to dump component performance during unit tests
  • Updated Event handling to consider new timestamp structure in context.proto
  • Updated MockServiceImpl_Context to log reply messages
  • Updated context_queries with new method to get devices and reduced log messages
  • Updated object_factory with missing methods and corrected existing ones
  • Updated old Constants DEFAULT_CONTEXT_UUID, DEFAULT_TOPOLOGY_UUID and INTERDOMAIN_TOPOLOGY_UUID to ..._NAME
  • Updated common requirements

Context component:

  • Migrated Context to CockroachDB and NATS
  • Defined new Context ORM based on SQLAlchemy and CockroachDB engine
  • Updated context.proto and Context component to include name fields in main entities
  • Updated context.proto to include slice_ids in Context message
  • Updated unitary tests and GitLab CI/CD pipeline accordingly

Device component:

  • Removed internal stateful database and replaced by requests-replies to context
  • Extended MonitoringLoops to keep track of monitorable endpoints as an efficient in-memory database
  • Added logic to pre-load drivers for existing devices in Context when Device component starts
  • Reorganized code and separated in relevant modules and classes to improve readability
  • Updated unitary tests accordingly
  • EmulatedDriver: Reorganized code and separated in relevant modules and classes
  • EmulatedDriver: Minor updates to arrange with removal of the internal database
  • OpenConfigDriver: Minor updates to arrange with removal of the internal database

DLT component:

  • Corrected CI/CD pipeline to prevent using a network with fixed IP address ranges

Load Generator component:

  • Generalized load_generator tool to be executable as a command line and/or component
  • Added load_generator.proto to control the load_generator component
  • Added parameter to enable setting up services and slices, but not tearing them down.
  • Added parameter to generate infinite requests
  • Adapted parameter generation for services and slices to new definition of service/slice in context

Compute component:

  • Moved code to debug content of context to Compute to convert it into a debug_api NBI (by now WIP)

Monitoring component:

  • Corrected many small issues in unitary tests

PathComp component:

  • Corrected composition of requests for the Backend to be consistent with context definitions
  • Improved logging of request sent to backend
  • Corrected CI/CD pipeline to prevent using a network with fixed IP address ranges

Service component:

  • Corrected CI/CD pipeline to use real context, device, and service images; otherwise crashes

WebUI component:

  • Added basic buttons to control Load Generator component
  • Corrected logic to handle selection of context/topology
  • Added field "name" in many entities (WIP)
  • Disabled Dump ContextDB links
  • Improved listing of configuration rules of device, service and slice

Misc:

  • Many minor bug resolutions, code formatting, and cosmetic changes
  • Updated README.md file
Edited by Lluis Gifre Renom

Merge request reports