Существует ли конечная точка в API плоскости данных HAProxy, которая выдает текущую версию файла? - PullRequest
1 голос
/ 03 апреля 2020

Я использую Data Plane API для запуска транзакции. Я заметил, что верхняя часть моего haproxy-файла выглядит следующим образом.

# _version=130

Когда я запускаю свое приложение для использования этого API, я читаю это значение, чтобы основывать свою версию транзакции. Однако иногда он застревает, сообщая мне следующую ошибку:

{
  status: 409,
  text: '{"code":409,"message":"15: Version mismatch, transaction version: 129, configured version: 130"}\n',
  method: 'PUT',
  path: '/v1/services/haproxy/transactions/5d0298aa-038e-44d1-9381-f8db0612d9ea'
}

Похоже, что процесс API-интерфейса плоскости данных не остается синхронизированным c с текущими значениями в активном файле haproxy.cfg в система. Тем не менее, после очистки файла swagger API (OpenAPI). Я не могу найти какие-либо методы, чтобы получить фактическую версию для использования при запуске и совершении транзакции.

Кто-нибудь еще сталкивался с этой проблемой? Заметили ли вы, что это происходит только при выполнении отката транзакции? У меня ... пока ...

1 Ответ

1 голос
/ 03 апреля 2020

Я считаю, что выполнение запроса GET для конечной точки конфигурации вернет его в _version. Например:

# curl --user <user>:<password> http://localhost:10000/v1/services/haproxy/configuration/frontends
{"_version":2,"data":[{"name":"fe_main"},{"http-use-htx":"enabled","name":"fe_stats"},{"http-use-htx":"enabled","name":"stats"}]}

...