Source code repository

Xconf code consists of 3 web applications - Xconf Webconfig, XConf Admin and Xconf UI.  The source code for golang version is available in the below Github repositories:     

Software Requirements (Reference setup)

These golang instance brought up in amazon linux as well as ubuntu. Configurations used for both are added here

Component


Recommendation

System/OS

Amazon Linux
Disk space> 5GB
GITVersion 2.17.1
Node16
Java/JDKJava 8 (JDK version 1.8.0_282)
python2.7

Environment Setup(Ubuntu)

Component


Recommendation

GITVersion 2.17.1

System/OS

Ubuntu 24.04 Noble 
Node16
Java/JDKJava 8 (JDK version 1.8.0_282)
python2.7
Cassandra DB

apache-cassandra-3.11.9

php

8.2 

php-fpm

8.2

Installation of dependencies

1. Install Java JDK

Java JDK version should be 8.  Get the supported version from Oracle or use the OpenJDK packages.

Steps to install Open JDK

    $ sudo apt-get update
$ sudo apt-get install openjdk-8-jdk

Check your installation using the command :
$ java  -version

2.  Install and setup Cassandra(Version 3.11.9)

Install Cassandra

To install Cassandra , follow the below steps

  • Download the tarball file for the version 3.11.9 : 
    $ wget -c https://archive.apache.org/dist/cassandra/3.11.9/apache-cassandra-3.11.9-bin.tar.gz  
  • Unpack the tarball :  
    $ tar -xvf  apache-cassandra-3.11.9-bin.tar.gz
  • Step into apache-cassandra-3.11.9 folder :
    $ cd apache-cassandra-3.11.9
  • To start Cassandra, run the following command
    $ sudo bin/cassandra
  • To verify that Cassandra is up and running, enter the following command :
    $ bin/nodetool status

Configure Cassandra

Note :  For the next step, make sure that python is installed. Because cqlsh is python based command line tool. If python is not installed , use this command :

yum install python2.7

          $ bin/cqlsh -f  { path-to-the-db_init.cql file}
     eg : $ bin/cqlsh  -f ~/xconfwebconfig/db/db_init.cql
  • To check if tables are created successfully, we can use cqlsh 
  • To start cqlsh, step into cassandra folder and enter the command:
     $ bin/cqlsh 
  • It gives cassandra cqlsh prompt as output. To check if all the tables are present enter the following commands in cqlsh prompt :
        cqlsh>  USE "ApplicationsDiscoveryDataService"; 

      cqlsh>  DESCRIBE ApplicationsDiscoveryDataService;
  • To exit from cqlsh prompt, 
        cqlsh> quit

Production Installation

The production installation should be similar to the local installation, except that Cassandra will be installed to multiple hosts.  Please see the Apache Cassandra documentation for more information.

Configuration and Service startup

1. Start Cassandra Service

  • To start an Xconf application, start the Cassandra server by executing the following commands:  
     $ cd apache-cassandra-3.11.9
   $ sudo bin/cassandra
  • Status of xconf server can be verified by using  the command
     $ bin/nodetool status


You will get an output like this

bin/nodetool -h ::FFFF:127.0.0.1 status
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address    Load       Tokens       Owns (effective)  Host ID                               Rack
UN  127.0.0.1  830.23 KiB  256          100.0%            80cd24f9-9a8d-40f3-9e19-575688eb31d4  rack1



2. Configure and Start Application Services

For configuration of XCONF services, refer this page Steps to bring up XCONF golang version

Configuration and Validation of services

Admin UI Common Configuration

Below steps will affect all the features in Xconf system and should be configured after initial setup. Go to the steps given in site navigation step and press on create button to create new entries.


Login Screen


 kindly refer this page Xconf GO Reference Setup Credentials for credentials

Define Environments

Site Navigation: <xconf-server> >> Common >> Environments | Example URL:

Define Models

Site Navigation: http://<XCONF-SERVER>>> Common >> Models | Example URL :

Define MAC List

(This will be used to target certain list of MACs against a particular feature configuration)


Site Navigation http://<XCONF-SERVER> >> Common >> MAC List | Example URL :
 

Define IP list

Site Navigation http://<XCONF-SERVER>>> Common >> IP List | Example URL :

 

Feature Validation(RFC)

Configuration

RDK Feature control configuration can be added by adding below 2 sections

  1. Define the Feature
  2. Define the Feature Rule

Define the feature:

A new feature can be defined via RFC-> Feature -> Create. 'Feature Name' should be unique and understandable, 'Config data' should be key value pairs.

Site Navigation | http://<XCONF_SERVER>:19093 >> RFC >> Feature

Define the Feature Rule

Feature rule is to map devices to a particular feature. A new feature rule can be created via RFC->feature rule -> Create

Site Navigation | http://<XCONF_SERVER> >> RFC >> Feature Rule

Verification

a. Verification of feature and feature rule via test page.

After creating the feature and feature rule, go to RFC->Test page and give a parameter that will match the one of the rules that you have created. The matched rule and JSON response will be displayed similar to below example.

Site Navigation: http://<XCONF_SERVER>>> RFC >> TestPage

b.  Verification via curl command

The curl command mocks the request being sent from an STB like below and sample response is also given. It can be given as a curl command or as a get request via postman or browser

eg :

$ curl 'https://<XCONF_IP>/featureControl/getSettings?estbMacAddress= AA:BB:CC:DD:EE:FF’

(Here the feature rule mapped to this particular mac address will be obtained)

Sample Response:

{
  "features": [
    {
      "name": "RDKB_RPI_Testing",
      "enable": true,
      "effectiveImmediate": false,
      "configData": {
        "Device.Time.Enable": "false"
      },
      "featureInstance": "RDKB_RPI_Testing"
    }
  ]
}

Client end verification (RPI)

Verification and setup from RPI

  • Update RFC_CONFIG_SERVER_URL in /etc/rfc.properties 
RFC_CONFIG_SERVER_URL=https://xconf.rdkcentral.com.rdkcentral.com/featureControl/getSettings
  • systemctl restart rfc


Feature Validation (LogUpload)

Configuration

1. Create upload repository via DCM->Upload repository -> Create.   Here we can add where to configure the log upload, i.e. the upload URL and protocol(This will be the URL of logupload server that is setup to upload the log files, it can be http, https or tftp servers).

Site Navigation | http://<XCONF_SERVER>>> DCM >> UploadRepository


2. Create rule via DCM->Formulas->Create. 

Site Navigation | http://<XCONF_SERVER> >>DCM >> Formulas


3.  Once you save the created formula  , then a ‘define Settings’ tab with ‘Create Device Settings’, ‘Create log settings’, Create VOD settings’ will be available

4.  Click on 'Create Device Settings' tab and edit the  Device Settings.

5.  Edit the Log upload Setting (Create schedule & Add the upload repository created beforehand).

6. Note : The formula will be effective only if we select 'Are Settings Active' option to 'true' in 'Create Device Settings' and 'Log Upload settings'


Verification

a.Verification of log upload settings test page.

After creating the feature and feature rule, go to DCM->Test page and give a parameter that will match the one of the formulas that you have created. Then matched rule and the settings will be displayed like below

Site Navigation: <xconf-server >> DCM >> Test Page



b. Verification via curl command

The curl command mocks the request being sent from an STB like below and sample response is also given. It can be given as a curl command or as a get request via postman or browser

eg :

$ curl 'http://<XCONF_IP>/loguploader/getSettings?estbMacAddress=AA:BB:CC:DD:EE:FF’. 

 Sample response : 

{
    "urn:settings:GroupName": "RPI_Device_Settings",

    "urn:settings:CheckOnReboot": true,
    "urn:settings:CheckSchedule:cron": "10 00 * * *",
    "urn:settings:CheckSchedule:DurationMinutes": 0,
    "urn:settings:LogUploadSettings:Message": null,

    "urn:settings:LogUploadSettings:Name": "Log upload settings test",
    "urn:settings:LogUploadSettings:NumberOfDays": 5,

    "urn:settings:LogUploadSettings:UploadRepositoryName": "Upload repository test",
    "urn:settings:LogUploadSettings:RepositoryURL": "http://35.155.171.121/xconf/logupload.php",
    "urn:settings:LogUploadSettings:UploadOnReboot": false,
    "urn:settings:LogUploadSettings:UploadImmediately": false,
    "urn:settings:LogUploadSettings:upload": true,

    "urn:settings:LogUploadSettings:UploadSchedule:cron": "10 00 * * *",
    "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": 0,
    "urn:settings:VODSettings:Name": null,
    "urn:settings:VODSettings:LocationsURL": null,
    "urn:settings:VODSettings:SRMIPList": null
}

Client end verification (RPI)

CURL Commandcurl 'http://<XCONF_IP>/loguploader/getSettings?estbMacAddress=AA:BB:CC:DD:EE:FF&firmwareVersion=rdk-generic-hybrid-wpe-image_default_20190702100618&env=dev&model=RPI&ecmMacAddress=AA:BB:CC:DD:EE:FF&controllerId=2504&channelMapId=2345&vodId=15660&timezone=&partnerId=&accountId=Unknown&version=2'
CPE Script (RDK-V)

/lib/rdk/StartDCM.sh

/lib/rdk/DCMscript.sh

CPE Service (RDK-V)/lib/systemd/system/dcm-log.service


Feature Validation (Telemetry)


  1. Telemetry configuration can be done by adding a permanent profile which contains below objects
    1. Upload repository
    2. Profile options (Header, content, frequency etc.)
  2. Creating a targeting rule which is basically mapping the profile to a set of MAC/IP/Device etc.


    Note : DCM settings should be already done  for the devices that you are going to set telemetry configuration

Configuration

  1. Create a permanent profile Telemetry - > Permanent Profiles -> Create

In the Telemetry Permanent Profile page, there will be a 5th column that allows a component name to be entered. The component name is optional and may be present for only some of the entries in the Telemetry profile.

Site Navigation: http://<XCONF_SERVER>>> Telemetry >> Permanent Profiles


     2. Once you save the permanent profile, you will get a message overlay ‘Profile added to the pending changes’. Then go to Changes -> select the profile you create -> Click on “Approve selected changes”.
Then the permanent profile will be listed under Telemetry - > Permanent profiles

Site Navigation: http://<XCONF_SERVER> >> Changes


     3. Create targeting rule via Telemetry -> Targeting rules. Targeting rules is to map the profiles with rules.

Site Navigation: http://<XCONF_SERVER> >> Telemetry >> Targeting Rule


Verification

a. Verification of telemetry test page.

After creating the permanent profile and targeting rules, go to Telemetry->Test page and give a parameter that will match the one of the rule that you have created. Then matched rule will be displayed like below.

Site Navigation: <xconf-server> >> Telemetry >> Test Page


b.  Verification via curl command

The curl command mocks the request being sent from an STB like below and sample response is also given. It can be given as a curl command or as a get request via postman or browser. The same url  used for logupload verification can be used here too, the response will have telemetry settings data like below (urn:settings:TelemetryProfile)

The new API  for Telemetry is getT2Settings. It will take the same parameters as the current API, /loguploader/getSettings.

If the component name has been defined for an entry, the response will be in the new format. The second and third columns for that entry will not be used in the response. The content field comes from the fifth column (component name). The type field will be a constant string "<event>".

Example for getT2Settings:

{"header":"MEDIA_ERROR_NETWORK_ERROR","content":"com.cisco.spvtg.ccsp.meshagent","type":"<event>","pollingFrequency":"0"}

If the component name has not been defined for an entry, the response will be in the current format.

Example for getSettings:

{"header":"MEDIA_ERROR_NETWORK_ERROR","content":"onMediaError NETWORK ERROR(10)","type":"receiver.log","pollingFrequency":"0"}

eg :

$ curl 'http://<XCONF_IP>/loguploader/getSettings?estbMacAddress=AA:BB:CC:DD:EE:FF’

Sample Response :

{
    "urn:settings:GroupName": "RDKM_TEST",
    "urn:settings:CheckOnReboot": true,
    "urn:settings:CheckSchedule:cron": "2 1 2 1 1",
    "urn:settings:CheckSchedule:DurationMinutes": 0,
    "urn:settings:LogUploadSettings:Message": null,
    "urn:settings:LogUploadSettings:Name": "RDKM_TEST",
    "urn:settings:LogUploadSettings:NumberOfDays": 1,
    "urn:settings:LogUploadSettings:UploadRepositoryName": "RDKM_TEST",
    "urn:settings:LogUploadSettings:RepositoryURL": "http://{loguoloadserver}/xconf/logupload.php",
    "urn:settings:LogUploadSettings:UploadOnReboot": true,
    "urn:settings:LogUploadSettings:UploadImmediately": false,
    "urn:settings:LogUploadSettings:upload": true,
    "urn:settings:LogUploadSettings:UploadSchedule:cron": "2 1 1 1 1",
    "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": 0,
    "urn:settings:VODSettings:Name": null,
    "urn:settings:VODSettings:LocationsURL": null,
    "urn:settings:VODSettings:SRMIPList": null,
    "urn:settings:TelemetryProfile": {
        "id": "69e37757-b463-47aa-94a8-2ce438e26a50",
        "telemetryProfile": [
            {
                "header": "Firewall",
                "content": "starting firewall service",
                "type": "FirewallDebug.txt",
                "pollingFrequency": "1"
            },
            {
                "header": "MEDIA_ERROR_NETWORK_ERROR",
                "content": "onMediaError NETWORK ERROR(10)",
                "type": "receiver.log",
                "pollingFrequency": "1"
            }
        ],
        "schedule": "3",
        "expires": 0,
        "telemetryProfile:name": "RDKM_TEST",
        "uploadRepository:URL": "http://{logupload-server}/xconf/logupload.php",
        "uploadRepository:uploadProtocol": "HTTP"
    }
}

eg :

$ curl 'https://<XCONF_IP>/loguploader/getT2Settings?estbMacAddress=AA:BB:CC:DD:EE:FF’

Sample Response :

{
    "urn:settings:GroupName": "RDKM_TEST",
    "urn:settings:CheckOnReboot": true,
    "urn:settings:CheckSchedule:cron": "2 1 2 1 1",
    "urn:settings:CheckSchedule:DurationMinutes": 0,
    "urn:settings:LogUploadSettings:Message": null,
    "urn:settings:LogUploadSettings:Name": "RDKM_TEST",
    "urn:settings:LogUploadSettings:NumberOfDays": 1,
    "urn:settings:LogUploadSettings:UploadRepositoryName": "RDKM_TEST",
    "urn:settings:LogUploadSettings:RepositoryURL": "http://{log-upload-server}/xconf/logupload.php",
    "urn:settings:LogUploadSettings:UploadOnReboot": true,
    "urn:settings:LogUploadSettings:UploadImmediately": false,
    "urn:settings:LogUploadSettings:upload": true,
    "urn:settings:LogUploadSettings:UploadSchedule:cron": "2 1 1 1 1",
    "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": 0,
    "urn:settings:VODSettings:Name": null,
    "urn:settings:VODSettings:LocationsURL": null,
    "urn:settings:VODSettings:SRMIPList": null,
    "urn:settings:TelemetryProfile": {
        "id": "69e37757-b463-47aa-94a8-2ce438e26a50",
        "telemetryProfile": [
            {
                "header": "Firewall",
                "content": "starting firewall service",
                "type": "FirewallDebug.txt",
                "pollingFrequency": "1"
            },
            {
                "header": "MEDIA_ERROR_NETWORK_ERROR",
                "content": "com.cisco.spvtg.ccsp.meshagent",
                "type": "<event>",
                "pollingFrequency": "1"
            }
        ],
        "schedule": "3",
        "expires": 0,
        "telemetryProfile:name": "RDKM_TEST",
        "uploadRepository:URL": "http://log-upload-server}/xconf/logupload.php",
        "uploadRepository:uploadProtocol": "HTTP"
    }
}

Client end verification (RPI)

CURL Commandcurl 'http://<XCONF_IP>/loguploader/getSettings?estbMacAddress=AA:BB:CC:DD:EE:FF&firmwareVersion=rdk-generic-hybrid-wpe-image_default_20190702100618&env=dev&model=RPI&ecmMacAddress=AA:BB:CC:DD:EE:FF&controllerId=2504&channelMapId=2345&vodId=15660&timezone=&partnerId=&accountId=Unknown&version=2'
CPE Script (RDK-V)

/lib/rdk/DCMscript.sh

/lib/rdk/dca_utility.sh

CPE Service (RDK-V)/lib/systemd/system/dcm-log.service

Feature Validation (Firmware update)

Configuration


1.  Firmware config can be created via Firmware - > Firmware Configs -> Create. Enter a description for this config.  Also we can define the file name and version of the image/firmware that need to be downloaded to the CPE device. The models that we defined in Common → Models section will be available here, We can select the required models by clicking on it.

Site Navigation: http://<XCONF_SERVER> >> Firmware >> Firmware config


2.  To create a firmware template, go to Firmware → Firmware templates. Enter the ID name. Select priority from the 'Priority' drop down menu. Add conditions. There are some already existing templates, if you are using the existing Firmware Templates for configuration ,you can skip this step.

Site Navigation: http://<XCONF_SERVER> >> Firmware >>Firmware Templates


3.  Firmware rule can be create via Firmware -> Firmware rules -> Rule Action -> Create. On clicking on Create button, a list of templates will be presented. We can select the required template (There will be default templates like ENV_MODEL_RULE, IP_RULE, MAC_RULE etc. and also the custom templates created from Firmware->Firmware template -> Create).

Site Navigation: http://<XCONF_SERVER>>> Firmware >> Firmware Rules


After we select the required template, 'Add firmware Rule' page will be displayed. Here the build conditions will be present from the 'template' that we added and in addition to that we can add additional Build Conditions also. To add firmware config , go to the 'Actions' tab and select the firmware config from 'Firmware config' drop down list (Select the firmware config that you have created).


4. The download location needs to be specified so that it can be returned in the response. Choose Firmware -> Download location filter-> Edit, where we can specify the location from where we can download the firmware. Enter the FQDN and Full http location for the firmware download server . Http location will be returned by default to all devices.

Site Navigation: http://<XCONF_SERVER>>> Firmware >> Download Location Round Robin Filter


Add TFTP location


An HTTP location will be returned by default to all devices. To enable tftp(If you have the download location of the firmware as tftp, then only you need to setup this)as download location for a particular set of devices, we need to override it from firmware rules.

  1. Go to Firmware -> Firmware Rules -> Define Properties -> Create
Site Navigation: <xconf-server>>>Firmware >> Firmware Rules >> Define Properties

    2.  A page will be displayed with options to select the template. Select ‘DOWNLOAD_LOCATION_FILTER’ from the list

Site Navigation: <xconf-server>>>Firmware >> Firmware Rules >> DefineProperties


3. In this 'firmware rule'  page with type 'DOWNLOAD_LOCATION_FILTER', we need to specify the ‘Build Conditions’ and ‘Action’ , The build condition should be same as that we used to set rule actions(which will set rules for our intended devices). In ‘Properties’ option under ‘Action’, add ‘firmwareDownloadProtocol’ as ‘tftp’, ‘firmwareLocation’ as ‘your tftp location IPV4 address’. This property will override the default value set from ‘Download Round Robin location filter’.

Site Navigation: <xconf-server> >>Firmware >> Firmware Rules >> DefineProperties


4. To add IPV6 address of tftp servers, you can either specify it here in the define properties rule or else from ‘Download Round Robin Filter’ page. To add IPV6, add it as ‘ipv6FirmwareLocation’ Property in ‘define properties rule’ page (ipv6FirmwareLocation key will be there by default, you need to add the value as tftp ipv6 address). 

5. To add IPV6 address of tftp servers in ‘Download Round Robin Filter’, Go to Firmware - > Download Location Filter. Enter the tftp IPV6 locations and also the percentages. The devices will get back one of the locations based on the percentage listed for the location.

Site Navigation: <xconf-server>>>Firmware >> Download Location Filter

6. Response example for https://{xconf-ip}/xconf/swu/stb?eStbMac={mac}. Here the 'firmwareLocation' and  'firmwareDownloadProtocol' are overrided at 'Define Properties' firmware rule.
The 'ipv6' addresses will be one of the addresses mentioned in the 'Download Filter' page . If you don't want "ipv6FirmwareLocation", then don't setup it in 'Define Properties' or in the 'Download location filter' pages and you will get only "firmwareLocation" in the response
{

  "firmwareDownloadProtocol": "tftp",

  "firmwareFilename": "rdkb-generic-broadband-image_default_20200406103506.rootfs.rpi-sdimg",

  "firmwareLocation": "192.168.1.9",

  "firmwareVersion": "rdkb-generic-broadband-image_default_20200406103506.txt",

  "ipv6FirmwareLocation": "2601:1f18:227b:c00:767a:afd0:82bb:efa6",

  "rebootImmediately": false

}

7. Setting up IPV4 locations via ‘Download Location Round Robin Filter’ is not supported. This can be set only by the property 'firmwareLocation' from the 'Define Properties' firmware rule page.

8. Note : Just like we added tftp location and protocol here, we can also override the default value with http as well. For firmwareDownloadProtocol, add 'http' and for the 'firmwareLocation', add http location


Override the default download Location set at Download Location Filter

There is a new option added in the Firmware Config, where we can add parameters. For example if we add parameters 'firmwareLocation' and 'firmwareDownloadProtocol'. then we will be able to override the default download location set from the 'DownLoad Location Filter' page.

Override Firmware Location with http

To create a new firmware configuration for a particular set of devices with http download location :

  1. Go to Firmware → Firmware Configs → Create. Enter a description for this config.  Also we can define the file name and version of the image/firmware that need to be downloaded to the CPE device. The models that we defined in Common → Models section will be available here, We can select the required models by clicking on it. There is also an option 'Parameters'. Add the key values 'firmwareLocation' and 'firmwareDownloadProtocol' as 'http location url' and 'http' respectively
  2. Create a firmware rule like the steps given in 'Configuration' and map this Firmware Config to it. Check using the steps in below 'Verification' sections and verify  if the firmwareLocation and firmwareDownloadProtocol are the same as we configured in FirmwareConfig page.


For RDK7, TFTP and HTTP is not supported, only HTTPS support is available.


Verification

a. Verification of Firmware test page.

After creating the Firmware configs and Firmware rules , go to Firmware->Test page and give a parameter that will match the one of the rule that you have created. Then matched rule will be displayed like below. 

Site Navigation: <xconf-server> >>Firmware >> Test Page

b.  Verification via curl command

The curl command mocks the request being sent from an STB like below and sample response is also given. It can be given as a curl command or as a get request via postman or browser. 

eg :

$  curl 'https://xconf.rdkcentral.com.rdkcentral.com/xconf/swu/stb?eStbMac=AA:BB:CC:DD:EE:FF'

Sample Response :

{"firmwareDownloadProtocol":"http","firmwareFilename":"rdkb-generic-broadband-image_rdk-next_20250305000408_DEV_NG.rootfs","firmwareLocation":"http://10.75.129.16","firmwareVersion":"rdkb-generic-broadband-image_rdk-next_20250305000408_DEV_NG.rootfs","mandatoryUpdate":false,"rebootImmediately":true}

Client end verification (RPI)

  • Change the CLOUDURL URL in /etc/include.properties File
    CLOUDURL=https://xconf.rdkcentral.com/xconf/swu/stb?eStbMac=
CURL Commandcurl 'http://<XCONF_IP>/xconf/swu/stb?eStbMac=AA:BB:CC:DD:EE:FF&model=RPI4&capabilities=RCDL&capabilities=supportsFullHttpUrl'
CPE Script (RDK-V)

/lib/rdk/swupdate_utility.sh

CPE Service (RDK-V)/lib/systemd/system/swupdate.service

Percent Filter


Percentage based filters allow us to block a certain percentage of Xconf responses that would otherwise have resulted in a change in firmware. The use case for this is when we have tons of STBs out there and we don't yet have scheduled downloads. We would like to be able to only service a certain percentage as a throttling mechanism so download servers aren't overwhelmed.

Import and Export Feature

We can import and export all the configuration data from the UI itself.  This feature can be primarily used for transferring the configuration data from one xconfserver setup to the other one.

The export and import data need to be done separately for the Application - stb, xhome and rdkcloud for all the pages except those in Common tab.

To export data from a page, Click on ‘Export All’ button in that page.  The configuration data will be downloaded as a JSON file.

To import data :

  1. Open the dropdown menu next to ‘Create’ button.
  2. From the drop down menu, click on ‘Import’.
  3. A new page will be displayed with option to browse the location of the JSONfile to be imported. Select the file that need to be imported.
  4. All the data from the file will be listed in the page.
  5. Click on ‘Import All’ to import all data

FAQs and Common Issues faced in setup


      1.  I am getting a 503 error on accessing the dataservice. What may be the reason?

       Check whether Cassandra DB is up or not. If Cassandra DB is not up, then it may affect the admin UI as well. The admin UI may be up, but you may not be able to add data to the Application.


   
 


  • No labels