Uploaded image for project: 'Red Hat Fuse'
  1. Red Hat Fuse
  2. ENTESB-19114

Kamel bind doesnt respect some default values

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Do
    • Icon: Major Major
    • camel-k-future
    • camel-k-1.6.6
    • Camel-K
    • None
    • False
    • None
    • False
    • % %
    • Todo

      I want to bind the jms-ibm-mq-sink kamelet to a channel

      The jms-ibm-mq-sink has following parameters:

      {
        "channel": {
          "description": "Name of the IBM MQ Channel",
          "title": "IBM MQ Channel",
          "type": "string"
        },
        "clientId": {
          "description": "Name of the IBM MQ Client ID",
          "title": "IBM MQ Client ID",
          "type": "string"
        },
        "destinationName": {
          "description": "The destination name",
          "title": "Destination Name",
          "type": "string"
        },
        "destinationType": {
          "default": "queue",
          "description": "The JMS destination type (queue or topic)",
          "title": "Destination Type",
          "type": "string"
        },
        "password": {
          "description": "Password to authenticate to IBM MQ server",
          "format": "password",
          "title": "Password",
          "type": "string",
          "x-descriptors": [
            "urn:alm:descriptor:com.tectonic.ui:password",
            "urn:camel:group:credentials"
          ]
        },
        "queueManager": {
          "description": "Name of the IBM MQ Queue Manager",
          "title": "IBM MQ Queue Manager",
          "type": "string"
        },
        "serverName": {
          "description": "IBM MQ Server name or address",
          "title": "IBM MQ Server name",
          "type": "string"
        },
        "serverPort": {
          "default": 1414,
          "description": "IBM MQ Server port",
          "title": "IBM MQ Server Port",
          "type": "integer"
        },
        "username": {
          "description": "Username to authenticate to IBM MQ server",
          "title": "Username",
          "type": "string"
        }
      }
      

      where destinationType has a default value "queue" and serverPort has a default value 1414.

      When I use kamel bind without those two parameters (as I expect the default values will be used), it fails with:

      kamel bind channel:mychannel jms-ibm-mq-sink -p "sink.serverName=ibm-mq-server" -p "sink.destinationName=DEV.QUEUE.1" -p "sink.queueManager=QM1" -p "sink.channel=DEV.APP.SRVCONN" -p "sink.username=app" -p "sink.password=ibmmqpasswd"
      
      Error: binding is missing required property "serverPort" for Kamelet "jms-ibm-mq-sink"
      

      So I supply also the serverPort (the destinationType is still missing):

      kamel bind channel:mychannel jms-ibm-mq-sink -p "sink.serverName=ibm-mq-server" -p "sink.destinationName=DEV.QUEUE.1" -p "sink.queueManager=QM1" -p "sink.channel=DEV.APP.SRVCONN" -p "sink.username=app" -p "sink.password=ibmmqpasswd" -p "sink.serverPort=1414"
      kamelet binding "mychannel-to-jms-ibm-mq-sink" created
      

      From the user's POV it seems strange that the default value works for one parameter and doesn't work for other (maybe because one is a string and one an int? or something else?)

            Unassigned Unassigned
            avano@redhat.com Andrej Vano
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: