RDK Resources

[*RDK Preferred*]

Code Management Facility

Code Releases

RDK Forums

[RDK Conferences]

RDK Support

Archives

Papers & Presentations Archive

In the News!

Skip to end of metadata
Go to start of metadata

This Page is work in progress and hence may not be suitable for general audience.


Software Requirements (Reference setup)

Component


Recommendation

System/OS

Ubuntu 18.04.1 LTS
Disk space> 5GB
GIT(Version 2.17.1)
Java/JDK(Version 1.8.0_212)

Installation of Dependencies

  1. Install Java JDK

    To install JDK follow these steps:

    • For x86 Linux architecture
      Download jdk-7u80-linux-x64.tar.gz from oracle jdk download site.

    • For AWS VM (aarch64 ARM architecture)
      Download jdk-8u211-linux-arm64-vfp-hflt.tar.gz from oracle java download site.

    • Extract the compressed archive under /opt
      $ tar xzf <archive-name> -C /opt

    • If there are other versions of JDK previously installed ,then to use this version do the following:

    sudo update-alternatives  --install  “/usr/bin/java” “java” “path/of /java/binary” 1

    Similarly repeat the above step for javac, javaws etc. Once it’s done, run the command :

    sudo update-alternatives  --config java

    Then select the choice which corresponds to your JDK version. You can repeat the same for javac , javaws etc. 
    Check your installation using the command : java  -version

  2. Install Maven (Version 3.6.0)

    To install maven follow these steps:

    • sudo apt update
    • sudo apt install maven
    • Check the installation using : mvn -version
  3. Install a local copy of npm (specific to the user)

    Steps to install nvm & configure node using nvm:
    ---------------------------------------------------
    $ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
    [Follow instruction from console to set the nvm Environment]
    $ nvm install node
    
    Only required,If you Prefer to set particular version
    $ nvm install 10.2.1
    $ nvm alias default v10.2.1
  4. Install Cassandra (Version 2.0.17)

      To install Cassandra follow below steps:

CREATE KEYSPACE "ApplicationsDiscoveryDataService" WITH replication = {
'class': 'SimpleStrategy',
'replication_factor': '3'
};
  • To use this key space run the command: USE "ApplicationsDiscoveryDataService";
  •  To check if tables were created successfully use the command:

    DESCRIBE KEYSPACE;

  • NOTE: If the keyspace has already been created  run these commands  to check if all tables present in cassandra_schema_tables has been added to the keyspace:

USE "ApplicationsDiscoveryDataService";

 DESCRIBE KEYSPACE;

Build Xconf server application

Download the xconfserver code from the rdk central code repository using the following command:

$ git clone "https://code.rdkcentral.com/r/rdk/components/generic/xconfserver"

For the new updates download from the latest branch.

Configuration & service startup

  1. Start Cassandra service

    To start an Xconf application, start the Cassandra server by executing the following commands:

    $ cd cassandra/apache-cassandra-2.0.17
    $ sudo bin/cassandra
    The status of cassandra can be checked by invoking below command
    $ bin/nodetool status
  2. Configure and start Xconf Application services

    1. Resolve Dependencies

      Go to the xconf folder and run the following command to download all dependencies.
      $ mvn clean install

    2. Configure angular admin (UI) service

For running the angular admin application, execute the following in the folder xconfserver/xconf-angular-admin:

For the first time application deployment,

create a "service.properties"  file under the path xconfserver/xconf-angular-admin/src/main/resources/service.properties with the following contents:

#autoGenerate schema is true by default but can be turned to false
autoGenerateSchema=true

Then run the command,

mvn jetty:run  -DappConfig=<path_to_xconfserver>/xconf-angular-admin/src/main/resources/service.properties

For the subsequent runs execute the below command in the folder xconfserver/xconf-angular-admin:

mvn jetty:run

Download the following packages under the folder /xconfserver/xconf-angular-admin/src/main/webapp

    • • npm install -g bower
      • npm install -g grunt-cli
      • npm install
      • npm install grunt-contrib-copy --save-den 
      • grunt install

To run the admin UI launch it as http://localhost:9093/admin/ in any browser.

c. Configure Data Service

    1. To run the data service application go to the xconfserver/xconf-dataservice folder and execute the following:

      For the first time application deployment, create a "service.properties"  file e.g. xconfserver/xconf-dataservice/src/main/resources/service.properties with the following contents:

      #autoGenerate schema is true by default but can be turned to false
      autoGenerateSchema=true

      Then run the command,

      mvn jetty:run  -DappConfig=<path_to_xconfserver>/xconf-dataservice/src/main/resources/service.properties

      For the subsequent runs execute the below command in the folder xconfserver/xconf-dataservice :

      mvn jetty:run


8.To launch the application go to http://localhost:9092/queries/environments .  To verify add an entry in the environments tab of the xconf admin application and check whether the same is updated here.

9. NOTE:To run the Admin UI and dataservice applications in background start jetty server as follows:

   nohup mvn jetty:run &

Admin UI common configuration

Below steps will affect all the features in xconf system and should be configured after initial setup.

Define Environments

Site Navigation: <xconf-server>:9093 >> Common >> Environments | Example URL: http://34.219.243.214:9093/admin/ux/#/environment/all

Define Models

Site Navigation: http://<XCONF-SERVER>:9093 >> Common >> Models | Example URL : http://34.219.243.214:9093/admin/ux/#/model/all


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

Site Navigation htp://<XCONF-SERVER>:9093 >> Common >> MAC List | Example URL : http://34.219.243.214:9093/admin/ux/#/namespacedlist/MAC_LIST


Feature Validation (RFC)

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

  • Define the Feature
  • Define the Feature Rule

Configuration

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

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


Client end verification (RPI)

CURL Commandcurl 'http://<XCONF_IP>:9092/featureControl/getSettings?estbMacAddress=B8:27:EB:FF:54:95&firmwareVersion=rdk-generic-hybrid-wpe-image_default_20190702100618&env=pi&model=RPI&ecmMacAddress=B8:27:EB:FF:54:95&controllerId=2504&channelMapId=2345&vodId=15660&partnerId=&accountId=Unknown&version=2'
CPE Script (RDK-V)/lib/rdk/RFCbase.sh
CPE Service (RDK-V)/lib/systemd/system/rfc-config.service


Feature Validation (LogUpload)

Configuration

  1. Create an upload repository under http://<XCONF_IP>:9093/admin/ux/#/uploadrepository
  2. Add the formula under http://<XCONF_IP>:9093 >> DCM >> Forumlas e.g. http://<XCONF_IP>:9093/admin/ux/#/formulas
  3. Edit the Device Settings Tab
  4. Edit the Log upload Setting (Create schedule & Add the upload repository created beforehand.

Client end verification (RPI)

CURL Commandcurl 'http://<XCONF_IP>:9092/loguploader/getSettings?estbMacAddress=B8:27:EB:FF:54:95&firmwareVersion=rdk-generic-hybrid-wpe-image_default_20190702100618&env=dev&model=RPI&ecmMacAddress=B8:27:EB:FF:54:95&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 an 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.

Configuration

Site Navigation: http://<XCONF_SERVER>:9093 >> Telemetry >> Permanent Profiles | Example URL: http://34.219.243.214:9093/admin/ux/#/permanentprofile

Site Navigation: http://<XCONF_SERVER>:9093 >> Telemetry >> Targeting Rule | Example URL: http://34.219.243.214:9093/admin/ux/#/targetingrule


Client end verification (RPI)

CURL Commandcurl 'http://<XCONF_IP>:9092/loguploader/getSettings?estbMacAddress=B8:27:EB:FF:54:95&firmwareVersion=rdk-generic-hybrid-wpe-image_default_20190702100618&env=dev&model=RPI&ecmMacAddress=B8:27:EB:FF:54:95&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)

Please refer below links for firmware update

XConf - Configuring Firmware Download Location

https://wiki.rdkcentral.com/display/RDK/XConf+-+Configuring+Firmware


  • No labels

7 Comments

  1. Hi,

    The following link is not working.

    https://code.rdkcentral.com/r/beta/components/generic/xconfserver

    Can someone help me to configure xconf in my local machine?

    Thanks in advance.

    1. Please try with the below link, it should work:

      git clone "https://code.rdkcentral.com/r/rdk/components/generic/xconfserver"


  2. Hi

    As there mentioned maven 3.6 is successfully installed, when it comes to Xconf server maven Iam not able to download it, Iam getting errors.

  3. Hi,

    We have 2 questions for this.

    1. Can you let us know minimum MEMORY size requirement to execute server components stable?
    2. How can we gracefully stop Xconf server components for xconf-angular-admin, xconf-dataservice?

    1. Hi

      For application it takes >5GB of disk space, In my system I have availabe disk space as 71GB.

      Coming to memory I have 9GB memory, still Iam getting errors like this,


      [INFO] Scanning for projects...
      [WARNING]
      [WARNING] Some problems were encountered while building the effective model for com.comcast.coast.xconf.oss:xconf-automation-tests:jar:1.0.0-SNAPSHOT
      [WARNING] Reporting configuration should be done in <reporting> section, not in maven-site-plugin <configuration> as reportPlugins parameter. @ com.comcast.coast.xconf.oss:xconf-automation-tests:[unknown-version], /home/sharanya/Downloads/rdk-xconfserver-RDK-DEV-2001/xconf-automation-tests/pom.xml, line 124, column 40
      [WARNING]
      [WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
      [WARNING]
      [WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
      [WARNING]
      [INFO] ------------------------------------------------------------------------
      [INFO] Reactor Build Order:
      [INFO]
      [INFO] xconf [pom]
      [INFO] Hydra Astyanax Common Classes [jar]
      [INFO] Hesperuis Common Classes (added on top of those of Hydra) [jar]
      [INFO] rules-engine [jar]
      [INFO] xconf-common [jar]
      [INFO] Health Check [jar]
      [INFO] Hesperius core classes [jar]
      [INFO] Hesperius core support classes [jar]
      [INFO] xconf-dataservice [war]
      [INFO] xconf-angular-admin [war]
      [INFO] xconf-automation-tests [jar]
      [INFO]
      [INFO] -----------------< com.comcast.coast.xconf.oss:xconf >------------------
      [INFO] Building xconf 1.0.0-SNAPSHOT [1/11]
      [INFO] --------------------------------[ pom ]---------------------------------
      Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.pom
      [INFO] ------------------------------------------------------------------------
      [INFO] Reactor Summary for xconf 1.0.0-SNAPSHOT:
      [INFO]
      [INFO] xconf .............................................. FAILURE [ 0.986 s]
      [INFO] Hydra Astyanax Common Classes ...................... SKIPPED
      [INFO] Hesperuis Common Classes (added on top of those of Hydra) SKIPPED
      [INFO] rules-engine ....................................... SKIPPED
      [INFO] xconf-common ....................................... SKIPPED
      [INFO] Health Check ....................................... SKIPPED
      [INFO] Hesperius core classes ............................. SKIPPED
      [INFO] Hesperius core support classes ..................... SKIPPED
      [INFO] xconf-dataservice .................................. SKIPPED
      [INFO] xconf-angular-admin ................................ SKIPPED
      [INFO] xconf-automation-tests ............................. SKIPPED
      [INFO] ------------------------------------------------------------------------
      [INFO] BUILD FAILURE
      [INFO] ------------------------------------------------------------------------
      [INFO] Total time: 1.339 s
      [INFO] Finished at: 2020-01-20T10:57:08+05:30
      [INFO] ------------------------------------------------------------------------
      [ERROR] Plugin org.apache.maven.plugins:maven-clean-plugin:2.5 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-clean-plugin:jar:2.5: Could not transfer artifact org.apache.maven.plugins:maven-clean-plugin:pom:2.5 from/to central (https://repo.maven.apache.org/maven2): Received fatal alert: protocol_version -> [Help 1]
      [ERROR]
      [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
      [ERROR] Re-run Maven using the -X switch to enable full debug logging.
      [ERROR]
      [ERROR] For more information about the errors and possible solutions, please read the following articles:
      [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginResolutionException

      1. When you run the maven app, the process fails with a protocol error if you don’t force TLSv1.2 as follows. 

         

        mvn -Dhttps.protocols=TLSv1.2 clean install

        mvn jetty:run  Dhttps.protocols=TLSv1.2  -DappConfig=…..\xconfserver\xconf-angular-admin\src\main\resources\service.properties

        1. Hi John,

          You are right, it happens in some version of the Ubuntu security update.