Documentation in this  space has moved to archive. For latest document, refer this page WebPA (Xmidt) Ubuntu Reference Setup

  • No labels

59 Comments

  1. Z-Simer Brar

    Unknown User (gprasad)

    Would you be able to provide an example on how to set a parameter on the RDK device. For example, if we need to change the SSID.


    Thanks,

    Simer

    1. Unknown User (karan.negi)

      1.a Setting the SSID Password :

      curl -X PATCH http://35.155.171.121:9003/api/v2/device/mac:b827eb5681cd/config -d '{"parameters": [ {"dataType": 0, "name": "Device.WiFi.SSID.10001.SSID", "value": "Testing"}]}' -H 'Authorization:Basic d2VicGFAMTIzNDU2Nzg5MAo='

      1.b Getting the SSID for the board.


      curl -X GET 'http://35.155.171.121:9003/api/v2/device/mac:b827eb5681cd/config?names=Device.WiFi.SSID.10001.SSID' -H 'Authorization:Basic d2VicGFAMTIzNDU2Nzg5MAo='


  2. Z-Haseenamol

    @Ganesh Sahu

    Could you please provide an example to set/get attributes for tr069 webpa client.


    Thanks and Regards,

    Haseena

  3. Unknown User (mahesh.singh)

    Hi Unknown User (gprasad)

    what is the connection between webpa and xconf server, Any documentation is there to check.


    1. Ganesh Sahu

      As such they don't have any connection between them.

      While xconf is for pushing device specific configurations to CPE, webPA is for remote device management.

      You can refer the xconf server section in wiki for mote details on xconf

      1. Unknown User (mahesh.singh)

        Thanks for the update.

        How do I add a new device config parameter using curl command ?

        I am able to use GET and PATCH.

        I have checked the source code there are other commands like PUT.

        Is there any example available ?

  4. Unknown User (mahesh.singh)

    I have raspberry pi 3 B+ I am able to install RDK-B image on it.

    I am not able to find parodus logs in it.

    Can anyone please let me know where I can find the logs.

    I am trying to setup a connection between rasp pi and my Web server. 

    1. Ganesh Sahu

      You can use journalctl -xu parodus or can look for parodus.log in the log folder i.e. /rdklogs/logs/. If you have face issues please log a ticket in jira.rdkcentral.com

  5. Unknown User (mahesh.singh)

    Hi Unknown User (gprasad)


    Is there any feature in xconf server to update webpa cluster url in device ?



    1. Ganesh Sahu

      As of now we don't have a provision to update the webPA url from xconf.

  6. Unknown User (mahesh.singh)

    Hi  Unknown User (gprasad)

    Can you share the steps to setup themis as key server for authorization to scytale.


    1. Ganesh Sahu

      HiUnknown User (mahesh.singh) , themis was not part of the community XMidt server, we will discuss with developer and update the wiki.

  7. Unknown User (mahesh.singh)

    Is there a way to configure url having "https://" instead of "http://"  in fanout configuration in scytale. 

    1. Ganesh Sahu

      We need to follow required procedure to generate the certificate/keys. and after that add to the component configuration 

  8. Unknown User (rajeshjose)

    We are looking at webpa to support management of RDK based devices...Very very new to webpa and trying to understand how this fits in. Few questions:

    • If I understand, applications will be consuming data from device via tr1d1um component of Xmidt/WebPA which is a cloud hosted infrastructure, right?
    • WebPA server cluster is cloud hosted by any specific vendor or can that be deployed as as part of an onprem management application serving only that application? Technically it should be possible, but question is, is that the way it is conceived?
    • How an application can onboard/discover a webpa managed devices? How does application know which devices are connected to webpa server? Should that be separate provided to application through a separate workflow outside the scope of WebPA?
    • Other than using http(s) to get/set parameters on devices via WebPA server, is it possible to receive data/notification from device periodically? Mainly for bulk data collection with say 5-10 minutes interval. Is it possible to share some sample code for bulk data collection or subscribing to for bulk data reporting?
    • Is there a client (manage application side) library available to talk to tr1d1um or we can use plain HTTP libraries?
    • Is the WebSocket interface of "Parodus" standard and published? Can that be directly used by applications? Is that a recommended way to leverage it?
    1. Ganesh Sahu

      Hi Rajesh,

      Please find the response inline.

      • If I understand, applications will be consuming data from device via tr1d1um component of Xmidt/WebPA which is a cloud hosted infrastructure, right? Yes
      • WebPA server cluster is cloud hosted by any specific vendor or can that be deployed as as part of an onprem management application serving only that application? Technically it should be possible, but question is, is that the way it is conceived? WebPA cluster should be deployed by the operators as part of their cloud infrastructure for managing devices part of their ecosystem.
      • How an application can onboard/discover a webpa managed devices? How does application know which devices are connected to webpa server? Should that be separate provided to application through a separate workflow outside the scope of WebPA? Connection to WebPA cluster is configured & initiated by the CPE device, so 3rd party applications can connect to the cluster and reach the connected devices 
      • Other than using http(s) to get/set parameters on devices via WebPA server, is it possible to receive data/notification from device periodically? Mainly for bulk data collection with say 5-10 minutes interval. Is it possible to share some sample code for bulk data collection or subscribing to for bulk data reporting? Notification can be received from devices on certain events or when the value of tr181 parameter change. As such devices doesn't do bulk data reporting to webPA, it is the applications that may fetch what device parameter they wish to. But using webPA calls, one can trigger a bulk data upload on the client device that might be handled by some other component on device end.
      • Is there a client (manage application side) library available to talk to tr1d1um or we can use plain HTTP libraries? CPE devices talks with talaria. 3rd party applications can use HTTP/REST to communicate with tr1d1um.
      • Is the WebSocket interface of "Parodus" standard and published? Can that be directly used by applications? Is that a recommended way to leverage it? All the interfaces are open-sourced and application can use if they want to.
      1. Unknown User (rajeshjose)

        Thank you Unknown User (gprasad)

        For the 3rd question on on boarding devices, how does the application get to know which CPE devices are connected to cluster and what are their ids? I see following possible options. 

        1. I see there is a notification available from cluster when a device connects/reboots. Listen for that notification and keep a list of devices and their ids in the application 
        2. Manually configure the list of devices and theirs ids in the application

        Is this how its is done in WebPA world or is there any other way?

      2. Z-GuruVinayak P

        Unknown User (gprasad) Regarding your point on notification to be received for TR181 parameter change, I see when I change the parameter via WebUI or via the WebPA PATCH curl command (example above), I see the first notification is received but then on any change in value is not notified. Internally in Parodus2CCSP, I see a check to compare old and new CMC values which seems to not change from the second initiation onwards.

        • Is this expected behaviour - that we shall only notify on source change - that too only once?
        • For notification of parameters, I see the information shared are the device_id, cmc and cid values - but I don't see either the param or value in the async notification. Is this something to be added later or is the application expected to fetch these values on sync notification?
        • Is there a mechanism for the applications on the cloud to register for specific parameter changes to be notified from the client?
        • What is a CMC and CID - I am sorry I am not able to find any references.

        Thanks for your help in advance.

        1. Z-GuruVinayak P

          Unknown User (gprasad)  Any update on the above queries?

          1. Ganesh Sahu

            Unknown User (gp) Can you please share the command you have used?

            1. Z-GuruVinayak P

              Unknown User (gprasad)  Thanks for the reply. I tried to change the lease time manually using both dmcli and through the web UI (Device.DHCPv4.Server.Pool.1.LeaseTime). The observation was that it is getting filtered in the parodus2ccsp component where it checks for old and new CMC id and after my first update, the CMC value does not change and a sync notification event is not getting generated anymore.

              1. Ganesh Sahu

                Parameter value change notification will be triggered whenever there is a change triggered from any protocol agent (PAs -UI, dmcli, webpa, snmp etc) 

                CMC indicates the change source -indicating which PA changed the value. CID is the configuration ID which tracks the change.

                This 2 values are used by cloud to detect if there is any value change.

                First time when a value is changed, it will change CMC and CID values and trigger notification. And next time if the change is from the same PA, WebPA will not send notification again, as cloud is already informed that value is changed

                Based on this notifications, cloud will try to sync with CPE by sending TEST_AND_SET requests to WebPA and set CMC to 512 finally.

                1. Z-GuruVinayak P

                  Unknown User (gprasad) Thanks for the quick response again. A couple of questions

                  1. Can the SYNC notification also contain information on old and new values so that a cloud SYNC call can be avoided?
                  2. The list of notification parameters is hardcoded today. Will that be made configurable in the future?
                  3. If a customer changes a parameter multiple times via WebUI, the notification should still be sent multiple times assuming the WebPA does a TEST_AND_SET and set CMC to 512 right - probably I am missing something.
                  1. Ganesh Sahu

                    The format for sync notification just contains cmc and cid values

                    WEBPA: Notification payload: {"device_id":"mac:<devicemac>","cmc":648,"cid":"61f4db9"}

                    old and new values are not send in notification, this notify is just to inform that something has changed in device, and webpa indicating to sync with this device.
                    Once XPC gets sync notification from WebPA, cloud will send set of GET requests which queries all parameters in which cloud is interested in & get the new values for those params from device and will update cloud DB 
                    also will send a TEST_AND_SET and set the cmc to 512 once it is updated in cloud DB
                    1. No, it does not contain old and new values. Notification contains CMC and CID value to indicate something in device has changed.
                    2. No plans as of today
                    3. Same as Point #1. sync works based on the GET requests for cloud parameters. Cloud will do set of GET requests and get it synced with device by updating new values in cloud DB and also set CMC to 512 as part of test_and_set request.

  9. Unknown User (suhesh.sudhakaran)

    Hi Unknown User (gprasad),

    I was trying to use the below webpa api which was there in swagger : https://swagger.webpa.comcast.net/#!/webpa/addRow

    POST /device/{device_id}/config/{table}

    My post request url is : http://35.158.129.120:6100/api/v2/device/mac:112233445566/config/10003?names=Device.WiFi.SSID.10001.SSID

    Body :

    [{"name":"Device.WiFi.SSID.10001.SSID","row": "rowAb2","value":"Test_RS_PI_123_WIFI2"}]

    I get the below response:

    {
    "message": "row property is invalid"
    }


    Could you please help on  this as to what needs to be changed.




  10. Unknown User (ijacinto)

    Does anyone know the port number of tr1d1um and SCYTALE???

    1. Ganesh Sahu

      The port number are configurable but for a single node scenario we run scytale  in 7000 and tr1d1um in 9003

  11. Z-Huang Jared

    Hello,

    My client seems able to regist to server. But, when I try to retrive Device.DeviceInfo.Manufacturer, I always got is 400 bad request.

    log from tr1d1um.log shows connection refused when sending request to webhooks.

    Misconfiguration in tr1d1um? 

    --

    {"bindAddress":":9003","level":"debug","listenAddress":"[::]:9003","listenNetwork":"tcp","msg":"accepted connection","remoteAddress":"10.10.103.1:52940","serverName":"tr1d1um","ts":"2021-04-27T09:24:14.971965795Z"}
    {"caller":"constructor.go:138","key":"Basic","level":"debug","method":"GET","msg":"authentication added to context","requestHeaders":{"Accept":["*/*"],"Authorization":["Basic dXNlcjEyMzp3ZWJwYUAxMjM0NTY3ODkwCg=="],"User-Agent":["curl/7.29.0"]},"requestURL":"/api/v2/device/mac:ccd42e154be4/config","span-id":"c3d6629fdcca8af4","token":{},"trace-id":"82fd498865cbd0fbf81c88b871da1c11","ts":"2021-04-27T09:24:14.972286202Z"}
    {"caller":"enforcer.go:91","level":"debug","method":"GET","msg":"authentication accepted by enforcer","requestHeaders":{"Accept":["*/*"],"Authorization":["Basic dXNlcjEyMzp3ZWJwYUAxMjM0NTY3ODkwCg=="],"User-Agent":["curl/7.29.0"]},"requestURL":"/api/v2/device/mac:ccd42e154be4/config","span-id":"c3d6629fdcca8af4","trace-id":"82fd498865cbd0fbf81c88b871da1c11","ts":"2021-04-27T09:24:14.972363022Z"}
    {"caller":"utils.go:81","duration":"1.808891ms","level":"info","msg":"record","request":{"address":"10.10.103.1:52940","path":"/api/v2/device/mac:ccd42e154be4/config","query":"names=Device.DeviceInfo.ModelName","method":"GET"},"response":{"code":400,"headers":{"X-Midt-Span-Id":["c3d6629fdcca8af4"],"X-Midt-Trace-Id":["82fd498865cbd0fbf81c88b871da1c11"],"X-Scytale-Build":["0.1.4"],"X-Scytale-Flavor":["mint"],"X-Scytale-Region":["east"],"X-Scytale-Server":["10.10.103.1"],"X-Scytale-Start-Time":["27 Apr 21 09:23 UTC"],"X-Tr1d1um-Build":["0.1.3-434"],"X-Tr1d1um-Flavor":["mint"],"X-Tr1d1um-Region":["east"],"X-Tr1d1um-Server":["10.10.103.1"],"X-Tr1d1um-Start-Time":["27 Apr 21 09:23 UTC"],"X-Webpa-Transaction-Id":["zQF6htK7dm-V7o9C1lsQrA"]}},"satClientID":"user123","span-id":"c3d6629fdcca8af4","tid":"zQF6htK7dm-V7o9C1lsQrA","trace-id":"82fd498865cbd0fbf81c88b871da1c11","ts":"2021-04-27T09:24:14.974310118Z"}
    {"error":"http client failed while sending request: Get \"http://127.0.0.1:6600/api/v1/store/webhooks\": dial tcp 127.0.0.1:6600: connect: connection refused","level":"error","msg":"Failed to get items for listeners","ts":"2021-04-27T09:24:18.042488333Z"}

    --

    curl -H 'Authorization:Basic dXNlcjEyMzp3ZWJwYUAxMjM0NTY3ODkwCg==' -i 'http://10.10.103.1:9003/api/v2/device/mac:ccd42e154be4/config?names=Device.DeviceInfo.Manufacturer'
    HTTP/1.1 400 Bad Request
    X-Midt-Span-Id: 3aa9c76583fcf436
    X-Midt-Trace-Id: e7a6d8bbad3cf5d2792d1682f6ae5502
    X-Scytale-Build: 0.1.4
    X-Scytale-Flavor: mint
    X-Scytale-Region: east
    X-Scytale-Server: localhost
    X-Scytale-Start-Time: 27 Apr 21 08:45 UTC
    X-Tr1d1um-Build: 0.1.3-434
    X-Tr1d1um-Flavor: mint
    X-Tr1d1um-Region: east
    X-Tr1d1um-Server: localhost
    X-Tr1d1um-Start-Time: 27 Apr 21 08:45 UTC
    X-Webpa-Transaction-Id: CrCRX8Wa1nFizYhe5jFqmA
    Date: Tue, 27 Apr 2021 09:09:38 GMT
    Content-Length: 0


    curl -H 'Authorization:Basic dXNlcjEyMzp3ZWJwYUAxMjM0NTY3ODkwCg==' -i 'http://10.10.103.1:8080/api/v2/devices'

    HTTP/1.1 200 OK
    Content-Type: application/jsonebe4", "pending": 0, "statistics": {"bytesSent": 0, "messagesSent": 0, "bytesReceived": 558, "messagesReceived": 1, "duplications": 0, "connectedAt": "2021-04-27T08:49:34.361204263Z", "upTime": "16m5.356395748s"}}]}

    1. Ganesh Sahu

      It looks like a configuration issue as the communication between Scytale and Talaria not happening. Talaria is up because we are able to retrieve the devices list. 

      You may need to see logs of those components also to trace this issue.

      1. Z-Huang Jared

        Hi Unknown User (gprasad) 

        Thanks for you comments. Now, I downgrades these three services - talaria, tr1d1um and scytale to 0.1.3, 0.1.2 and 0.1.4 respectively. I am able to get device list and the RESTful commands are also working.


  12. Z-Huang Jared

    Hello, 

    I'm trying to run parodus with mtls feature. the certifacates were ready.  Also configured certificateFile and keyFile in talaria.yaml.

    But, I got one error message from talaria.log

    {"caller":"webpa.go:244","error":"open : no such file or directory","level":"error","msg":"Error in reading ClientCACertFile ","ts":"2021-06-08T07:25:43.53186511Z"}

    Seems the log is output from webpa-common.

    anyone know how to config the path of ClientCACertFile?

    1. Unknown User (karthika.a)

      Hi Unknown User (jared_huang) ,

      We have not yet verified mTLS with community webpa server yet.

      The certificatefile and keyfile are added in talaria.yaml as below:

      certificateFile: "/etc/talaria/public.pem"

      keyFile: "/etc/talaria/private.pem"


      In client side the certificate files are usually present in the path /usr/ccsp/parodus/  .


      Regards

      Karthika

  13. Unknown User (mohanaacharib)

    Hi Unknown User (gprasad) 

    Is there any package which supports front end webui for this webpa server?


    Regards,

    Mohana

    1. Unknown User (karthika.a)

      Hi @Mohana ,

      The Webpa setup provided here is a minimal webpa cluster with talaria,scytale,tr1d1um.

      If you are looking for an interface  that provide service monitoring, service discovery information ,query metrics info  from configured targets at given intervals  and display results ,then you might want to consider including prometheus  in your webpa cluster which can provide a UI interface for tracking the webpa services to an extent. More information on prometheus and the build steps are specified at https://github.com/xmidt-org/prometheus-rpms-centos6

      After integration with your cluster ,you can reach Prometheus at http://<ip>:9090/ in your browser.


      Regards

      Karthika

  14. user-cd062

    Some of the information in this document is very out of date.  For example, Xmidt migrated from Zookeeper to Consul, and the build system migrated to Go modules instead of using Glide for dependency management.  There are also resources to support Docker Compose in the public repository.

    For the latest, see https://xmidt.io/docs/operating/getting_started/.

    1. Ganesh Sahu

      Hi Unknown User (jc) , We are upgrading the RDK community webPA server to recent releases & with that the wiki page will also be modified. We will reach out to you for further information.

      Regards

      Ganesh

  15. Unknown User (mudekrishna.naick)

    Hi Team,

    Please suggest me where can I find webPA component REST API document..?

    Thanks & Regards,

    Krishna.

  16. Z-Tarun Goswami

    Hello Team,


    I am getting following error:

    ts=2021-09-09T04:44:33.887602706Z level=error msg="All HTTP transaction retries failed" url=http://192.168.1.17:6300/api/v3/notify error="dial tcp 192.168.1.17:6300: connect: connection refused" retries=1
    ts=2021-09-09T04:44:33.887673518Z caller=workerPool.go:81 level=error msg="HTTP transaction error" error="Post http://192.168.1.17:6300/api/v3/notify: dial tcp 192.168.1.17:6300: connect: connection refused"

    My all three services (talaria,  scytale, tr1d1um) are running on same ip 192.168.1.17

    Can anyone pls hel resolve the above errors, pls.
    1. Unknown User (karthika.a)

      Hi Unknown User (tarungoswami) ,

      From the logs shared in the above comment , I assume that it is coming from talaria service.

      The above error messages are coming from the following lines from the talaria.yaml(The actual caduceus port is 6000):


          # eventEndpoints is a map defining where to send the events to,
          eventEndpoints:
            default: http://localhost::6000/api/v3/notify

          eventMap:
            default: http://localhost:6000/api/v3/notify

      The api/v3/notify is the caduceus endpoint to receive events and as shared by you the caduceus service is not part of your webpa cluster .So to eliminate the error ,I will suggest to bring in caduceus service.

      The github repo for caduceus is available at :https://github.com/xmidt-org/caduceus

      Despite the above error, if talaria,  scytale and tr1d1um are  properly configured the Webpa get and set should be a success and the basic functionality shouldn't be affected.


      Please let me know if you need more assistance.


      Regards

      Karthika

      1. Z-Tarun Goswami

        Thanks Unknown User (karthika.a) 

        You are right, its from talaria and basic functionality is working, but just wanted to make sure, I have no errors. I did set up caduceus , but agina on caduceus  I get following errors and the errors on talaria continue

        Do we need Amazon Notification service for the same?


        {"error":"http client failed while sending request: Get \"http://localhost:6600/api/v1/store/webhooks\": dial tcp [::1]:6600: connect: connection refused","level":"error","msg":"Failed to get items for listeners","ts":"2021-09-09T07:09:58.617693231Z"}
        {"error":"http client failed while sending request: Get \"http://localhost:6600/api/v1/store/webhooks\": dial tcp [::1]:6600: connect: connection refused","level":"error","msg":"Failed to get items for listeners","ts":"2021-09-09T07:10:03.618943643Z"}
        {"error":"http client failed while sending request: Get \"http://localhost:6600/api/v1/store/webhooks\": dial tcp [::1]:6600: connect: connection refused","level":"error","msg":"Failed to get items for listeners","ts":"2021-09-09T07:10:08.61721455Z"}
        {"error":"http client failed while sending request: Get \"http://localhost:6600/api/v1/store/webhooks\": dial tcp [::1]:6600: connect: connection refused","level":"error","msg":"Failed to get items for listeners","ts":"2021-09-09T07:10:13.618191113Z"}
        {"error":"http client failed while sending request: Get \"http://localhost:6600/api/v1/store/webhooks\": dial tcp [::1]:6600: connect: connection refused","level":"error","msg":"Failed to get items for listeners","ts":"2021-09-09T07:10:18.617169392Z"}
        {"error":"http client failed while sending request: Get \"http://localhost:6600/api/v1/store/webhooks\": dial tcp [::1]:6600: connect: connection refused","level":"error","msg":"Failed to get items for listeners","ts":"2021-09-09T07:10:23.617439193Z"}


        1. Unknown User (karthika.a)

          Hi Unknown User (tarungoswami) ,

          The caduceus service inturn depends on argus which is the XMiDT server for storing webhooks to be used by caduceus. This service is used to replace SNS.

          The argus endpoint is : http://argus:6600/

          Argus github repo: https://github.com/xmidt-org/argus

          The argus service depends on amazon dynamodb.


          From the new logs ,you are getting errors from the argus endpoint.You can configure argus to eliminate the errors.


          Regards

          Karthika


          1. user-cd062

            DynamoDB is one of 3 available options as a backing DB for Argus.  It is not a hard dependency.  Test configurations should be using the in-memory option instead.

  17. Unknown User (vivek.j)

    Hi team how to test the WebPA client and server?
    And how to add parameter in xml file? And how to test? Give some examples.

    1. Ganesh Sahu

      you can test from the parodus or by using the command line options such as curl. We can change the yml file associated with component to modify the params.

      Please refer this page for few of the command line examples with curl.

  18. Radhakrishna Anne

    can some on please explain about below parameters, these parameters are used in "TEST_AND_SET" operaiton.

    But i do not know how to  use them exactly adn what these fileds signify

    X-Webpa-Sync-Old-Cid

    string

    XPC Cid value before change to test

    X-Webpa-Sync-New-Cid

    string

    XPC New Cid value after change

    X-Webpa-Sync-Cmc

    string

    XPC Cmc value before change to test


    Regards

    Krishna

    1. Ganesh Sahu

      Hi Unknown User (anne.radhakrishna) Please refer the link Re: WebPA (Xmidt) Reference Setup which explains the usage.

  19. Unknown User (vgosine_ctrlit)

    Question about the RDK-B parodus parameter webpa-ping-time. Is this a different parameter to the webpa-ping-timeout parameter, if so what is the difference between the two.

    1. Ganesh Sahu

      Both of them are same (The maximum time to wait between pings before assuming the connection is broken) usually the timeout is set to 180 secs

      Please refer: https://github.com/xmidt-org/parodus/blob/master/README.md

  20. Z-jianchun zhu

    Unknown User (gprasad) 

    Do you have any documents to introduce the REST API of WebPA, especially for tr1d1um?

    Is there any REST API to support to reboot or upgrade the software of CPE?

    Thank you!

    1. Ganesh Sahu

      Hi Unknown User (jianchun.zhu) you can get the end-point details from https://github.com/xmidt-org/tr1d1um#details. Also the below data model  can be used with /config end-point for reset

      https://github.com/rdkcentral/tr69-datamodel/blob/main/generic/data-model.xml#L138


  21. Unknown User (vgosine_ctrlit)

    I am attempting to set a keep alive ping time of 29 minutes. I have set 

    pingPeriod: "1740s"
    idlePeriod: "1800s"

    In the talaria.yaml file. And on the device I have set --webpa-ping-time=1800 in parodus_start.sh.
    However I no longer connect to the device and cannot make requests.
    Can anyone guide me to where I am going wrong or if I am missing any steps?
    1. Ganesh Sahu

      Hi Unknown User (vgosine_ctrlit) Please check whether the device connection request is processed by talaria and create a JIRA with error logs if the issue is not resolved. 

  22. Z-venty xiong

    Hi Unknown User (gprasad) ,

         I'm try to install the WebPA by following your step.  Thank you for the detail description.

         Where is the shell script 'build_rpm.sh' from? I can't find this file.

    4. Create the package
        $ mkdir $HOME/rpmbuild
        $ ./build_rpm.sh --no-sign
    Thank you!
  23. Sachin Narang

    Hello Unknown User (vxiong) 

    you can use xmidt-org/xmidt for reference.

    1. Z-venty xiong

  24. Z-venty xiong

    Hi  Unknown User (gprasad) ,

         At last when we run "$ sudo systemctl enable talaria", we find the service 'talaria‘ fails to start up as below:

    • [root@localhost talaria]# systemctl enable talaria
      Created symlink from /etc/systemd/system/multi-user.target.wants/talaria.service to /usr/lib/systemd/system/talaria.service.
      [root@localhost talaria]#
      [root@localhost talaria]#
      [root@localhost talaria]# systemctl status talaria
      ● talaria.service - The Xmidt API interface server.
         Loaded: loaded (/usr/lib/systemd/system/talaria.service; enabled; vendor preset: disabled)
         Active: failed (Result: start-limit) since Fri 2022-10-28 05:10:14 EDT; 8min ago
      Main PID: 2416 (code=exited, status=1/FAILURE)
    • Oct 28 05:10:14 localhost.localdomain systemd[1]: talaria.service: main process exited, code=exited, status=1/FAILURE
      Oct 28 05:10:14 localhost.localdomain systemd[1]: Unit talaria.service entered failed state.
      Oct 28 05:10:14 localhost.localdomain systemd[1]: talaria.service failed.
      Oct 28 05:10:14 localhost.localdomain systemd[1]: talaria.service holdoff time over, scheduling restart.
      Oct 28 05:10:14 localhost.localdomain systemd[1]: Stopped The Xmidt API interface server..
      Oct 28 05:10:14 localhost.localdomain systemd[1]: start request repeated too quickly for talaria.service
      Oct 28 05:10:14 localhost.localdomain systemd[1]: Failed to start The Xmidt API interface server..
      Oct 28 05:10:14 localhost.localdomain systemd[1]: Unit talaria.service entered failed state.
      Oct 28 05:10:14 localhost.localdomain systemd[1]: talaria.service failed.
      [root@localhost talaria]#

         Why does the service 'talaria' fail to boot up?

         Hope get your suggestion, thank you!


    Regards

    Venty

  25. Unknown User (brady)

    Unknown User (gprasad) when I GET any node bu "curl", it always returns HTTP 403 error as below. can you help to check why it happens?

    root@home:~# curl -H 'Authorization: Basic dXNlcjEyMzp3ZWJwYUAxMjM0NTY3ODkwCg==' -i http://10.120.14.169:9003/api/v2/device/mac:5cfa2535cdc0/config?names=Device.DeviceInfo.ModelName
    HTTP/1.1 403 Forbidden
    X-Scytale-Build: 0.1.4-1
    X-Scytale-Flavor: mint
    X-Scytale-Region: east
    X-Scytale-Server: 10.120.14.169
    X-Scytale-Start-Time: 31 Oct 22 01:42 UTC
    X-Talaria-Build: 0.1.3-1
    X-Talaria-Flavor: mint
    X-Talaria-Region: east
    X-Talaria-Server: 10.120.14.169
    X-Talaria-Start-Time: 31 Oct 22 01:42 UTC
    X-Tr1d1um-Build: 0.1.2-1
    X-Tr1d1um-Flavor: mint
    X-Tr1d1um-Region: east
    X-Tr1d1um-Server: 10.120.14.169
    X-Tr1d1um-Start-Time: 31 Oct 22 01:42 UTC
    X-Webpa-Transaction-Id: oXE-JR3Of1S188UeAR5rIg
    X-Xmidt-Span: "http://localhost:8080/api/v2/device/send","2022-11-11T08:01:52Z","683.002µs"
    Date: Fri, 11 Nov 2022 08:01:52 GMT
    Content-Length: 42
    Content-Type: text/plain; charset=utf-8

    {"code": 403, "message": "request denied"}root@home:~# 
    root@home:~# 
    root@home:~# 
    root@home:~# 

    root@home:/var/log# 
    root@home:/var/log# curl -H 'Authorization:Basic dXNlcjEyMzp3ZWJwYUAxMjM0NTY3ODkwCg==' -i 'http://10.120.14.169:8080/api/v2/devices'
    HTTP/1.1 403 Forbidden
    Content-Type: application/json
    X-Talaria-Build: 0.1.3-1
    X-Talaria-Flavor: mint
    X-Talaria-Region: east
    X-Talaria-Server: 10.120.14.169
    X-Talaria-Start-Time: 31 Oct 22 01:42 UTC
    Date: Fri, 11 Nov 2022 08:25:13 GMT
    Content-Length: 42

    {"code": 403, "message": "request denied"}root@home:/var/log# 
    root@home:/var/log# 
    root@home:/var/log# 


    ########cat talaria.log:

    2022-11-11T08:09:36.820399381Z level=error msg="All HTTP transaction retries failed" url=http://127.0.0.1:6300/api/v3/notify error="dial tcp 127.0.0.1:6300: connect: connection refused" retries=1
    ts=2022-11-11T08:09:36.820445436Z caller=workerPool.go:81 level=error msg="HTTP transaction error" error="Post http://127.0.0.1:6300/api/v3/notify: dial tcp 127.0.0.1:6300: connect: connection refused"
    ts=2022-11-11T08:09:36.969463178Z serverName=talaria bindAddress=:8080 listenNetwork=tcp listenAddress=[::]:8080 level=debug msg="accepted connection" remoteAddress=10.161.2.30:60032
    ts=2022-11-11T08:09:36.969888357Z caller=manager.go:140 level=debug msg="device connect" url=/api/v2/device
    ts=2022-11-11T08:09:36.970101582Z caller=manager.go:178 level=info id=mac:5cfa2535cdc0 convey="unsupported value type"
    ts=2022-11-11T08:09:36.970144254Z caller=manager.go:184 level=error id=mac:5cfa2535cdc0 msg="missing security information"
    ts=2022-11-11T08:09:36.970500962Z caller=manager.go:193 level=debug id=mac:5cfa2535cdc0 msg="websocket upgrade complete" localAddress=10.120.14.169:8080
    ts=2022-11-11T08:09:36.970743643Z caller=handlers.go:222 level=debug msg="Connected device" id=mac:5cfa2535cdc0
    ts=2022-11-11T08:09:36.970817347Z caller=manager.go:353 level=debug id=mac:5cfa2535cdc0 msg="writePump starting"
    ts=2022-11-11T08:09:36.971164255Z caller=manager.go:275 level=debug id=mac:5cfa2535cdc0 msg="readPump starting"
    ts=2022-11-11T08:09:36.971264664Z level=error msg="All HTTP transaction retries failed" url=http://127.0.0.1:6300/api/v3/notify error="dial tcp 127.0.0.1:6300: connect: connection refused" retries=1
    ts=2022-11-11T08:09:36.971308819Z caller=workerPool.go:81 level=error msg="HTTP transaction error" error="Post http://127.0.0.1:6300/api/v3/notify: dial tcp 127.0.0.1:6300: connect: connection refused"
    ts=2022-11-11T08:23:54.215333498Z serverName=talaria bindAddress=:8080 listenNetwork=tcp listenAddress=[::]:8080 level=debug msg="accepted connection" remoteAddress=10.161.2.30:60034
    ts=2022-11-11T08:23:54.215748476Z caller=authorizationHandler.go:127 level=error msg="request denied" validator-response=false validator-error=null sat-client-id= token="Basic dXNlcjEyMzp3ZWJwYUAxMjM0NTY3ODkwCg==" method=GET url=/api/v2/devices user-agent=curl/7.69.1 content-length=0 remoteAddress=10.161.2.30:60034


    #############cat tr1d1um.log:

    {"caller":"utils.go:58","latency":"10.712224ms","level":"info","msg":"Bookkeeping response","requestAddress":"10.161.2.30:33208","requestMethod":"GET","requestURLPath":"/api/v2/device/mac:5cfa2535cdc0/config","requestURLQuery":"names=Device.DeviceInfo.ModelName","responseCode":403,"responseHeaders":{"X-Scytale-Build":["0.1.4-1"],"X-Scytale-Flavor":["mint"],"X-Scytale-Region":["east"],"X-Scytale-Server":["10.120.14.169"],"X-Scytale-Start-Time":["31 Oct 22 01:42 UTC"],"X-Talaria-Build":["0.1.3-1"],"X-Talaria-Flavor":["mint"],"X-Talaria-Region":["east"],"X-Talaria-Server":["10.120.14.169"],"X-Talaria-Start-Time":["31 Oct 22 01:42 UTC"],"X-Tr1d1um-Build":["0.1.2-1"],"X-Tr1d1um-Flavor":["mint"],"X-Tr1d1um-Region":["east"],"X-Tr1d1um-Server":["10.120.14.169"],"X-Tr1d1um-Start-Time":["31 Oct 22 01:42 UTC"],"X-Webpa-Transaction-Id":["oXE-JR3Of1S188UeAR5rIg"],"X-Xmidt-Span":["\"http://localhost:8080/api/v2/device/send\",\"2022-11-11T08:01:52Z\",\"683.002µs\""]},"satClientID":"user123","tid":"oXE-JR3Of1S188UeAR5rIg","ts":"2022-11-11T08:01:52.590123469Z"}
    {"bindAddress":":9003","level":"debug","listenAddress":"[::]:9003","listenNetwork":"tcp","msg":"accepted connection","remoteAddress":"10.161.2.30:33224","serverName":"tr1d1um","ts":"2022-11-11T08:29:56.294386243Z"}
    {"caller":"constructor.go:79","key":"Basic","level":"debug","method":"GET","msg":"authentication added to context","requestHeaders":{"Accept":["*/*"],"Authorization":["Basic dXNlcjEyMzp3ZWJwYUAxMjM0NTY3ODkwCg=="],"User-Agent":["curl/7.69.1"]},"requestURL":"/api/v2/device/mac:5cfa2535cdc0/config","token":{},"ts":"2022-11-11T08:29:56.294683788Z"}
    {"caller":"enforcer.go:73","level":"debug","method":"GET","msg":"authentication accepted by enforcer","requestHeaders":{"Accept":["*/*"],"Authorization":["Basic dXNlcjEyMzp3ZWJwYUAxMjM0NTY3ODkwCg=="],"User-Agent":["curl/7.69.1"]},"requestURL":"/api/v2/device/mac:5cfa2535cdc0/config","ts":"2022-11-11T08:29:56.294741183Z"}
    {"caller":"utils.go:58","latency":"8.858663ms","level":"info","msg":"Bookkeeping response","requestAddress":"10.161.2.30:33224","requestMethod":"GET","requestURLPath":"/api/v2/device/mac:5cfa2535cdc0/config","requestURLQuery":"names=Device.DeviceInfo.ModelName","responseCode":403,"responseHeaders":{"X-Scytale-Build":["0.1.4-1"],"X-Scytale-Flavor":["mint"],"X-Scytale-Region":["east"],"X-Scytale-Server":["10.120.14.169"],"X-Scytale-Start-Time":["31 Oct 22 01:42 UTC"],"X-Talaria-Build":["0.1.3-1"],"X-Talaria-Flavor":["mint"],"X-Talaria-Region":["east"],"X-Talaria-Server":["10.120.14.169"],"X-Talaria-Start-Time":["31 Oct 22 01:42 UTC"],"X-Tr1d1um-Build":["0.1.2-1"],"X-Tr1d1um-Flavor":["mint"],"X-Tr1d1um-Region":["east"],"X-Tr1d1um-Server":["10.120.14.169"],"X-Tr1d1um-Start-Time":["31 Oct 22 01:42 UTC"],"X-Webpa-Transaction-Id":["EYTsASFc9QoobNtI85-mww"],"X-Xmidt-Span":["\"http://localhost:8080/api/v2/device/send\",\"2022-11-11T08:29:56Z\",\"4.403597ms\""]},"satClientID":"user123","tid":"EYTsASFc9QoobNtI85-mww","ts":"2022-11-11T08:29:56.303645531Z"}
    [root@localhost tr1d1um]# 


  26. Z-brian cheng

    Hi Ganesh Sahu,

    When I use curl to send request to tr1d1um to get parameter of my connected device, the talaria drops the message and says "unsupported event".  Could you please help me on this?

    this is my command :

    curl -H 'Authorization:Basic d2VicGFAMTIzNDU2Nzg5MA==' -i http://10.8.6.166:6100/api/v2/device/mac:80787112dd5c/config?names=Device.DeviceInfo.ModelName


    and through the logs of tr1d1um and scytale I see the message successfully transfered to talaria. But talaria dropped the message:

    #######################################################################################################################################################


    "key”:"debug”,"ts":"2025-05-13T10:04:30+08:00","message":"accepted connection","serverName":"talaria","bindAddress":":6200","litwork":"tcp,listenAddress":"[::]:6200","remoteAddress":"10.8.6.167:60440"}
    Key:"debug","ts":"2025-05-13T10:04:30+08:00","caller":"/root/go/pkg/mod/github.com/xmidt-org/bascule@v0.11.6/basculehttp/enfo
    cer.go:88","message":"authentication accepted by enforcer","requestHeaders”:["Accept-Encoding":["gzip"],"Authorization-Type”:["
    Basic"],"Content-Length":["183"],"Content-Type":["application/msgpack"],"User-Agent":["Go-http-client/1.1"],"X-Webpa-Device-Name
    "mac:80787112dd5c/config"]),"requestURL":"/api/v3/device/send","method":"PosT","requestuRI":"/api/v3/device/send","remoteAddr
    :"10.8.6.167:60440","ts":"2025-05-13T02:04:30Z"}
    ["key":"debug","ts":"2025-05-13T10:04:30+08:00","message":"Dropped message,event not sent","scheme":"unknown","code":"message_d
    ropped","reason":"unsupported event","error":"unsupported event"}
    ["key":"debug","ts":"2025-05-13T10:04:30+08:0o","message":"Dropped message,event not sent","scheme":"unknown","code":"message_d
    ropped","reason":”unsupported event","error":"unsupported event"}


    Thanks,

    Brian

    1. Z-brian cheng

      And this is the parodus log on my RDKB device:

      ################################### command line ########################

      root@ipq95xx-64-rdk-broadband:/# /usr/bin/parodus --hw-model=SBE1V1K --hw-serial-number=25250417dope --hw-manufacturer=QTI --hw-last-reboot-reason= --fw-name=ipq95xx_64-rdk-broadbanimage_rdkb-2022q4-dunfell_202505090355180:78:71:12:DD:5C --boot-time=1747029263 --hw-mac=80:78:71:12:DD:5C --webpa-ping-time=180 --webpa-interface-used=erouter0 --webpa-url=http://10.8.6.166:6200 --webpa-backoff-max=8 --parodus-local-url=tcp://127.0.0.1:6666 --partner-id=*,RDKM  --connection-health-file=/tmp/parconnhealth.txt  --acquire-jwt=0  --jwt-public-key-file=/etc/ssl/certs/webpa-rs256.pem --jwt-algo=RS256  --boot-time-retry-wait=0
      Conf file /etc/debug.ini open success
      rdk_dyn_log_initg_dl_socket = 3 __progname = parodus
      rdk_logger_init /etc/debug.ini Already Stack Level Logging processed... not processing again.

      ###########################LOG FILE###################################

      root@ipq95xx-64-rdk-broadband:/# tail -F /rdklogs/logs/PARODUSlog.txt.0
      250513-02:34:45.264414 [mod=PARODUS, lvl=INFO] [tid=965241] PARODUS: Sending response to server
      250513-02:34:45.264430 [mod=PARODUS, lvl=INFO] [tid=965241] PARODUS: sendMessage length 556
      250513-02:34:47.851622 [mod=PARODUS, lvl=INFO] [tid=965242] PARODUS: No clients are registered, waiting ..
      250513-02:35:01.550620 [mod=PARODUS, lvl=INFO] [tid=965241] PARODUS: Received msg from server
      250513-02:35:01.550715 [mod=PARODUS, lvl=INFO] [tid=965241] PARODUS: msgType received:3
      250513-02:35:01.550736 [mod=PARODUS, lvl=INFO] [tid=965241] PARODUS: Received downstream dest as :config and transaction_uuid :LZJQnlpbE9w9f4EP5opWdA
      250513-02:35:01.550751 [mod=PARODUS, lvl=ERROR] [tid=965241] PARODUS: Unknown dest:config
      250513-02:35:01.550794 [mod=PARODUS, lvl=INFO] [tid=965241] PARODUS: Payload Response: {"statusCode":531,"message":"Service Unavailable"}
      250513-02:35:01.550815 [mod=PARODUS, lvl=INFO] [tid=965241] PARODUS: Sending response to server
      250513-02:35:01.550830 [mod=PARODUS, lvl=INFO] [tid=965241] PARODUS: sendMessage length 556

      ##########################################################################