Observação
Grupos e projetos são termos sinônimos. Seu {PROJECT-ID} é igual ao ID do seu projeto. Para grupos existentes, o ID do grupo/projeto permanece o mesmo. Esta página usa o termo grupo, que é mais familiar, ao se referir a descrições. O ponto de extremidade permanece conforme indicado no documento.
Use esse endpoint para solicitar que o primary atual de um conjunto de réplicas seja desativado, desencadeando uma nova eleição. O Ops Manager enfileira um tarefa em segundo plano para que o agente de automação do host de destino seja executado em seu próximo check-in.
Se o processo de destino não for o primary gravável quando o agente executar a tarefa, a tarefa será concluída como não operacional em vez de falhar. Após as etapas primárias, ele permanece inelegível para reeleição pela duração especificada por stepDownSecs.
URL base: https://{OPSMANAGER-HOST}:{PORT}/api/public/v1.0
Resource
POST /groups/{GROUP-ID}/replicaSets/{RS-ID}/process/{HOST-PORT}:stepDown
Funções obrigatórias
A chave de API que faz essa solicitação deve ter a função Project Automation Admin.
Parâmetros do caminho da solicitação
Nome | Tipo | necessidade | Descrição |
|---|---|---|---|
ID do grupo | string | Obrigatório | String única de 24 dígitos hexadecimais que identifica seu projeto. |
RS-ID | string | Obrigatório | Nome do conjunto de réplica que contém o processo de destino. |
HOST-PORT | string | Obrigatório | Processo alvo, como |
Solicitar parâmetros de query
Os seguintes parâmetros de query são opcionais:
Nome | Tipo | necessidade | Descrição | Default |
|---|---|---|---|---|
pretty | booleano | Opcional | Flag indicating whether the response body is in a prettyprint format. |
|
envelope | booleano | Opcional | Sinalizador que indica se deve envolver a resposta em um envelope. Alguns clientes de API não podem acessar os cabeçalhos de resposta HTTP ou o código de status. Para corrigir isso, defina envelope=true na query. Para endpoints que retornam um resultado, o corpo da resposta inclui:
|
|
Parâmetros do corpo da solicitação
O corpo da solicitação aceita os seguintes ajustes opcionais. Se você enviar um corpo vazio, utilize {}.
Nome | Tipo | Descrição | Default |
|---|---|---|---|
stepDownSecs | inteiro | Número de segundos em que o primário rebaixado permanece inelegível para reeleição. Deve ser maior que |
|
secondaryCatchUpPeriodSecs | inteiro | Número de segundos para esperar que um secundário atrasado se atualize antes que o primário desça. Deve ser maior ou igual a | none |
expiresAfterSeconds | inteiro | Número de segundos em que a solicitação permanece em fila para que um agente de automação atenda antes que o tarefa expire. Deve ser maior que |
|
Resposta
O Ops Manager retorna 202 Accepted com um cabeçalho Location que aponta para o endpoint do tarefa de reeleição get on e o documento do tarefa de reeleição no corpo da resposta.
Nome | Tipo | Descrição |
|---|---|---|
id | string | String única de 24 dígitos hexadecimais que identifica a tarefa de reeleição. |
groupId | string | String única de 24 dígitos hexadecimais que identifica o projeto. |
ação | string | Ação que este tarefa executa. Retorna |
ReplicaSetName | string | Nome do conjunto de réplicas de destino. |
nome do host | string | Nome de host do processo de destino. |
Porta | inteiro | Porta do processo de destino. |
Status | string | Status da tarefa. Retorna um dos seguintes valores: |
noOp | booleano | Sinalizador que indica se a operação foi concluída como um no-op. Retorna |
mensagem | string | Detalhes legíveis por humanos sobre a tarefa. O gerente de operações preenche este campo depois que o agente relata um resultado. |
Criado | string | Timestamp, no formato ISO 8601 UTC, quando o Ops Manager criou o tarefa. |
lastUpdated | string | Timestamp, no formato ISO 8601 UTC, quando o Ops Manager atualizou pela última vez o tarefa. |
expira | string | Timestamp, no formato ISO 8601 UTC, após o qual um agente de automação não pega mais essa tarefa. |
Exemplo de solicitação
1 curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ 2 --header "Accept: application/json" \ 3 --header "Content-Type: application/json" \ 4 --include \ 5 --request POST "https://<OpsManagerHost>:<Port>/api/public/v1.0/groups/{GROUP-ID}/replicaSets/{RS-ID}/process/{HOST-PORT}:stepDown?pretty=true" \ 6 --data '{ 7 "stepDownSecs": 60, 8 "secondaryCatchUpPeriodSecs": 10 9 }'
Exemplo de resposta
Cabeçalho de resposta
202 Accepted Vary: Accept-Encoding Content-Type: application/json Location: https://<OpsManagerHost>:<Port>/api/public/v1.0/groups/{GROUP-ID}/replicaSets/{RS-ID}/reElectionJobs/{REELECTION-JOB-ID} Strict-Transport-Security: max-age=300 Date: {dateInUnixFormat} Connection: keep-alive Content-Length: {requestLengthInBytes} X-MongoDB-Service-Version: gitHash={gitHash}; versionString={ApplicationVersion}
Corpo de resposta
1 { 2 "id": "665a1234567890abcdef1234", 3 "groupId": "5c8100bcf2a30b12ff88258f", 4 "action": "STEP_DOWN", 5 "replicaSetName": "rs0", 6 "hostname": "node1.example.com", 7 "port": 27017, 8 "status": "QUEUED", 9 "noOp": false, 10 "message": null, 11 "created": "2026-08-11T05:37:59Z", 12 "lastUpdated": "2026-08-11T05:37:59Z", 13 "expires": "2026-08-11T05:42:59Z" 14 }
Códigos de resposta
HTTP Status | Código de erro | Descrição |
|---|---|---|
202 | -- | Solicitação aceita. Retorna o documento do tarefa de reeleição. |
400 | INVALID_PARAMETER | Um ajustável está fora do intervalo ou o corpo da solicitação inclui |
400 | AUTOMATION_AGENT_VERSION_NOT_SUPPORTED | O agente de automação do host de destino tem mais de |
401 | USER_UNAUThorIZED | A chave de API não tem o role |
401 | USER_CANNOT_ACCESS_ORG | O chamador está fora da organização do projeto. |
404 | AUTOMATION_CONFIG_NOT_FOUND | O projeto não tem configuração de automação publicada. |
404 | CLUSTER_NOT_FOUND |
|
404 | PROCESS_NOT_IN_CLUSTER |
|
409 | REELECTION_AGENT_NOT_RESPONDING | O agente de automação do host de destino não fez ping do gerente de operações recentemente. |
409 | REELECTION_ALREADY_IN_PROgress | Um tarefa de reeleição já está na fila ou em execução para este conjunto de réplicas. |