Skip to content
Snippets Groups Projects

Add Transfer Tab to conditionally render in CE

What does this MR do and why?

This implements Add Transfer tab/app to conditionally render in CE (#393443 - closed)

  • This piece is under usage_quotas_for_all_editions Feature Flag.
  • The Transfer Tab is under data_transfer_monitoring Feature Flag.

Now that we finished with #440195 (closed), i.e. after we merge !143633 (merged) and !143637 (merged), we're now able to migrate other tabs. The migration here is simpler because we just need to conditionally render this tab.

In other words: This tab will be hooked to an App that is in CE but will only render in EE.

MR acceptance checklist

Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Screenshots or screen recordings

usage_quotas_for_all_editions off usage_quotas_for_all_editions on
uq-transfers-before uq-transfers-after

How to set up and validate locally

Enable Transfer Tab

  1. Enable the data_transfer_monitoring feature flag
    • bin/rails console
    • Feature.enable(:data_transfer_monitoring)
  2. Seed the data
    • Open the console bin/rails console
    • Go to https://gitlab.com/-/snippets/2522604
    • Copy the class code and paste it in the console
    • Find a group with some projects in it and make note of the group id (displayed on the overview page)
    • Run PopulateDataTransfer.run(<group_id>) in the console; e.g. PopulateDataTransfer.run(89)
    • Press q then type exit to get back to the normal command prompt
  3. Navigate to your group -> Settings -> Usage quotas
  4. Click on the Transfer tab

The expected behavior

We need to validate this in 4 scenarios:

  1. GitLab EE Unlicensed: this is probably how your GDK is right now. If you have a license in your GDK, remove it in https://gdk.test:3443/admin/subscription
  2. GitLab EE: by having a test license in your GDK.
  3. GitLab SaaS: setup a license like the above and simulate SaaS
  4. GitLab CE: by executing
    1. export FOSS_ONLY=1
    2. gdk restart
    3. Tanuki gdk website icon (the one in the browser tab) should be blue, then you're in CE

Now go to your Group Usage Quotas: https://gdk.test:3443/groups/<your-group-here>/-/usage_quotas and check if your local setup matches the expected behavior.

  • To enable the FF: Feature.enable(:usage_quotas_for_all_editions)
  • To disable the FF: Feature.disable(:usage_quotas_for_all_editions)

Expected behavior:

GitLab Distribution Expected behavior FF off Expected behavior FF on
GitLab EE Unlicensed Renders a 404 page Renders the Transfer tab alongside the others
GitLab EE Loads the page normally Renders the Transfer tab alongside the others
GitLab SaaS Page loads normally Renders the Transfer tab alongside the others
GitLab CE Renders a 404 page Renders only the storage tab
Edited by Sheldon Led

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
    • Author Maintainer
      Resolved by Jose Ivan Vargas

      @aalakkad can you give this an initial review, please?

      Same as before, I removed the backend review because we're just doing a small change in a haml file, so I don't believe we need the extra review cycles.

      /cc @kpalchyk just so you're in the loop, and also if you want to give any suggestions that didn't make into !144971 (merged) and !145006 (merged).

      After we're finished with the initial review, please pass it on to @jivanvl for maintainer review

      Thanks in advance.

  • Sheldon Led requested review from @aalakkad

    requested review from @aalakkad

  • Contributor

    Quarantined Fulfillment QA E2E Tests

    The following Fulfillment QA E2E tests are in quarantine. If your changes would be covered by these tests, please be sure to perform manual testing.

    Description Location
    Fulfillment without active subscription behaves like Purchase storage adds additional storage to group namespace ./qa/specs/features/ee/browser_ui/11_fulfillment/purchase/purchase_storage_spec.rb[1:1:1:1]
    Fulfillment with an active subscription behaves like Purchase storage adds additional storage to group namespace ./qa/specs/features/ee/browser_ui/11_fulfillment/purchase/purchase_storage_spec.rb[1:2:1:1]
    Fulfillment with existing compute minutes packs behaves like Purchase storage adds additional storage to group namespace ./qa/specs/features/ee/browser_ui/11_fulfillment/purchase/purchase_storage_spec.rb[1:3:1:1]
    Fulfillment Utilization when admin sets user cap limit for group shows members over limit as pending for approvals ./qa/specs/features/ee/browser_ui/11_fulfillment/utilization/saas_user_caps_spec.rb[1:1:1:1]
  • Kos Palchyk
  • Kos Palchyk
  • removed backend label

  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Please register or sign in to reply
    Loading