Uploaded image for project: 'SonarQube'
  1. SonarQube
  2. SONAR-11310

Add main component support in Compute Engine

    XMLWordPrintable

    Details

    • Type: Task
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 7.4
    • Component/s: Compute Engine
    • Labels:
    • Edition:
      Community
    • Production Notes:
      Hide
      3 BlueGreen deployments are required to deploy this ticket
      (with 5 deployments, we could have achieved instantaneous rollback but the cost of 5 deployments far exceeds the risk to have to rollback -- it never happened so far)

      1. add tmp columns & drop usage of columns to be replaced => 7.4.0.18036
      2. - once blue is down, call api/system/migrate_data as root
      3. add target columns & drop usage of tmp columns => 7.4.0.18307
      4. - once blue is down, call api/system/migrate_data as root
      5 - drop tmp columns => 7.4.0.18060 (or later)
      Show
      3 BlueGreen deployments are required to deploy this ticket (with 5 deployments, we could have achieved instantaneous rollback but the cost of 5 deployments far exceeds the risk to have to rollback -- it never happened so far) 1. add tmp columns & drop usage of columns to be replaced => 7.4.0.18036 2. - once blue is down, call api/system/migrate_data as root 3. add target columns & drop usage of tmp columns => 7.4.0.18307 4. - once blue is down, call api/system/migrate_data as root 5 - drop tmp columns => 7.4.0.18060 (or later)

      Description

      Why

      Tasks may be associated to branches/PRs of projects, of branches of Application.

      However, this information is not directly available in tables storing Compute Engine tasks and this is causing some bugs (see SONAR-10642) and prevents to efficiently query the latest task of a specific branch/PR (see MMF-1244).

      What

      Task must be linked to both the component it belongs to (a main branch, a PR, a short/long branch, a portfolio, an application, a branch of an application) and to the main component of that component.
      In case of a main branch, an application and a portfolio, the main component and the component are the same.

      How

      Table CE_QUEUE

      • column COMPONENT_UUID (data must be fixed) must contain the UUID of the component
      • column MAIN_COMPONENT_UUID (new column) must contain the UUID of the main component

      Table CE_ACTIVITY

      • column COMPONENT_UUID (data must be fixed) must contain the UUID of the component
      • column MAIN_COMPONENT_UUID (new column) must contain the UUID of the main component
      • column IS_LAST (data must be fixed) must indicate whether the current task if the lastest for the component
      • column IS_LAST_KEY (data must be fixed) must be fast access column for the component
      • column MAIN_IS_LAST (new column) must indicate whether the current task if the lastest for the main component
      • column MAIN_IS_LAST_KEY (new column) must be fast access column for the main component

      Those DB changes must be implemented in such a way that no downtime is required on Next nor SonarCloud, therefor must be compatible with BlueGreen deployment.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              sebastien.lesaint Sebastien Lesaint
              Reporter:
              sebastien.lesaint Sebastien Lesaint
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Dates

                Due:
                Created:
                Updated:
                Resolved: