Commit 6eac3b00 authored by Christos Tranoris's avatar Christos Tranoris
Browse files

fixed readme

parent cd90e81e
Loading
Loading
Loading
Loading
+275 −188

File changed.

Preview size limit exceeded, changes collapsed.

+50 −40
Original line number Diff line number Diff line
@startuml Bootstrap_Phase
actor "IETF NS Controller" as IETFNS
participant "RestconfConsumerService" as RCS
participant "RestconfClient" as RC
participant "TerflowSDN\n(RESTCONF Server)" as TFSDN
actor "IETF NS Controller\n(Spring Boot)" as IETFNS
participant "SloSleTemplateBootstrapService" as BOOTSTRAP
participant "CatalogClient" as CATALOG
participant "OpenSlice TMF API" as TMF
participant "ResourceSpecificationTemplateRegistry" as REGISTRY
participant "RestconfClient" as RC
participant "RESTCONF Provider\n(e.g. TerflowSDN)" as PROVIDER
participant "TMFResourceSpecRepositoryImpl" as REPO
participant "OpenSlice TMF Catalog API" as TMF

IETFNS ->> BOOTSTRAP: ApplicationReady Event
IETFNS ->> BOOTSTRAP: ApplicationReady Event\n(CommandLineRunner.run)
activate BOOTSTRAP

BOOTSTRAP ->> RCS: Retrieve templates from provider
activate RCS
== Step 1: Create Fixed Resource Specification Templates ==

RCS ->> RC: GET /api/ns/v0/slice-service-templates
activate RC
BOOTSTRAP ->> BOOTSTRAP: createSloSleSpecification()\n→ IETFSloSleTemplateSpec\n  + SloSleTemplateAsJson (TEXT)
BOOTSTRAP ->> BOOTSTRAP: createSliceServiceSpecification()\n→ IETFSliceServiceSpec\n  + SliceServiceAsJson (TEXT)
BOOTSTRAP ->> BOOTSTRAP: createNetworkSliceServicesSpecification()\n→ IETFNetworkSliceServicesSpec\n  + SloSleTemplatesAsJsonArray (TEXT)\n  + SliceServicesAsJsonArray (TEXT)

RC ->> TFSDN: RESTCONF GET request
activate TFSDN
TFSDN -->> RC: Return SloSleTemplate[]
deactivate TFSDN
== Step 2: Retrieve Dynamic Templates from RESTCONF Provider (optional) ==

RC -->> RCS: SliceService[] with SloSleTemplate[]
alt RESTCONF client available
    BOOTSTRAP ->> RC: getSloSleTemplates()
    activate RC
    RC ->> PROVIDER: GET /restconf/data/ietf-network-slice-service:\nnetwork-slice-services/slo-sle-templates\nAccept: application/yang-data+json
    activate PROVIDER
    PROVIDER -->> RC: JSON (RFC 9543 slo-sle-template list)
    deactivate PROVIDER
    RC -->> BOOTSTRAP: JSON string
    deactivate RC
    BOOTSTRAP ->> BOOTSTRAP: Rfc9543JsonConverter.parseSloSleTemplates(json)\n→ List<SloSleTemplate>
    BOOTSTRAP ->> BOOTSTRAP: mapper.toLogicalResourceSpec(template)\nfor each retrieved template
else RESTCONF client not available
    BOOTSTRAP ->> BOOTSTRAP: Skip provider retrieval (warn)
end

RCS -->> BOOTSTRAP: List<SloSleTemplate>
deactivate RCS

BOOTSTRAP ->> BOOTSTRAP: For each SloSleTemplate:\n1. Create LogicalResourceSpecification\n2. Generate example jsonRequest\n3. Add jsonRequest characteristic
== Step 3: Register All Specifications in TMF Catalog ==

BOOTSTRAP ->> CATALOG: Register LogicalResourceSpecification
activate CATALOG

CATALOG ->> TMF: POST to Resource Catalog API\nCategory: ns.ietf.controllers.osl.etsi.org/v1alpha
loop for each LogicalResourceSpecification
    BOOTSTRAP ->> REPO: createOrUpdateResourceSpecByNameCategoryVersion(spec)
    activate REPO
    REPO ->> TMF: POST /resourceCatalogManagement/v4/resourceSpecification\nCategory: ns.ietf.controllers.osl.etsi.org/v1alpha
    activate TMF
TMF -->> CATALOG: ResourceSpecification created
    TMF -->> REPO: LogicalResourceSpecification { uuid }
    deactivate TMF
    REPO -->> BOOTSTRAP: registered spec with UUID
    deactivate REPO
    BOOTSTRAP ->> REGISTRY: registerTemplate(spec.name, spec.uuid)
    activate REGISTRY
    REGISTRY -->> BOOTSTRAP: stored
    deactivate REGISTRY
end

CATALOG -->> BOOTSTRAP: Success
deactivate CATALOG

BOOTSTRAP ->> BOOTSTRAP: Create example SliceService\nfor testing

BOOTSTRAP ->> RCS: Store SloSleTemplate in memory
RCS -->> BOOTSTRAP: Stored

BOOTSTRAP -->> IETFNS: Bootstrap complete
BOOTSTRAP -->> IETFNS: Bootstrap complete\n(N template IDs registered)
deactivate BOOTSTRAP

note over IETFNS
  IETF NS Controller is now ready to receive
  Controller is now ready to receive
  CREATE / UPDATE / DELETE messages
  for network slice services
  on ActiveMQ queues:
    CREATE/ns.ietf.controllers.osl.etsi.org/v1alpha/0.1.0
  Spec names mapped in ResourceSpecificationTemplateRegistry:
    IETFSloSleTemplateSpec      → uuid-1
    IETFSliceServiceSpec        → uuid-2
    IETFNetworkSliceServicesSpec → uuid-3
end note
@enduml