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

Only lowercase letters and numbers allowed for Data Virtualization connection

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Blocker Blocker
    • fuse-7.4-GA
    • fuse-7.4-GA
    • Data Integration
    • None
    • % %

      The various components involved in turning a Syndesis connection into a data virtualization have mismatched rules for what's a valid name, resulting in only lowercase letters and numbers being valid.

      Generic steps to reproduce:
      1. Create a connection
      2. On the Data tab, create a new Data Virtualization
      3. Click Import Data Source
      4. Select any table from the data source
      5. Publish the Data Virtualization

      1. Connection name: PostgresDB

      (this is the default connection that's created when deploying Syndesis)

      The Data Virtualization can be created and built, but the vdb pod fails to start with the following message:

      ***************************
      APPLICATION FAILED TO START
      ***************************
      Description:
      Configuration property name 'spring.datasource.PostgresDB' is not valid:
          Invalid characters: 'P', 'D', 'B'
          Bean: servletEndpointRegistrar
          Reason: Canonical names should be kebab-case ('-' separated), lowercase alpha-numeric characters and must start with a letter
      Action:
      Modify 'spring.datasource.PostgresDB' so that it conforms to the canonical names requirements.
      

      2. Connection name: postgres-db

      this is what the above error message suggests, however, when trying import the data source into a Data Virtualization, an error popup is show, with the browser console revealing the following message:

      {"error":"DDL Parsing encountered unknown statement:\n-db_smallb (RowId long PRIMARY KEY,  <...> FROM postgres-dbschemamodel.smallb;"}
      

      The reason seems to be that postgres-db_smallb is not a valid Teiid table name (or needs to be quoted).

      3. Connection name: postgres_db

      just for good measure, I tried also snake_case name, expecting the same result as with CamelCase, however, I got a different error when starting up the pod:

      ***************************
      APPLICATION FAILED TO START
      ***************************
      Description:
      The bean 'dataSource', defined in class path resource [org/teiid/spring/autoconfigure/TeiidAutoConfiguration.class], could not be registered. A bean with that name has already been defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Tomcat.class] and overriding is disabled.
      Action:
      Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true
      

      Not sure what to make of this one, could be a different issue, will need to investigate more.

              rhn-engineering-rareddy Ramesh Reddy
              asmigala@redhat.com Andrej Smigala
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: