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

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}



  • No labels

1 Comment

  1. Deepthi Suseelan  Hello,

    the link https://wiki.rdkcentral.com/display/TDK/XCONF+Simulator on this page is not available. Could you please help to provide the correct one?

    the above REST API example, curl 'http://<xconf_simulator_ip:port>/xconf/featureControl/getSettings?estbMacAddress=B8:27:EB:AE:57:B7’  ,  estbMacAddress=B8:27:EB:AE:57:B7, is this the mac address of RPI device? What about the connection(network topology) between xconf and the RPI device? Could you please help to explain more?

    Thank you very much!