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 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";
  • Copy the below  contents (cassandra_schema_tables )into the cqlsh window and press enter to run:
CREATE TABLE "ChangedKeys3" (
  key bigint,
  column1 timeuuid,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "ConfigurationServiceURLs" (
  key text,
  column1 text,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "DcmRule" (
  key text,
  column1 text,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "DeviceSettings2" (
  key text,
  column1 text,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "Environment" (
  key text,
  column1 text,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "Feature" (
  key text,
  column1 text,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "FeatureControlRule" (
  key text,
  column1 text,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "FeatureControlRule2" (
  key text,
  column1 text,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "FeatureSet" (
  key text,
  column1 text,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "FilterAction" (
  key text,
  column1 text,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "FirmwareConfig" (
  key text,
  column1 text,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "FirmwareRule2" (
  key text,
  column1 text,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "FirmwareRule3" (
  key text,
  column1 text,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "FirmwareRule4" (
  key text,
  column1 text,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "FirmwareRuleTemplate" (
  key text,
  column1 text,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "Formula2" (
  key text,
  column1 text,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "GenericXconfNamedList" (
  key text,
  column1 text,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "IndexedLogFiles" (
  key text,
  column1 text,
  column2 text,
  value blob,
  PRIMARY KEY ((key), column1, column2)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "IpAddressGroupExtended" (
  key text,
  column1 text,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "LogFile" (
  key text,
  column1 text,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "LogFileList" (
  key text,
  column1 text,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "LogFilesGroups" (
  key text,
  column1 text,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "LogUploadSettings2" (
  key text,
  column1 text,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "Logs2" (
  key text,
  column1 text,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "Model" (
  key text,
  column1 text,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "PermanentTelemetry" (
  key text,
  column1 text,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "SettingProfiles" (
  key text,
  column1 text,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "SettingRules" (
  key text,
  column1 text,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "SingletonFilterValue" (
  key text,
  column1 text,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "Telemetry" (
  key text,
  column1 text,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "TelemetryRules" (
  key text,
  column1 text,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "UploadRepository" (
  key text,
  column1 text,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "VodSettings2" (
  key text,
  column1 text,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "XconfChangedKeys3" (
  key bigint,
  column1 timeuuid,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "XconfFeature" (
  key text,
  column1 text,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
 
CREATE TABLE "XconfNamedList" (
  key text,
  column1 text,
  value blob,
  PRIMARY KEY ((key), column1)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=1.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='NONE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
  •  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/beta/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=…..\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-dev
      • 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=…..\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

37 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"


      1. Is there an update to the link git clone "https://code.rdkcentral.com/r/rdk/components/generic/xconfserver" because I get a Not found error. 

        1. Arun Kumar Ramaseshan The mentioned link will work with git clone but in case you're trying to access through browser, you need to use below URL.

          https://code.rdkcentral.com/r/plugins/gitiles/rdk/components/generic/xconfserver/+/refs/heads/master

          1. Ganesh Sahu, thanks for the information. 

  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.


  4. Hello, if I wanted to run my Cassandra database on a separate node, where in the Xconf configuration would I pass in the details for that?

    1. Hi Tom.  In service.properties, you can add the following properties.  The "seeds" property is just a comma-separated list of a few Cassandra hosts.  If you are using a single host, then it's just that one.  The other properties may not be needed.


      connectionPools.SharedConnectionPool.seeds=192.168.0.100,192.168.0.101
      connectionPools.SharedConnectionPool.localDatacenter=DC_NAME
      connectionPools.SharedConnectionPool.readConsistencyLevel=CL_LOCAL_QUORUM
      connectionPools.SharedConnectionPool.writeConsistencyLevel=CL_LOCAL_QUORUM
      connectionPools.SharedConnectionPool.autoDiscoverHosts=true

      1. Great, thanks a lot for the quick response!

        Out of curiosity, is there any reason why this guide suggests Cassandra 2.0.17?  I initially installed 3.11.6 following the Cassandra documentation and discovered that the rpc port is not started by default.  Once I changed:

        # Whether to start the thrift rpc server.
        start_rpc: true

        in /etc/cassandra/cassandra.yml, I was able to run the "mvn jetty:run" command without hitting:

        com.netflix.astyanax.connectionpool.exceptions.NoAvailableHostsException: NoAvailableHostsException: [host=None(0.0.0.0):0, latency
        =0(0), attempts=0]No hosts to borrow from

        and it all appears to work.

        1. We have only tested with the 2.0.17 version of Cassandra.  We are still using the Astyanax driver (Thrift).  It's great that it works for you with a newer version of Cassandra.

          We should soon have a version of XConf that uses the CQL3 driver.  This should make it easier to use newer versions of Cassandra.

        2. Hi Tom Hopewell

          I containerised xconf-angular-admin and xconf-dataservice with docker. I also started a single node cassandra using cassandra docker image. I verified 'start_rpc=true' in cassandra.yaml inside the container. But after doing all this when I start my xconf-angular-admin image or xconf-dataservice image I see the above error that you mentioned.

          I would like to know if you did any other configurations or enable any particular ports etc to make it work.

          Would appreciate and kind of help/inputs

          Thanks in advance

          Biju 

          1. Are you running all the containers on the same node?

            If yes, it might be a good idea to run them all on the same network when you start them, i.e. docker run --network somename etc, so they can all talk to each other.  Probably easiest to do this by writing a docker-compose file.

            If no, then you would need to expose your thrift port when you start cassandra (-p 9160:9160) and check you have the cassandra node set in your containerised xconf "service-properties" files:

            connectionPools.SharedConnectionPool.seeds=<ip of node running cassandra>

            If you can share your Dockerfile via github of similar, I could try and re-create it (and take advantage of your work (wink))

            1. Sure I will share, I have some clean up to do. Probably collaboration will resolve my issues also.

              I will share it over the weekend


            2. Hi Tom Hopewell

              As you requested here is my project for containerising xconfserver

              https://github.com/kodefoundry/xconf-docker

              This project is deploying the services but the application is still not able to connect to Cassandra in the network. I tried your suggestions but something is still missing.

              I would appreciate if you could take a look and see if you are able to bring it up.

              Thanks

              Biju

              1. Great, thanks - I'll try and get back to you in the next 2-3 days

  5. Hello,

    Is it possible to run xconf-angular-admin and xconf-dataservice on separate nodes? If yes, is there any specific configuration that will basically allow both the services to discover each other?

    Thanks in advance

    Biju

    1. Hi Biju.  The admin and dataservice do not need to discover each other.  They both use the Cassandra database, so they need to be able to reach it.  If you install the admin and dataservice on separate nodes, you will probably have Cassandra on a third node.  The service.properties file for each service should include the "seeds" property, as described in the response to Tom's question above.

  6. WoW, that was really quick.

    Thank you Stephen, really appreciate your quick response. 

  7. @Stephen Lynn, 

    I am trying to configure AWS Keyspace, which is managed Cassandra service from AWS. As part of configuration to connect to the Keyspace required for XConf, AWS mandates .pem file to be used for authentication purposes. I would like to know is there any provision to configure the .pem file path in service.properties or somewhere else in the configuration?

    Have you ever tried anything similar with XConf?

    1. Hi Rahesh, I tried something similar, I don't think it will work while Xconf uses Thrift/Astanyax driver, need to wait for CQL support as a first step.

  8. Hi Z-Stephen Lynn

    I saw in one of your replies to Tom, you mentioned that "We should soon have a version of XConf that uses the CQL3 driver".

    Do you have any timelines for that release? and expected release date?

    Thanks

    Biju

    1. Hi Biju,

      I would expect it to be available in 1-2 months.

      Steve

  9. Hi Z-Stephen Lynn

    Is it possible to use any other DB in place of Cassandra? 

    Is Cassandra a hard dependency?

    Thanks

    Biju

  10. I have containerised xconfserver, there were couple of issues which are resolved now. Special thanks to Tom Hopewell for helping me on this.

    https://github.com/kodefoundry/xconf-docker

    I would appreciate if the community can test it and share their thoughts.

    I have couple of observations, looking at the size of image they are bulky. especially admin ui. possibly the js components have not be compressed. If the community can look into these aspects it would be great. Ideally I would prefer the image size to be < 100 Mb.

    Contributions and suggestions are welcome.

    Thanks

    Biju

  11. HiSreelal H,

    I was following the below link to setup the xconf simulator for RDK-B.

    XCONF Simulator Installation

    After following all the instructions, while accessing 'http://localhost:8080/XCONFSimulator/swu/stb' on the browser, getting HTTP error 405 (This page isn't working). Could you please suggest me what could be the issue?

    Regards,

    Rajesh


    1. Hi Rajesh C


      XCONF Simulator doesn’t have a UI , so if you try to access the url from browser , it may not be supported.

      Could you please try to execute the following command from a terminal and share the output.

      curl -X POST http://<ServerIP>:8080/XCONFSimulator/swu/stb

      Created a support ticket TDK-2743 ,can we debug this issue through the ticket.

      Thanks,

      Sreelal

      1. We were not able to successfully run this command since we did't have the Json object that has to be sent as part of the POST request. After digging through the code we found some GET API's in the LogUpdationHandler(or some similarly named class) and were able to get some response out of it, which confirms the setup is working at least.

        We would like to know if there is some kind of API documentation available some where which describes the supported API's and the expected parameters/headers/body etc, without which I wonder how this simulator is supposed to be helpful to anyone other than the team who has written it.

        If you can throw some light as to how we can figure out the API's to be used, it would help us greatly. We can help back the community by containerising it so that its easy to deploy and use. We can also try to come up with a Swagger if we can get to the details of all the API's

        Awaiting your response at earliest.

  12. Tried using the docker instance provided by Bijuavailable at https://github.com/kodefoundry/xconf-docker 

    when tested using a real set up the following issue is found :

    Once all the configurations are done via the UI, tried to fetch the details using a curl command which threw 404 error.
    the application selected was STB
    The curl command used is
    curl -w '%{http_code}\n' --connect-timeout 10 -m 10 -o "/opt/DCMresponse.txt" 'http://<AWS IP>:9092/loguploader/getSettings?estbMacAddress=AA:BB:CC:DD:EE:FF&firmwareVersion=bcm20.1-1234xyz&env=dev&model=RPI&ecmMacAddress=AA:BB:CC:DD:EE:FF&controllerId=2504&channelMapId=2345&vodId=15660'

    trying to test the telemetry exercise part of Lisbon demo from RDK wiki using this docker setup.

    1. Using that docker based installation, there is a change in the above verification url for dataservice.

      Need to add a keyword service


      curl -w '%{http_code}\n' --connect-timeout 10 -m 10 -o "/opt/DCMresponse.txt" 'http://<AWS IP>:9092/service/loguploader/getSettings?estbMacAddress=AA:BB:CC:DD:EE:FF&firmwareVersion=bcm20.1-1234xyz&env=dev&model=RPI&ecmMacAddress=AA:BB:CC:DD:EE:FF&controllerId=2504&channelMapId=2345&vodId=15660'

  13. Ganesh Sahu  - there is a typo in the command

    npm install grunt-contrib-copy --save-den


    "--save-den" is incorrect. The correct is "--save-dev"

    1.  Suraj Mathew, thank you for pointing the typo, i have made the correction.

  14. Ganesh Sahu ,

    While using the xconf server for one of our customer, we have come across an issue which seems to be a version issue of a 3rd party library. 

    Issue summary
    We can successfully add google home page (https://www.google.com) or RDK wiki home page (https://wiki.rdkcentral.com/) as telemetry log upload end point in xconf server (urls are simply used for testing purpose only)
     
    But for our customer, the url is somewhat like this - https://abc.pqr.xyz.cloud . The xconf admin UI displays "Url is not valid" and hence not allowing to save it.
     
    Root Cause Analysis
    After analysing the source code of xconf from rdk central, it uses a 3rd party library - Apache Commons Validator  to validate the url. The library version used is 1.4.1.


    One of the url validation methods in this library is by checking the last keyword in the hostname against a predefined set of domain name values. These domain names are hard-coded in one of the library class - DomainValidator
     
    Unfortunately, "cloud" from https://abc.pqr.xyz.cloud is not their in the list and hence our url is marked invalid (for version 1.4.1)
     
    while "com" is already existing in the list and hence google and RDK wiki urls are getting passed   (https://www.google.com/) , (https://wiki.rdkcentral.com/)
     
    So in a sample program, our upload url with the latest version of the library (1.7) was attempted, and the validation got successful.
     
    Can you please upgrade the version of Apache Commons Validator in xconf pom.xml ?

    See if the version can be set to "latest" in pom.xml so that maven will automatically pick the newest version every time we build.

    ( Apache Commons Validator maven - https://mvnrepository.com/artifact/commons-validator/commons-validator  )

    Personal suggestion
    Many domains are getting created on a daily basis around the globe. Those are not getting updated in this library version which we use and hence the usage of those new domains will result in validation failure.

    So,if possible, its good to replace this library usage with simple java url validation as mentioned in this page

    1. Suraj Mathew , Thank you for providing the suggestions, We will address this through DEV.