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

FIWARE.Question.Tech.Data.OrionContextBroker.Subscriptions don't seem to work using dockerized fiware-orion.

    Details

      Description

      Created question in FIWARE Q/A platform on 14-04-2016 at 15:04
      Please, ANSWER this question AT http://stackoverflow.com/questions/36624433/subscriptions-dont-seem-to-work-using-dockerized-fiware-orion

      Question:
      Subscriptions don't seem to work using dockerized fiware-orion

      Description:
      I'm using Fiware-Orion ContextBroker 0.28, the dockerized version in my localhost on ubuntu 15.10 64 bits.

      $ curl localhost:1026/version
      {
      "orion" : {
      "version" : "0.28.0-next",
      "uptime" : "0 d, 0 h, 0 m, 6 s",
      "git_hash" : "067e13618c247daa4af61f82d7831f3015d9eb5d",
      "compile_time" : "Mon Mar 14 13:04:02 UTC 2016",
      "compiled_by" : "root",
      "compiled_in" : "838a42ae8431"
      }
      }

      The docker configuration I'm using is:

      $ cat docker-compose.yml
      mongo:
      image: mongo:2.6
      command: --smallfiles --nojournal
      orion:
      image: fiware/orion
      links:

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

      The warning I get from orion/docker when I do the subscriptions is:

      orion_1 | WARNING@12:19:14 AlarmManager.cpp[303]: Raising alarm NotificationError localhost:1028/accumulate: (curl_easy_perform failed: Couldn't connect to server)

      I'm following the API V1 walkthorugh to test subscriptions to changes. I start with a mint new dockerized (sudo docker-compose up and all that fuzz) fiware-orion 0.28 with mongodb. Then I start the accumulator

      $ ./accumulator-server.py 1028 /accumulate localhost on
      verbose mode is on

      Then I register Room1

      $ (curl localhost:1026/v1/updateContext -s -S --header 'Content-Type: application/json' \
      > -header 'Accept: application/json' -d @ | python -mjson.tool) <<EOF
      > {
      > "contextElements": [
      > {
      > "type": "Room",
      > "isPattern": "false",
      > "id": "Room1",
      > "attributes": [
      >

      { > "name": "temperature", > "type": "float", > "value": "23" > }

      ,
      >

      { > "name": "pressure", > "type": "integer", > "value": "720" > }

      > ]
      > }
      > ],
      > "updateAction": "APPEND"
      > }
      > EOF
      {
      "contextResponses": [
      {
      "contextElement": {
      "attributes": [

      { "name": "temperature", "type": "float", "value": "" }

      ,

      { "name": "pressure", "type": "integer", "value": "" }

      ],
      "id": "Room1",
      "isPattern": "false",
      "type": "Room"
      },
      "statusCode":

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

      }
      ]
      }

      Then I test query context just to check:

      $ (curl localhost:1026/v1/queryContext -s -S --header 'Content-Type: application/json' \
      > -header 'Accept: application/json' -d @ | python -mjson.tool) <<EOF
      > {
      > "entities": [
      >

      { > "type": "Room", > "isPattern": "false", > "id": "Room1" > }

      > ]
      > }
      > EOF
      {
      "contextResponses": [
      {
      "contextElement": {
      "attributes": [

      { "name": "pressure", "type": "integer", "value": "720" }

      ,

      { "name": "temperature", "type": "float", "value": "23" }

      ],
      "id": "Room1",
      "isPattern": "false",
      "type": "Room"
      },
      "statusCode":

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

      }
      ]
      }

      Then I do the subscription

      $ (curl localhost:1026/v1/subscribeContext -s -S --header 'Content-Type: application/json' \
      > -header 'Accept: application/json' -d @ | python -mjson.tool) <<EOF
      > {
      > "entities": [
      >

      { > "type": "Room", > "isPattern": "false", > "id": "Room1" > }

      > ],
      > "attributes": [
      > "pressure"
      > ],
      > "reference": "http://localhost:1028/accumulate",
      > "duration": "P1M",
      > "notifyConditions": [
      >

      { > "type": "ONCHANGE", > "condValues": [ > "pressure" > ] > }

      > ],
      > "throttling": "PT5S"
      > }
      > EOF
      {
      "subscribeResponse":

      { "duration": "P1M", "subscriptionId": "570f8ac247fcf8a62722353c", "throttling": "PT5S" }

      }

      At this point the manual says that the accumulator might receive a first update but it's not required, so I don't receive nothing but maybe that's OK. Or maybe not, because after sending the subscription query, orion's docker says:

      orion_1 | WARNING@12:19:14 AlarmManager.cpp[303]: Raising alarm NotificationError localhost:1028/accumulate: (curl_easy_perform failed: Couldn't connect to server)

      Finally I update the entity and I should receive the update on the accumulator, but I don't:

      $ (curl localhost:1026/v1/updateContext -s -S --header 'Content-Type: application/json' \
      > -header 'Accept: application/json' -d @ | python -mjson.tool) <<EOF
      > {
      > "contextElements": [
      > {
      > "type": "Room",
      > "isPattern": "false",
      > "id": "Room1",
      > "attributes": [
      >

      { > "name": "temperature", > "type": "float", > "value": "56.5" > }

      ,
      >

      { > "name": "pressure", > "type": "integer", > "value": "553" > }

      > ]
      > }
      > ],
      > "updateAction": "UPDATE"
      > }
      > EOF
      {
      "contextResponses": [
      {
      "contextElement": {
      "attributes": [

      { "name": "temperature", "type": "float", "value": "" }

      ,

      { "name": "pressure", "type": "integer", "value": "" }

      ],
      "id": "Room1",
      "isPattern": "false",
      "type": "Room"
      },
      "statusCode":

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

      }
      ]
      }

      I should also say that it's quite difficult to get fiware-orion to compile on Ubuntu, and that's the reason why I'm using docker.

        Activity

        Transition Time In Source Status Execution Times Last Executer Last Execution Date
        Open Open In Progress In Progress
        8m 44s 1 Backlog Manager 15/Apr/16 12:11 PM
        In Progress In Progress Closed Closed
        1m 25s 1 Backlog Manager 15/Apr/16 12:12 PM

          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: