Harbor配置同步规则删除不掉

【问题原因】

harbor上主从两个仓库,配置同步规则时,定时任务配置太频繁,导致规则修改,删除都失败。

【问题现象】

点击修改后保存,页面报internal server error的错。

Harbor配置同步规则删除不掉_第1张图片

【问题排查】

docker ps | grep harbor

查看docker日志,日志中也没有报错。

从页面删除任务失败,是因为里面有“InProgress”的任务,后面需要手动更改sql,update

1.查找有问题的规则的id

http://ip:port/api/v2.0/replication/policies

在查出的内容中,搜索 有问题的规则名称  ,找到其id 

2.http://ip:port/api/v2.0/replication/executions?policy_id=1

在查出的内容中,搜索  InProgress  找出类型是InProgress的id值。

3.删除有问题的任务

docker exec -it harbor-db bash

psql -U postgres

\c registry

\d replication_execution

实例操作:

# docker exec -it harbor-db bash
postgres [ / ]$ psql -U postgres
psql (9.6.14)
Type "help" for help.

postgres=# \c registry
You are now connected to database "registry" as user "postgres".
registry=# \d replication_execution
                                      Table "public.replication_execution"
   Column    |            Type             |                             Modifiers                              
-------------+-----------------------------+--------------------------------------------------------------------
 id          | integer                     | not null default nextval('replication_execution_id_seq'::regclass)
 policy_id   | integer                     | not null
 status      | character varying(32)       | 
 status_text | text                        | 
 total       | integer                     | not null default 0
 failed      | integer                     | not null default 0
 succeed     | integer                     | not null default 0
 in_progress | integer                     | not null default 0
 stopped     | integer                     | not null default 0
 trigger     | character varying(64)       | 
 start_time  | timestamp without time zone | default now()
 end_time    | timestamp without time zone | 
Indexes:
    "replication_execution_pkey" PRIMARY KEY, btree (id)
    "execution_policy" btree (policy_id)

registry=# 

查询表  replication_execution

# select * from replication_execution;
 id | policy_id | status | status_text | total | failed | succeed | in_progress | stopped | trigger | start_time | end_time 
----+-----------+--------+-------------+-------+--------+---------+-------------+---------+---------+------------+----------

需要注意的是,查询的sql末尾是有;的。因为之前没加; 语句没结束,没有返回,一直以为是表中是空值。

4.update  replication_execution表。

将有问题的任务,status更新为f  , 在语句中,status='f',用引号给括起来。

5.再在harbor的页面上操作,修改和删除任务,都正常。

 

你可能感兴趣的:(docker,harbor)