Uploaded image for project: 'Help-Desk'
  1. Help-Desk
  2. HELP-8218

[fiware-stackoverflow] Fiware - Orion Context Broker subscription not sent to STH, "conditions was supposed to be an array"

    Details

      Description

      Created question in FIWARE Q/A platform on 27-01-2017 at 15:01
      Please, ANSWER this question AT http://stackoverflow.com/questions/41895831/fiware-orion-context-broker-subscription-not-sent-to-sth-conditions-was-supp

      Question:
      Fiware - Orion Context Broker subscription not sent to STH, "conditions was supposed to be an array"

      Description:
      When trying to use STH to be able to store and retrieve data sent to OCB, I have a problem making the subscription.

      My problem is that the subscription creation goes well.
      When I create the subscription as following:

      POST /v1/contextSubscriptions HTTP/1.1
      Host: <cb_host>:1026
      Content-Type: application/json
      Fiware-Service: myService
      Fiware-ServicePath: /myServicePath
      Cache-Control: no-cache

      {
      "entities": [

      { "type": "cameraSimple", "isPattern": "true", "id": "sensor03" }

      ],
      "attributes": [
      "class"
      ],
      "reference": "http://<cb_host>:8666/notify",
      "duration": "P1M",
      "notifyConditions": [

      { "type": "ONCHANGE", "condValues": [ "class" ] }

      ],
      "throttling": "PT5S"
      }

      I receive following answer:

      {
      "subscribeResponse":

      { "subscriptionId": "588b4f38e2066a50fa98df9b", "duration": "P1M", "throttling": "PT5S" }

      }

      but on the Fiware server, i see an error about the conditions in the terminal running the containers, and another one about the attributes:

      orion | ERROR@14:06:10 safeMongo.cpp[302]: Runtime Error (field 'conditions' was supposed to be an array but type=4 in BSONObj <{ _id: ObjectId('588b4f96e2066a50fa98df9c'), expiration: 1488116886, reference: "http://<cb_host>:8666/notify", custom: false, throttling: 5, servicePath: "/myServicePath", status: "active", entities: [

      { id: "sensor03", isPattern: "true", type: "cameraSimple", isTypePattern: false }

      ], attrs: [ "class" ], metadata: [], blacklist: false, conditions: [ "class" ], expression:

      { q: "", mq: "", geometry: "", coords: "", georel: "" }

      , format: "JSON" }> from caller mongoSubCacheItemInsert:221)
      orion | ERROR@13:48:10 safeMongo.cpp[302]: Runtime Error (field 'attrs' was supposed to be an array but type=4 in BSONObj <{ _id: ObjectId('588b4f96e2066a50fa98df9c'), expiration: 1488116886, reference: "http://<cb_host>:8666/notify", custom: false, throttling: 5, servicePath: "/myServicePath", status: "active", entities: [

      { id: "sensor03", isPattern: "true", type: "cameraSimple", isTypePattern: false }

      ], attrs: [ "class" ], metadata: [], blacklist: false, conditions: [ "class" ], expression:

      { q: "", mq: "", geometry: "", coords: "", georel: "" }

      , format: "JSON" }> from caller mongoSubCacheItemInsert:215)

      Also, when updating a value on my entity,

      PUT /v2/entities/sensor03/attrs/class/value HTTP/1.1
      Host: <cb_host>:1026
      Accept: application/json
      Fiware-Service: myService
      Fiware-ServicePath: /myServicePath
      Cache-Control: no-cache

      "monitor"

      I get nothing when querying the STH:

      GET /STH/v1/contextEntities/type/myDevice/id/sensor03/attributes/class?lastN=10 HTTP/1.1
      Host: <cb_host>:8666
      Accept: application/json
      Fiware-Service: myService
      Fiware-ServicePath: /myServicePath
      Cache-Control: no-cache

      returns:

      {
      "contextResponses": [
      {
      "contextElement": {
      "attributes": [

      { "name": "class", "values": [] }

      ],
      "id": "sensor03",
      "isPattern": false,
      "type": "myDevice"
      },
      "statusCode":

      { "code": "200", "reasonPhrase": "OK" }

      }
      ]
      }

      Note:

      I use NGSI V1, as I suspect V2 is not yet supported for STH receiving NGSI V2 notifications regarding this issue.
      Also i didn't find any documentation regarding "Getting historical raw context information" with NGSI V2, e.g on this page
      I use Docker-machine with a single Debian 8 VM running on Fiware-Lab with following images:

      mongodb:
      image: mongo:2.6
      hostname: mongodb
      container_name: mongodb
      command: --smallfiles

      orion:
      image: fiware/orion:develop
      hostname: orion
      container_name: orion
      links:

      • mongodb
        expose:
      • "1026"
        ports:
      • "1026:1026"
        command: -dbhost mongodb

      fiware-sth-comet:
      image: telefonicaiot/fiware-sth-comet
      links:

      • mongodb
        ports:
      • "8666:8666"
        environment:
      • STH_HOST=0.0.0.0
      • DB_URI=mongodb:27017

      EDIT 1: After removing the "develop" of Orion Docker image I am now running verison "1.6.0-next" of Orion, and I don't have any more the runtime error. Still, I can't get any historical value of the attributes of the entity. I must be doing some error in the request, but I don't know where.

      Now my docker-compose file looks like this:

      mongo:
      image: mongo:3.2
      command: --nojournal

      orion:
      image: fiware/orion
      links:

      • mongo
        ports:
      • "1026:1026"
        command: -dbhost mongo

      fiware-sth-comet:
      image: telefonicaiot/fiware-sth-comet
      links:

      • mongo
        ports:
      • "8666:8666"
        environment:
      • STH_HOST=0.0.0.0
      • DB_URI=mongo:27017

      cygnus:
      image: fiware/cygnus-ngsi
      links:
      -mongo

      EDIT 2: Following @GermánTorodelValle advice, I try to simulate a notification to the STH container like the CB would send:

      curl -X POST -H "Accept: application/json" -H "Content-Type: application/json" -H "Fiware-Service: myService" -H "Fiware-ServicePath: /myServicePath" -d '{
      "subscriptionId" : "57a9ce8ae997e37e85a4be39",
      "originator" : "orion.contextBroker.instance",
      "contextResponses" : [
      {
      "contextElement" : {
      "attributes" : [

      { "name" : "class", "type" : "Text", "value" : "monitor" }

      ],
      "type" : "cameraSimple",
      "isPattern" : "false",
      "id" : "sensor03"
      },
      "statusCode" :

      { "code" : "200", "reasonPhrase" : "OK" }

      }
      ]
      }' "http://172.17.0.1:8666/notify"

      The log on STH container is as following:

      time=2017-02-02T13:50:36.809Z | lvl=ERROR | corr=39638217-c300-48c0-9122-bff6164d5298 | trans=39638217-c300-48c0-9122-bff6164d5298 | op=OPER_STH_POST | from=n/a | srv=myService | subsrv=/myServicePath | comp=STH | msg=Error when getting the raw data collection for storing:MongoError: db already exists with different case already have: [sth_myservice] trying to create [sth_myService]
      time=2017-02-02T13:50:36.810Z | lvl=WARN | corr=c322ddc8-2140-484b-a123-4e5b9b60742e | trans=c322ddc8-2140-484b-a123-4e5b9b60742e | op=OPER_STH_POST | from=n/a | srv=myService | subsrv=/myServicePath | comp=STH | msg=POST /notify, event={"request":"1486043436805:3577e9b29ee6:1:iym1stlz:10018","timestamp":1486043436810,"tags":["handler","error"],"data":{"msec":3.6443320512771606,"error":"db already exists with different case already have: [sth_myservice] trying to create [sth_myService]","data":{"name":"MongoError","message":"db already exists with different case already have: [sth_myservice] trying to create [sth_myService]","ok":0,"errmsg":"db already exists with different case already have: [sth_myservice] trying to create [sth_myService]","code":13297,"isBoom":true,"isServer":true,"data":null,"output":{"statusCode":500,"payload":

      {"statusCode":500,"error":"Internal Server Error","message":"An internal server error occurred"}

      ,"headers":{}}}},"internal":true}
      time=2017-02-02T13:50:36.812Z | lvl=ERROR | corr=6c864793-c7ef-462a-a43d-75cdae8d20a3 | trans=6c864793-c7ef-462a-a43d-75cdae8d20a3 | op=OPER_STH_POST | from=n/a | srv=myService | subsrv=/myServicePath | comp=STH | msg=POST /notify, event={"request":"1486043436805:3577e9b29ee6:1:iym1stlz:10018","timestamp":1486043436811,"tags":["internal","error"],"data":{"name":"MongoError","message":"db already exists with different case already have: [sth_myservice] trying to create [sth_myService]","ok":0,"errmsg":"db already exists with different case already have: [sth_myservice] trying to create [sth_myService]","code":13297,"isBoom":true,"isServer":true,"data":null,"output":{"statusCode":500,"payload":

      {"statusCode":500,"error":"Internal Server Error","message":"An internal server error occurred"}

      ,"headers":

      {"content-type":"application/json; charset=utf-8","cache-control":"no-cache","content-length":96}

      }},"internal":true}
      time=2017-02-02T13:50:38.143Z | lvl=INFO | corr=n/a | trans=n/a | op=OPER_STH_SERVER_LOG | from=n/a | srv=n/a | subsrv=n/a | comp=STH | msg=Everything OK, 0 requests attended in the last 60s interval

        Activity

        Hide
        backlogmanager Backlog Manager added a comment -

        2017-02-03 00:05|CREATED monitor | # answers= 1, accepted answer= False

        Show
        backlogmanager Backlog Manager added a comment - 2017-02-03 00:05|CREATED monitor | # answers= 1, accepted answer= False
        Hide
        backlogmanager Backlog Manager added a comment -

        2017-02-03 03:05|UPDATED status: transition Answer| # answers= 1, accepted answer= False

        Show
        backlogmanager Backlog Manager added a comment - 2017-02-03 03:05|UPDATED status: transition Answer| # answers= 1, accepted answer= False
        Hide
        backlogmanager Backlog Manager added a comment -

        2017-02-03 06:05|UPDATED status: transition Answered| # answers= 1, accepted answer= False

        Show
        backlogmanager Backlog Manager added a comment - 2017-02-03 06:05|UPDATED status: transition Answered| # answers= 1, accepted answer= False

          People

          • Assignee:
            fermin Fermín Galán
            Reporter:
            backlogmanager Backlog Manager
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: