Files
pulp-console/app/templates/partials/version_list.html
Hyemin Lee 7ad6d65a11 feat: gated deploy with preview, audit log, rollback trail (stage 4)
- pulp_client: create_publication / update_distribution / wait_for_task
- GET /repos/{uuid}/deploy/confirm: 미리보기(현재→대상, 순 변화) + type-to-confirm 모달
- POST /repos/{uuid}/deploy: 검증 게이트(서버측 재확인) → publication 생성 →
  distribution 교체 → 감사 로그. 2단계 실패 시 '운영망 변경 여부' 명확화
- audit.record_deploy: 누가/언제/repo/이전버전→대상버전 JSONL (롤백 추적)
- 배포 버튼은 검증 통과 + 미배포 버전만 활성, 성공 시 버전목록 OOB 갱신
- 인증은 TODO (operator placeholder, 배포 비밀번호 재확인 예정)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 13:31:15 +09:00

47 lines
1.8 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div id="version-list" class="table-card"{% if oob %} hx-swap-oob="true"{% endif %}>
{% if versions %}
<table>
<thead>
<tr>
<th class="num">버전</th>
<th>생성일시</th>
<th class="num">패키지</th>
<th class="num">증감</th>
<th>검증</th>
<th>배포 상태</th>
<th></th>
</tr>
</thead>
<tbody>
{% for v in versions %}
<tr>
<td class="num">v{{ v.number }}</td>
<td>{{ v.created or "—" }}</td>
<td class="num">{{ v.package_count }}</td>
<td class="num">
{%- if v.added %}<span class="delta-add">+{{ v.added }}</span>{% endif -%}
{%- if v.removed %} <span class="delta-del">{{ v.removed }}</span>{% endif -%}
{%- if not v.added and not v.removed %}—{% endif -%}
</td>
<td>{% if v.gpg %}<span class="badge badge-{{ v.gpg.level }}">{{ v.gpg.label }}</span>{% endif %}</td>
<td>{% if v.is_deployed %}<span class="badge badge-deployed">운영 배포 중</span>{% endif %}</td>
<td>
{% if v.is_deployed %}
{# 배포 상태 칸에 배지 표시 #}
{% elif v.deployable %}
<button class="secondary"
hx-get="/repos/{{ uuid }}/deploy/confirm?version_href={{ v.href | urlencode }}"
hx-target="#modal" hx-swap="innerHTML">이 버전 배포</button>
{% else %}
<button class="secondary" disabled title="검증을 통과하지 못해 배포할 수 없습니다">이 버전 배포</button>
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% else %}
<p style="padding:16px;">버전이 없습니다. 먼저 동기화를 실행하세요.</p>
{% endif %}
</div>