Declarative support
NetOrca can allow for SI's to be treated as the source of truth to create declarations to push to an end device.
Basic process
The basic process for this would be as follows:
- Get all ServiceItems for your particular Service
GET /serviceowner/serviceitems?service_name={{myservice}}
- Get all the outstanding change instances for your service
GET /serviceowner/change_instances?service_name={{myservice}}
- Create a declaration from the details in that return
- Push your declaration to your infrastructure
- Mark all outstanding changes obtained in step 2 as completed
- Send back (optional) deployed items when completing the above change instances.
Process Diagram
sequenceDiagram
participant Consumer
participant NetOrca
participant ServiceOwner
participant Deployment
Consumer->>NetOrca: New declaration sent
activate NetOrca
NetOrca-->>NetOrca: Validation Check
alt Validation Fail
NetOrca-->>Consumer: 400 Error
else Validation passes
NetOrca-->>NetOrca: Declaration compared against existing SI's
opt Changes detected
NetOrca-->>NetOrca: Change instances created
alt Auto approval enabled
Note over NetOrca: State 'APPROVED'
else Auto approval disabled
Note over NetOrca: State 'PENDING'
end
end
NetOrca->>Consumer: 200 OK
end
par Change Processing
loop Check for changes GUI or API
ServiceOwner->>NetOrca: Get Changes
alt No Changes detected
NetOrca->>ServiceOwner: No Changes
Note over ServiceOwner: Do nothing
else Changes detected
NetOrca->>ServiceOwner: List of changes
activate ServiceOwner
loop for each change
alt Approved
ServiceOwner->>NetOrca: Move change state to APPROVED
else Error/Not approved
ServiceOwner->>NetOrca: Move change state to ERROR
end
deactivate ServiceOwner
end
end
end
and Processing Deployment
Note over ServiceOwner: Deployment Processing
ServiceOwner->>NetOrca: Get list of approved changes
NetOrca->>ServiceOwner: Return approve changes list
Note over ServiceOwner: Store list of approved changes
ServiceOwner->>NetOrca: Get all SI configurations
activate ServiceOwner
NetOrca->>ServiceOwner: SI Configs
Note over ServiceOwner: Process changes
ServiceOwner->>ServiceOwner: Generate declaration
Note over ServiceOwner: Declaration created
ServiceOwner->>Deployment: Push declaration
deactivate ServiceOwner
activate Deployment
Note over Deployment: Process new declaration
Deployment->>ServiceOwner: Declaration successfull
deactivate Deployment
ServiceOwner->>NetOrca: Mark all APPROVED Changes as COMPLETED
Note over NetOrca,ServiceOwner: DeployedItems updated
end