...
PlantUML Macro |
---|
|
@startuml
SOL003_Adapter -> ETSICatalog: Post PkgmSubscriptionRequest/Subscriptions\n(callbackUri=/URI-is-provided-by-the-client\nfilter.notificationTypes=VnfPackageOnboardingNotification\nfilters.vnfProductsFromProviders/vnfdId/vnfPkgId=...)
note over ETSICatalog: test notification endpoint
ETSICatalog->SOL003_Adapter: Get /URI-is-provided-by-the-client
ETSICatalog<-SOL003_Adapter: 204 No Content
note over ETSICatalog: Creates a new subscription
ETSICatalog->SOL003_Adapter: 201 Created
alt
SOL003_Adapter -> ETSICatalog: Put /vnf_packages/(vnfPkgId)/package_content
else
SOL003_Adapter -> ETSICatalog: Put /vnf_packages/(vnfPkgId)/package_content/upload_from_uri
end
ETSICatalog->SOL003_Adapter: 202 Accepted
note over ETSICatalog: Uploading of VNF package content
note over ETSICatalog: Filter Subscriptions
alt Filted by Subscriptions.filters.vnfProductsFromProviders/vnfdId/vnfPkgId
ETSICatalog->SOL003_Adapter: Post /URI-is-provided-by-the-client
ETSICatalog<-SOL003_Adapter: 204 No Content
end
@enduml |
...
Code Block |
---|
|
{
"filters": {
"notificationTypes": [
"VnfPackageOnboardingNotification"
],
"vnfdId": [
"uuid_vnfdid"
]
},
"callbackUri": "http://www.vnf1.com/notification",
"authentication": {
"authType": [
"BASIC"
],
"paramsBasic": {
"userName": "string",
"password": "string"
}
}
} |
1.
...
3 Notification API example:
Code Block |
---|
{
"id":"notify_id",
"notificationType":"VnfPackageOnboardingNotification",
"timeStamp":"nowtime()",
"vnfPkgId":"vnfPackage_uuid",
"vnfdId":"vnfdId_uuid",
"subscriptionId":"subscription_id",
"_links":{
"subscription":{
"href":"http:\\subscriptionuri"
},
"vnfPackage":{
"href":"http:\\vnfPackageuri"
}
}
} |
2.VnfPackage Change Notification
When the vnf package performs the Deleting or Patching operation successfully, Etsicatalog will filter all Subscriptions records:
...
If there is some matching subscription records, Etsicatalog will post notifications requests.
2.1 Flow of VnfPackage Change Notification
PlantUML Macro |
---|
|
@startuml
SOL003_Adapter -> ETSICatalog: Post PkgmSubscriptionRequest/Subscriptions\n(callbackUri=/URI-is-provided-by-the-client\nfilter.notificationTypes=VnfPackageChangeNotification\nfilters.vnfProductsFromProviders/vnfdId/vnfPkgId=...)
note over ETSICatalog: test notification endpoint
ETSICatalog->SOL003_Adapter: Get /URI-is-provided-by-the-client
ETSICatalog<-SOL003_Adapter: 204 No Content
note over ETSICatalog: Creates a new subscription
ETSICatalog->SOL003_Adapter: 201 Created
alt
SOL003_Adapter -> ETSICatalog: Delete /vnf_packages/(vnfPkgId)
note over ETSICatalog: Deletes the VNF package
ETSICatalog->SOL003_Adapter: 200 OK
else
SOL003_Adapter -> ETSICatalog: Patch /vnf_packages/(vnfPkgId)
note over ETSICatalog: Updates the information of the VNF package
ETSICatalog->SOL003_Adapter: 204 No Content
end
note over ETSICatalog: Filter Subscriptions
alt Filted by Subscriptions.filters.vnfProductsFromProviders/vnfdId/vnfPkgId
ETSICatalog->SOL003_Adapter: Post /URI-is-provided-by-the-client
ETSICatalog<-SOL003_Adapter: 204 No Content
end
@enduml |
2.2 Subscribe API example:
Code Block |
---|
|
{
"filters": {
"notificationTypes": [
"VnfPackageChangeNotification"
],
"vnfdId": [
"uuid_vnfdid"
]
},
"callbackUri": "http://www.vnf1.com/notification",
"authentication": {
"authType": [
"BASIC"
],
"paramsBasic": {
"userName": "string",
"password": "string"
}
}
} |
2.3 Notification API example:
Code Block |
---|
{
"id":"notify_id",
"notificationType":"VnfPackageChangeNotification",
"timeStamp":"nowtime()",
"vnfPkgId":"vnfPackage_uuid",
"vnfdId":"vnfdId_uuid",
"subscriptionId":"subscription_id",
"changeType":"OP_STATE_CHANGE",
"operationalState":"ENABLED",
"_links":{
"subscription":{
"href":"http:\\subscriptionuri"
},
"vnfPackage":{
"href":"http:\\vnfPackageuri"
}
}
} |