Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Device Manager has a support for health check feature.
  • It empowers the testers and other users to do health check on the devices before executing any test cases.
  • User can easily get the list of devices which are in good state and bring up the devices which are in bad statefilter out good and bad devices and this data will be helpful in bringing up the devices manually before testing.
  • It reduces the tester time for verifying and getting the devices which are in good state.
  • As a basic health check validation in the SSH connection to the device is validated and on successful connection device is assigned to good state.
  • On each schedule the list device can be added is standardized to 20 considering the JVM memory size  and the jenkins can hold logs upto some extent for single job.

Device Manager Components

  • Device Manager UI 
    • Provides UI interface to config health check parameters and schedule health check for list of devices.
    • Health Check execution status can be seen on the dashboard.
    • UI Support to update or delete the devices to the already scheduled executions is provided.
    • User is provided with option to cancel the execution in scheduled state.
  • Device Manager
    • Manages scheduled details request and update it to DB if the provided request details are valid.
    • List of devices added for each scheduled are restricting to 20 considering the jenkins cannot hold more logs and JVM memory assigned for each jenkins job
    • Handles jenkins requests that need to be triggered on the scheduled execution date and time.
    • Provides the APIs implementation which are required for updating the execution details after each execution in the health check partner implementation.
  • Health Check Partner Implementation

Manages Health check validation for the selected devices based on the defined health check steps and update the results to the Device manager.

Basic Health Check implementation project is open sourced which provide the support to check device state in good or bad based on SSH connection validation. If SSH connection got failed then device status is updated to bad otherwise set to good on successful connection. Support is provided to read the device connection credentials from the server-config.xml file and device manager

Basic Health partner implementation repo url : https://code.rdkcentral.com/r/c/rdk/tools/device-manager-healthCheck-partnerImpl

Partner can provide there own custom health check implementation  which supports health check executions and update the executions results to device manager . List of APIS that need to be invoked as a part of health check implementation so once the executions are done on the jenkins job results can be updated to the device manager. Please refer the Device_Manager_API_Specification_v1.0.docx for more details .

Following diagram shows interaction of Device Manager components in a deployed environment

draw.io Diagram
bordertrue
diagramNameHigh level Helath check design
simpleViewerfalse
width
linksauto
tbstyletop
lboxtrue
diagramWidth904
revision4

Design for Device Health Check Feature in Device manager

...

draw.io Diagram
bordertrue
diagramNamehelathcheck
simpleViewerfalse
width
linksauto
tbstyletop
lboxtrue
diagramWidth1478
revision1

  • In Device Manager UI new UI pages are added i.e healthcheck and configuartion pages 
  • Navigate to the healthcheck → add schedule → Provide the input fields , select devices → click on submit
  • User provided details will saved to the DB with the help of API defined in the Device manager 
  • Scheduling thread will be initiated based on the provided execution date and time and occurrence.
  • Jenkins job will be scheduled for the execution .(Refer to get more details how to define health check jenkins job)
  • health check partner implementation code will be executed and below list of APIs will be called in the partner implementation to update results to the device manager.
    • /healthCheck/updateExecutionDetailsStatus – API is called to update the execution details to device manager once the health check is done for the device from the partner side
    • /healthCheck/updateExecutionStatusCount – API is called to updated the pass , failed and aborted devices count to the device manager from the partner implementation when the health check is completed on all the added devices.
    • /healthCheck/updateInProgressExecutionDeviceDetails – API is called to update the Execution device details to Inprogress when health check is initiated for the device on the partner implementation side.

Update Device Manager with health check feature

Follow below steps to update Device manager with health check feature.

  • Run the set of sql queries defined in the Device_Manager_DB.sql file for health check 

Image Removed

New Device Manager Setup

Device Manger Setup 

For a partner to setup device manager newly that can be done in either of the ways as mentioned below

Manual Deployment

Partner can deploy the device manager in local setup manually by referring Device Manager Deployment.

Automated Deployment

Automatics Automated Deployment make use of use of Jenkins scripts for creating pipeline jobs to build Automatics projects. Device Manager will also be deployed as a part of Automatics projects. Refer Automatics Automated Deployment

Device Manager UI

For a partner to setup Device Manager UI newly that can be done in either of the ways as mentioned below.

Manual Deployment

Partner can deploy the Device Manager UI in local setup manually by referring Device Manager UI Deployment

Automated Deployment

Automatics Automated Deployment make use of use of Jenkins scripts for creating pipeline jobs to build Automatics projects. Device Manager UI will also be deployed as a part of Automatics projects. Refer Automatics Automated Deployment

Upgrade Device Manager to support Health Check execution

For a partner to upgrade Device Manager to support heath executions need to be done as mentioned below.

Device Manager

For a partner to upgrade the health check support in Device Manager Please follow below steps.

  1. Upgrade Device Manager to v1.0.2 or above since it contains the latest code changes for Health Check execution. Pull the latest code of Device Manager.
  2. Run the SQL scripts from Device_Manager_DB.sql file present in the Device Manager starting from line number 335. These scripts will help in creating all the new tables that are required for health check execution.
  3. For Deployment Please refer Device Manager Deployment for detailed steps.
  4. Verify whether the deployment is done and updated to 1.0.2 version.

Device Manager UI

For a partner to upgrade the health check support in Device Manager UI Please follow below steps.

  1. Upgrade Device Manager UI to v1.13 or above since it contains the latest code changes for Health Check execution. Pull the latest code of Device Manager UI.
  2. For Deployment Please refer Device Manager UI Deployment for more details.
  3. Verify whether the deployment is done and updated to 1.13 version.

Setup Jenkins Job For Health Check

Jenkins job is getting used in the device manager to execute health check steps and update the execution results. Partner can refer Health Check Job Configuration for detailed steps on how to setup jenkins job for health check.

Steps to schedule health check

  • Schedule the health check for the list of devices Please refer Schedule Health Check for more details on how to schedule executions for health check.
  • On successful scheduling success pop will be seen and dashboard will be updated.
  • Get the latest source code for Device manager and Device manager UI generate the war file and deploy in the local environments.
  • On updated device manager ui able to see health check and configuration new UI pages .
  • In Device manager UI navigate to the Configuration tab and update the jenkins url username and password configs required for the health check feature.
  • Completed the health check feature updation.