RDK Resources
[*RDK Preferred*]
Code Management Facility
RDK Forums
[RDK Conferences]
RDK Support
Archives
Papers & Presentations Archive
To use Automatics system, partner will be providing implementation of APIs based on specification. This document gives details on how to integrate partner implementation project to Automatics system.
Automatics Core is a maven project. So partner can add core as maven dependency to their maven project. After the development of APIs, partner can deploy the project to their maven repository by executing “mvn clean deploy”.
<distributionManagement>
<repository>
<url></url>
</repository>
</distributionManagement>
Automatics Core reads partner-applicationContext.xml file residing in Partner Implementation Java Project to create instances of Provider implementation.
The diagram shows how Partner Implementation instances are generated and accessed by Automatics Core
Please refer Automatics Partner XML Configuration attached here while developing partner implementation.
Automatics Partner XML Configuration - partner-applicationContext.xml
Partner has to implement Provider Interfaces mentioned below and map the class in partner-applicationContext.xml
Providers applicable to both RDKV and RDKB platforms.
Bean Name | Automatics Core Provider | Mandatory | Description |
---|---|---|---|
testInitializer | com.automatics.providers.TestInitilizationProvider | Yes | APIs for Pre and Post Test Initialization |
deviceAccessValidator | com.automatics.providers.DeviceAccessValidator | Yes | APIs for Device Validation. For eg: To verify if device is accessible for taking for execution |
deviceConnectionProvider | com.automatics.providers.connection.DeviceConnectionProvider | Yes | APIs for executing commands within device |
deviceProvider | com.automatics.providers.rack.DeviceProvider | Yes, If REST impl is not provided | Both REST and Java API implementation supported. APIs to get device details, lock devices for exclusive access during test and release them after test etc If Java API is preferred, then implementation class to be updated in xml file. And, property partner.impl.deviceManager=true, to be set in Automatics Properties |
deviceConnectionBasedTrace | com.automatics.providers.trace.AbstractTraceProviderImpl | No | APIs to get trace logs from device. Connection to device will be via DeviceConnectionProvider APIs |
serialConnectionBasedTrace | com.automatics.providers.trace.SerialTraceProvider | No | APIs to get trace logs from device via serial console |
powerProvider | com.automatics.providers.rack.PowerProvider | No | Both REST and Java API implementation supported. If Java API is preferred, then implementation class to be updated in xml file. And, property partner.impl.powerProvider=true, to be set in Automatics Properties |
remoteProviderFactory | com.automatics.providers.rack.RemoteProviderFactory | No | Factory class that returns instances of com.automatics.providers.rack.RemoteProvider based on remote type. Automatics Core provides rest client handler for RemoteProvider - com.automatics.providers.rack.impl.RemoteProviderRestImpl If partner prefers to use Rest Impl, then RemoteProviderRestImpl can be returned from RemoteProviderFactory. |
imageUpgradeProviderFactory | com.automatics.providers.imageupgrade.ImageUpgradeProviderFactory | No | Factory class that returns instances of com.automatics.providers.imageupgrade.ImageUpgradeProvider based on type of image upgrade mechanism |
codeDownloadProvider | com.automatics.providers.CodeDownloadProvider | No | Provides APIs to get images for image upgrade |
crashAnalysisProvider | com.automatics.providers.crashanalysis.CrashAnalysisProvider | No | Provides APIs identify crash and get crash logs from crash portal |
serialCommandExecutionProvider | com.automatics.providers.connection.SerialCommandExecutionProvider | No | Provides APIs to execute command from serial console |
webpaProvider | com.automatics.providers.webpa.WebpaProvider | No | API to provide authentication data for rest based webpa communication and api to provide device mac address. |
snmpDataProvider | com.automatics.providers.snmp.SnmpDataProvider | No | APIs to provide device mac address and authentication data for snmp communication |
snmpProviderFactory | com.automatics.providers.snmp.SnmpProviderFactory | No | Factory class that generates instances of com.automatics.providers.snmp.SnmpProvider based on snmp version. Automatics Core provides default implementation of factory class com.automatics.snmp.impl.DefaultSnmpProviderFactoryImpl that will return com.automatics.snmp.impl.Snmpv2ProviderImpl and com.automatics.snmp.impl.Snmpv3ProviderImpl instances. If Partner wants to provide a custom implementation of SnmpProvider, then they have to provide implementation for factory class as well and map factory class in xml file. |
tr69Provider | com.automatics.providers.tr69.TR69Provider | No | API to get TR69 param values |
issueManagementProvider | com.automatics.providers.issuemanagement.IssueManagementProvider | No | APIs to get details to be included in auto generated Jira tickets during test failure. |
buildAppenderProvider | com.automatics.providers.appender.BuildAppenderProvider | No | BuildAppenderProvider helps to perform device configuration changes or set modes for device before test execution. They are invoked during Pre-Suite Intialization. |
credentialCryptoProvider | com.automatics.providers.connection.auth.ICrypto | No | APIs to encrypt and decrypt partner data. Core provides default implementation for ssh connection. To make ssh connection to destination, credentials are required to be configured in file server-config.xml and it can kept in any location in Jenkins VM. The path of the file can be configured via property 'serverConfig.path'. Core will use this file to read credentials for ssh login. If needed, partner can encrypt the credential and keep them securely in server-config.xml and the decryption logic can be added in partner java api. The decryption logic can be linked to Core via the provider ICrypto. Template of server-config.xml - server-config.xml |
Providers applicable only to RDKV platform.
Bean Name | Automatics Core Provider | Mandatory | Description |
---|---|---|---|
rdkVideoDeviceProvider | com.automatics.providers.RdkVideoDeviceProvider | Yes | APIs for AV validation, fetching channel details etc |
videoProvider | com.automatics.providers.rack.VideoProvider | No | APIs to capture images from settop video |
imageCompareProvider | com.automatics.providers.rack.ImageCompareProvider | No | APIs for image compare. for eg: to verify if given image is displayed on current screen. |
ocrServiceProvider | com.automatics.providers.ocr.OcrServiceProvider | No | APIs for OCR reading |
To use webpa support provided by Automatics, partner needs to implement following APIs.
Provider - com.automatics.providers.webpa.WebpaProvider
Bean Name - webpaProvider
APIs in Provider
API | Description |
---|---|
Map<String, String> getRequestHeaderAuthData(WebPaType methodType) | Authentication headers if any required for WebPa communication. This invokes providing auth token in request header. |
String getDeviceMacAddress(Dut dut); | The mac address to be used for fetching/updating webpa params |
To execute SNMP commands on device, partner needs to implement following APIs in SnmpDataProvider.
Provider - com.automatics.providers.snmp.SnmpDataProvider
Bean Name - snmpDataProvider
APIs in Provider
API | Description |
---|---|
SnmpSecurityDetails getSnmpAuthorization(Dut dut, SnmpParams snmpParams) | Provides the authentication data for SNMP communication. For SNMPv2, provide the community string. For SNMPv3, provide authentication and encryption methods to be sent along with snmp command. |
SnmpParams updateSnmpParams(Dut dut, SnmpParams snmpParams) | If partner needs to customize snmp params provided by Automatics before execution, it can be done here. |
To use TR69 support provided by Automatics, partner needs to implement following API in TR69Provider.
Provider - com.automatics.providers.tr69.TR69Provider
Bean Name - tr69Provider
APIs in Provider
API | Description |
---|---|
List<String> getTr69ParameterValues(Dut dut, String[] parameters) | Provide implementation to get TR 69 param values from ACS server |