[Fiware-tech-help] Problema al intentar grabar datos en CKAN desde Cygnus

Alfonso García Fernández alfongf at gmail.com
Tue Dec 1 19:41:48 CET 2015


Buenas tardes.

Estoy intentando grabar datos en CKAN a través de Cygnus, pero no consigo
que funcione correctamente cuando el tipo del atributo es JSON. Lo primero
que hago es la llamada a ContextBroker:

Accept: application/json
X-AUTH-TOKEN: <mytoken>
Fiware-Service: PapelClubDemo
Fiware-ServicePath: /events/leonliterario
{
    "contextElements": [
        {
            "type": "Events",
            "isPattern": "false",
            "id": "thisweek",
            "attributes": [
                {
                    "name": "schedule",
                    "type": "json",
                    "value": [{"title": "Presentación Viva Mi
Gente","date": "2015-11-30","location": "Salón de actos del
ICAL","url": "http://www.papel.club"}]
                }
            ]
        }
    ],
    "updateAction": "APPEND"
}

Con la correspondiente suscripción de cygnus para esta entidad, obtengo
esta entrada en el log de cygnus:

01 Dec 2015 19:05:13,701 INFO [891993589 at qtp-1988714671-0]
(com.telefonica.iot.cygnus.handlers.OrionRestHandler.getEvents:232) -
Received data ({"subscriptionId" : "565dd3497b72b7c7092d5a29",
"originator" : "localhost", "contextResponses" : [ { "contextElement"
: { "type" : "Events","isPattern" : "false", "id" : "thisweek",
"attributes" : [ { "name" : "schedule", "type" : "json", "value" : [ {
"title" : "Presentación Viva Mi Gente", "date" : "2015-11-30",
"location" : "Salón de actos del ICAL", "url" :
"http://www.papel.club" }, { "title" : "Presentación Viva Mi
Gente2","date" : "2015-11-30", "location" : "Salón de actos del ICAL",
"url" : "http://www.papel.club" } ] } ] }, "statusCode" : { "code" :
"200","reasonPhrase" : "OK" } } ]})

01 Dec 2015 19:05:13,702 INFO
[891993589 at qtp-1988714671-0](com.telefonica.iot.cygnus.handlers.OrionRestHandler.getEvents:255)
- Event put in the channel (id=2134043204, ttl=10) 01 Dec 2015
19:05:16,842 INFO[SinkRunner-PollingRunner-DefaultSinkProcessor]
(com.telefonica.iot.cygnus.sinks.OrionCKANSink.persistOne:207) -
[ckan-sink] Persisting data atOrionCKANSink (orgName=papelclubdemo,
pkgName=papelclubdemo_events_leonliterario,
resName=thisweek004_events,data=1448989513702,2015-12-01T17:05:13.702Z,thisweek,Events,schedule,json,[{"title":"Presentación
Viva MiGente","date":"2015-11-30","location":"Salón de actos del
ICAL","url":"http://www.papel.club"},{"title":"Presentación Viva
MiGente2","date":"2015-11-30","location":"Salón de actos del
ICAL","url":"http://www.papel.club"}],[])
01 Dec 2015 19:05:19,479 ERROR
[SinkRunner-PollingRunner-DefaultSinkProcessor]
(com.telefonica.iot.cygnus.sinks.OrionSink.process:224) - Runtime
error (Don't know how to treat response code 503)
01 Dec 2015 19:05:19,480 INFO
[SinkRunner-PollingRunner-DefaultSinkProcessor]
(com.telefonica.iot.cygnus.sinks.OrionSink.process:233) - Finishing
transaction (1448984542-601-0000000018)

Esta es la configuración de mi fichero agent en cygnus:

# Flume handler that will parse the notifications, must not be changed
cygnusagent.sources.http-source.handler =
com.telefonica.iot.cygnus.handlers.OrionRestHandler
# URL target
cygnusagent.sources.http-source.handler.notification_target = /notify
# Default service (service semantic depends on the persistence sink)
cygnusagent.sources.http-source.handler.default_service = def_serv
# Default service path (service path semantic depends on the persistence sink)
cygnusagent.sources.http-source.handler.default_service_path = def_servpath
# Number of channel re-injection retries before a Flume event is
definitely discarded (-1 means infinite retries)
cygnusagent.sources.http-source.handler.events_ttl = 10
# Source interceptors, do not change
cygnusagent.sources.http-source.interceptors = ts gi
# TimestampInterceptor, do not change
cygnusagent.sources.http-source.interceptors.ts.type = timestamp
# GroupinInterceptor, do not change
cygnusagent.sources.http-source.interceptors.gi.type =
com.telefonica.iot.cygnus.interceptors.GroupingInterceptor$Builder
# Grouping rules for the GroupingInterceptor, put the right absolute
path to the file if necessary
# See the doc/design/interceptors document for more details
cygnusagent.sources.http-source.interceptors.gi.grouping_rules_conf_file
= /usr/cygnus/conf/grouping_rules.conf

# ============================================
# OrionCKANSink configuration
# channel name from where to read notification events
cygnusagent.sinks.ckan-sink.channel = ckan-channel
# sink class, must not be changed
cygnusagent.sinks.ckan-sink.type = com.telefonica.iot.cygnus.sinks.OrionCKANSink
# the CKAN API key to use
#cygnusagent.sinks.ckan-sink.api_key = <mykey>
# the FQDN/IP address for the CKAN API endpoint
cygnusagent.sinks.ckan-sink.ckan_host = demo.ckan.org
# the port for the CKAN API endpoint
cygnusagent.sinks.ckan-sink.ckan_port = 80
# Orion URL used to compose the resource URL with the convenience
operation URL to query it
cygnusagent.sinks.ckan-sink.orion_url = http://127.0.0.1:1026
# how the attributes are stored, either per row either per column (row, column)
cygnusagent.sinks.ckan-sink.attr_persistence = row
# enable SSL for secure Http transportation; 'true' or 'false'
cygnusagent.sinks.ckan-sink.ssl = false

Cuando cygnus reciba la información la envía a ckan y este la recibe,
creándome la organización (si no existe), el dataset y el recurso, pero
cuando accedo a ver el contenido del recurso este está vacío. Estoy
utilizando demo.ckan.org.

Muchas gracias,

Alfonso García Fernández
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.fiware.org/private/fiware-tech-help/attachments/20151201/572b1ddd/attachment.html>


More information about the Fiware-tech-help mailing list

You can get more information about our cookies and privacy policies clicking on the following links: Privacy policy   Cookies policy