Runner model can return `locked` only when its type is `project`
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:
- List of Runners on the
admin
page - 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
After
Does this MR meet the acceptance criteria?
Conformity
-
I have included a changelog entry, or it's not needed. (Does this MR need a changelog?) -
I have added/updated documentation, or it's not needed. (Is documentation required?) -
I have properly separated EE content from FOSS, or this MR is FOSS only. (Where should EE code go?) -
I have added information for database reviewers in the MR description, or it's not needed. (Does this MR have database related changes?) -
I have self-reviewed this MR per code review guidelines. -
This MR does not harm performance, or I have asked a reviewer to help assess the performance impact. (Merge request performance guidelines) -
I have followed the style guides.
Availability and Testing
-
I have added/updated tests following the Testing Guide, or it's not needed. (Consider all test levels. See the Test Planning Process.) -
I have tested this MR in all supported browsers, or it's not needed. -
I have informed the Infrastructure department of a default or new setting change per definition of done, or it's not needed.
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