Kaynağa Gözat

Do not offer Redrive button on non-DLQs.

Frederic G. MARAND 2 yıl önce
ebeveyn
işleme
a276440e54

+ 4 - 0
back/services/redriver/types.go

@@ -38,6 +38,10 @@ type QueueInfo struct {
 	Attributes *QueueInfoAttributes `json:"attributes,omitempty"`
 }
 
+func (qi QueueInfo) IsDLQ() bool {
+	return qi.Attributes.RedriveAllowPolicy != nil
+}
+
 type QueueInfoAttributes struct {
 	// ApproximateNumberOfMessages holds the approximate number of messages available for retrieval from the queue.
 	ApproximateNumberOfMessages int64 `json:"approximate_number_of_messages,omitempty"`

+ 1 - 0
back/web/queue.go

@@ -41,6 +41,7 @@ func makeQueueHandler(rd redriver.Redriver, ms redriver.MessageStore) gin.Handle
 		c.HTML(http.StatusOK, "queue-get", gin.H{
 			"flashes": flashes,
 			"info":    qi,
+			"isDLQ":   qi.IsDLQ(),
 			"items":   items,
 			"latency": map[string]time.Duration{
 				"info":  infoLatency,

+ 14 - 7
front/templates/queue.gohtml

@@ -63,11 +63,13 @@
                 {{ if $attr.RedrivePolicy }}
                     <tr>
                         <th scope="row">DeadLetter queue</th>
-                        <td><a href="/queue/{{ nameFromARN $attr.RedrivePolicy.DeadLetterTargetARN }}">{{ $attr.RedrivePolicy.DeadLetterTargetARN }}</a></td>
+                        <td>
+                            <a href="/queue/{{ nameFromARN $attr.RedrivePolicy.DeadLetterTargetARN }}">{{ $attr.RedrivePolicy.DeadLetterTargetARN }}</a>
+                        </td>
                         <td>Max. receive count: {{ $attr.RedrivePolicy.MaxReceiveCount }}</td>
                     </tr>
                 {{ end }}
-                {{ if $attr.RedriveAllowPolicy }}
+                {{ if .isDLQ }}
                     <tr>
                         <th scope="row">Source queues for DLQ</th>
                         <td>Redrive Permission: {{ $attr.RedriveAllowPolicy.RedrivePermission }}</td>
@@ -89,13 +91,18 @@
             <form method="get" id="msg-form" action="/queue/{{ .info.Name }}/confirm">
                 <div class="d-flex align-items-center justify-content-between">
                     <h2 class="my-5">Messages</h2>
-                    <button type="submit" form="msg-form" id="redrive" name="redrive" class="btn btn-outline-warning bg-warning text-white" disabled>
-                        Redrive selection
-                    </button>
-                    <button type="submit" form="msg-form" id="delete" name="delete" class="btn btn-outline-danger bg-danger-subtle text-danger" disabled>
+                    {{ if .isDLQ }}
+                        <button type="submit" form="msg-form" id="redrive" name="redrive"
+                                class="btn btn-outline-warning bg-warning text-white" disabled>
+                            Redrive selection
+                        </button>
+                    {{ end }}
+                    <button type="submit" form="msg-form" id="delete" name="delete"
+                            class="btn btn-outline-danger bg-danger-subtle text-danger" disabled>
                         Delete selection
                     </button>
-                    <button type="submit" form="msg-form" id="purge" name="purge" class="btn btn-outline-danger bg-danger text-white">
+                    <button type="submit" form="msg-form" id="purge" name="purge"
+                            class="btn btn-outline-danger bg-danger text-white">
                         Purge whole queue
                     </button>
                 </div>