doc-locale/fr-fr/api/snippet_repository_storage_moves.md
{{< details >}}
{{< /details >}}
Utilisez cette API pour gérer les déplacements de stockage de dépôt de snippets. Cette API peut vous aider, par exemple, à migrer vers le cluster Gitaly (Praefect).
Au fur et à mesure que les déplacements de stockage de dépôt de snippets sont traités, ils transitent par différents états. Les valeurs de state sont :
initial : L'enregistrement a été créé, mais le job en arrière-plan n'a pas encore été planifié.scheduled : Le job en arrière-plan a été planifié.started : Le dépôt de snippet est en cours de copie vers le stockage de destination.replicated : Le snippet a été déplacé.failed : La copie du dépôt de snippet a échoué ou la somme de contrôle ne correspondait pas.finished : Le snippet a été déplacé et le dépôt sur le stockage source a été supprimé.cleanup failed : Le snippet a été déplacé, mais le dépôt sur le stockage source n'a pas pu être supprimé.Pour garantir l'intégrité des données, les snippets sont placés dans un état temporaire en lecture seule pendant la durée du déplacement. Pendant ce temps, les utilisateurs reçoivent un message The repository is temporarily read-only. Please try again later. s'ils tentent de pousser de nouveaux commits.
Cette API vous demande de vous authentifier en tant qu'administrateur.
Pour les autres types de dépôts, consultez :
Liste tous les déplacements de stockage de dépôt de snippets.
GET /snippet_repository_storage_moves
Par défaut, les requêtes GET renvoient 20 résultats à la fois, car les résultats de l'API sont paginés.
Exemple de requête :
curl --header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/snippet_repository_storage_moves"
Exemple de réponse :
[
{
"id": 1,
"created_at": "2020-05-07T04:27:17.234Z",
"state": "scheduled",
"source_storage_name": "default",
"destination_storage_name": "storage2",
"snippet": {
"id": 65,
"title": "Test Snippet",
"description": null,
"visibility": "internal",
"updated_at": "2020-12-01T11:15:50.385Z",
"created_at": "2020-12-01T11:15:50.385Z",
"project_id": null,
"web_url": "https://gitlab.example.com/-/snippets/65",
"raw_url": "https://gitlab.example.com/-/snippets/65/raw",
"ssh_url_to_repo": "ssh://[email protected]/snippets/65.git",
"http_url_to_repo": "https://gitlab.example.com/snippets/65.git"
}
}
]
Liste tous les déplacements de stockage de dépôt pour un snippet spécifié.
GET /snippets/:snippet_id/repository_storage_moves
Par défaut, les requêtes GET renvoient 20 résultats à la fois, car les résultats de l'API sont paginés.
Attributs pris en charge :
| Attribut | Type | Obligatoire | Description |
|---|---|---|---|
snippet_id | entier | oui | ID du snippet. |
Exemple de requête :
curl --header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/snippets/1/repository_storage_moves"
Exemple de réponse :
[
{
"id": 1,
"created_at": "2020-05-07T04:27:17.234Z",
"state": "scheduled",
"source_storage_name": "default",
"destination_storage_name": "storage2",
"snippet": {
"id": 65,
"title": "Test Snippet",
"description": null,
"visibility": "internal",
"updated_at": "2020-12-01T11:15:50.385Z",
"created_at": "2020-12-01T11:15:50.385Z",
"project_id": null,
"web_url": "https://gitlab.example.com/-/snippets/65",
"raw_url": "https://gitlab.example.com/-/snippets/65/raw",
"ssh_url_to_repo": "ssh://[email protected]/snippets/65.git",
"http_url_to_repo": "https://gitlab.example.com/snippets/65.git"
}
}
]
Récupère un déplacement de stockage de dépôt de snippet spécifié.
GET /snippet_repository_storage_moves/:repository_storage_id
Attributs pris en charge :
| Attribut | Type | Obligatoire | Description |
|---|---|---|---|
repository_storage_id | entier | oui | ID du déplacement de stockage de dépôt de snippet. |
Exemple de requête :
curl --header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/snippet_repository_storage_moves/1"
Exemple de réponse :
{
"id": 1,
"created_at": "2020-05-07T04:27:17.234Z",
"state": "scheduled",
"source_storage_name": "default",
"destination_storage_name": "storage2",
"snippet": {
"id": 65,
"title": "Test Snippet",
"description": null,
"visibility": "internal",
"updated_at": "2020-12-01T11:15:50.385Z",
"created_at": "2020-12-01T11:15:50.385Z",
"project_id": null,
"web_url": "https://gitlab.example.com/-/snippets/65",
"raw_url": "https://gitlab.example.com/-/snippets/65/raw",
"ssh_url_to_repo": "ssh://[email protected]/snippets/65.git",
"http_url_to_repo": "https://gitlab.example.com/snippets/65.git"
}
}
Récupère un déplacement de stockage de dépôt pour un snippet spécifié.
GET /snippets/:snippet_id/repository_storage_moves/:repository_storage_id
Attributs pris en charge :
| Attribut | Type | Obligatoire | Description |
|---|---|---|---|
snippet_id | entier | oui | ID du snippet. |
repository_storage_id | entier | oui | ID du déplacement de stockage de dépôt de snippet. |
Exemple de requête :
curl --header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/snippets/1/repository_storage_moves/1"
Exemple de réponse :
{
"id": 1,
"created_at": "2020-05-07T04:27:17.234Z",
"state": "scheduled",
"source_storage_name": "default",
"destination_storage_name": "storage2",
"snippet": {
"id": 65,
"title": "Test Snippet",
"description": null,
"visibility": "internal",
"updated_at": "2020-12-01T11:15:50.385Z",
"created_at": "2020-12-01T11:15:50.385Z",
"project_id": null,
"web_url": "https://gitlab.example.com/-/snippets/65",
"raw_url": "https://gitlab.example.com/-/snippets/65/raw",
"ssh_url_to_repo": "ssh://[email protected]/snippets/65.git",
"http_url_to_repo": "https://gitlab.example.com/snippets/65.git"
}
}
Planifie un déplacement de stockage de dépôt pour un snippet spécifié.
POST /snippets/:snippet_id/repository_storage_moves
Attributs pris en charge :
| Attribut | Type | Obligatoire | Description |
|---|---|---|---|
snippet_id | entier | oui | ID du snippet. |
destination_storage_name | string | non | Nom de la partition de stockage de destination. Le stockage est sélectionné automatiquement en fonction des poids de stockage s'il n'est pas fourni. |
Exemple de requête :
curl --request POST \
--header "PRIVATE-TOKEN: <your_access_token>" \
--header "Content-Type: application/json" \
--data '{"destination_storage_name":"storage2"}' \
--url "https://gitlab.example.com/api/v4/snippets/1/repository_storage_moves"
Exemple de réponse :
{
"id": 1,
"created_at": "2020-05-07T04:27:17.234Z",
"state": "scheduled",
"source_storage_name": "default",
"destination_storage_name": "storage2",
"snippet": {
"id": 65,
"title": "Test Snippet",
"description": null,
"visibility": "internal",
"updated_at": "2020-12-01T11:15:50.385Z",
"created_at": "2020-12-01T11:15:50.385Z",
"project_id": null,
"web_url": "https://gitlab.example.com/-/snippets/65",
"raw_url": "https://gitlab.example.com/-/snippets/65/raw",
"ssh_url_to_repo": "ssh://[email protected]/snippets/65.git",
"http_url_to_repo": "https://gitlab.example.com/snippets/65.git"
}
}
Planifie des déplacements de stockage de dépôt pour chaque dépôt de snippet stocké sur la partition de stockage source. Ce point de terminaison migre tous les snippets en une seule fois.
POST /snippet_repository_storage_moves
Attributs pris en charge :
| Attribut | Type | Obligatoire | Description |
|---|---|---|---|
source_storage_name | string | oui | Nom de la partition de stockage source. |
destination_storage_name | string | non | Nom de la partition de stockage de destination. Le stockage est sélectionné automatiquement en fonction des poids de stockage s'il n'est pas fourni. |
Exemple de requête :
curl --request POST \
--header "PRIVATE-TOKEN: <your_access_token>" \
--header "Content-Type: application/json" \
--data '{"source_storage_name":"default"}' \
--url "https://gitlab.example.com/api/v4/snippet_repository_storage_moves"
Exemple de réponse :
{
"message": "202 Accepted"
}