XConfSimulator – New features
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}