Skip to content

Runner model can return `locked` only when its type is `project`

Nourdin el Bacha requested to merge conditionally-render-locked-badge into master

What does this MR do?

Note:
This MR initially set out to make changes in the frontend with changes to haml files. Since then, I have reverted these changes. Currently I'm making the change through the backend instead.

This MR makes changes to the backed for the runner model, which affects the UI on the following two sections:

  1. List of Runners on the admin page
  2. List of Runners on a group's settings page

Currently, these pages will render a locked badge if a Runner is locked.
After this is merged, the Runner can only be locked when it is of type project. As a result, this will never render the locked badge when the Runner is of type instance or group.

Relates to Group Runner UI missing toggle for locked #271260 (closed)

Closes #331507 (closed)

Screenshots (strongly suggested)

The following screenshots demonstrate the difference for 6 registered runners.
The description of these 6 Runners have the following naming convention:

reg-(instance|group|project)-locked-(true|false)

As such, the description of a runner reflects how the Runners were registered.

To better understand how these runner's came to be, you can expand this sentence to see how they were registered.
docker exec -ti gdk-runner gitlab-runner register --non-interactive --executor "shell" \
  --url "http://gdk.test:3000" --registration-token "<instance-token>" --tag-list "tag" \
  --locked="false" --description "reg-instance-locked-false"

docker exec -ti gdk-runner gitlab-runner register --non-interactive --executor "shell" \
  --url "http://gdk.test:3000" --registration-token "<instance-token>" --tag-list "tag" \
  --locked="true" --description "reg-instance-locked-true"

docker exec -ti gdk-runner gitlab-runner register --non-interactive --executor "shell" \
  --url "http://gdk.test:3000" --registration-token "<group-token>" --tag-list "tag" \
  --locked="false" --description "reg-group-locked-false"

docker exec -ti gdk-runner gitlab-runner register --non-interactive --executor "shell" \
  --url "http://gdk.test:3000" --registration-token "<group-token>" --tag-list "tag" \
  --locked="true" --description "reg-group-locked-true"

docker exec -ti gdk-runner gitlab-runner register --non-interactive --executor "shell" \
  --url "http://gdk.test:3000" --registration-token "<project-token>" --tag-list "tag" \
  --locked="false" --description "reg-project-locked-false"

docker exec -ti gdk-runner gitlab-runner register --non-interactive --executor "shell" \
  --url "http://gdk.test:3000" --registration-token "<project-tokenl>" --tag-list "tag" \
  --locked="true" --description "reg-project-locked-true"

Before

image

After

image

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

Does this MR contain changes to processing or storing of credentials or tokens, authorization and authentication methods or other items described in the security review guidelines? If not, then delete this Security section.

  • Label as security and @ mention @gitlab-com/gl-security/appsec
  • The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • Security reports checked/validated by a reviewer from the AppSec team

/labels Category:Runner UX ~bug devopsverify grouprunner frontend Support Team Contributions

Edited by Nourdin el Bacha

Merge request reports