##// END OF EJS Templates
user-groups: fix potential problem with group sync of external plugins....
user-groups: fix potential problem with group sync of external plugins. - when using external plugin we used to check for a parameter that set the sync mode. The problem is we only checked if the flag was there. So toggling sync on and off set the value and then left the key still set but with None. This confused the sync and thought the group should be synced !

File last commit:

r1901:7a83865c default
r2143:4314e88b default
Show More
settings_process_management.mako
126 lines | 3.9 KiB | application/x-mako | MakoHtmlLexer
/ rhodecode / templates / admin / settings / settings_process_management.mako
process-managemet: added simple page to monitor worker processes of RhodeCode.
r1885
<div id="update_notice" style="display: none; margin: -40px 0px 20px 0px">
<div>${_('Checking for updates...')}</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">${_('Gunicorn process management')}</h3>
</div>
<div class="panel-body" id="app">
<h3>List of Gunicorn processes on this machine</h3>
<table>
% for proc in c.gunicorn_processes:
<% mem = proc.memory_info()%>
process-management: structure the process by master.
r1887 <% children = proc.children(recursive=True) %>
% if children:
process-managemet: added simple page to monitor worker processes of RhodeCode.
r1885
<tr>
<td>
<code>
${proc.pid} - ${proc.name()}
</code>
</td>
<td>
process-management: show helper for CMDLINE.
r1886 <a href="#showCommand" onclick="$('#pid'+${proc.pid}).toggle();return false"> command </a>
<code id="pid${proc.pid}" style="display: none">
process-management: show CPU numbers for processes.
r1888 ${' '.join(proc.cmdline())}
process-management: show helper for CMDLINE.
r1886 </code>
</td>
process-management: show CPU numbers for processes.
r1888 <td></td>
process-management: show helper for CMDLINE.
r1886 <td>
process-managemet: added simple page to monitor worker processes of RhodeCode.
r1885 RSS:${h.format_byte_size_binary(mem.rss)}
</td>
<td>
VMS:${h.format_byte_size_binary(mem.vms)}
</td>
<td>
process-management: show sum of RSS memory for whole process tree.
r1901 MASTER
process-management: structure the process by master.
r1887 </td>
</tr>
process-management: show sum of RSS memory for whole process tree.
r1901 <% mem_sum = 0 %>
process-management: structure the process by master.
r1887 % for proc_child in children:
<% mem = proc_child.memory_info()%>
<tr>
<td>
<code>
| ${proc_child.pid} - ${proc_child.name()}
</code>
</td>
<td>
<a href="#showCommand" onclick="$('#pid'+${proc_child.pid}).toggle();return false"> command </a>
<code id="pid${proc_child.pid}" style="display: none">
process-management: show CPU numbers for processes.
r1888 ${' '.join(proc_child.cmdline())}
process-management: structure the process by master.
r1887 </code>
</td>
<td>
process-management: show CPU numbers for processes.
r1888 CPU: ${proc_child.cpu_percent()} %
</td>
<td>
process-management: structure the process by master.
r1887 RSS:${h.format_byte_size_binary(mem.rss)}
process-management: show sum of RSS memory for whole process tree.
r1901 <% mem_sum += mem.rss %>
process-management: structure the process by master.
r1887 </td>
<td>
VMS:${h.format_byte_size_binary(mem.vms)}
</td>
<td>
<a href="#restartProcess" onclick="restart(this, ${proc_child.pid});return false">
process-managemet: added simple page to monitor worker processes of RhodeCode.
r1885 restart
</a>
process-management: structure the process by master.
r1887 </td>
</tr>
% endfor
process-management: show sum of RSS memory for whole process tree.
r1901 <tr>
<td colspan="2"><code>| total processes: ${len(children)}</code></td>
<td></td>
<td><strong>RSS:${h.format_byte_size_binary(mem_sum)}</strong></td>
<td></td>
</tr>
<tr><td> <code> - </code> </td></tr>
process-management: structure the process by master.
r1887
% endif
process-managemet: added simple page to monitor worker processes of RhodeCode.
r1885 % endfor
</table>
</div>
</div>
<script>
restart = function(elem, pid) {
if ($(elem).hasClass('disabled')){
return;
}
$(elem).addClass('disabled');
$(elem).html('processing...');
$.ajax({
url: pyroutes.url('admin_settings_process_management_signal'),
headers: {
"X-CSRF-Token": CSRF_TOKEN,
},
data: JSON.stringify({'pids': [pid]}),
dataType: 'json',
type: 'POST',
contentType: "application/json; charset=utf-8",
success: function (data) {
$(elem).html(data.result);
$(elem).removeClass('disabled');
},
failure: function (data) {
$(elem).text('FAILED TO LOAD RESULT');
$(elem).removeClass('disabled');
},
error: function (data) {
$(elem).text('FAILED TO LOAD RESULT');
$(elem).removeClass('disabled');
}
})
}
</script>