pgbus 0.19.0 → 0.19.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +323 -147
  3. data/README.md +44 -0
  4. data/app/controllers/pgbus/deploy_tasks_controller.rb +38 -0
  5. data/app/helpers/pgbus/deploy_tasks_helper.rb +77 -0
  6. data/app/helpers/pgbus/processes_helper.rb +1 -1
  7. data/app/models/pgbus/deploy_task.rb +104 -0
  8. data/app/models/pgbus/deploy_task_run.rb +45 -0
  9. data/app/views/layouts/pgbus/application.html.erb +2 -0
  10. data/app/views/pgbus/deploy_tasks/_rollover_banner.html.erb +25 -0
  11. data/app/views/pgbus/deploy_tasks/_tasks_table.html.erb +71 -0
  12. data/app/views/pgbus/deploy_tasks/index.html.erb +6 -0
  13. data/app/views/pgbus/deploy_tasks/show.html.erb +134 -0
  14. data/config/i18n-tasks.yml +2 -0
  15. data/config/locales/da.yml +97 -0
  16. data/config/locales/de.yml +97 -0
  17. data/config/locales/en.yml +97 -0
  18. data/config/locales/es.yml +97 -0
  19. data/config/locales/fi.yml +97 -0
  20. data/config/locales/fr.yml +97 -0
  21. data/config/locales/it.yml +97 -0
  22. data/config/locales/ja.yml +97 -0
  23. data/config/locales/nb.yml +97 -0
  24. data/config/locales/nl.yml +97 -0
  25. data/config/locales/pt.yml +97 -0
  26. data/config/locales/sv.yml +97 -0
  27. data/config/routes.rb +7 -0
  28. data/lib/generators/pgbus/add_deploy_tasks_generator.rb +51 -0
  29. data/lib/generators/pgbus/templates/add_deploy_tasks_tables.rb.erb +43 -0
  30. data/lib/generators/pgbus/templates/deploy_tasks.yml.erb +42 -0
  31. data/lib/generators/pgbus/templates/migration.rb.erb +43 -0
  32. data/lib/pgbus/configuration/deploy_settings.rb +46 -0
  33. data/lib/pgbus/configuration.rb +3 -0
  34. data/lib/pgbus/deploy/revision.rb +59 -0
  35. data/lib/pgbus/deploy/rollover.rb +65 -0
  36. data/lib/pgbus/deploy/runner.rb +259 -0
  37. data/lib/pgbus/deploy/task.rb +105 -0
  38. data/lib/pgbus/engine.rb +17 -0
  39. data/lib/pgbus/generators/migration_detector.rb +11 -0
  40. data/lib/pgbus/instrumentation.rb +3 -0
  41. data/lib/pgbus/mcp/server.rb +2 -1
  42. data/lib/pgbus/mcp/tools/deploy_tasks_tool.rb +86 -0
  43. data/lib/pgbus/mcp.rb +1 -0
  44. data/lib/pgbus/outbox/poller.rb +1 -0
  45. data/lib/pgbus/process/consumer.rb +1 -0
  46. data/lib/pgbus/process/dispatcher.rb +18 -1
  47. data/lib/pgbus/process/heartbeat.rb +7 -2
  48. data/lib/pgbus/process/supervisor.rb +35 -3
  49. data/lib/pgbus/process/worker.rb +1 -0
  50. data/lib/pgbus/recurring/scheduler.rb +54 -20
  51. data/lib/pgbus/version.rb +1 -1
  52. data/lib/pgbus/web/data_source/deploy_task_list.rb +114 -0
  53. data/lib/pgbus/web/data_source/list_counts.rb +2 -1
  54. data/lib/pgbus/web/data_source.rb +1 -0
  55. data/lib/pgbus/web/deploy_task_state.rb +51 -0
  56. data/sig/pgbus/configuration.rbs +10 -0
  57. metadata +20 -1
@@ -236,6 +236,102 @@ da:
236
236
  payload: Indhold
237
237
  retry: Forsøg igen
238
238
  title: 'DLQ-besked #%{id}'
239
+ deploy_tasks:
240
+ banner:
241
+ heading: Udrulning
242
+ lagging_html:
243
+ one: 'Venter på udrulning: 1 proces kører endnu ikke <code>%{revision}</code>.'
244
+ other: 'Venter på udrulning: %{count} processer kører endnu ikke <code>%{revision}</code>.'
245
+ lagging_more: "…og %{count} mere"
246
+ lagging_process: "%{kind}@%{hostname} pid %{pid} på %{revision}"
247
+ live_count: "%{count} på %{revision}"
248
+ live_heading: 'Aktive processer:'
249
+ no_revision_hint_html: Sæt <code>config.app_revision</code>, eller en af <code>PGBUS_REVISION</code>, <code>DASH_VERSION</code> eller <code>KAMAL_VERSION</code>, eller lever en <code>REVISION</code>-fil. Kør nu virker stadig.
250
+ no_revision_html: 'Appens revision er ikke konfigureret: deploy-opgaver venter, indtil den er.'
251
+ no_revision_label: ingen revision
252
+ no_scheduler_html: 'Ingen planlægger kører: deploy-opgaver startes kun af planlæggeren. Vurderingen bruger dashboardets egen revision.'
253
+ no_workers_html: 'Venter på udrulning: ingen worker på <code>%{revision}</code> endnu.'
254
+ ready_html: 'Udrullet: hver aktiv proces kører <code>%{revision}</code>. Ventende opgaver kører ved planlæggerens næste tick.'
255
+ unavailable_html: Udrulningsstatussen kunne ikke læses.
256
+ default_queue: default
257
+ disable: Deaktiver
258
+ enable: Aktiver
259
+ enqueue:
260
+ enqueued: Deploy-opgaven er sat i kø
261
+ failed: 'Deploy-opgaven blev ikke sat i kø: se loggen for årsagen'
262
+ every_deploy: Ved hver deploy
263
+ index:
264
+ task_count:
265
+ one: "%{count} opgave erklæret"
266
+ other: "%{count} opgaver erklæret"
267
+ title: Deploy-opgaver
268
+ not_found: Deploy-opgaven blev ikke fundet
269
+ reasons:
270
+ disabled_armed_html: 'Deaktiveret med en ventende udrulningskørsel: aktiver den for at lade den køre.'
271
+ disabled_html: 'Deaktiveret: planlæggeren springer den over.'
272
+ due_html: 'Klar: kører ved planlæggerens næste tick.'
273
+ manual_html: "· kørte %{ago} (manuelt)"
274
+ never_html: Har aldrig kørt efter en udrulning.
275
+ ran_html: Kørte %{ago} på <code>%{revision}</code> (udrulning).
276
+ waiting_lagging_html:
277
+ one: 'Venter på udrulning: 1 proces kører endnu ikke <code>%{revision}</code>.'
278
+ other: 'Venter på udrulning: %{count} processer kører endnu ikke <code>%{revision}</code>.'
279
+ waiting_no_revision_html: 'Venter: appens revision er ikke konfigureret.'
280
+ waiting_no_scheduler_html: 'Venter: ingen planlægger kører.'
281
+ waiting_no_workers_html: Venter på en worker på <code>%{revision}</code>.
282
+ waiting_unknown_html: 'Venter: udrulningsstatussen kunne ikke læses.'
283
+ run_now: Kør nu
284
+ show:
285
+ armed_html: "%{armed_for}, klargjort %{ago}"
286
+ back: Tilbage
287
+ configuration: Konfiguration
288
+ labels:
289
+ arguments: Argumenter
290
+ armed: Ventende kørsel
291
+ command: Kommando
292
+ description: Beskrivelse
293
+ job_class: Jobklasse
294
+ priority: Prioritet
295
+ queue: Kø
296
+ source: Kilde
297
+ last_run: Seneste kørsel
298
+ no_runs: Ingen kørsler registreret endnu
299
+ recent_runs: Seneste kørsler
300
+ run_headers:
301
+ enqueued_at: Sat i kø
302
+ queue: Kø
303
+ revision: Revision
304
+ triggered_by: Startet af
305
+ version: Version
306
+ source_config: Konfigurationsfil
307
+ source_dynamic: Dynamisk
308
+ state: Tilstand
309
+ version: Version
310
+ states:
311
+ disabled: Deaktiveret
312
+ due: Klar
313
+ never: Aldrig kørt
314
+ ran: Kørt
315
+ waiting: Venter
316
+ tasks_table:
317
+ empty_hint_html: Erklær engangsopgaver i <code>config/deploy_tasks.yml</code>; <code>rails generate pgbus:add_deploy_tasks</code> skriver en startfil.
318
+ empty_title: Ingen deploy-opgaver erklæret
319
+ headers:
320
+ actions: Handlinger
321
+ last_run: Seneste kørsel
322
+ queue: Kø
323
+ state: Tilstand
324
+ task: Opgave
325
+ version: Version
326
+ never: Aldrig
327
+ toggle:
328
+ disabled: Deploy-opgaven er deaktiveret
329
+ enabled: Deploy-opgaven er aktiveret
330
+ failed: Kunne ikke skifte deploy-opgaven
331
+ triggered_by:
332
+ manual: Manuelt
333
+ rollover: Udrulning
334
+ version: v%{version}
239
335
  dialogs:
240
336
  cancel: Annuller
241
337
  confirm: Bekræft
@@ -617,6 +713,7 @@ da:
617
713
  nav:
618
714
  batches: Batches
619
715
  dashboard: Dashboard
716
+ deploy_tasks: Deploy
620
717
  dlq: DLQ
621
718
  events: Begivenheder
622
719
  insights: Indsigter
@@ -236,6 +236,102 @@ de:
236
236
  payload: Nutzlast
237
237
  retry: Erneut versuchen
238
238
  title: 'DLQ Nachricht #%{id}'
239
+ deploy_tasks:
240
+ banner:
241
+ heading: Rollover
242
+ lagging_html:
243
+ one: 'Warte auf Rollover: 1 Prozess läuft noch nicht auf <code>%{revision}</code>.'
244
+ other: 'Warte auf Rollover: %{count} Prozesse laufen noch nicht auf <code>%{revision}</code>.'
245
+ lagging_more: "…und %{count} weitere"
246
+ lagging_process: "%{kind}@%{hostname} PID %{pid} auf %{revision}"
247
+ live_count: "%{count} auf %{revision}"
248
+ live_heading: 'Aktive Prozesse:'
249
+ no_revision_hint_html: Setze <code>config.app_revision</code> oder eine von <code>PGBUS_REVISION</code>, <code>DASH_VERSION</code> oder <code>KAMAL_VERSION</code>, oder liefere eine <code>REVISION</code>-Datei aus. „Jetzt ausführen“ funktioniert weiterhin.
250
+ no_revision_html: 'App-Revision nicht konfiguriert: Deploy-Aufgaben warten, bis sie gesetzt ist.'
251
+ no_revision_label: keine Revision
252
+ no_scheduler_html: 'Kein Scheduler läuft: Deploy-Aufgaben werden nur vom Scheduler ausgelöst. Diese Bewertung nutzt die eigene Revision des Dashboards.'
253
+ no_workers_html: 'Warte auf Rollover: noch kein Worker auf <code>%{revision}</code>.'
254
+ ready_html: 'Rollover abgeschlossen: Jeder aktive Prozess läuft auf <code>%{revision}</code>. Vorgemerkte Aufgaben laufen beim nächsten Scheduler-Tick.'
255
+ unavailable_html: Der Rollover-Status konnte nicht gelesen werden.
256
+ default_queue: default
257
+ disable: Deaktivieren
258
+ enable: Aktivieren
259
+ enqueue:
260
+ enqueued: Deploy-Aufgabe eingereiht
261
+ failed: 'Die Deploy-Aufgabe wurde nicht eingereiht: Den Grund findest du im Log'
262
+ every_deploy: Bei jedem Deploy
263
+ index:
264
+ task_count:
265
+ one: "%{count} Aufgabe deklariert"
266
+ other: "%{count} Aufgaben deklariert"
267
+ title: Deploy-Aufgaben
268
+ not_found: Deploy-Aufgabe nicht gefunden
269
+ reasons:
270
+ disabled_armed_html: 'Deaktiviert mit ausstehendem Rollover-Lauf: Aktiviere sie, damit sie ausgelöst wird.'
271
+ disabled_html: 'Deaktiviert: Der Scheduler überspringt sie.'
272
+ due_html: 'Fällig: läuft beim nächsten Scheduler-Tick.'
273
+ manual_html: "· lief %{ago} (manuell)"
274
+ never_html: Nach keinem Rollover gelaufen.
275
+ ran_html: Lief %{ago} auf <code>%{revision}</code> (Rollover).
276
+ waiting_lagging_html:
277
+ one: 'Warte auf Rollover: 1 Prozess läuft noch nicht auf <code>%{revision}</code>.'
278
+ other: 'Warte auf Rollover: %{count} Prozesse laufen noch nicht auf <code>%{revision}</code>.'
279
+ waiting_no_revision_html: 'Wartet: Die App-Revision ist nicht konfiguriert.'
280
+ waiting_no_scheduler_html: 'Wartet: Kein Scheduler läuft.'
281
+ waiting_no_workers_html: Wartet auf einen Worker auf <code>%{revision}</code>.
282
+ waiting_unknown_html: 'Wartet: Der Rollover-Status konnte nicht gelesen werden.'
283
+ run_now: Jetzt ausführen
284
+ show:
285
+ armed_html: "%{armed_for}, vorgemerkt %{ago}"
286
+ back: Zurück
287
+ configuration: Konfiguration
288
+ labels:
289
+ arguments: Argumente
290
+ armed: Ausstehende Vormerkung
291
+ command: Befehl
292
+ description: Beschreibung
293
+ job_class: Job-Klasse
294
+ priority: Priorität
295
+ queue: Warteschlange
296
+ source: Quelle
297
+ last_run: Letzter Lauf
298
+ no_runs: Noch keine Läufe aufgezeichnet
299
+ recent_runs: Letzte Läufe
300
+ run_headers:
301
+ enqueued_at: Eingereiht am
302
+ queue: Warteschlange
303
+ revision: Revision
304
+ triggered_by: Ausgelöst durch
305
+ version: Version
306
+ source_config: Konfigurationsdatei
307
+ source_dynamic: Dynamisch
308
+ state: Zustand
309
+ version: Version
310
+ states:
311
+ disabled: Deaktiviert
312
+ due: Fällig
313
+ never: Nie gelaufen
314
+ ran: Gelaufen
315
+ waiting: Wartet
316
+ tasks_table:
317
+ empty_hint_html: Deklariere einmalige Aufgaben in <code>config/deploy_tasks.yml</code>; <code>rails generate pgbus:add_deploy_tasks</code> erzeugt eine Startdatei.
318
+ empty_title: Keine Deploy-Aufgaben deklariert
319
+ headers:
320
+ actions: Aktionen
321
+ last_run: Letzter Lauf
322
+ queue: Warteschlange
323
+ state: Zustand
324
+ task: Aufgabe
325
+ version: Version
326
+ never: Nie
327
+ toggle:
328
+ disabled: Deploy-Aufgabe deaktiviert
329
+ enabled: Deploy-Aufgabe aktiviert
330
+ failed: Umschalten der Deploy-Aufgabe fehlgeschlagen
331
+ triggered_by:
332
+ manual: Manuell
333
+ rollover: Rollover
334
+ version: v%{version}
239
335
  dialogs:
240
336
  cancel: Abbrechen
241
337
  confirm: Bestätigen
@@ -617,6 +713,7 @@ de:
617
713
  nav:
618
714
  batches: Stapel
619
715
  dashboard: Dashboard
716
+ deploy_tasks: Deploy
620
717
  dlq: DLQ
621
718
  events: Ereignisse
622
719
  insights: Einblicke
@@ -236,6 +236,102 @@ en:
236
236
  payload: Payload
237
237
  retry: Retry
238
238
  title: 'DLQ Message #%{id}'
239
+ deploy_tasks:
240
+ banner:
241
+ heading: Rollover
242
+ lagging_html:
243
+ one: 'Waiting for rollover: 1 process is not on <code>%{revision}</code> yet.'
244
+ other: 'Waiting for rollover: %{count} processes are not on <code>%{revision}</code> yet.'
245
+ lagging_more: "…and %{count} more"
246
+ lagging_process: "%{kind}@%{hostname} pid %{pid} on %{revision}"
247
+ live_count: "%{count} on %{revision}"
248
+ live_heading: 'Live processes:'
249
+ no_revision_hint_html: Set <code>config.app_revision</code>, or one of <code>PGBUS_REVISION</code>, <code>DASH_VERSION</code> or <code>KAMAL_VERSION</code>, or ship a <code>REVISION</code> file. Run now still works.
250
+ no_revision_html: 'App revision not configured: deploy tasks wait until it is.'
251
+ no_revision_label: no revision
252
+ no_scheduler_html: 'No scheduler is running: deploy tasks fire only from the scheduler. This verdict uses the dashboard''s own revision.'
253
+ no_workers_html: 'Waiting for rollover: no worker on <code>%{revision}</code> yet.'
254
+ ready_html: 'Rolled over: every live process runs <code>%{revision}</code>. Armed tasks run on the scheduler''s next tick.'
255
+ unavailable_html: The rollover status could not be read.
256
+ default_queue: default
257
+ disable: Disable
258
+ enable: Enable
259
+ enqueue:
260
+ enqueued: Deploy task enqueued
261
+ failed: 'The deploy task was not enqueued: see the log for the reason'
262
+ every_deploy: Every deploy
263
+ index:
264
+ task_count:
265
+ one: "%{count} task declared"
266
+ other: "%{count} tasks declared"
267
+ title: Deploy Tasks
268
+ not_found: Deploy task not found
269
+ reasons:
270
+ disabled_armed_html: 'Disabled with a rollover run pending: enable it to let it fire.'
271
+ disabled_html: 'Disabled: the scheduler skips it.'
272
+ due_html: 'Due: runs on the scheduler''s next tick.'
273
+ manual_html: "· ran %{ago} (manual)"
274
+ never_html: Never ran after a rollover.
275
+ ran_html: Ran %{ago} on <code>%{revision}</code> (rollover).
276
+ waiting_lagging_html:
277
+ one: 'Waiting for rollover: 1 process is not on <code>%{revision}</code> yet.'
278
+ other: 'Waiting for rollover: %{count} processes are not on <code>%{revision}</code> yet.'
279
+ waiting_no_revision_html: 'Waiting: the app revision is not configured.'
280
+ waiting_no_scheduler_html: 'Waiting: no scheduler is running.'
281
+ waiting_no_workers_html: Waiting for a worker on <code>%{revision}</code>.
282
+ waiting_unknown_html: 'Waiting: the rollover status could not be read.'
283
+ run_now: Run Now
284
+ show:
285
+ armed_html: "%{armed_for}, armed %{ago}"
286
+ back: Back
287
+ configuration: Configuration
288
+ labels:
289
+ arguments: Arguments
290
+ armed: Pending arm
291
+ command: Command
292
+ description: Description
293
+ job_class: Job Class
294
+ priority: Priority
295
+ queue: Queue
296
+ source: Source
297
+ last_run: Last Run
298
+ no_runs: No runs recorded yet
299
+ recent_runs: Recent Runs
300
+ run_headers:
301
+ enqueued_at: Enqueued At
302
+ queue: Queue
303
+ revision: Revision
304
+ triggered_by: Triggered By
305
+ version: Version
306
+ source_config: Config file
307
+ source_dynamic: Dynamic
308
+ state: State
309
+ version: Version
310
+ states:
311
+ disabled: Disabled
312
+ due: Due
313
+ never: Never ran
314
+ ran: Ran
315
+ waiting: Waiting
316
+ tasks_table:
317
+ empty_hint_html: Declare one-time tasks in <code>config/deploy_tasks.yml</code>; <code>rails generate pgbus:add_deploy_tasks</code> writes a starter file.
318
+ empty_title: No deploy tasks declared
319
+ headers:
320
+ actions: Actions
321
+ last_run: Last Run
322
+ queue: Queue
323
+ state: State
324
+ task: Task
325
+ version: Version
326
+ never: Never
327
+ toggle:
328
+ disabled: Deploy task disabled
329
+ enabled: Deploy task enabled
330
+ failed: Failed to toggle the deploy task
331
+ triggered_by:
332
+ manual: Manual
333
+ rollover: Rollover
334
+ version: v%{version}
239
335
  dialogs:
240
336
  cancel: Cancel
241
337
  confirm: Confirm
@@ -617,6 +713,7 @@ en:
617
713
  nav:
618
714
  batches: Batches
619
715
  dashboard: Dashboard
716
+ deploy_tasks: Deploy
620
717
  dlq: DLQ
621
718
  events: Events
622
719
  insights: Insights
@@ -236,6 +236,102 @@ es:
236
236
  payload: Carga útil
237
237
  retry: Reintentar
238
238
  title: 'Mensaje DLQ #%{id}'
239
+ deploy_tasks:
240
+ banner:
241
+ heading: Transición
242
+ lagging_html:
243
+ one: 'Esperando la transición: 1 proceso aún no ejecuta <code>%{revision}</code>.'
244
+ other: 'Esperando la transición: %{count} procesos aún no ejecutan <code>%{revision}</code>.'
245
+ lagging_more: "…y %{count} más"
246
+ lagging_process: "%{kind}@%{hostname} pid %{pid} en %{revision}"
247
+ live_count: "%{count} en %{revision}"
248
+ live_heading: 'Procesos activos:'
249
+ no_revision_hint_html: Define <code>config.app_revision</code>, o una de <code>PGBUS_REVISION</code>, <code>DASH_VERSION</code> o <code>KAMAL_VERSION</code>, o incluye un archivo <code>REVISION</code>. Ejecutar ahora sigue funcionando.
250
+ no_revision_html: 'Revisión de la aplicación no configurada: las tareas de despliegue esperan hasta que lo esté.'
251
+ no_revision_label: sin revisión
252
+ no_scheduler_html: 'No hay ningún planificador en ejecución: las tareas de despliegue solo las lanza el planificador. Este veredicto usa la revisión del propio panel.'
253
+ no_workers_html: 'Esperando la transición: aún no hay ningún worker en <code>%{revision}</code>.'
254
+ ready_html: 'Transición completa: cada proceso activo ejecuta <code>%{revision}</code>. Las tareas armadas se ejecutan en el siguiente tick del planificador.'
255
+ unavailable_html: No se pudo leer el estado de la transición.
256
+ default_queue: default
257
+ disable: Desactivar
258
+ enable: Activar
259
+ enqueue:
260
+ enqueued: Tarea de despliegue encolada
261
+ failed: 'La tarea de despliegue no se encoló: consulta el registro para ver el motivo'
262
+ every_deploy: En cada despliegue
263
+ index:
264
+ task_count:
265
+ one: "%{count} tarea declarada"
266
+ other: "%{count} tareas declaradas"
267
+ title: Tareas de despliegue
268
+ not_found: Tarea de despliegue no encontrada
269
+ reasons:
270
+ disabled_armed_html: 'Desactivada con una ejecución de transición pendiente: actívala para que se ejecute.'
271
+ disabled_html: 'Desactivada: el planificador la omite.'
272
+ due_html: 'Lista: se ejecuta en el siguiente tick del planificador.'
273
+ manual_html: "· se ejecutó %{ago} (manual)"
274
+ never_html: Nunca se ejecutó tras una transición.
275
+ ran_html: Se ejecutó %{ago} en <code>%{revision}</code> (transición).
276
+ waiting_lagging_html:
277
+ one: 'Esperando la transición: 1 proceso aún no ejecuta <code>%{revision}</code>.'
278
+ other: 'Esperando la transición: %{count} procesos aún no ejecutan <code>%{revision}</code>.'
279
+ waiting_no_revision_html: 'Esperando: la revisión de la aplicación no está configurada.'
280
+ waiting_no_scheduler_html: 'Esperando: no hay ningún planificador en ejecución.'
281
+ waiting_no_workers_html: Esperando un worker en <code>%{revision}</code>.
282
+ waiting_unknown_html: 'Esperando: no se pudo leer el estado de la transición.'
283
+ run_now: Ejecutar ahora
284
+ show:
285
+ armed_html: "%{armed_for}, armada %{ago}"
286
+ back: Volver
287
+ configuration: Configuración
288
+ labels:
289
+ arguments: Argumentos
290
+ armed: Ejecución pendiente
291
+ command: Comando
292
+ description: Descripción
293
+ job_class: Clase de trabajo
294
+ priority: Prioridad
295
+ queue: Cola
296
+ source: Origen
297
+ last_run: Última ejecución
298
+ no_runs: Aún no hay ejecuciones registradas
299
+ recent_runs: Ejecuciones recientes
300
+ run_headers:
301
+ enqueued_at: Encolada el
302
+ queue: Cola
303
+ revision: Revisión
304
+ triggered_by: Lanzada por
305
+ version: Versión
306
+ source_config: Archivo de configuración
307
+ source_dynamic: Dinámica
308
+ state: Estado
309
+ version: Versión
310
+ states:
311
+ disabled: Desactivada
312
+ due: Lista
313
+ never: Nunca ejecutada
314
+ ran: Ejecutada
315
+ waiting: Esperando
316
+ tasks_table:
317
+ empty_hint_html: Declara tareas puntuales en <code>config/deploy_tasks.yml</code>; <code>rails generate pgbus:add_deploy_tasks</code> crea un archivo inicial.
318
+ empty_title: No hay tareas de despliegue declaradas
319
+ headers:
320
+ actions: Acciones
321
+ last_run: Última ejecución
322
+ queue: Cola
323
+ state: Estado
324
+ task: Tarea
325
+ version: Versión
326
+ never: Nunca
327
+ toggle:
328
+ disabled: Tarea de despliegue desactivada
329
+ enabled: Tarea de despliegue activada
330
+ failed: No se pudo cambiar la tarea de despliegue
331
+ triggered_by:
332
+ manual: Manual
333
+ rollover: Transición
334
+ version: v%{version}
239
335
  dialogs:
240
336
  cancel: Cancelar
241
337
  confirm: Confirmar
@@ -617,6 +713,7 @@ es:
617
713
  nav:
618
714
  batches: Lotes
619
715
  dashboard: Panel de control
716
+ deploy_tasks: Despliegue
620
717
  dlq: DLQ
621
718
  events: Eventos
622
719
  insights: Perspectivas
@@ -236,6 +236,102 @@ fi:
236
236
  payload: Kuorma
237
237
  retry: Yritä uudelleen
238
238
  title: 'DLQ-viesti #%{id}'
239
+ deploy_tasks:
240
+ banner:
241
+ heading: Käyttöönotto
242
+ lagging_html:
243
+ one: 'Odotetaan käyttöönottoa: 1 prosessi ei vielä aja versiota <code>%{revision}</code>.'
244
+ other: 'Odotetaan käyttöönottoa: %{count} prosessia ei vielä aja versiota <code>%{revision}</code>.'
245
+ lagging_more: "…ja %{count} muuta"
246
+ lagging_process: "%{kind}@%{hostname} pid %{pid} versiossa %{revision}"
247
+ live_count: "%{count} versiossa %{revision}"
248
+ live_heading: 'Elävät prosessit:'
249
+ no_revision_hint_html: Aseta <code>config.app_revision</code>, tai jokin muuttujista <code>PGBUS_REVISION</code>, <code>DASH_VERSION</code> tai <code>KAMAL_VERSION</code>, tai toimita <code>REVISION</code>-tiedosto. Suorita nyt toimii edelleen.
250
+ no_revision_html: 'Sovelluksen versiota ei ole määritetty: deploy-tehtävät odottavat, kunnes se on.'
251
+ no_revision_label: ei versiota
252
+ no_scheduler_html: 'Ajastinta ei ole käynnissä: deploy-tehtävät käynnistyvät vain ajastimesta. Arvio käyttää hallintapaneelin omaa versiota.'
253
+ no_workers_html: 'Odotetaan käyttöönottoa: versiossa <code>%{revision}</code> ei ole vielä workeria.'
254
+ ready_html: 'Käyttöönotto valmis: jokainen elävä prosessi ajaa versiota <code>%{revision}</code>. Odottavat tehtävät ajetaan ajastimen seuraavalla kierroksella.'
255
+ unavailable_html: Käyttöönoton tilaa ei voitu lukea.
256
+ default_queue: default
257
+ disable: Poista käytöstä
258
+ enable: Ota käyttöön
259
+ enqueue:
260
+ enqueued: Deploy-tehtävä lisätty jonoon
261
+ failed: 'Deploy-tehtävää ei lisätty jonoon: syy löytyy lokista'
262
+ every_deploy: Jokaisessa deployssa
263
+ index:
264
+ task_count:
265
+ one: "%{count} tehtävä määritelty"
266
+ other: "%{count} tehtävää määritelty"
267
+ title: Deploy-tehtävät
268
+ not_found: Deploy-tehtävää ei löytynyt
269
+ reasons:
270
+ disabled_armed_html: 'Poistettu käytöstä, käyttöönottoajo odottaa: ota se käyttöön, jotta se ajetaan.'
271
+ disabled_html: 'Poistettu käytöstä: ajastin ohittaa sen.'
272
+ due_html: 'Valmis: ajetaan ajastimen seuraavalla kierroksella.'
273
+ manual_html: "· ajettu %{ago} (manuaalisesti)"
274
+ never_html: Ei koskaan ajettu käyttöönoton jälkeen.
275
+ ran_html: Ajettu %{ago} versiossa <code>%{revision}</code> (käyttöönotto).
276
+ waiting_lagging_html:
277
+ one: 'Odotetaan käyttöönottoa: 1 prosessi ei vielä aja versiota <code>%{revision}</code>.'
278
+ other: 'Odotetaan käyttöönottoa: %{count} prosessia ei vielä aja versiota <code>%{revision}</code>.'
279
+ waiting_no_revision_html: 'Odottaa: sovelluksen versiota ei ole määritetty.'
280
+ waiting_no_scheduler_html: 'Odottaa: ajastinta ei ole käynnissä.'
281
+ waiting_no_workers_html: Odottaa workeria versiossa <code>%{revision}</code>.
282
+ waiting_unknown_html: 'Odottaa: käyttöönoton tilaa ei voitu lukea.'
283
+ run_now: Suorita nyt
284
+ show:
285
+ armed_html: "%{armed_for}, valmisteltu %{ago}"
286
+ back: Takaisin
287
+ configuration: Asetukset
288
+ labels:
289
+ arguments: Argumentit
290
+ armed: Odottava ajo
291
+ command: Komento
292
+ description: Kuvaus
293
+ job_class: Työluokka
294
+ priority: Prioriteetti
295
+ queue: Jono
296
+ source: Lähde
297
+ last_run: Viimeisin ajo
298
+ no_runs: Ajoja ei ole vielä kirjattu
299
+ recent_runs: Viimeisimmät ajot
300
+ run_headers:
301
+ enqueued_at: Lisätty jonoon
302
+ queue: Jono
303
+ revision: Versio
304
+ triggered_by: Käynnistäjä
305
+ version: Versio
306
+ source_config: Asetustiedosto
307
+ source_dynamic: Dynaaminen
308
+ state: Tila
309
+ version: Versio
310
+ states:
311
+ disabled: Pois käytöstä
312
+ due: Valmis
313
+ never: Ei koskaan ajettu
314
+ ran: Ajettu
315
+ waiting: Odottaa
316
+ tasks_table:
317
+ empty_hint_html: Määrittele kertaluonteiset tehtävät tiedostossa <code>config/deploy_tasks.yml</code>; <code>rails generate pgbus:add_deploy_tasks</code> luo aloitustiedoston.
318
+ empty_title: Deploy-tehtäviä ei ole määritelty
319
+ headers:
320
+ actions: Toiminnot
321
+ last_run: Viimeisin ajo
322
+ queue: Jono
323
+ state: Tila
324
+ task: Tehtävä
325
+ version: Versio
326
+ never: Ei koskaan
327
+ toggle:
328
+ disabled: Deploy-tehtävä poistettu käytöstä
329
+ enabled: Deploy-tehtävä otettu käyttöön
330
+ failed: Deploy-tehtävän vaihto epäonnistui
331
+ triggered_by:
332
+ manual: Manuaalinen
333
+ rollover: Käyttöönotto
334
+ version: v%{version}
239
335
  dialogs:
240
336
  cancel: Peruuta
241
337
  confirm: Vahvista
@@ -617,6 +713,7 @@ fi:
617
713
  nav:
618
714
  batches: Erät
619
715
  dashboard: Hallintapaneeli
716
+ deploy_tasks: Deploy
620
717
  dlq: DLQ
621
718
  events: Tapahtumat
622
719
  insights: Oivallukset
@@ -236,6 +236,102 @@ fr:
236
236
  payload: Charge utile
237
237
  retry: Réessayer
238
238
  title: Message DLQ n°%{id}
239
+ deploy_tasks:
240
+ banner:
241
+ heading: Bascule
242
+ lagging_html:
243
+ one: 'En attente de bascule : 1 processus n''exécute pas encore <code>%{revision}</code>.'
244
+ other: 'En attente de bascule : %{count} processus n''exécutent pas encore <code>%{revision}</code>.'
245
+ lagging_more: "…et %{count} de plus"
246
+ lagging_process: "%{kind}@%{hostname} pid %{pid} sur %{revision}"
247
+ live_count: "%{count} sur %{revision}"
248
+ live_heading: 'Processus actifs :'
249
+ no_revision_hint_html: Définissez <code>config.app_revision</code>, ou l'une de <code>PGBUS_REVISION</code>, <code>DASH_VERSION</code> ou <code>KAMAL_VERSION</code>, ou livrez un fichier <code>REVISION</code>. Exécuter maintenant fonctionne toujours.
250
+ no_revision_html: 'Révision de l''application non configurée : les tâches de déploiement attendent qu''elle le soit.'
251
+ no_revision_label: aucune révision
252
+ no_scheduler_html: 'Aucun planificateur ne tourne : les tâches de déploiement ne sont lancées que par le planificateur. Ce verdict utilise la révision du tableau de bord.'
253
+ no_workers_html: 'En attente de bascule : aucun worker sur <code>%{revision}</code> pour l''instant.'
254
+ ready_html: 'Bascule terminée : chaque processus actif exécute <code>%{revision}</code>. Les tâches armées s''exécutent au prochain tick du planificateur.'
255
+ unavailable_html: L'état de la bascule n'a pas pu être lu.
256
+ default_queue: default
257
+ disable: Désactiver
258
+ enable: Activer
259
+ enqueue:
260
+ enqueued: Tâche de déploiement mise en file
261
+ failed: 'La tâche de déploiement n''a pas été mise en file : consultez le journal pour la raison'
262
+ every_deploy: À chaque déploiement
263
+ index:
264
+ task_count:
265
+ one: "%{count} tâche déclarée"
266
+ other: "%{count} tâches déclarées"
267
+ title: Tâches de déploiement
268
+ not_found: Tâche de déploiement introuvable
269
+ reasons:
270
+ disabled_armed_html: 'Désactivée avec une exécution de bascule en attente : activez-la pour la laisser s''exécuter.'
271
+ disabled_html: 'Désactivée : le planificateur l''ignore.'
272
+ due_html: 'Prête : s''exécute au prochain tick du planificateur.'
273
+ manual_html: "· exécutée %{ago} (manuel)"
274
+ never_html: Jamais exécutée après une bascule.
275
+ ran_html: Exécutée %{ago} sur <code>%{revision}</code> (bascule).
276
+ waiting_lagging_html:
277
+ one: 'En attente de bascule : 1 processus n''exécute pas encore <code>%{revision}</code>.'
278
+ other: 'En attente de bascule : %{count} processus n''exécutent pas encore <code>%{revision}</code>.'
279
+ waiting_no_revision_html: 'En attente : la révision de l''application n''est pas configurée.'
280
+ waiting_no_scheduler_html: 'En attente : aucun planificateur ne tourne.'
281
+ waiting_no_workers_html: En attente d'un worker sur <code>%{revision}</code>.
282
+ waiting_unknown_html: 'En attente : l''état de la bascule n''a pas pu être lu.'
283
+ run_now: Exécuter maintenant
284
+ show:
285
+ armed_html: "%{armed_for}, armée %{ago}"
286
+ back: Retour
287
+ configuration: Configuration
288
+ labels:
289
+ arguments: Arguments
290
+ armed: Exécution en attente
291
+ command: Commande
292
+ description: Description
293
+ job_class: Classe de tâche
294
+ priority: Priorité
295
+ queue: File d'attente
296
+ source: Source
297
+ last_run: Dernière exécution
298
+ no_runs: Aucune exécution enregistrée
299
+ recent_runs: Exécutions récentes
300
+ run_headers:
301
+ enqueued_at: Mise en file le
302
+ queue: File d'attente
303
+ revision: Révision
304
+ triggered_by: Déclenchée par
305
+ version: Version
306
+ source_config: Fichier de configuration
307
+ source_dynamic: Dynamique
308
+ state: État
309
+ version: Version
310
+ states:
311
+ disabled: Désactivée
312
+ due: Prête
313
+ never: Jamais exécutée
314
+ ran: Exécutée
315
+ waiting: En attente
316
+ tasks_table:
317
+ empty_hint_html: Déclarez les tâches ponctuelles dans <code>config/deploy_tasks.yml</code> ; <code>rails generate pgbus:add_deploy_tasks</code> écrit un fichier de départ.
318
+ empty_title: Aucune tâche de déploiement déclarée
319
+ headers:
320
+ actions: Actions
321
+ last_run: Dernière exécution
322
+ queue: File d'attente
323
+ state: État
324
+ task: Tâche
325
+ version: Version
326
+ never: Jamais
327
+ toggle:
328
+ disabled: Tâche de déploiement désactivée
329
+ enabled: Tâche de déploiement activée
330
+ failed: Échec du basculement de la tâche de déploiement
331
+ triggered_by:
332
+ manual: Manuel
333
+ rollover: Bascule
334
+ version: v%{version}
239
335
  dialogs:
240
336
  cancel: Annuler
241
337
  confirm: Confirmer
@@ -617,6 +713,7 @@ fr:
617
713
  nav:
618
714
  batches: Lots
619
715
  dashboard: Tableau de bord
716
+ deploy_tasks: Déploiement
620
717
  dlq: DLQ
621
718
  events: Événements
622
719
  insights: Analyses