Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Xconf API which will help determine if firmwareVersion meets minimum check

  • API will take in five parameters.

...

  1. estbMac

...

  1. ipAddress

...

  1. firmwareVersion

...

  1. model

...

  1. env
  • API will return 400 response if any of the above fields are missing in the request.
  • API should work from in memory cache. All existing rules should be processed for incoming context and JSON response should contain hasMinimumFirmware=true or hasMinimumFirmware=false depending on outcome of rule processing.

hasMinimumFirmware flag should be set to false only in following case:

...

This API will process MAC rules.

Firmware Config request

Code Block
languagephp
themeEclipse
http://<host>:<port>/estbfirmware/checkMinimumFirmware?estbMac=5C:8F:E0:A5:86:E0&ipAddress=1.1.1.1&firmwareVersion=1&model=1&env=1

Header

Code Block
languagephp
themeEclipse
Accept: application/json

...



or Accept: application/xml

Response example 

{

Code Block
languagephp
themeEclipse
{

    "hasMinimumFirmware": true

...



}

DCM API

Log upload settings - /loguploader

Log Upload Settings request

Code Block
languagephp
themeEclipse
http://<host>:<port>/loguploader/getSettings?estbIP=60.70.80.90&env=DEV&firmwareVersion=10.12

Response example 

{

Code Block
languagephp
themeEclipse
{

  "urn:settings:GroupName": null,

...



  "urn:settings:CheckOnReboot": false,

...



  "urn:settings:CheckSchedule:cron": null,

...



  "urn:settings:CheckSchedule:DurationMinutes": null,

...



  "urn:settings:CheckSchedule:StartDate": null,

...



  "urn:settings:CheckSchedule:EndDate": null,

...



  "urn:settings:LogUploadSettings:Message": null,

...



  "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": null,

...



  "urn:settings:LogUploadSettings:LogFiles": null,

...



  "urn:settings:LogUploadSettings:LogFiles:StartDate": null,

...



  "urn:settings:LogUploadSettings:LogFiles:EndDate": null,

...



  "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:LogUploadSettings:UploadSchedule:StartDate": null,

...



  "urn:settings:LogUploadSettings:UploadSchedule:EndDate": null,

...



  "urn:settings:VODSettings:Name": "fdas",

...



  "urn:settings:VODSettings:LocationsURL": "http://vod7.location.com/",

...



  "urn:settings:VODSettings:SRMIPList": {},

...



  "urn:settings:TelemetryProfile": {

...



    "id": "fcb969ec-851e-4d80-8452-91f835516e80",

...



    "telemetryProfile": [

...



      {

...



        "header": "qwer",

...



        "content": "yui",

...



        "type": "op",

...



        "pollingFrequency": "3000"

...



      }

...



    ],

...



    "schedule": "10 10 * * *",

...



    "expires": 0,

...



    "telemetryProfile:name": "Profile2",

...



    "uploadRepository:URL": "amazon.com",

...



    "uploadRepository:uploadProtocol": "S3"

...



  }

...



}

Check now request.

CheckNow request

Code Block
languagephp
themeEclipse
http://<host>:<port>/loguploader/getSettings?estbIP=60.70.80.90&env=DEV&firmwareVersion=10.12&checkNow=true

Response example 

Code Block
languagephp
themeEclipse
{

...



  "id": "fcb969ec-851e-4d80-8452-91f835516e80",

...



  "telemetryProfile": [

...



    {

...



      "header": "qwer",

...



      "content": "yui",

...



      "type": "op",

...



      "pollingFrequency": "3000"

...



    }

...



  ],

...



  "schedule": "10 10 * * *",

...



  "expires": 0,

...



  "telemetryProfile:name": "Profile2",

...



  "uploadRepository:URL": "amazon.com",

...



  "uploadRepository:uploadProtocol": "S3"

...



}

Firmware configuration - /psg/swu/stb

Request to retrieve firmware configuration. Percent Filter and Time filter will be ignored. 

Firmware Config request

Code Block
languagephp
themeEclipse
http://<host>:<port>/psg/swu/stb?eStbMac=B4:F2:E8:79:B8:94&env=QA&model=X1&ipAddress=10.20.30.43&firmwareVersion=test1

Header

Accept: application/json

Code Block
languagephp
themeEclipse
Accept: application/json

or Accept: 

...

application/xml

Response example 

Code Block
languagephp
themeEclipse
{

...



  "firmwareDownloadProtocol": "tftp",

...



  "firmwareFilename": "file-pac3",

...



  "firmwareVersion": "PACXI3_2.0._DEVse",

...



  "rebootImmediately": false,

...



  "firmwareLocation": "192.168.201.2",

...



  "ipv6FirmwareLocation": "1991:db8::ff00:42:2014"

...



}

Firmware configuration - /psg/swu/bse

Request to retrieve firmware configuration. Percent Filter and Time filter will be ignored. 

Firmware Config request

Code Block
languagephp
themeEclipse
http://<host>:<port>/psg/swu/bse/ipAddress=100.71.216.10

Header

Code Block
languagephp
themeEclipse
Accept: application/json

...



or Accept: application/xml

Response example 

{

Code Block
languagephp
themeEclipse
{

    "location": "69.252.80.69",

...



    "protocol": "tftp",

...



    "modelConfigurations": [

...



        {

...



            "model": "RPI-V",

...



            "firmwareFilename": "rdk-generic-hybrid-image-20190106221326.sdimg",

...



            "firmwareVersion": "rdk-generic-hybrid-image-20190106221326"

...



        },

...



        {

...



            "model": "RPI-B",

...



            "firmwareFilename": "rdk-generic-broadband-image-20200101201216.sdimg",

...



            "firmwareVersion": "rdk-generic-broadband-image-20200101201216"

...



        }

...



    ]

...



}

Last log - /psg/lastlog

Request to get last change log. 

FirmwareRules

Code Block
languagephp
themeEclipse
http://<host>:<port>/psg/lastlog?mac=B4:F2:E8:79:B8:94

Header

Code Block
languagephp
themeEclipse
Accept: application/json

...



or Accept: application/xml

Response example 

{

Code Block
languagephp
themeEclipse

{

  "input": {

...



    "estbMac": "B4:F2:E8:79:B8:94",

...



    "env": "QA",

...



    "model": "GXG5",

...



    "firmwareVersion": "test1",

...



    "bypassFilters": [

...



      "GLOBAL_PERCENT",

...



      "TIME_FILTER",

...



      "PercentFilter",

...



      "ENV_MODEL_PERCENT"

...



    ],

...



    "forceFilters": [],

...



    "capabilities": [],

...



    "timeZone": "UTC",

...



    "time": "05/24/2016 18:57:00",

...



    "ipAddress": "10.20.30.43",

...



    "rcdl": false,

...



    "rebootDecoupled": false,

...



    "supportsFullHttpUrl": false

...



  },

...



  "rule": {

...



    "type": "ENV_MODEL_HARDWARE",

...



    "name": "RuleQA_X1_1.2.3",

...



    "noop": false

...



  },

...



  "filters": [

...



    {

...



      "type": "DownloadLocationRoundRobinFilter",

...



      "id": "SINGLETON_DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER",

...



      "name": "DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER_VALUE",

...



      "noop": true

...



    }

...



  ],

...



  "explanation": "Request: com.comcast.xconf.estbfirmware.EstbFirmwareContext$Converted@282a68ed[\r\n  estbMac=B4:F2:E8:79:B8:94\r\n  env=QA\r\n  model=GXG5\r\n  firmwareVersion=test1\r\n  ecmMac=<null>\r\n  receiverId=<null>\r\n  controllerId=<null>\r\n  channelMapId=<null>\r\n  vodId=<null>\r\n  bypassFilters=[GLOBAL_PERCENT, TIME_FILTER, PercentFilter, ENV_MODEL_PERCENT]\r\n  forceFilters=[]\r\n  capabilities=[]\r\n  timeZone=UTC\r\n  time=2016-05-24T18:57:00.000\r\n  ipAddress=10.20.30.43\r\n]\n matched ENV_MODEL_HARDWARE 62af2be5-a660-4127-9127-2edd06b86858: RuleQA_X1_1.2.3\n received config: FirmwareConfig[\r\n  description=PACXI3-desc1\r\n  supportedModelIds=[PACXI3, GXG5]\r\n  firmwareDownloadProtocol=tftp\r\n  firmwareFilename=file-pac3\r\n  firmwareLocation=192.168.201.2\r\n  firmwareVersion=PACXI3_2.0._DEVse\r\n  ipv6FirmwareLocation=1991:db8::ff00:42:2014\r\n  upgradeDelay=<null>\r\n  rebootImmediately=false\r\n  id=9264d2b7-6c9c-477c-9f75-0da2ddaac34e]\n was blocked/modified by filter SINGLETON_DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER_VALUE",

...



  "config": {

...



    "id": "9264d2b7-6c9c-477c-9f75-0da2ddaac34e",

...



    "updated": 1444857563223,

...



    "description": "PACXI3-desc1",

...



    "supportedModelIds": [

...



      "PACXI3",

...



      "GXG5"

...



    ],

...



    "firmwareDownloadProtocol": "tftp",

...



    "firmwareFilename": "file-pac3",

...



    "firmwareVersion": "PACXI3_2.0._DEVse",

...



    "rebootImmediately": false,

...



    "firmwareLocation": "192.168.201.2",

...



    "ipv6FirmwareLocation": "1991:db8::ff00:42:2014"

...



  }

...



}


Change logs - /psg/changelogs

Request to get all change logs. 

Request

Code Block
languagephp
themeEclipse
http://<host>:<port>/psg/changelogs?mac=5C:8F:E0:A5:86:E0

Header

Code Block
languagephp
themeEclipse
Accept: application/json

...



or Accept: application/xml

Response 

Code Block
languagephp
themeEclipse
[

...



    {

...



        "input": {

...



            "estbMac": "5C:8F:E0:A5:86:E0",

...



            "firmwareVersion": "ff",

...



            "bypassFilters": [],

...



            "forceFilters": [],

...



            "capabilities": [],

...



            "timeZone": "UTC",

...



            "time": "12/16/2016 14:11:00",

...



            "ipAddress": "0:0:0:0:0:0:0:1",

...



            "rcdl": false,

...



            "rebootDecoupled": false,

...



            "supportsFullHttpUrl": false

...



        },

...



        "rule": {

...



            "type": "MAC_RULE",

...



            "name": "Arris_XB3_DevOps",

...



            "noop": false

...



        },

...



        "filters": [

...



            {

...



                "type": "DownloadLocationRoundRobinFilter",

...



                "id": "SINGLETON_DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER",

...



                "name": "DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER_VALUE",

...



                "noop": true

...



            },

...



            {

...



                "type": "REBOOT_IMMEDIATELY_FILTER",

...



                "name": "Arris_XB3_test",

...



                "noop": true

...



            }

...



        ],

...



        "explanation": "Request: com.comcast.xconf.estbfirmware.EstbFirmwareContext$Converted@1a9f8c9b[\r\n  estbMac=5C:8F:E0:A5:86:E0\r\n  env=<null>\r\n  model=<null>\r\n  firmwareVersion=ff\r\n  ecmMac=<null>\r\n  receiverId=<null>\r\n  controllerId=<null>\r\n  channelMapId=<null>\r\n  vodId=<null>\r\n  bypassFilters=[]\r\n  forceFilters=[]\r\n  capabilities=[]\r\n  timeZone=UTC\r\n  time=2016-12-16T14:11:00.000\r\n  ipAddress=0:0:0:0:0:0:0:1\r\n]\n matched MAC_RULE 44ac4348-7e76-4710-b64d-0d92baf388de: Arris_XB3_DevOps\n received config: FirmwareConfig[\r\n  description=tg1682_2.0p2s4_prodse_signed\r\n  supportedModelIds=[TG1682G]\r\n  firmwareDownloadProtocol=tftp\r\n  firmwareFilename=tg1682_2.0p2s4_prodse_signed.bin.ccs\r\n  firmwareLocation=162.150.228.179\r\n  firmwareVersion=TG1682_2.0p2s4_PRODse\r\n  ipv6FirmwareLocation=<null>\r\n  upgradeDelay=<null>\r\n  rebootImmediately=true\r\n  id=64ba7bfb-db90-4f7d-8271-1d7a61273cef]\n was blocked/modified by filter REBOOT_IMMEDIATELY_FILTER[ FirmwareRule{id='539dfdae-fb14-4066-a3b1-6d10066aa31f', name='Arris_XB3_test', type=REBOOT_IMMEDIATELY_FILTER} ]",

...



        "config": {

...



            "firmwareDownloadProtocol": "tftp",

...



            "firmwareFilename": "tg1682_2.0p2s4_prodse_signed.bin.ccs",

...



            "firmwareLocation": "162.150.228.179",

...



            "firmwareVersion": "TG1682_2.0p2s4_PRODse",

...



            "rebootImmediately": true

...



        }

...



    },

...



    {

...



        "input": {

...



            "estbMac": "5C:8F:E0:A5:86:E0",

...



            "firmwareVersion": "asdf",

...



            "bypassFilters": [],

...



            "forceFilters": [],

...



            "capabilities": [],

...



            "timeZone": "UTC",

...



            "time": "12/16/2016 14:10:00",

...



            "ipAddress": "0:0:0:0:0:0:0:1",

...



            "rcdl": false,

...



            "rebootDecoupled": false,

...



            "supportsFullHttpUrl": false

...



        },

...



        "rule": {

...



            "type": "MAC_RULE",

...



            "name": "Arris_XB3_DevOps",

...



            "noop": false

...



        },

...



        "filters": [

...



            {

...



                "type": "DownloadLocationRoundRobinFilter",

...



                "id": "SINGLETON_DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER",

...



                "name": "DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER_VALUE",

...



                "noop": true

...



            },

...



            {

...



                "type": "REBOOT_IMMEDIATELY_FILTER",

...



                "name": "Arris_XB3_test",

...



                "noop": true

...



            }

...



        ],

...



        "explanation": "Request: com.comcast.xconf.estbfirmware.EstbFirmwareContext$Converted@1404ed57[\r\n  estbMac=5C:8F:E0:A5:86:E0\r\n  env=<null>\r\n  model=<null>\r\n  firmwareVersion=asdf\r\n  ecmMac=<null>\r\n  receiverId=<null>\r\n  controllerId=<null>\r\n  channelMapId=<null>\r\n  vodId=<null>\r\n  bypassFilters=[]\r\n  forceFilters=[]\r\n  capabilities=[]\r\n  timeZone=UTC\r\n  time=2016-12-16T14:10:00.000\r\n  ipAddress=0:0:0:0:0:0:0:1\r\n]\n matched MAC_RULE 44ac4348-7e76-4710-b64d-0d92baf388de: Arris_XB3_DevOps\n received config: FirmwareConfig[\r\n  description=tg1682_2.0p2s4_prodse_signed\r\n  supportedModelIds=[TG1682G]\r\n  firmwareDownloadProtocol=tftp\r\n  firmwareFilename=tg1682_2.0p2s4_prodse_signed.bin.ccs\r\n  firmwareLocation=162.150.228.179\r\n  firmwareVersion=TG1682_2.0p2s4_PRODse\r\n  ipv6FirmwareLocation=<null>\r\n  upgradeDelay=<null>\r\n  rebootImmediately=true\r\n  id=64ba7bfb-db90-4f7d-8271-1d7a61273cef]\n was blocked/modified by filter REBOOT_IMMEDIATELY_FILTER[ FirmwareRule{id='539dfdae-fb14-4066-a3b1-6d10066aa31f', name='Arris_XB3_test', type=REBOOT_IMMEDIATELY_FILTER} ]",

...



        "config": {

...



            "firmwareDownloadProtocol": "tftp",

...



            "firmwareFilename": "tg1682_2.0p2s4_prodse_signed.bin.ccs",

...



            "firmwareLocation": "162.150.228.179",

...



            "firmwareVersion": "TG1682_2.0p2s4_PRODse",

...



            "rebootImmediately": true

...



        }

...



    }

...


]


Feature control

Request

Code Block
languagephp
themeEclipse
http://<host>:<port>/featureControl/getSettings?estbMacAddress=8C:00:34:00:99:00&model=XYZ&channelMapId=1234aa

Header

Code Block
languagephp
themeEclipse
Accept: application/json

...



or Accept: application/xml

Response 

Code Block
languagephp
themeEclipse
{

...



    "featureControl": {

...



        "features": [

...



            {

...



                "name": "likeSimple",

...



                "effectiveImmediate": true,

...



                "enable": true,

...



                "configData": {

...



                    "like": "simple"

...



                }

...



            }

...



        ],

...



        "configset-id": "2c628aa6-7372-4b2a-bbcc-2fe8a33b1b3d",

...



        "configset-label": "likeSimple"

...



    }

...



}