Uploaded image for project: 'Tools (JBoss Tools)'
  1. Tools (JBoss Tools)
  2. JBIDE-14744

Allow users to choose from quickstarts/templates when creatingApplication wizard: new application

    XMLWordPrintable

    Details

      Description

      The web ui offers a large set of quickstarts/templates:

      in a mail from clayton on the 4th of june:

      For QuickStarts, brokers may choose to

      a) enable community quickstarts
      (the URL you saw below, set by COMMUNITY_QUICKSTART_URL being a URL in /etc/openshift/broker.conf)
      b) enable their own list of quickstarts
      (a different url, /broker/rest/quickstarts, configured from /etc/openshift/quickstarts.json)
      c) disable the quickstarts link
      (delete /etc/openshift/quickstarts.json)

      To correctly fetch the quickstarts for a server, retrieve the API document

      /broker/rest/api

      and look for the LIST_QUICKSTARTS link. If it is present, you may retrieve quickstarts. If it is absent, you should assume there are no quickstarts.

      Retrieving the list of quickstarts, unlike other REST API feed calls, is very specific:

      • API versioning is not supported
      • Only JSON is supported
      • The body of the response is slightly different than standard REST API feed results
      • If you encounter a parse error or an unexpected data value you are required to handle it gracefully by omitting the entry - the API may change without warning (although hopefully not)

      The format of the JSON response (in either a) or b) above) is:

      {
        data: [
          quickstart: {
            id: "<string id>",
            href: "<absolute URL to a display URL for the quickstart>",
            name: "<name>",
            updated: "<last update date in seconds from the epoch>",
            summary: "<brief HTML body of the item>",
            body: "<full HTML body of the item>",
            cartridges: "<cartridge spec>",
            website: "<URL of metadata about the source of the quickstart or the technology>",
            tags: "<comma delimited list of tags>",
            language: "<display name of the type of quickstart>",
            initial_git_url: "<absolute URL or Git reference to source>",
            provider: "openshift|reviewed|partner|community", # default is community
          },
        ]
      }
      

      You should assume that arbitrary content could be injected into any of these fields and defend yourself against XSS appropriately. You should also assume that the structure could be changed at any time.

      Cartridge spec:

      The cartridge spec is defined as either:

      a) a comma delimited list of cartridge name search conditions
      b) a string containing a JSON array

      If the leading character of the cartridge spec is '[', you must convert the cartridge spec to JSON and submit the value provided to the server on creation as the "cartridges" field.

      Otherwise,
      1) split the string by "," into "segments"
      2) trim whitespace from each segment
      3) split each segment by "|" into "matches" - these represent logical ORs
      4) strip leading and trailing "*" characters
      5) For each segment, return all cartridges that have a case-insensitive substring match on any of the "matches" in that segment for the user to select.

      See https://github.com/openshift/origin-server/blob/77e1d3a6476ecb9dad5be6dea80abf34ea8f6269/console/app/models/application_type.rb#L62
      and https://github.com/openshift/origin-server/blob/77e1d3a6476ecb9dad5be6dea80abf34ea8f6269/console/app/models/application_type.rb#L173

        Gliffy Diagrams

          Balsamiq Wireframes

            Attachments

            1. 2014-01-22 17.16.bmml
              45 kB
            2. 2014-01-22 17.16.bmml
              45 kB
            3. 2014-01-22 17.16.bmml
              26 kB
            4. 2014-01-22 17.16.bmml
              31 kB
            5. 2014-01-22 17.16.bmml
              31 kB
            6. 2014-01-22 17.16.bmml
              25 kB
            7. 2014-01-22 17.16.bmml
              25 kB
            8. 2014-01-22 17.16.bmml
              24 kB
            9. 2014-01-22 17.16.bmml
              12 kB
            10. 2014-01-22 17.16.png
              2014-01-22 17.16.png
              351 kB
            11. alternative-cartridges.png
              alternative-cartridges.png
              11 kB
            12. crobson_2014-01-28 16.11.bmml
              9 kB
            13. crobson_2014-01-28 16.11.bmml
              9 kB
            14. crobson_2014-01-28 16.11.png
              crobson_2014-01-28 16.11.png
              78 kB
            15. openshift-quickstart.png
              openshift-quickstart.png
              67 kB
            16. out.ogv
              6.11 MB
            17. promoted-quickstarts.json
              16 kB
            18. quickstarts.json
              142 kB

              Issue Links

                Activity

                  People

                  • Assignee:
                    adietish André Dietisheim
                    Reporter:
                    adietish André Dietisheim
                  • Votes:
                    0 Vote for this issue
                    Watchers:
                    6 Start watching this issue

                    Dates

                    • Created:
                      Updated:
                      Resolved: