Merge default

This commit is contained in:
Simon MacMullen 2012-06-07 15:26:39 +01:00
commit 07a29d4dbf
11 changed files with 156 additions and 9 deletions

View File

@ -33,6 +33,7 @@
<li><a href="#/queues">Queues</a></li>
<li class="administrator-only"><a href="#/users">Users</a></li>
<li class="administrator-only"><a href="#/vhosts">Virtual Hosts</a></li>
<li class="administrator-only"><a href="#/policies">Policies</a></li>
</ul>
</div>
</div>

View File

@ -153,6 +153,21 @@ dispatcher_add(function(sammy) {
update();
return false;
});
path('#/policies', {'policies': '/parameters/policy'}, 'policies');
sammy.get('#/policies/:id', function() {
render({'policy': '/parameters/policy/' + esc(this.params['id'])},
'policy', '#/policies');
});
sammy.put('#/policies', function() {
put_parameter(this, ['prefix'], []);
return false;
});
sammy.del('#/policies', function() {
if (sync_delete(this, '/parameters/:component/:key'))
go_to('#/policies');
return false;
});
sammy.get('#/import-succeeded', function() {
render({}, 'import-succeeded', '#/overview');
});

View File

@ -210,6 +210,10 @@ function fmt_exchange_type(type) {
'</acronym></div>';
}
function fmt_policy(policy) {
return policy == 'none' ? '' : fmt_escape_html(policy);
}
function fmt_exchange_url(name) {
return name == '' ? 'amq.default' : fmt_escape_html(name);
}
@ -455,6 +459,10 @@ function link_node(name) {
return _link_to(fmt_escape_html(name), '#/nodes/' + esc(name))
}
function link_policy(name) {
return _link_to(fmt_escape_html(name), '#/policies/' + esc(name))
}
function _link_to(name, url) {
return '<a href="' + url + '">' + name + '</a>';
}

View File

@ -692,6 +692,26 @@ function maybe_remove_fields(params) {
return params;
}
function put_parameter(sammy, mandatory_keys, num_keys) {
for (var i in sammy.params) {
if (i === 'length' || !sammy.params.hasOwnProperty(i)) continue;
if (sammy.params[i] == '' && mandatory_keys.indexOf(i) == -1) {
delete sammy.params[i];
}
else if (num_keys.indexOf(i) != -1) {
sammy.params[i] = parseInt(sammy.params[i]);
}
}
var params = {"component": sammy.params.component,
"key": sammy.params.key,
"value": params_magic(sammy.params)};
delete params.value.component;
delete params.value.key;
sammy.params = params;
if (sync_put(sammy, '/parameters/:component/:key')) update();
}
function debug(str) {
$('<p>' + str + '</p>').appendTo('#debug');
}

View File

@ -12,6 +12,10 @@
<th>Parameters</th>
<td><%= fmt_parameters(exchange) %></td>
</tr>
<tr>
<th>Policy</th>
<td><%= fmt_policy(exchange.policy) %></td>
</tr>
<% if (vhosts_interesting) { %>
<tr>
<th>Virtual host</th>

View File

@ -11,6 +11,7 @@
<% } %>
<th><%= fmt_sort('Name', 'name') %></th>
<th><%= fmt_sort('Type', 'type') %></th>
<th><%= fmt_sort('Policy', 'policy') %></th>
<th>Parameters</th>
<% if (statistics_level == 'fine') { %>
<th><%= fmt_sort('Message rate', 'message_stats_in.publish_details.rate') %></th>
@ -28,6 +29,7 @@
<% } %>
<td><%= link_exchange(exchange.vhost, exchange.name) %></td>
<td class="status c"><%= fmt_exchange_type(exchange.type) %></td>
<td class="c"><%= fmt_policy(exchange.policy) %></td>
<td class="c"><%= fmt_parameters_short(exchange) %></td>
<td class="r"><%= fmt_rate(exchange.message_stats_in, 'publish', false) %></td>
</tr>

View File

@ -0,0 +1,59 @@
<h1>Policies</h1>
<div class="section">
<h2>All policies</h2>
<div class="hider">
<div class="updatable">
<% if (policies.length > 0) { %>
<table class="list">
<thead>
<tr>
<th>Name</th>
<th>Virtual Host</th>
<th>Prefix</th>
<th>Policy</th>
</tr>
</thead>
<tbody>
<%
for (var i = 0; i < policies.length; i++) {
var policy = policies[i];
%>
<tr<%= alt_rows(i)%>>
<td><%= link_policy(policy.key) %></td>
<td><%= policy.value['vhost'] %></td>
<td><%= policy.value['prefix'] %></td>
<td><%= fmt_table_short(policy.value['policy']) %></td>
</tr>
<% } %>
</tbody>
</table>
<% } else { %>
<p>... no policies ...</p>
<% } %>
</div>
<h3>Add / update a policy</h3>
<form action="#/policies" method="put">
<input type="hidden" name="component" value="policy"/>
<table class="form">
<tr>
<th><label>Name:</label></th>
<td><input type="text" name="key"/><span class="mand">*</span></td>
</tr>
<tr>
<th><label>Prefix:</label></th>
<td><input type="text" name="prefix"/></td>
</tr>
<tr>
<th><label>Virtual host:</label></th>
<td><input type="text" name="vhost"/></td>
</tr>
<tr>
<th><label>Policy:</label></th>
<td><span class="multifield" id="policy"></span></td>
</tr>
</table>
<input type="submit" value="Add policy"/>
</form>
</div>
</div>

View File

@ -0,0 +1,32 @@
<h1>Policy: <b><%= fmt_string(policy.key) %></b></h1>
<div class="section">
<h2>Overview</h2>
<div class="hider">
<table class="facts">
<tr>
<th>Virtual Host</th>
<td><%= policy.value.vhost %></td>
</tr>
<tr>
<th>Prefix</th>
<td><%= policy.value.prefix %></td>
</tr>
<tr>
<th>Policy</th>
<td><%= fmt_table_short(policy.value.policy) %></td>
</tr>
</table>
</div>
</div>
<div class="section-hidden">
<h2>Delete this policy</h2>
<div class="hider">
<form action="#/policies" method="delete" class="confirm">
<input type="hidden" name="component" value="policy"/>
<input type="hidden" name="key" value="<%= fmt_string(policy.key) %>"/>
<input type="submit" value="Delete this policy"/>
</form>
</div>
</div>

View File

@ -16,6 +16,10 @@
<th>Parameters</th>
<td><%= fmt_parameters(queue) %></td>
</tr>
<tr>
<th>Policy</th>
<td><%= fmt_policy(queue.policy) %></td>
</tr>
<tr>
<th>Exclusive owner</th>
<td>
@ -26,13 +30,13 @@
<% } %>
</td>
</tr>
</table>
<table class="facts">
<tr>
<th>Status</th>
<td><%= fmt_idle_long(queue) %></td>
</tr>
</table>
<table class="facts">
<tr>
<th>Consumers</th>
<td><%= fmt_string(queue.consumers) %></td>

View File

@ -10,7 +10,7 @@
<table class="list">
<thead>
<tr>
<th colspan="<% if (nodes_interesting && vhosts_interesting) { %>6<% } else if (nodes_interesting || vhosts_interesting) { %>5<% } else { %>4<% } %>">Overview</th>
<th colspan="<% if (nodes_interesting && vhosts_interesting) { %>7<% } else if (nodes_interesting || vhosts_interesting) { %>6<% } else { %>5<% } %>">Overview</th>
<th colspan="3">Messages</th>
<% if (statistics_level == 'fine') { %>
<th colspan="3">Message rates</th>
@ -26,6 +26,7 @@
<% } %>
<th><%= fmt_sort('Exclusive', 'owner_pid_details.name') %></th>
<th>Parameters</th>
<th><%= fmt_sort('Policy', 'policy') %></th>
<th><%= fmt_sort('Status', 'idle_since') %></th>
<th><%= fmt_sort('Ready', 'messages_ready') %></th>
<th><%= fmt_sort('Unacked', 'messages_unacknowledged') %></th>
@ -62,9 +63,8 @@
<%= link_conn(queue.owner_pid_details.name) %>
<% } %>
</td>
<td class="c">
<%= fmt_parameters_short(queue) %>
</td>
<td class="c"><%= fmt_parameters_short(queue) %></td>
<td class="c"><%= fmt_policy(queue.policy) %></td>
<td class="c"><%= fmt_idle(queue) %></td>
<td class="r"><%= fmt_string(queue.messages_ready) %></td>
<td class="r"><%= fmt_string(queue.messages_unacknowledged) %></td>

View File

@ -265,14 +265,16 @@ queue(#amqqueue{name = Name,
auto_delete = AutoDelete,
exclusive_owner = ExclusiveOwner,
arguments = Arguments,
pid = Pid }) ->
pid = Pid,
policy = Policy} = Q) ->
format(
[{name, Name},
{durable, Durable},
{auto_delete, AutoDelete},
{owner_pid, ExclusiveOwner},
{arguments, Arguments},
{pid, Pid}],
{pid, Pid},
{policy, rabbit_policy:name(Q)}],
[{fun resource/1, [name]},
{fun amqp_table/1, [arguments]}]).