Details
-
Type: Monitor
-
Status: Closed
-
Priority: Major
-
Resolution: Done
-
Affects Version/s: None
-
Fix Version/s: 2021
-
Component/s: FIWARE-TECH-HELP
-
Labels:
-
HD-Chapter:Data
-
HD-Enabler:Orion
Description
Created question in FIWARE Q/A platform on 14-04-2016 at 15:04
Please, ANSWER this question AT https://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
- Running on http://localhost:1028/ (Press CTRL+C to quit)
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": [
>
,
>
> ]
> }
> ],
> "updateAction": "APPEND"
> }
> EOF
{
"contextResponses": [
{
"contextElement": {
"attributes": [
,
{ "name": "pressure", "type": "integer", "value": "" } ],
"id": "Room1",
"isPattern": "false",
"type": "Room"
},
"statusCode":
}
]
}
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": [
>
> ]
> }
> EOF
{
"contextResponses": [
{
"contextElement": {
"attributes": [
,
{ "name": "temperature", "type": "float", "value": "23" } ],
"id": "Room1",
"isPattern": "false",
"type": "Room"
},
"statusCode":
}
]
}
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": [
>
> ],
> "attributes": [
> "pressure"
> ],
> "reference": "http://localhost:1028/accumulate",
> "duration": "P1M",
> "notifyConditions": [
>
> ],
> "throttling": "PT5S"
> }
> EOF
{
"subscribeResponse":
}
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": [
>
,
>
> ]
> }
> ],
> "updateAction": "UPDATE"
> }
> EOF
{
"contextResponses": [
{
"contextElement": {
"attributes": [
,
{ "name": "pressure", "type": "integer", "value": "" } ],
"id": "Room1",
"isPattern": "false",
"type": "Room"
},
"statusCode":
}
]
}
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.
2017-05-22 21:10|UPDATED status: transition Finish| # answers= 2, accepted answer= True