Abstract
APPC currently supports VNF level HealthCheck via the APPC LCM API. Current functionality allows the client to request a VNF HealthCheck and APPC returns either a success or failure. ONAP Control Loops require a more fine grained HealthCheck that provides a more robust feature set and a more fine grained response.
Rationale
ONAP Control Loops require an APPC HealthCheck solution that provides a means of performing VNF and VM level checks. Additionally, the HealthCheck response provided back to the APPC LCM API client needs to contain a payload with details on what and why the HealthCheck failed. Currently, the APPC HealthCheck is only at the VNF Level and only returns a Success or Failure code.
One useful example of this enhanced functionality is the case where a VNF that contains for instance eight VMs. The VNF level HealthCheck may find that seven out of the eight VMs are operating satisfactorily but one VM failed the HealthCheck. The state along with the indication of which VM(s)/VNFC(s) failed and why the HealthCheck failed will be returned to the APPC LCM client. The details returned for the failed VM(s)/VNFC(s) will allow the decision/policy manager to make a determination on whether or not to restart the one VM/VNFC or all VM(s)/VNFC(s) contained in the VNF.
Proposal
The solution will provide enhancements to the APPC HealthCheck functionality wherein APPC will allow for both a VNF level HealthCheck as well as a VM/VNFC level HealthCheck. Additionally, the response will return more fine grained details on the HealthCheck results.
VNF Level HealthCheck
Request:
Will conform to the APPC LCM VNF Level Request format per the APPC LCM API Guide.
The HealthCheck API will perform LCM request validations.
IF
VNF specific HealthCheck is available on the VNF, execute the VNF HealthCheck on the VNF:
Connect to the VNF via (REST, Chef or Ansible) via the endpoint configured in the APPC CDT Tool.
Initiate the VNF HealthCheck on the VNF.
ELSE:
- APPC will obtain VNF details from A&AI
- Including:
- vserver details in order to enable checking each VM/VNFC in the VNF
- APPC performs HealthCheck on each vserver via Cloud Provider API
- Obtain Cloud Provider details.
- Connect to the Cloud Provider for each VM/VNFC
- I.e. for OpenStack Compute API:
- Show Server Details
- /servers/{server_id} /“OS-EXT-STS:vm_state”
- Mark VM/VNFC Failed marking the state.
- If any state other than “active” the HealthCheck for the VM/VNFC will be marked failed.
- I.e. for OpenStack Compute API:
- IF ANY VM/VNFC is in a failed state the overall HealthCheck of the VNF will return failed along with the failure reason in the HealthCheck response payload.
Response:
VNF level HealthCheck response will:
- Conform to the APPC LCM Response format per the APPC LCM API Guide.
- Return Success/Failed status code as well as status code message (APPC LCM Response includes a “status” section with subsections of “code” and “message.”
- Include the Failed VM(s)/VNFC(s) details in the Response Payload.
VM Level HealthCheck
Request:
- Will conform to the APPC LCM VM Level Request format per the APPC LCM API Guide
- I.e. vserver-id element is included action-identifier section of the request, vm-id and identity-url are included in the request payload.
- Obtain Cloud Provider details.
- Connect to the Cloud Provider for each VM/VNFC
- I.e. for OpenStack Compute API:
- Show Server Details.
- /servers/{server_id} /“OS-EXT-STS:vm_state.”
- I.e. for OpenStack Compute API:
- IF VM/VNFC is in a failed state, return a failure along with the failure reason in the HealthCheck response payload.
- IF VM/VNFC is in a failed state, return a failure along with the failure reason in the HealthCheck response payload.
Response:
- Will conform to the APPC LCM VM Level Response format per the APPC LCM API Guide
- Return Success/Failed status code as well as status code message (APPC LCM Response includes a “status” section with subsections of “code” and “message.”
- Include the Failed VM/VNFC details in the Response Payload.
Backward Compatibility
The current proposal is to develop a new API and persist the existing HealthCheck API in order to support the integrity of the current HealthCheck.
References
- ONAP APPC LCM Guide
- ONAP APPC Testing Request Samples
- ONAP APPC Ansible Adapter
- ONAP APPC Chef Adapter
- OpenStack Compute API Server Show Server Details
- ONAP VNF Provider Guidelines
- ONAP Control Loop Subcommittee