Allotted Resources are portions of one service which can be allotted to be used as resources by another. The distinguishing factor that makes a Resource allotted is simply the requirement for a provider. The capabilities of this or matching type are supposed to be exposed by providing services (derived from the onap.nodes.Service node type, as any other service).
This permits allotted network functions to be chosen during abstraction resolution as long as filtering criteria are matched.
- Each providing service should declare this capability and populate the “valid_source_types” with the allotted resource node types it can produce. Since “valid_source_types” is a list, providing services may produce multiple different allotted resources. Given this is explicitly declared, the orchestrator can validate that a service exists to provide the allotted resource.
- Allotted resource concrete types will always map to a single providing service type, so there may be no explicit need for unique capability types/properties.
- Allotted Resources will declare a requirement for this capability. Due to N:1 nature of allotted resources to providing services, the requirement can directly specify the providing service type (i.e., node filtering is not required). This will be a “dangling” requirement, since the actual providing service instance will be chosen at run-time (by SNIRO/OOF)
- The existence of an AllottedResourceProvider requirement is sufficient to identify an allotted resource. They do not need to be derived from some root “allotted_resource” type.
We also define a relationship type for the connection between allotted resources and their providing services. This relationship must be defined on the requirement for an allotted resource provider (in the allotted resource node type). This relationship will have implications on the declarative workflows on the both sides. At this time, there are no specific attributes defined for this relationship.
See also:
TIDM onap.capabilities.AllottedResourceProvider
TIDM onap.relationships.AllottedBy
Examples
The following is a simple example of an allotted resource and its providing service.
Allotted Resource Node Type
Providing Service Node Type
Consuming Service Node Templates (snippet)
Usage Notes
- The LCM interfaces of the allotted resource type contain the code logic for interacting with the appropriate controller that manages the providing service. Since this is custom to each allotted resource/controller, it cannot simply be derived from the requirements and capabilities in the model.
- The consuming service does not require knowledge of the Provider service. It simply declares a node template of the allotted resource type. The linkages to the Provider (including the Provider requirement) are encapsulated within the allotted resource node type definition.
- When homing an allotted resource, SNIRO/OOF can determine the providing service type from the “AllottedResourceProvider” requirement on the allotted resource node, and search inventory for service nodes of that node type. Alternatively, if capabilities are captured in AAI, SNIRO/OOF can search directly for service-instance nodes with an AllottedResourceProvider capability with the desired allotted resource as a valid source type.
- Infrastructure services (i.e., allotted resource providers) can be composed of PNFs as well as VNFs for producing allotted resources. However, this would also be encapsulated within the model of the allotted resource/provider service pair and is transparent to the consuming service.