- 새 Geo 사이트 생성
- 모든 Geo 사이트에 대한 구성 검색
- 특정 Geo 사이트에 대한 구성 검색
- Geo 사이트 편집
- Geo 사이트 삭제
- Geo 사이트 수정
- 모든 Geo 사이트에 대한 상태 가져오기
- 현재 사이트에서 발생한 프로젝트 동기화 또는 확인 실패 사례 검색
Geo 사이트 API
Tier: Premium, Ultimate
Offering: Self-managed
Geo 사이트 API를 사용하여 Geo 사이트 엔드포인트를 관리합니다.
필수 사항:
- 관리자여야 합니다.
새 Geo 사이트 생성
새 Geo 사이트를 생성합니다.
POST /geo_sites
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://primary.example.com/api/v4/geo_sites" \
--request POST \
-d "name=himynameissomething" \
-d "url=https://another-node.example.com/"
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
primary
| boolean | no | 이 사이트를 기본 사이트로 설정할지 여부를 지정합니다. 기본값은 false입니다. |
enabled
| boolean | no | Geo 사이트가 활성화되어 있는지 나타내는 플래그입니다. 기본값은 true입니다. |
name
| string | yes | Geo 사이트의 고유 식별자입니다. gitlab.rb 에서 geo_node_name 으로 설정된 경우 해당 식별자와 일치해야 하며, 그렇지 않은 경우 external_url 과 일치해야 합니다.
|
url
| string | yes | Geo 사이트의 사용자 대상 URL입니다. |
internal_url
| string | no | 이 보조 사이트가 연락을 취하기 위해 기본 사이트에서 정의한 URL입니다. 설정되지 않으면 url 이 변환됩니다.
|
files_max_capacity
| integer | no | 이 보조 사이트의 LFS/첨부 파일 backfill의 최대 동시성을 제어합니다. 기본값은 10입니다. |
repos_max_capacity
| integer | no | 이 보조 사이트의 리포지터리 backfill의 최대 동시성을 제어합니다. 기본값은 25입니다. |
verification_max_capacity
| integer | no | 이 사이트의 리포지터리 검증의 최대 동시성을 제어합니다. 기본값은 100입니다. |
container_repositories_max_capacity
| integer | no | 이 사이트의 컨테이너 리포지터리 동기화의 최대 동시성을 제어합니다. 기본값은 10입니다. |
sync_object_storage
| boolean | no | 보조 Geo 사이트가 Object Storage에 대한 blob을 복제해야 하는지 여부를 나타내는 플래그입니다. 기본값은 false입니다. |
selective_sync_type
| string | no | 특정 그룹 또는 샤드에 대해서만 동기화를 제한합니다. 유효한 값: "namespaces" , "shards" , 또는 null .
|
selective_sync_shards
| array | no |
selective_sync_type == shards 인 경우 프로젝트 동기화를 위한 리포지터리 스토리지입니다.
|
selective_sync_namespace_ids
| array | no |
selective_sync_type == namespaces 인 경우 동기화되어야 하는 그룹의 ID입니다.
|
minimum_reverification_interval
| integer | no | 리포지터리 검증이 유효한 간격(일)입니다. 만료되면 검증이 다시 수행됩니다. 이는 보조 사이트에 설정된 경우 영향을 미치지 않습니다. |
예시 응답:
{
"id": 3,
"name": "Test Site 1",
"url": "https://secondary.example.com/",
"internal_url": "https://secondary.example.com/",
"primary": false,
"enabled": true,
"current": false,
"files_max_capacity": 10,
"repos_max_capacity": 25,
"verification_max_capacity": 100,
"container_repositories_max_capacity": 10,
"selective_sync_type": "namespaces",
"selective_sync_shards": [],
"selective_sync_namespace_ids": [1, 25],
"minimum_reverification_interval": 7,
"sync_object_storage": false,
"web_edit_url": "https://primary.example.com/admin/geo/sites/3/edit",
"web_geo_replication_details_url": "https://secondary.example.com/admin/geo/sites/3/replication/lfs_objects",
"_links": {
"self": "https://primary.example.com/api/v4/geo_sites/3",
"status": "https://primary.example.com/api/v4/geo_sites/3/status",
"repair": "https://primary.example.com/api/v4/geo_sites/3/repair"
}
}
모든 Geo 사이트에 대한 구성 검색
GET /geo_sites
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://primary.example.com/api/v4/geo_sites"
예시 응답:
[
{
"id": 1,
"name": "us-site",
"url": "https://primary.example.com/",
"internal_url": "https://internal.example.com/",
"primary": true,
"enabled": true,
"current": true,
"files_max_capacity": 10,
"repos_max_capacity": 25,
"verification_max_capacity": 100,
"container_repositories_max_capacity": 10,
"selective_sync_type": "namespaces",
"selective_sync_shards": [],
"selective_sync_namespace_ids": [1, 25],
"minimum_reverification_interval": 7,
"web_edit_url": "https://primary.example.com/admin/geo/sites/1/edit",
"_links": {
"self": "https://primary.example.com/api/v4/geo_sites/1",
"status":"https://primary.example.com/api/v4/geo_sites/1/status",
"repair":"https://primary.example.com/api/v4/geo_sites/1/repair"
}
},
{
"id": 2,
"name": "cn-site",
"url": "https://secondary.example.com/",
"internal_url": "https://secondary.example.com/",
"primary": false,
"enabled": true,
"current": false,
"files_max_capacity": 10,
"repos_max_capacity": 25,
"verification_max_capacity": 100,
"container_repositories_max_capacity": 10,
"selective_sync_type": "namespaces",
"selective_sync_shards": [],
"selective_sync_namespace_ids": [1, 25],
"minimum_reverification_interval": 7,
"sync_object_storage": true,
"web_edit_url": "https://primary.example.com/admin/geo/sites/2/edit",
"web_geo_replication_details_url": "https://secondary.example.com/admin/geo/sites/2/replication/lfs_objects",
"_links": {
"self":"https://primary.example.com/api/v4/geo_sites/2",
"status":"https://primary.example.com/api/v4/geo_sites/2/status",
"repair":"https://primary.example.com/api/v4/geo_sites/2/repair"
}
}
]
특정 Geo 사이트에 대한 구성 검색
GET /geo_sites/:id
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://primary.example.com/api/v4/geo_sites/1"
예시 응답:
{
"id": 1,
"name": "us-site",
"url": "https://primary.example.com/",
"internal_url": "https://primary.example.com/",
"primary": true,
"enabled": true,
"current": true,
"files_max_capacity": 10,
"repos_max_capacity": 25,
"verification_max_capacity": 100,
"container_repositories_max_capacity": 10,
"selective_sync_type": "namespaces",
"selective_sync_shards": [],
"selective_sync_namespace_ids": [1, 25],
"minimum_reverification_interval": 7,
"web_edit_url": "https://primary.example.com/admin/geo/sites/1/edit",
"_links": {
"self": "https://primary.example.com/api/v4/geo_sites/1",
"status":"https://primary.example.com/api/v4/geo_sites/1/status",
"repair":"https://primary.example.com/api/v4/geo_sites/1/repair"
}
}
Geo 사이트 편집
기존 Geo 사이트의 설정을 업데이트합니다.
PUT /geo_sites/:id
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer | yes | Geo 사이트의 ID입니다. |
enabled
| boolean | no | Geo 사이트가 활성화되었는지를 나타내는 플래그입니다. |
name
| string | no | Geo 사이트의 고유 식별자입니다. gitlab.rb 에서 설정된 geo_node_name 과 일치해야하며, 그렇지 않으면 external_url 과 일치해야 합니다.
|
url
| string | no | Geo 사이트의 사용자용 URL입니다. |
internal_url
| string | no | 이 보조 사이트에서 기본 사이트로 연락해야 하는 URL입니다. 설정되지 않은 경우 url 을 반환합니다.
|
files_max_capacity
| integer | no | 이 보조 사이트의 LFS/첨부 파일 백필의 최대 동시성을 제어합니다. |
repos_max_capacity
| integer | no | 이 보조 사이트의 리포지터리 백필의 최대 동시성을 제어합니다. |
verification_max_capacity
| integer | no | 이 사이트의 검증 최대 동시성을 제어합니다. |
container_repositories_max_capacity
| integer | no | 컨테이너 리포지터리 싱크의 최대 동시성을 제어합니다. |
selective_sync_type
| string | no | 특정 그룹 또는 샤드만 동기화하도록 제한합니다. 유효한 값: "namespaces" , "shards" , 또는 null .
|
selective_sync_shards
| array | no |
selective_sync_type == shards 인 경우 프로젝트의 리포지터리 스토리지입니다.
|
selective_sync_namespace_ids
| array | no | 동기화해야 하는 그룹의 ID입니다. selective_sync_type == namespaces 일 때 유효합니다.
|
minimum_reverification_interval
| integer | no | 리포지터리 검증이 유효한 간격(일 단위)입니다. 만료되면 재검증됩니다. 이 값은 보조 사이트에 설정된 경우 효력이 없습니다. |
예시 응답:
{
"id": 1,
"name": "us-site",
"url": "https://primary.example.com/",
"internal_url": "https://internal.example.com/",
"primary": true,
"enabled": true,
"current": true,
"files_max_capacity": 10,
"repos_max_capacity": 25,
"verification_max_capacity": 100,
"container_repositories_max_capacity": 10,
"selective_sync_type": "namespaces",
"selective_sync_shards": [],
"selective_sync_namespace_ids": [1, 25],
"minimum_reverification_interval": 7,
"web_edit_url": "https://primary.example.com/admin/geo/sites/1/edit",
"_links": {
"self": "https://primary.example.com/api/v4/geo_sites/1",
"status": "https://primary.example.com/api/v4/geo_sites/1/status",
"repair": "https://primary.example.com/api/v4/geo_sites/1/repair"
}
}
Geo 사이트 삭제
Geo 사이트를 제거합니다.
DELETE /geo_sites/:id
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| integer | yes | Geo 사이트의 ID입니다. |
Geo 사이트 수정
기본 사이트 또는 보조 Geo 사이트 간의 OAuth 동기화 문제가 있을 때 Geo 사이트의 OAuth 인증을 복구합니다. 이 경우 다음 메시지가 표시될 수 있습니다:
There are no OAuth application defined for this Geo node.
POST /geo_sites/:id/repair
예시 응답:
{
"id": 1,
"name": "us-site",
"url": "https://primary.example.com/",
"internal_url": "https://primary.example.com/",
"primary": true,
"enabled": true,
"current": true,
"files_max_capacity": 10,
"repos_max_capacity": 25,
"verification_max_capacity": 100,
"container_repositories_max_capacity": 10,
"web_edit_url": "https://primary.example.com/admin/geo/sites/1/edit",
"_links": {
"self": "https://primary.example.com/api/v4/geo_sites/1",
"status":"https://primary.example.com/api/v4/geo_sites/1/status",
"repair":"https://primary.example.com/api/v4/geo_sites/1/repair"
}
}
모든 Geo 사이트에 대한 상태 가져오기
GET /geo_sites/status
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://primary.example.com/api/v4/geo_sites/status"
예시 응답:
[
{
"geo_node_id": 1,
"projects_count": 19,
"container_repositories_replication_enabled": null,
"lfs_objects_count": 0,
"lfs_objects_checksum_total_count": 0,
"lfs_objects_checksummed_count": 0,
"lfs_objects_checksum_failed_count": 0,
"lfs_objects_synced_count": null,
"lfs_objects_failed_count": null,
"lfs_objects_registry_count": null,
"lfs_objects_verification_total_count": null,
"lfs_objects_verified_count": null,
"lfs_objects_verification_failed_count": null,
"merge_request_diffs_count": 0,
"merge_request_diffs_checksum_total_count": 0,
"merge_request_diffs_checksummed_count": 0,
"merge_request_diffs_checksum_failed_count": 0,
"merge_request_diffs_synced_count": null,
"merge_request_diffs_failed_count": null,
"merge_request_diffs_registry_count": null,
"merge_request_diffs_verification_total_count": null,
"merge_request_diffs_verified_count": null,
"merge_request_diffs_verification_failed_count": null,
"package_files_count": 25,
"package_files_checksum_total_count": 25,
"package_files_checksummed_count": 25,
"package_files_checksum_failed_count": 0,
"package_files_synced_count": null,
"package_files_failed_count": null,
"package_files_registry_count": null,
"package_files_verification_total_count": null,
"package_files_verified_count": null,
"package_files_verification_failed_count": null,
"terraform_state_versions_count": 18,
"terraform_state_versions_checksum_total_count": 18,
"terraform_state_versions_checksummed_count": 18,
"terraform_state_versions_checksum_failed_count": 0,
"terraform_state_versions_synced_count": null,
"terraform_state_versions_failed_count": null,
"terraform_state_versions_registry_count": null,
"terraform_state_versions_verification_total_count": null,
"terraform_state_versions_verified_count": null,
"terraform_state_versions_verification_failed_count": null,
"snippet_repositories_count": 20,
"snippet_repositories_checksum_total_count": 20,
"snippet_repositories_checksummed_count": 20,
"snippet_repositories_checksum_failed_count": 0,
"snippet_repositories_synced_count": null,
"snippet_repositories_failed_count": null,
"snippet_repositories_registry_count": null,
"snippet_repositories_verification_total_count": null,
"snippet_repositories_verified_count": null,
"snippet_repositories_verification_failed_count": null,
"group_wiki_repositories_count": 0,
"group_wiki_repositories_checksum_total_count": null,
"group_wiki_repositories_checksummed_count": null,
"group_wiki_repositories_checksum_failed_count": null,
"group_wiki_repositories_synced_count": null,
"group_wiki_repositories_failed_count": null,
"group_wiki_repositories_registry_count": null,
"group_wiki_repositories_verification_total_count": null,
"group_wiki_repositories_verified_count": null,
"group_wiki_repositories_verification_failed_count": null,
"pipeline_artifacts_count": 0,
"pipeline_artifacts_checksum_total_count": 0,
"pipeline_artifacts_checksummed_count": 0,
"pipeline_artifacts_checksum_failed_count": 0,
"pipeline_artifacts_synced_count": null,
"pipeline_artifacts_failed_count": null,
"pipeline_artifacts_registry_count": null,
"pipeline_artifacts_verification_total_count": null,
"pipeline_artifacts_verified_count": null,
"pipeline_artifacts_verification_failed_count": null,
"pages_deployments_count": 0,
"pages_deployments_checksum_total_count": 0,
"pages_deployments_checksummed_count": 0,
"pages_deployments_checksum_failed_count": 0,
"pages_deployments_synced_count": null,
"pages_deployments_failed_count": null,
"pages_deployments_registry_count": null,
"pages_deployments_verification_total_count": null,
"pages_deployments_verified_count": null,
"pages_deployments_verification_failed_count": null,
"uploads_count": 51,
"uploads_checksum_total_count": 51,
"uploads_checksummed_count": 51,
"uploads_checksum_failed_count": 0,
"uploads_synced_count": null,
"uploads_failed_count": null,
"uploads_registry_count": null,
"uploads_verification_total_count": null,
"uploads_verified_count": null,
"uploads_verification_failed_count": null,
"job_artifacts_count": 205,
"job_artifacts_checksum_total_count": 205,
"job_artifacts_checksummed_count": 205,
"job_artifacts_checksum_failed_count": 0,
"job_artifacts_synced_count": null,
"job_artifacts_failed_count": null,
"job_artifacts_registry_count": null,
"job_artifacts_verification_total_count": null,
"job_artifacts_verified_count": null,
"job_artifacts_verification_failed_count": null,
"ci_secure_files_count": 0,
"ci_secure_files_checksum_total_count": 0,
"ci_secure_files_checksummed_count": 0,
"ci_secure_files_checksum_failed_count": 0,
"ci_secure_files_synced_count": null,
"ci_secure_files_failed_count": null,
"ci_secure_files_registry_count": null,
"ci_secure_files_verification_total_count": null,
"ci_secure_files_verified_count": null,
"ci_secure_files_verification_failed_count": null,
"container_repositories_count": 0,
"container_repositories_checksum_total_count": 0,
"container_repositories_checksummed_count": 0,
"container_repositories_checksum_failed_count": 0,
"container_repositories_synced_count": null,
"container_repositories_failed_count": null,
"container_repositories_registry_count": null,
"container_repositories_verification_total_count": null,
"container_repositories_verified_count": null,
"container_repositories_verification_failed_count": null,
"dependency_proxy_blobs_count": 0,
"dependency_proxy_blobs_checksum_total_count": 0,
"dependency_proxy_blobs_checksummed_count": 0,
"dependency_proxy_blobs_checksum_failed_count": 0,
"dependency_proxy_blobs_synced_count": null,
"dependency_proxy_blobs_failed_count": null,
"dependency_proxy_blobs_registry_count": null,
"dependency_proxy_blobs_verification_total_count": null,
"dependency_proxy_blobs_verified_count": null,
"dependency_proxy_blobs_verification_failed_count": null,
"dependency_proxy_manifests_count": 0,
"dependency_proxy_manifests_checksum_total_count": 0,
"dependency_proxy_manifests_checksummed_count": 0,
"dependency_proxy_manifests_checksum_failed_count": 0,
"dependency_proxy_manifests_synced_count": null,
"dependency_proxy_manifests_failed_count": null,
"dependency_proxy_manifests_registry_count": null,
"dependency_proxy_manifests_verification_total_count": null,
"dependency_proxy_manifests_verified_count": null,
"dependency_proxy_manifests_verification_failed_count": null,
"project_wiki_repositories_count": 19,
"project_wiki_repositories_checksum_total_count": 19,
"project_wiki_repositories_checksummed_count": 19,
"project_wiki_repositories_checksum_failed_count": 0,
"project_wiki_repositories_synced_count": null,
"project_wiki_repositories_failed_count": null,
"project_wiki_repositories_registry_count": null,
"project_wiki_repositories_verification_total_count": null,
"project_wiki_repositories_verified_count": null,
"project_wiki_repositories_verification_failed_count": null,
"git_fetch_event_count_weekly": null,
"git_push_event_count_weekly": null,
"proxy_remote_requests_event_count_weekly": null,
"proxy_local_requests_event_count_weekly": null,
"repositories_checked_in_percentage": "0.00%",
"replication_slots_used_in_percentage": "100.00%",
"lfs_objects_synced_in_percentage": "0.00%",
"lfs_objects_verified_in_percentage": "0.00%",
"merge_request_diffs_synced_in_percentage": "0.00%",
"merge_request_diffs_verified_in_percentage": "0.00%",
"package_files_synced_in_percentage": "0.00%",
"package_files_verified_in_percentage": "0.00%",
"terraform_state_versions_synced_in_percentage": "0.00%",
"terraform_state_versions_verified_in_percentage": "0.00%",
"snippet_repositories_synced_in_percentage": "0.00%",
"snippet_repositories_verified_in_percentage": "0.00%",
"group_wiki_repositories_synced_in_percentage": "0.00%",
"group_wiki_repositories_verified_in_percentage": "0.00%",
"pipeline_artifacts_synced_in_percentage": "0.00%",
"pipeline_artifacts_verified_in_percentage": "0.00%",
"pages_deployments_synced_in_percentage": "0.00%",
"pages_deployments_verified_in_percentage": "0.00%",
"uploads_synced_in_percentage": "0.00%",
"uploads_verified_in_percentage": "0.00%",
"job_artifacts_synced_in_percentage": "0.00%",
"job_artifacts_verified_in_percentage": "0.00%",
"ci_secure_files_synced_in_percentage": "0.00%",
"ci_secure_files_verified_in_percentage": "0.00%",
"container_repositories_synced_in_percentage": "0.00%",
"container_repositories_verified_in_percentage": "0.00%",
"dependency_proxy_blobs_synced_in_percentage": "0.00%",
"dependency_proxy_blobs_verified_in_percentage": "0.00%",
"dependency_proxy_manifests_synced_in_percentage": "0.00%",
"dependency_proxy_manifests_verified_in_percentage": "0.00%",
"project_wiki_repositories_synced_in_percentage": "0.00%",
"project_wiki_repositories_verified_in_percentage": "0.00%",
"projects_count": 19,
"replication_slots_count": 1,
"replication_slots_used_count": 1,
"healthy": true,
"health": "Healthy",
"health_status": "Healthy",
"missing_oauth_application": false,
"db_replication_lag_seconds": null,
"replication_slots_max_retained_wal_bytes": 0,
"repositories_checked_count": null,
"repositories_checked_failed_count": null,
"last_event_id": 357,
"last_event_timestamp": 1683127088,
"cursor_last_event_id": null,
"cursor_last_event_timestamp": 0,
"last_successful_status_check_timestamp": 1683129788,
"version": "16.0.0-pre",
"revision": "129eb954664",
"selective_sync_type": null,
"namespaces": [],
"updated_at": "2023-05-03T16:03:10.117Z",
"storage_shards_match": true,
"_links": {
"self": "https://primary.example.com/api/v4/geo_sites/1/status",
"site": "https://primary.example.com/api/v4/geo_sites/1"
}
},
{
"geo_node_id": 2,
"projects_count": 19,
"container_repositories_replication_enabled": null,
"lfs_objects_count": 0,
"lfs_objects_checksum_total_count": null,
"lfs_objects_checksummed_count": null,
"lfs_objects_checksum_failed_count": null,
"lfs_objects_synced_count": 0,
"lfs_objects_failed_count": 0,
"lfs_objects_registry_count": 0,
"lfs_objects_verification_total_count": 0,
"lfs_objects_verified_count": 0,
"lfs_objects_verification_failed_count": 0,
"merge_request_diffs_count": 0,
"merge_request_diffs_checksum_total_count": null,
"merge_request_diffs_checksummed_count": null,
"merge_request_diffs_checksum_failed_count": null,
"merge_request_diffs_synced_count": 0,
"merge_request_diffs_failed_count": 0,
"merge_request_diffs_registry_count": 0,
"merge_request_diffs_verification_total_count": 0,
"merge_request_diffs_verified_count": 0,
"merge_request_diffs_verification_failed_count": 0,
"package_files_count": 25,
"package_files_checksum_total_count": null,
"package_files_checksummed_count": null,
"package_files_checksum_failed_count": null,
"package_files_synced_count": 1,
"package_files_failed_count": 24,
"package_files_registry_count": 25,
"package_files_verification_total_count": 1,
"package_files_verified_count": 1,
"package_files_verification_failed_count": 0,
"terraform_state_versions_count": 18,
"terraform_state_versions_checksum_total_count": null,
"terraform_state_versions_checksummed_count": null,
"terraform_state_versions_checksum_failed_count": null,
"terraform_state_versions_synced_count": 0,
"terraform_state_versions_failed_count": 0,
"terraform_state_versions_registry_count": 18,
"terraform_state_versions_verification_total_count": 0,
"terraform_state_versions_verified_count": 0,
"terraform_state_versions_verification_failed_count": 0,
"snippet_repositories_count": 20,
"snippet_repositories_checksum_total_count": null,
"snippet_repositories_checksummed_count": null,
"snippet_repositories_checksum_failed_count": null,
"snippet_repositories_synced_count": 20,
"snippet_repositories_failed_count": 0,
"snippet_repositories_registry_count": 20,
"snippet_repositories_verification_total_count": 20,
"snippet_repositories_verified_count": 20,
"snippet_repositories_verification_failed_count": 0,
"group_wiki_repositories_count": 0,
"group_wiki_repositories_checksum_total_count": null,
"group_wiki_repositories_checksummed_count": null,
"group_wiki_repositories_checksum_failed_count": null,
"group_wiki_repositories_synced_count": 0,
"group_wiki_repositories_failed_count": 0,
"group_wiki_repositories_registry_count": 0,
"group_wiki_repositories_verification_total_count": null,
"group_wiki_repositories_verified_count": null,
"group_wiki_repositories_verification_failed_count": null,
"pipeline_artifacts_count": 0,
"pipeline_artifacts_checksum_total_count": null,
"pipeline_artifacts_checksummed_count": null,
"pipeline_artifacts_checksum_failed_count": null,
"pipeline_artifacts_synced_count": 0,
"pipeline_artifacts_failed_count": 0,
"pipeline_artifacts_registry_count": 0,
"pipeline_artifacts_verification_total_count": 0,
"pipeline_artifacts_verified_count": 0,
"pipeline_artifacts_verification_failed_count": 0,
"pages_deployments_count": 0,
"pages_deployments_checksum_total_count": null,
"pages_deployments_checksummed_count": null,
"pages_deployments_checksum_failed_count": null,
"pages_deployments_synced_count": 0,
"pages_deployments_failed_count": 0,
"pages_deployments_registry_count": 0,
"pages_deployments_verification_total_count": 0,
"pages_deployments_verified_count": 0,
"pages_deployments_verification_failed_count": 0,
"uploads_count": 51,
"uploads_checksum_total_count": null,
"uploads_checksummed_count": null,
"uploads_checksum_failed_count": null,
"uploads_synced_count": 0,
"uploads_failed_count": 1,
"uploads_registry_count": 51,
"uploads_verification_total_count": 0,
"uploads_verified_count": 0,
"uploads_verification_failed_count": 0,
"job_artifacts_count": 0,
"job_artifacts_checksum_total_count": null,
"job_artifacts_checksummed_count": null,
"job_artifacts_checksum_failed_count": null,
"job_artifacts_synced_count": 0,
"job_artifacts_failed_count": 0,
"job_artifacts_registry_count": 0,
"job_artifacts_verification_total_count": 0,
"job_artifacts_verified_count": 0,
"job_artifacts_verification_failed_count": 0,
"ci_secure_files_count": 0,
"ci_secure_files_checksum_total_count": null,
"ci_secure_files_checksummed_count": null,
"ci_secure_files_checksum_failed_count": null,
"ci_secure_files_synced_count": 0,
"ci_secure_files_failed_count": 0,
"ci_secure_files_registry_count": 0,
"ci_secure_files_verification_total_count": 0,
"ci_secure_files_verified_count": 0,
"ci_secure_files_verification_failed_count": 0,
"container_repositories_count": null,
"container_repositories_checksum_total_count": null,
"container_repositories_checksummed_count": null,
"container_repositories_checksum_failed_count": null,
"container_repositories_synced_count": null,
"container_repositories_failed_count": null,
"container_repositories_registry_count": null,
"container_repositories_verification_total_count": null,
"container_repositories_verified_count": null,
"container_repositories_verification_failed_count": null,
"dependency_proxy_blobs_count": 0,
"dependency_proxy_blobs_checksum_total_count": null,
"dependency_proxy_blobs_checksummed_count": null,
"dependency_proxy_blobs_checksum_failed_count": null,
"dependency_proxy_blobs_synced_count": 0,
"dependency_proxy_blobs_failed_count": 0,
"dependency_proxy_blobs_registry_count": 0,
"dependency_proxy_blobs_verification_total_count": 0,
"dependency_proxy_blobs_verified_count": 0,
"dependency_proxy_blobs_verification_failed_count": 0,
"dependency_proxy_manifests_count": 0,
"dependency_proxy_manifests_checksum_total_count": null,
"dependency_proxy_manifests_checksummed_count": null,
"dependency_proxy_manifests_checksum_failed_count": null,
"dependency_proxy
## 특정 Geo 사이트에 대한 상태 정보 검색
```plaintext
GET /geo_sites/:id/status
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://primary.example.com/api/v4/geo_sites/2/status"
예시 응답:
{
"geo_node_id": 2,
"projects_count": 19,
"container_repositories_replication_enabled": null,
"lfs_objects_count": 0,
// 중략
"repositories_checked_count": null,
"repositories_checked_failed_count": null,
"last_event_id": 357,
// 중략
"_links": {
"self": "https://primary.example.com/api/v4/geo_sites/2/status",
"site": "https://primary.example.com/api/v4/geo_sites/2"
}
}
health_status
매개변수는 “Healthy” 또는 “Unhealthy” 상태여야 하며, health
매개변수는 비어 있거나 “Healthy”이거나 실제 오류 메시지를 포함할 수 있습니다.현재 사이트에서 발생한 프로젝트 동기화 또는 확인 실패 사례 검색
이 기능은 보조 사이트에서만 작동합니다.
GET /geo_sites/current/failures
속성 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
type
| string | no | 실패한 객체의 유형(repository /wiki )
|
failure_type
| string | no | 실패 유형(sync /checksum_mismatch /verification )
|
이 엔드포인트에서 페이지네이션을 사용합니다.
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://primary.example.com/api/v4/geo_sites/current/failures"
응답 예시:
[
{
"project_id": 3,
"last_repository_synced_at": "2017-10-31 14:25:55 UTC",
"last_repository_successful_sync_at": "2017-10-31 14:26:04 UTC",
"last_wiki_synced_at": "2017-10-31 14:26:04 UTC",
"last_wiki_successful_sync_at": "2017-10-31 14:26:11 UTC",
"repository_retry_count": null,
"wiki_retry_count": 1,
"last_repository_sync_failure": null,
"last_wiki_sync_failure": "Error syncing Wiki repository",
"last_repository_verification_failure": "",
"last_wiki_verification_failure": "",
"repository_verification_checksum_sha": "da39a3ee5e6b4b0d32e5bfef9a601890afd80709",
"wiki_verification_checksum_sha": "da39a3ee5e6b4b0d3255bfef9ef0189aafd80709",
"repository_checksum_mismatch": false,
"wiki_checksum_mismatch": false
}
]