Introduction

Automatics system reads configuration data required for test execution from Automatics Props application. It is configuration management tool for Automatics system. User can configure automatics and partner specific config data and device model specific config data using this tool. The data from Automatics Properties will be consumed by  Automatics Core/Partner Implementation/Rest Implementation Projects for executing the test cases. Partner can also configure their environment specific config data to it.

There are two types of configuration data in Automatics Props. The templates of configuration files are available at source rdk/tools/automatics/automatics-props.

  • Automatics properties - Java properties file with key value pair.  (automatics.properties)
  • Device Props – Json file containing device configuration for each model. (device_config.json)


Following are the properties expected in automatics.properties file. In addition to this, partner can configure their data also.

Property

Description

Mandatory Properties

device.props

Holds url that renders device_config.json

Url format - {protocol}://{host}:{port}/AutomaticsProps/deviceProps.json

Core uses this property to fetch configuration on device models.

automatics.url

Holds base url of Automatics orchestration

Url format - {protocol}://{host}:{port}/Automatics/

Core uses this property to update results back to orchestration.

regex.test.log

This is used for Html report generation in Jenkins.

Default value to be configured is “core\\.test”. The regular expression to identify java package for tests

regex.utils.log

This is used for Html report generation in Jenkins.

Default value to be configured is rdkutils\\.” . The regular expression to identify java package for utils project which is part of RDKV and RDKB automation tests.

regex.package.log

This is used for Html report generation in Jenkins.

Default value to be configured is \\|com\\.automatics.*?.(.*?):.*?](.*)

Regular expression for java packages to be considered for html report generation. Those packages that which matches with regex, their logs will be added to html report. User can provide multiple regex values in comma separated format.

Optional Properties

regex.partner.log

This is used for Html report generation in Jenkins.

Java package regular expression for partner code. If logs from partner to be considered in html report generation, then this param to be configured. This is optional field

RACK_BASE_URL

Holds base url for partner’s rest-based implementation of device management or hardware providers like PowerProvider.

Url format - {protocol}://{host}:{port}/

This property is required if partner prefers to go with rest-based implementation of device management or hardware providers like PowerProvider.

partner.impl.deviceManager

By default, Automatics core expects rest-based implementation of device management. However, if partner prefer to go with Java implementation of device management for Core, then this property should be set to true. Orchestration always expects device management APIs in rest only. So in this case, partner has to provide rest implementation for API for orchestration and Java API implementation for Core separately.


DEVICE_MANAGER_BASE_URLIf REST API based implementation of Device Management to be configured with Automatics, then please configure the base url in this property.

partner.impl.powerProvider

By default, Automatics core expects rest-based implementation of hardware providers like PowerProvider.

However, if partner prefer to go with Java implementation of PowerProvider, then this property should be set to true.

partner.impl.deviceConnectionProvider

By default, Automatics core expects Java implementation of DeviceConnectionProvider.

However, if partner prefer to go with REST implementation of DeviceConnectionProvider, then this property should be set to false.

partner.impl.ocrProvider

By default, Automatics core provides default implementation of Ocr provider APIs.

However, if partner prefers to go with custom implementation of OcrProvider, then this property should be set to true.

partner.impl.snmpFactoryProvider

By default, Automatics core provides default implementation of SNMP v2 and v3.

However, if partner prefers to go with custom implementation of SnmpProvider, then this property should be set to true.

crash.analysis.enable

Default value false. When set to true, enables crash analysis during trace monitoring

crash.analysis.exclusionlistCan configure test automation ids to be excluded from crash analysis
alternative.minidump.filename.matcherRegex to identify mini dump crash file from device log
alternative.coredump.filename.matcherRegex to identify core dump crash file from device log
dump.data.buildId.matcherRegex to identify build id from device log
issue.management.enableDefault value false. When set to true, automated issue ticket will be created when a crash occurs.
issue.management.service.urlBase url of issue management(eg: Jira) service 
WEBPA_SERVER_URLWebPA server url for webpa related communication eg : https://{host_name}:{port}/api/v2/device/mac:
serverConfig.path

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. Template of server-config.xml - server-config.xml

DEFAULT_TR181_ACCESS_METHODWhen this property is set to WEBPA, then TR181 validations will be done via WebPA mechanism. Valid Values are WEBPA, TR69, TR181, DMCLI
peripheral.powerProvider

Automatics Core provides a default implementation of Power Provider, that uses power manager details configured in Device Manager tool, to perform power operations on devices.

If this property set to true, then default power provider implementation in Automatics Core that uses peripheral device configuration will be invoked.

powerOnValuesValue returned by partner's remote power manager to indicate that device is on. Multiple values can be given in comma separated format.
powerOffValuesValue returned by partner's remote power manager to indicate that device is off. Multiple values can be given in comma separated format.
powerCycleValuesValue returned by partner's remote power manager to indicate that device is rebooted successfully. Multiple values can be given in comma separated format.
powerStatusValuesValue returned by partner's remote power manager to indicate current power status of device. Multiple values can be given in comma separated format.
ssh_custom_portUsed to set custom SSH port number for execution


Login Page

By default Automatics Properties page will be displayed after login. User can choose the file option in login page to navigate between Automatics Properties and Device Properties. Following are the default properties for automatics.properties file.

Edit Automatics Properties

To edit, the properties, click on 'UNLOCKED' link on left top side of page. This will allow only one person to update the document at a time. We will get pop message, "Successfully Locked".

Now user can edit the values and finally click on 'Submit' button to save the values. On submit, the application will save the values and logout and display message "Updated Successfully".

Edit Device Properties

To edit, the device properties, click on 'UNLOCKED' link on left top side of page. This will allow only one person to update the document at a time. We will get pop message, "Successfully Locked". Now user can edit the values and finally click on 'Submit' button to save the values. On submit, the application will save the values and logout and display message "Updated Successfully".

Automatics properties file

  • Launch {protocol}//{host:port}/AutomaticsProps/automatics/props.
  • Login page will be displayed. Enter the credentials, choose 'Automatics Properties' for File option and click login.
  • User will be redirected to automatics properties page where it contains all the Properties which can be changed based on the requirements.
  • Automatics Core/Partner Implementation/Rest Implementation Projects will read configuration values from this file.
  • To edit the values, please click on “unlocked” button. Update the values and click on submit. This will save the configuration values.

Device properties file

  • Launch {protocol}//{host:port}/AutomaticsProps/automatics/props.
  • Login page will be displayed. Enter the credentials, choose 'Device Configuration JSON' for File option and click login.
  • User will be redirected to device configuration page where it contains all device configurations for each model.
  • Automatics Core/Partner Implementation/Rest Implementation Projects will read configuration values from this file.
  • To edit the values, please click on “unlocked” button. Update the values and click on submit. This will save the configuration values.

Software Requirement

  • JDK 17

Following page provide the detailed to setup Java 17 on linux

https://wiki.rdkcentral.com/display/ASP/Automatics+Orchestration+Setup#AutomaticsOrchestrationSetup-JDK17 

  • Tomcat 9.0.XX or above

Following page provide the detailed steps to setup Tomcat 9 version on linux

https://wiki.rdkcentral.com/display/ASP/Automatics+Orchestration+Setup#AutomaticsOrchestrationSetup-Tomcat9.0.XX

  • Maven 3

Following page provide the detailed steps to setup maven on linux

https://wiki.rdkcentral.com/display/ASP/Automatics+Orchestration+Setup#AutomaticsOrchestrationSetup-Maven3

Setup

  • Clone AutomaticsProps project from the repository (rdk/tools/automatics/automatics-props) with branch (“rdk-next”).
  • Execute “mvn clean install”, and war file will be generated at target directory.
  • Copy automaticsProps.war file to apache-tomcat/webapps directory and rename it to AutomaticsProps.war.
  • Create a directory named “backup_file” in apache-tomcat home folder. Create sub directory automatics and place the sample “automatics.properties” and create sub directory  device and place "device_config.json" file.  When ever user edits automatics properties or device_config.json, a backup file will be generated inside this directory.
  • Create a directory “automatics” inside apache-tomcat/webapps.
  • Copy “automatics.properties”, "device_config.json" and “config.properties” from automatics-props\src to tomcat/webapps/automatics folder. 
  • Configure“config.properties” with username and password required for Automatics Properties UI login. These credentials has to be configured under 'user' and 'pwd' keys.
  • Configure“config.properties” with base 64 encrypted passcode with login id and password separated by colon format.
    example: admin:automatics when we encrypt it, the value will be YWRtaW46YXV0b21hdGljcw==
    It is used to authenticate automatics properties using automatics.properties.passcode. When a test is triggered from automatics orchestration, automatics core tries to communicates with automatics properties to get the data of automatics properties and device properties file. In order to communicate, automatics core authenticates itself with automatics properties using this password.
  •  Start the server using command ./startup.sh.
  • The base URL for Automatics Properties application will be {protocol}//{host:port}/AutomaticsProps/automatics/props. Using this URL user can login and configure the properties for “automatics.properties” and "device_config.json" files.
  • No labels