XConfSimulator – New features

Created on June 21, 2022


Introduction

Xconf Simulator is already integrated with ‘firmware Upgrade’ feature and is available with community. Details of existing Xconf simulator setup with firmwareUpgrade feature can be found in this wiki page:

https://wiki.rdkcentral.com/display/TDK/XCONF+Simulator+Installation

Our intention is to add ‘featureControl’ and ‘logUpload’ functionality to the Xconf simulator setup.

Build

(from xconf-simulator/ folder)

mvn clean package 

Deploy

cp target/xconf-2.0.0.war  <apache-tomcat>/webapps/xconf.war

Replace “/xconf/” through out this document with the actual name of the deployed package e.g. “XCONFSimulator” etc.

Functionality

Firmware Upgrade (Existing Feature)

curl -X PUT -H ‘Content-Type: application/json’ -d ‘{“eStbMac”: “B8:27:EB:AE:57:B7″,”xconfServerConfig”: {“firmwareDownloadProtocol”: “http”,”firmwareFilename”: ” firmwareFilename.bin” , “firmwareVersion”: ” test1″,”firmwareLocation”: ” test1″, “rebootImmediately”:false}}’ http://<xconf_simulator_ip:port>/xconf/swu/stb

Feature Control

getSettings (before doing updateSettings for the particular mac id)

curl ‘http://<xconf_simulator_ip:port>/xconf/featureControl/getSettings?estbMacAddress=B8:27:EB:AE:57:B7’      

Expected Output:  (blank feature list)

{“featureControl”:{“features”:[]}}

updateSettings: (from any REST Client)

curl -X POST -H ‘Content-Type: application/json’ -d ‘{“estbMacAddress”:”B8:27:EB:AE:57:B7″,”features”:[{“name”:”IDS”,”effectiveImmediate”:true,”enable”:true,”configData”:{“SCAN_TASK”:”.MOUNT.FILE.PORT.PROC.LOG.”,”SCAN_BIT”:”ERRF”,”tr181.Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.IDS.Enable”:”true”,”tr181.Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.IDS.ScanTask”:”.MOUNT.FILE.PORT.PROC.”}},{“name”:”rf4ce_pair_blackout”,”effectiveImmediate”:true,”enable”:true,”configData”:{“pairing_fail_threshold”:”2″,”blackout_reboot_threshold”:”3″,”blackout_time”:”120″}}]}}’ http://<xconf_simulator_ip:port>/xconf/featureControl/updateSettings

getSettings:

curl ‘http://<xconf_simulator_ip:port>/xconf/featureControl/getSettings?estbMacAddress=B8:27:EB:AE:57:B7‘ 

Expected Output:

{“featureControl”:{“features”:[{“name”:”IDS”,”effectiveImmediate”:true,”enable”:true,”configData”:{“SCAN_TASK”:”.MOUNT.FILE.PORT.PROC.LOG.”,”SCAN_BIT”:”ERRF”,”tr181.Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.IDS.Enable”:”true”,”tr181.Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.IDS.ScanTask”:”.MOUNT.FILE.PORT.PROC.”}},{“name”:”rf4ce_pair_blackout”,”effectiveImmediate”:true,”enable”:true,”configData”:{“pairing_fail_threshold”:”2″,”blackout_reboot_threshold”:”3″,”blackout_time”:”120″}}]}}

LogUpload

getSettings: (before doing updateSettings for the particular mac id)

curl ‘http://<xconf_simulator_ip:port>/xconf/logUploader/getSettings?estbMacAddress=B8:27:EB:AE:57:B7&model=RPI

Expected Output: (default settings mentioned in WEB-INF/classes/RPI.json)

{“urn:settings:GroupName”:”RPI_V3″,”urn:settings:CheckOnReboot”:false,”urn:settings:CheckSchedule:cron”:”33 5 * * *”,”urn:settings:CheckSchedule:DurationMinutes”:180,”urn:settings:LogUploadSettings:Message”:”Don’t upload your logs, but check for updates on this schedule.”,”urn:settings:LogUploadSettings:Name”:null,”urn:settings:LogUploadSettings:NumberOfDays”:null,”urn:settings:LogUploadSettings:UploadRepositoryName”:null,”urn:settings:LogUploadSettings:UploadOnReboot”:null,”urn:settings:LogUploadSettings:UploadImmediately”:false,”urn:settings:LogUploadSettings:upload”:false,”urn:settings:LogUploadSettings:UploadSchedule:cron”:null,”urn:settings:LogUploadSettings:UploadSchedule:levelone:cron”:null,”urn:settings:LogUploadSettings:UploadSchedule:leveltwo:cron”:null,”urn:settings:LogUploadSettings:UploadSchedule:levelthree:cron”:null,”urn:settings:LogUploadSettings:UploadSchedule:DurationMinutes”:null,”urn:settings:VODSettings:Name”:null,”urn:settings:VODSettings:LocationsURL”:null,”urn:settings:VODSettings:SRMIPList”:null,”urn:settings:TelemetryProfile:header”:”err_LSA_E_RES_TIMEOUT”}

updateSettings:

curl -X POST -H ‘Content-Type: application/json’ -d ‘{“estbMacAddress”:”B8:27:EB:AE:57:B7″,”logUploadSettings”:{“uploadOnReboot”:true,”uploadRepositoryUrl”:”https://ssr.ccp.xcal.tv/cgi-bin/rdkvlogupload.cgi”,”uploadProtocol”:”HTTP”,”uploadScheduleCron”:”*/5 * * * *”}}’ http://<xconf_simulator_ip:port>/xconf/logUploader/updateSettings

getSettings:

curl ‘http://<xconf_simulator_ip:port>/xconf/logUploader/getSettings?estbMacAddress=B8:27:EB:AE:57:B7&model=RPI‘ 

Expected Output: (should override default parameters with the ones given in updateSettings)

{“urn:settings:GroupName”:”RPI_V3″,”urn:settings:CheckOnReboot”:false,”urn:settings:CheckSchedule:cron”:”33 5 * * *”,”urn:settings:CheckSchedule:DurationMinutes”:180,”urn:settings:LogUploadSettings:Message”:”Don’t upload your logs, but check for updates on this schedule.”,”urn:settings:LogUploadSettings:Name”:null,”urn:settings:LogUploadSettings:NumberOfDays”:null,”urn:settings:LogUploadSettings:UploadRepositoryName”:null,”urn:settings:LogUploadSettings:UploadImmediately”:false,”urn:settings:LogUploadSettings:upload”:false,”urn:settings:LogUploadSettings:UploadSchedule:levelone:cron”:null,”urn:settings:LogUploadSettings:UploadSchedule:leveltwo:cron”:null,”urn:settings:LogUploadSettings:UploadSchedule:levelthree:cron”:null,”urn:settings:LogUploadSettings:UploadSchedule:DurationMinutes”:null,”urn:settings:VODSettings:Name”:null,”urn:settings:VODSettings:LocationsURL”:null,”urn:settings:VODSettings:SRMIPList”:null,”urn:settings:TelemetryProfile:header”:”err_LSA_E_RES_TIMEOUT”,”urn:settings:LogUploadSettings:UploadRepository:uploadProtocol”:”HTTP”,”urn:settings:LogUploadSettings:UploadRepository:URL”:”https://<LOG_UPLOAD_SERVER>/OUR_CUSTOM_LOG_UPLOAD_PAGE.html“,”urn:settings:LogUploadSettings:UploadSchedule:cron”:”*/5 * * * *”,”urn:settings:LogUploadSettings:UploadOnReboot”:true}

Go To Top