spinnaker REST API этап патча конвейера - PullRequest
0 голосов
/ 10 января 2020

Я пытаюсь исправить определенную c стадию конвейера в spinnaker через его REST API:

curl -X PATCH \
    http://localhost:8082/pipelines/45042993-ff77-4cc5-b8f5-cb28b1902173/stages/8 \
    -d @/tmp/dtool_spinnaker_pipelinev_stage.json \
    -H "Content-Type: application/json" \
    --silent \
    --show-error

Это приводит меня к ошибке 404, страница не найдена. POST'ing полный конвейер работает:

curl -X POST \
    http://localhost:8082/pipelines/45042993-ff77-4cc5-b8f5-cb28b1902173 \
    -d @/tmp/dtool_spinnaker_pipelinev.json \
    -H "Content-Type: application/json" \
    --silent \
    --show-error

Есть идеи, что я делаю не так? Документ для этапа обновления не совсем понятен в отношении идентификатора этапа, но на основе конвейера JSON он должен быть refId.

1 Ответ

0 голосов
/ 31 января 2020

Надеюсь, следующий пример поможет вам. Есть 2 примера запросов PUT и PATCH. PATCH изменяет результат этапа и PUT перезапускает его. Ожидается, что будет запущен дополнительный конвейер - в моем случае он ждет 5 секунд и проверяет входной параметр.

{
  "expectedArtifacts": [],
  "keepWaitingPipelines": false,
  "limitConcurrent": true,
  "parameterConfig": [
    {
      "default": "false",
      "description": "",
      "hasOptions": false,
      "label": "success",
      "name": "success",
      "options": [
        {
          "value": "false"
        },
        {
          "value": ""
        }
      ],
      "pinned": false,
      "required": true
    }
  ],
  "stages": [
    {
      "completeOtherBranchesThenFail": false,
      "continuePipeline": false,
      "failPipeline": false,
      "method": "PUT",
      "name": "PUT",
      "payload": {
        "continuePipeline": false,
        "failPipeline": true
      },
      "refId": "3",
      "requisiteStageRefIds": [
        "7"
      ],
      "stageEnabled": {
        "expression": "(#stage('Pipeline')).toString == 'TERMINAL'",
        "type": "expression"
      },
      "statusUrlResolution": "getMethod",
      "type": "webhook",
      "url": "http://spin-gate:8084/pipelines/${execution.id}/stages/${#stage('Pipeline').id}/restart",
      "waitForCompletion": false
    },
    {
      "name": "Wait 2",
      "refId": "5",
      "requisiteStageRefIds": [
        "3",
        "6"
      ],
      "type": "wait",
      "waitTime": 5
    },
    {
      "application": "ads-demo-app",
      "completeOtherBranchesThenFail": false,
      "continuePipeline": true,
      "failPipeline": false,
      "name": "Pipeline",
      "pipeline": "d7c5d33c-c250-48d8-a7c3-5e0a951bb806",
      "pipelineParameters": {
        "success": "false"
      },
      "refId": "6",
      "requisiteStageRefIds": [],
      "type": "pipeline",
      "waitForCompletion": true
    },
    {
      "method": "PATCH",
      "name": "PATCH",
      "payload": {
        "continuePipeline": false,
        "failPipeline": true,
        "pipelineParameters": {
          "success": "true"
        }
      },
      "refId": "7",
      "requisiteStageRefIds": [
        "6"
      ],
      "statusUrlResolution": "getMethod",
      "type": "webhook",
      "url": "http://spin-gate:8084/pipelines/${execution.id}/stages/${#stage('Pipeline').id}"
    }
  ],
  "triggers": [],
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...