mirror of
https://github.com/goharbor/harbor.git
synced 2024-11-25 19:56:09 +01:00
Add worker parameter for GC (#18882)
1. Related back-end PR #18855 Signed-off-by: AllForNothing <sshijun@vmware.com>
This commit is contained in:
parent
ef96c729c0
commit
1d2624eefc
@ -20,3 +20,5 @@ export const YES: string = 'TAG_RETENTION.YES';
|
||||
export const NO: string = 'TAG_RETENTION.NO';
|
||||
|
||||
export const REFRESH_STATUS_TIME_DIFFERENCE: number = 5000;
|
||||
|
||||
export const WORKER_OPTIONS: number[] = [1, 2, 3, 4, 5];
|
||||
|
@ -50,6 +50,37 @@
|
||||
[originCron]="originCron"
|
||||
(inputvalue)="saveGcSchedule($event)"></cron-selection>
|
||||
</div>
|
||||
<div class="clr-row mb-1">
|
||||
<div class="clr-col-2 flex-200 font-style">
|
||||
{{ 'JOB_SERVICE_DASHBOARD.WORKERS' | translate
|
||||
}}<clr-tooltip>
|
||||
<clr-icon
|
||||
clrTooltipTrigger
|
||||
shape="info-circle"
|
||||
size="24"></clr-icon>
|
||||
<clr-tooltip-content
|
||||
clrPosition="top-right"
|
||||
clrSize="lg"
|
||||
*clrIfOpen>
|
||||
<span>{{ 'GC.WORKERS_TOOLTIP' | translate }}</span>
|
||||
</clr-tooltip-content>
|
||||
</clr-tooltip>
|
||||
</div>
|
||||
<div class="clr-col">
|
||||
<div class="clr-select-wrapper">
|
||||
<select
|
||||
id="workers"
|
||||
class="clr-select worker-select"
|
||||
[(ngModel)]="workerNum">
|
||||
<option
|
||||
*ngFor="let item of workerOptions"
|
||||
value="{{ item }}">
|
||||
{{ item }}
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clr-row">
|
||||
<div class="clr-col-2 flex-200"></div>
|
||||
<div class="clr-col">
|
||||
|
@ -35,3 +35,7 @@
|
||||
padding-left: .6rem;
|
||||
padding-right: .6rem;
|
||||
}
|
||||
|
||||
.worker-select {
|
||||
width: 4.5rem;
|
||||
}
|
||||
|
@ -10,7 +10,9 @@ import { GcHistoryComponent } from './gc-history/gc-history.component';
|
||||
import {
|
||||
JOB_STATUS,
|
||||
REFRESH_STATUS_TIME_DIFFERENCE,
|
||||
WORKER_OPTIONS,
|
||||
} from '../../clearing-job-interfact';
|
||||
import { clone } from '../../../../../shared/units/utils';
|
||||
|
||||
const ONE_MINUTE = 60000;
|
||||
|
||||
@ -27,6 +29,8 @@ export class GcComponent implements OnInit, OnDestroy {
|
||||
@ViewChild(CronScheduleComponent)
|
||||
cronScheduleComponent: CronScheduleComponent;
|
||||
shouldDeleteUntagged: boolean;
|
||||
workerNum: number = 1;
|
||||
workerOptions: number[] = clone(WORKER_OPTIONS);
|
||||
dryRunOnGoing: boolean = false;
|
||||
|
||||
lastCompletedTime: string;
|
||||
@ -116,8 +120,10 @@ export class GcComponent implements OnInit, OnDestroy {
|
||||
this.shouldDeleteUntagged = JSON.parse(
|
||||
gcHistory.job_parameters
|
||||
).delete_untagged;
|
||||
this.workerNum = +JSON.parse(gcHistory.job_parameters).workers;
|
||||
} else {
|
||||
this.shouldDeleteUntagged = false;
|
||||
this.workerNum = 1;
|
||||
}
|
||||
}
|
||||
|
||||
@ -132,6 +138,7 @@ export class GcComponent implements OnInit, OnDestroy {
|
||||
schedule: {
|
||||
parameters: {
|
||||
delete_untagged: this.shouldDeleteUntagged,
|
||||
workers: +this.workerNum,
|
||||
dry_run: false,
|
||||
},
|
||||
schedule: {
|
||||
@ -157,6 +164,7 @@ export class GcComponent implements OnInit, OnDestroy {
|
||||
schedule: {
|
||||
parameters: {
|
||||
delete_untagged: this.shouldDeleteUntagged,
|
||||
workers: +this.workerNum,
|
||||
dry_run: true,
|
||||
},
|
||||
schedule: {
|
||||
@ -188,6 +196,7 @@ export class GcComponent implements OnInit, OnDestroy {
|
||||
schedule: {
|
||||
parameters: {
|
||||
delete_untagged: this.shouldDeleteUntagged,
|
||||
workers: +this.workerNum,
|
||||
dry_run: false,
|
||||
},
|
||||
schedule: {
|
||||
@ -212,6 +221,7 @@ export class GcComponent implements OnInit, OnDestroy {
|
||||
schedule: {
|
||||
parameters: {
|
||||
delete_untagged: this.shouldDeleteUntagged,
|
||||
workers: +this.workerNum,
|
||||
dry_run: false,
|
||||
},
|
||||
schedule: {
|
||||
|
@ -1236,7 +1236,8 @@
|
||||
"DELETE_BLOB_AND_MANIFEST": "{{blob}} blob(s) and {{manifest}} manifest(s) deleted",
|
||||
"DELETE_BLOB": "{{blob}} blob(s) deleted",
|
||||
"DELETE_MANIFEST": "{{manifest}} manifest(s) deleted",
|
||||
"FREE_UP_SIZE": "{{size}} space freed up"
|
||||
"FREE_UP_SIZE": "{{size}} space freed up",
|
||||
"WORKERS_TOOLTIP": "Set the number of workers that can execute GC tasks in parallel, the default value is 1."
|
||||
},
|
||||
"RETAG": {
|
||||
"MSG_SUCCESS": "Artefakt erfolgreich kopiert",
|
||||
|
@ -1237,7 +1237,8 @@
|
||||
"DELETE_BLOB_AND_MANIFEST": "{{blob}} blob(s) and {{manifest}} manifest(s) deleted",
|
||||
"DELETE_BLOB": "{{blob}} blob(s) deleted",
|
||||
"DELETE_MANIFEST": "{{manifest}} manifest(s) deleted",
|
||||
"FREE_UP_SIZE": "{{size}} space freed up"
|
||||
"FREE_UP_SIZE": "{{size}} space freed up",
|
||||
"WORKERS_TOOLTIP": "Set the number of workers that can execute GC tasks in parallel, the default value is 1."
|
||||
},
|
||||
"RETAG": {
|
||||
"MSG_SUCCESS": "Copy artifact successfully",
|
||||
|
@ -1233,7 +1233,8 @@
|
||||
"DELETE_BLOB_AND_MANIFEST": "{{blob}} blob(s) and {{manifest}} manifest(s) deleted",
|
||||
"DELETE_BLOB": "{{blob}} blob(s) deleted",
|
||||
"DELETE_MANIFEST": "{{manifest}} manifest(s) deleted",
|
||||
"FREE_UP_SIZE": "{{size}} space freed up"
|
||||
"FREE_UP_SIZE": "{{size}} space freed up",
|
||||
"WORKERS_TOOLTIP": "Set the number of workers that can execute GC tasks in parallel, the default value is 1."
|
||||
},
|
||||
"RETAG": {
|
||||
"MSG_SUCCESS": "Copy artifact successfully",
|
||||
|
@ -1203,7 +1203,8 @@
|
||||
"DELETE_BLOB_AND_MANIFEST": "{{blob}} blob(s) and {{manifest}} manifest(s) deleted",
|
||||
"DELETE_BLOB": "{{blob}} blob(s) deleted",
|
||||
"DELETE_MANIFEST": "{{manifest}} manifest(s) deleted",
|
||||
"FREE_UP_SIZE": "{{size}} space freed up"
|
||||
"FREE_UP_SIZE": "{{size}} space freed up",
|
||||
"WORKERS_TOOLTIP": "Set the number of workers that can execute GC tasks in parallel, the default value is 1."
|
||||
},
|
||||
"RETAG": {
|
||||
"MSG_SUCCESS": "Artefact copié",
|
||||
|
@ -1233,7 +1233,8 @@
|
||||
"DELETE_BLOB_AND_MANIFEST": "{{blob}} blob(s) and {{manifest}} manifest(s) deleted",
|
||||
"DELETE_BLOB": "{{blob}} blob(s) deleted",
|
||||
"DELETE_MANIFEST": "{{manifest}} manifest(s) deleted",
|
||||
"FREE_UP_SIZE": "{{size}} space freed up"
|
||||
"FREE_UP_SIZE": "{{size}} space freed up",
|
||||
"WORKERS_TOOLTIP": "Set the number of workers that can execute GC tasks in parallel, the default value is 1."
|
||||
},
|
||||
"RETAG": {
|
||||
"MSG_SUCCESS": "Artefato copiado com sucesso",
|
||||
|
@ -1236,7 +1236,8 @@
|
||||
"DELETE_BLOB_AND_MANIFEST": "{{blob}} blob(s) and {{manifest}} manifest(s) deleted",
|
||||
"DELETE_BLOB": "{{blob}} blob(s) deleted",
|
||||
"DELETE_MANIFEST": "{{manifest}} manifest(s) deleted",
|
||||
"FREE_UP_SIZE": "{{size}} space freed up"
|
||||
"FREE_UP_SIZE": "{{size}} space freed up",
|
||||
"WORKERS_TOOLTIP": "Set the number of workers that can execute GC tasks in parallel, the default value is 1."
|
||||
},
|
||||
"RETAG": {
|
||||
"MSG_SUCCESS": "Copy artifact successfully",
|
||||
|
@ -1233,7 +1233,8 @@
|
||||
"DELETE_BLOB_AND_MANIFEST": "{{blob}}个 blob(s) 和 {{manifest}}个 manifest(s) 已删除",
|
||||
"DELETE_BLOB": "{{blob}}个 blob(s) 已删除",
|
||||
"DELETE_MANIFEST": "{{manifest}}个 manifest(s) 已删除",
|
||||
"FREE_UP_SIZE": "{{size}}的空间已清理"
|
||||
"FREE_UP_SIZE": "{{size}}的空间已清理",
|
||||
"WORKERS_TOOLTIP": "设置可并行执行垃圾回收任务的工作者数量,默认值为1。"
|
||||
},
|
||||
"RETAG": {
|
||||
"MSG_SUCCESS": "Artifact 拷贝成功",
|
||||
|
@ -1225,7 +1225,8 @@
|
||||
"DELETE_BLOB_AND_MANIFEST": "{{blob}} blob(s) and {{manifest}} manifest(s) deleted",
|
||||
"DELETE_BLOB": "{{blob}} blob(s) deleted",
|
||||
"DELETE_MANIFEST": "{{manifest}} manifest(s) deleted",
|
||||
"FREE_UP_SIZE": "{{size}} space freed up"
|
||||
"FREE_UP_SIZE": "{{size}} space freed up",
|
||||
"WORKERS_TOOLTIP": "Set the number of workers that can execute GC tasks in parallel, the default value is 1."
|
||||
},
|
||||
"RETAG": {
|
||||
"MSG_SUCCESS": "Artifact 複製成功",
|
||||
|
Loading…
Reference in New Issue
Block a user