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

[fiware-stackoverflow] How to remove the following character "/" from service path

    Details

      Description

      Created question in FIWARE Q/A platform on 13-12-2017 at 11:12
      Please, ANSWER this question AT https://stackoverflow.com/questions/47790426/how-to-remove-the-following-character-from-service-path

      Question:
      How to remove the following character "/" from service path

      Description:
      Good Morning!

      Currently I have set up my structure in Fiware saving my historical records in MongoDB, for this I have been using Mlab as a hosting.
      I attache the configuration file of my agent, the problem comes in that due to the mandatory character "/" of the service path I can not access the generated historical data, since it is a character not allowed for collections in MongoDB.

      agent_1.conf

      cygnus-ngsi.sources = http-source
      cygnus-ngsi.sinks = mongo-sink
      cygnus-ngsi.channels = mongo-channel

      cygnus-ngsi.sources.http-source.channels = mongo-channel
      cygnus-ngsi.sources.http-source.type = org.apache.flume.source.http.HTTPSource
      cygnus-ngsi.sources.http-source.port = 5050
      cygnus-ngsi.sources.http-source.handler = com.telefonica.iot.cygnus.handlers.NGSIRestHandler
      cygnus-ngsi.sources.http-source.handler.notification_target = /notify
      cygnus-ngsi.sources.http-source.handler.default_service = default
      cygnus-ngsi.sources.http-source.handler.default_service_path = /sevilla
      cygnus-ngsi.sources.http-source.handler.events_ttl = 2
      cygnus-ngsi.sources.http-source.interceptors = ts
      cygnus-ngsi.sources.http-source.interceptors.ts.type = timestamp

      cygnus-ngsi.sinks.mongo-sink.type = com.telefonica.iot.cygnus.sinks.NGSIMongoSink
      cygnus-ngsi.sinks.mongo-sink.channel = mongo-channel
      cygnus-ngsi.sinks.mongo-sink.enable_encoding = false
      cygnus-ngsi.sinks.mongo-sink.enable_grouping = false
      cygnus-ngsi.sinks.mongo-sink.enable_name_mappings = false
      cygnus-ngsi.sinks.mongo-sink.enable_lowercase = false
      cygnus-ngsi.sinks.mongo-sink.data_model = dm-by-service-path
      cygnus-ngsi.sinks.mongo-sink.attr_persistence = row
      cygnus-ngsi.sinks.mongo-sink.mongo_hosts = ds******.mlab.com:35866
      cygnus-ngsi.sinks.mongo-sink.mongo_username = my_user
      cygnus-ngsi.sinks.mongo-sink.mongo_password = ********
      cygnus-ngsi.sinks.mongo-sink.db_prefix = sth_
      cygnus-ngsi.sinks.mongo-sink.collection_prefix = sth_
      cygnus-ngsi.sinks.mongo-sink.batch_size = 1
      cygnus-ngsi.sinks.mongo-sink.batch_timeout = 30
      cygnus-ngsi.sinks.mongo-sink.batch_ttl = 10
      cygnus-ngsi.sinks.mongo-sink.data_expiration = 0
      cygnus-ngsi.sinks.mongo-sink.collections_size = 0
      cygnus-ngsi.sinks.mongo-sink.max_documents = 0
      cygnus-ngsi.sinks.mongo-sink.ignore_white_spaces = true

      cygnus-ngsi.channels.mongo-channel.type = com.telefonica.iot.cygnus.channels.CygnusMemoryChannel
      cygnus-ngsi.channels.mongo-channel.capacity = 1000
      cygnus-ngsi.channels.mongo-channel.transactionCapacity = 100

      Is there any way for Cygnus to remove the "/" character from the service path?

      Error: http://www.subirimagenes.com/imagedata.php?url=http://s2.subirimagenes.com/imagen/9827048captura-de-pantalla.png

      SOLUTION: You just have to change the enconding to true in the agent configuration

      cygnus-ngsi.sinks.mongo-sink.enable_encoding = true

      Thank you very much!

        Issue Links

          Activity

          Hide
          backlogmanager Backlog Manager added a comment -

          2018-01-12 19:48|CREATED monitor | # answers= 0, accepted answer= False

          Show
          backlogmanager Backlog Manager added a comment - 2018-01-12 19:48|CREATED monitor | # answers= 0, accepted answer= False
          Hide
          andres.munoza Andres Muñoz added a comment -

          Hello,

          The question was answered by the same user that creates the ticket franciclogreen and complemented by frb, the solution was to change the encoding to true in the agent configuration and the explanation of why have to do that is:

          The slash is forbidden in MongoDB database names, that's why Cygnus composes database names from the FIWARE service (which does not contain any slash). On the other hand, the slash is not forbidden in MongoDB collection names, which are composed by Cygnus based on the FIWARE service path (which contains a initial slash). Being said that, if your viewer has any problem with MongoDB collections containing the slash, you are right the only option for you is to enable the encoding of non ASCII characters through enable_encoding=true configuration.

          Show
          andres.munoza Andres Muñoz added a comment - Hello, The question was answered by the same user that creates the ticket franciclogreen and complemented by frb , the solution was to change the encoding to true in the agent configuration and the explanation of why have to do that is: The slash is forbidden in MongoDB database names, that's why Cygnus composes database names from the FIWARE service (which does not contain any slash). On the other hand, the slash is not forbidden in MongoDB collection names, which are composed by Cygnus based on the FIWARE service path (which contains a initial slash). Being said that, if your viewer has any problem with MongoDB collections containing the slash, you are right the only option for you is to enable the encoding of non ASCII characters through enable_encoding=true configuration.

            People

            • Assignee:
              andres.munoza Andres Muñoz
              Reporter:
              backlogmanager Backlog Manager
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: